@elevasis/ui 2.32.0 → 2.33.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/dist/app/index.d.ts +3 -0
  2. package/dist/app/index.js +3 -3
  3. package/dist/{chunk-LLRXA7D7.js → chunk-2VYMDNJ3.js} +1 -1
  4. package/dist/{chunk-7KZINJLP.js → chunk-3YZRKADM.js} +4 -4
  5. package/dist/{chunk-MOY4VOHF.js → chunk-4AAZXKLL.js} +1 -1
  6. package/dist/{chunk-RQTWIXJ5.js → chunk-53436UTQ.js} +1 -1
  7. package/dist/{chunk-WQPX44YM.js → chunk-AV2TKVVV.js} +673 -168
  8. package/dist/chunk-CLDCYJQT.js +1 -0
  9. package/dist/chunk-DWXDNT7P.js +145 -0
  10. package/dist/{chunk-T35FWDAB.js → chunk-DYIDXUJS.js} +1089 -158
  11. package/dist/{chunk-IQHU7O5Y.js → chunk-F3MXFE72.js} +1 -1
  12. package/dist/{chunk-5FJJ72HU.js → chunk-FOUYP4JX.js} +1 -1
  13. package/dist/{chunk-QQHOKTJA.js → chunk-H6EFQP2P.js} +39 -2
  14. package/dist/{chunk-5J4PDX26.js → chunk-KW7ZNQD7.js} +16 -2
  15. package/dist/{chunk-ZQOKIGZP.js → chunk-NCEQGEW5.js} +4 -4
  16. package/dist/{chunk-6DWD423K.js → chunk-PIS24NIV.js} +1 -1
  17. package/dist/{chunk-4MFNGNHF.js → chunk-QVTIOT73.js} +2 -2
  18. package/dist/{chunk-GCOQ3TBG.js → chunk-SWMQTF2H.js} +2 -2
  19. package/dist/{chunk-4QK76KIF.js → chunk-UNVRVCXZ.js} +1 -1
  20. package/dist/{chunk-VRNMNB3O.js → chunk-UYRT7SPM.js} +1 -1
  21. package/dist/{chunk-IZWTVFJ2.js → chunk-V6SZ4ECN.js} +6 -3
  22. package/dist/{chunk-YLQEVSOR.js → chunk-WGUEIGPC.js} +202 -54
  23. package/dist/{chunk-QXCDKE2O.js → chunk-WJOE76FI.js} +9 -28
  24. package/dist/{chunk-QTI3KC7D.js → chunk-YENKDBUU.js} +106 -43
  25. package/dist/components/index.d.ts +117 -4
  26. package/dist/components/index.js +24 -23
  27. package/dist/components/navigation/index.js +4 -3
  28. package/dist/execution/index.d.ts +8 -3
  29. package/dist/features/auth/index.d.ts +3 -0
  30. package/dist/features/clients/index.js +8 -7
  31. package/dist/features/crm/index.d.ts +3 -0
  32. package/dist/features/crm/index.js +10 -9
  33. package/dist/features/dashboard/index.d.ts +113 -3
  34. package/dist/features/dashboard/index.js +9 -8
  35. package/dist/features/delivery/index.d.ts +3 -0
  36. package/dist/features/delivery/index.js +9 -8
  37. package/dist/features/knowledge/index.js +8 -18
  38. package/dist/features/lead-gen/index.js +10 -9
  39. package/dist/features/monitoring/index.js +10 -9
  40. package/dist/features/monitoring/requests/index.d.ts +2 -2
  41. package/dist/features/monitoring/requests/index.js +8 -7
  42. package/dist/features/operations/index.d.ts +560 -93
  43. package/dist/features/operations/index.js +13 -12
  44. package/dist/features/settings/index.d.ts +3 -0
  45. package/dist/features/settings/index.js +9 -8
  46. package/dist/hooks/delivery/index.d.ts +3 -0
  47. package/dist/hooks/index.d.ts +210 -6
  48. package/dist/hooks/index.js +8 -7
  49. package/dist/hooks/operations/command-view/utils/transformCommandViewData.d.ts +205 -4
  50. package/dist/hooks/published.d.ts +210 -6
  51. package/dist/hooks/published.js +8 -7
  52. package/dist/index.d.ts +565 -95
  53. package/dist/index.js +8 -7
  54. package/dist/initialization/index.d.ts +3 -0
  55. package/dist/knowledge/index.d.ts +577 -215
  56. package/dist/knowledge/index.js +1180 -689
  57. package/dist/knowledge-search-index-P7PR626V.js +1514 -0
  58. package/dist/layout/index.js +1 -1
  59. package/dist/profile/index.d.ts +3 -0
  60. package/dist/provider/index.d.ts +447 -73
  61. package/dist/provider/index.js +7 -6
  62. package/dist/provider/published.d.ts +447 -73
  63. package/dist/provider/published.js +5 -4
  64. package/dist/supabase/index.d.ts +6 -0
  65. package/dist/types/index.d.ts +208 -4
  66. package/dist/utils/index.d.ts +113 -3
  67. package/package.json +39 -39
  68. package/src/README.md +29 -29
  69. package/src/api/README.md +18 -18
  70. package/src/app/README.md +24 -24
  71. package/src/auth/README.md +18 -18
  72. package/src/components/README.md +24 -24
  73. package/src/execution/README.md +16 -16
  74. package/src/features/README.md +28 -28
  75. package/src/graph/README.md +16 -16
  76. package/src/hooks/README.md +23 -23
  77. package/src/initialization/README.md +19 -19
  78. package/src/knowledge/README.md +31 -31
  79. package/src/organization/README.md +18 -18
  80. package/src/profile/README.md +19 -19
  81. package/src/provider/README.md +32 -32
  82. package/src/router/README.md +18 -18
  83. package/src/sse/README.md +13 -13
  84. package/src/test-utils/README.md +7 -7
  85. package/src/theme/README.md +23 -23
  86. package/src/theme/presets/README.md +19 -19
  87. package/src/types/README.md +16 -16
  88. package/src/utils/README.md +18 -18
  89. package/src/zustand/README.md +18 -18
  90. package/dist/chunk-UROTM5OR.js +0 -172
  91. package/dist/knowledge-search-index-5KYPO746.js +0 -1479
@@ -1,9 +1,8 @@
1
- import { getKnowledgeIconToken, projectNavigationSurfaces, projectNavigationGroups, KNOWLEDGE_DOMAINS_WITH_PANELS } from '../chunk-WQPX44YM.js';
2
- export { KNOWLEDGE_ICON_TOKEN_BY_KIND, KnowledgeSearchBar, KnowledgeTree, OM_TREE_GROUPS, getKnowledgeIconToken, getSharedOrganizationGraph } from '../chunk-WQPX44YM.js';
3
- import '../chunk-IZWTVFJ2.js';
1
+ import { getKnowledgeIconToken, getKnowledgeGraphNodeCommand, getKnowledgeNodeReadCommand, getKnowledgeOntologyProjection, getPrimaryOntologyItemsForDomain, projectNavigationSurfaces, projectNavigationGroups, getOntologyDomainLabel, getKnowledgeDomainFolderCommand, getKnowledgeTreeFolderCommand, KNOWLEDGE_DOMAINS_WITH_PANELS } from '../chunk-AV2TKVVV.js';
2
+ export { KNOWLEDGE_ICON_TOKEN_BY_KIND, KnowledgeSearchBar, KnowledgeTree, OM_TREE_GROUPS, getKnowledgeIconToken, getSharedOrganizationGraph } from '../chunk-AV2TKVVV.js';
3
+ import '../chunk-V6SZ4ECN.js';
4
4
  import '../chunk-N55DVMAG.js';
5
- import { SemanticIcon } from '../chunk-UROTM5OR.js';
6
- export { SemanticIcon, extendSemanticIconRegistry, getSemanticIconComponent, resolveSemanticIconComponent } from '../chunk-UROTM5OR.js';
5
+ import '../chunk-CLDCYJQT.js';
7
6
  import '../chunk-X4WBGKJQ.js';
8
7
  import '../chunk-IIMU5YAJ.js';
9
8
  import '../chunk-RYTEQBAO.js';
@@ -11,14 +10,16 @@ import { PageContainer } from '../chunk-BZZCNLT6.js';
11
10
  import '../chunk-WLOQ4IBG.js';
12
11
  import '../chunk-TKAYX2SP.js';
13
12
  import '../chunk-NYBEU5TE.js';
14
- import { getSystem, SystemEntrySchema, IdentityDomainSchema, WorkflowResourceEntrySchema, AgentResourceEntrySchema, IntegrationResourceEntrySchema, ScriptResourceEntrySchema, getContent, lookupContentType, SurfaceDefinitionSchema, RoleSchema, PolicySchema, EntitySchema, ActionSchema, listAllSystems, SalesStageSchema } from '../chunk-T35FWDAB.js';
13
+ import { SemanticIcon } from '../chunk-DWXDNT7P.js';
14
+ export { SemanticIcon, extendSemanticIconRegistry, getSemanticIconComponent, resolveSemanticIconComponent } from '../chunk-DWXDNT7P.js';
15
+ import { getSystem, SystemEntrySchema, IdentityDomainSchema, WorkflowResourceEntrySchema, AgentResourceEntrySchema, IntegrationResourceEntrySchema, ScriptResourceEntrySchema, getContent, lookupContentType, SurfaceDefinitionSchema, RoleSchema, PolicySchema, EntitySchema, ActionSchema, listAllSystems, SalesStageSchema, OntologyIdSchema, ontologyGraphNodeId } from '../chunk-DYIDXUJS.js';
15
16
  import '../chunk-2IFYDILW.js';
16
17
  import '../chunk-Q7DJKLEN.js';
17
18
  import '../chunk-E565XMTQ.js';
18
19
  import '../chunk-DT3QYZVU.js';
19
20
  import '../chunk-I2KLQ2HA.js';
20
21
  import { createContext, Children, isValidElement, cloneElement, useMemo, useContext, useRef, useState, useEffect } from 'react';
21
- import { Card, Text, SimpleGrid, Group, Stack, Alert, Tabs, Box, Table, CopyButton, Tooltip, ActionIcon, Title, Badge, Divider, Paper, Button, TableOfContents, ThemeIcon, UnstyledButton, List, Progress, Code } from '@mantine/core';
22
+ import { Card, Text, SimpleGrid, Group, Stack, Alert, Tabs, Box, Table, CopyButton, Tooltip, ActionIcon, Title, Badge, Divider, Button, Paper, TableOfContents, ThemeIcon, UnstyledButton, List, Code, Progress } from '@mantine/core';
22
23
  import { IconBook, IconCheck, IconCopy, IconExternalLink, IconCircleX, IconAlertTriangle, IconInfoCircle } from '@tabler/icons-react';
23
24
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
24
25
  import { Highlight, themes } from 'prism-react-renderer';
@@ -38,7 +39,7 @@ var KNOWLEDGE_BODIES = {
38
39
  "knowledge.lead-gen-strategy": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n h2: "h2",\n li: "li",\n p: "p",\n ul: "ul",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Strategy"\n }), "\\n", _jsx(_components.p, {\n children: "The lead-gen pipeline targets SMBs with 10-200 employees in recession-resistant verticals (manufacturing, logistics, professional services). Firmographic filters: revenue >$1M, HQ in US/CA/AU, tech stack includes at least one SaaS CRM."\n }), "\\n", _jsx(_components.h2, {\n children: "Scoring Thresholds"\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsx(_components.li, {\n children: "High priority: ICP score >= 80"\n }), "\\n", _jsx(_components.li, {\n children: "Medium priority: ICP score 60-79"\n }), "\\n", _jsx(_components.li, {\n children: "Low priority: < 60 (excluded from active outreach)"\n }), "\\n"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
39
40
  "knowledge.org-model-reference": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: "code",\n h2: "h2",\n li: "li",\n p: "p",\n strong: "strong",\n ul: "ul",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Schema"\n }), "\\n", _jsxs(_components.p, {\n children: ["The ", _jsx(_components.code, {\n children: "OrganizationModel"\n }), " schema is defined in ", _jsx(_components.code, {\n children: "packages/core/src/organization-model/schema.ts"\n }), ". It is versioned at ", _jsx(_components.code, {\n children: "version: 1"\n }), " and composed from domain sub-schemas. The OM is the authoritative contract for the organization: downstream surfaces including Command View, the Knowledge Browser, and the navigation shell are all derived projections from this schema."]\n }), "\\n", _jsx(_components.h2, {\n children: "Top-Level Domains"\n }), "\\n", _jsxs(_components.p, {\n children: ["These are the current top-level fields on ", _jsx(_components.code, {\n children: "OrganizationModel"\n }), ". There is no live ", _jsx(_components.code, {\n children: "features"\n }), " or ", _jsx(_components.code, {\n children: "capabilities"\n }), " top-level field -- those terms are legacy wording and should not appear as authored OM primitives."]\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "version"\n }), " -- schema version, currently locked at ", _jsx(_components.code, {\n children: "1"\n })]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "domainMetadata"\n }), " -- per-domain version and ", _jsx(_components.code, {\n children: "lastModified"\n }), " tracking"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "branding"\n }), " -- organization name, logo, color identity"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "navigation"\n }), " -- surfaces, groups, and defaultSurfaceId for shell routing"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "sales"\n }), " -- sales domain including pipeline entity references"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "prospecting"\n }), " -- lead generation stages, entity references, and pipeline config"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "projects"\n }), " -- project, milestone, and task entity references"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "identity"\n }), " -- organization identity fields"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "customers"\n }), " -- customer segment definitions"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "offerings"\n }), " -- product and service definitions linked to customer segments"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "roles"\n }), " -- role definitions with reportsToId hierarchy and agentId holder support"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "goals"\n }), " -- OKR-style objectives with period ranges and system links"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "systems"\n }), " -- the backbone: hierarchical bounded contexts with dotted IDs and parentSystemId"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "resources"\n }), " -- governance descriptors for workflows, agents, integrations, triggers, and scripts; resource identity lives here, not in a separate deployment manifest"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "actions"\n }), " -- the invokable semantic layer; actions map to resources, affect entities, bind to knowledge, and expose invocation types (slash command, MCP tool, API endpoint, script execution)"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "entities"\n }), " -- business objects owned by systems, with table metadata, state catalogs, and typed entity links"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "policies"\n }), " -- governance rules applied to systems, actions, resources, and roles"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "statuses"\n }), " -- runtime semantic status registry"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "knowledge"\n }), " -- first-class OM content backed by inline nodes and MDX source nodes"]\n }), "\\n"]\n }), "\\n", _jsx(_components.h2, {\n children: "Graph Contract"\n }), "\\n", _jsxs(_components.p, {\n children: ["The OM is projected into a typed graph by ", _jsx(_components.code, {\n children: "buildOrganizationGraph()"\n }), " in ", _jsx(_components.code, {\n children: "packages/core/src/organization-model/graph/build.ts"\n }), "."]\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Node kinds:"\n }), " ", _jsx(_components.code, {\n children: "organization"\n }), ", ", _jsx(_components.code, {\n children: "system"\n }), ", ", _jsx(_components.code, {\n children: "role"\n }), ", ", _jsx(_components.code, {\n children: "action"\n }), ", ", _jsx(_components.code, {\n children: "entity"\n }), ", ", _jsx(_components.code, {\n children: "event"\n }), ", ", _jsx(_components.code, {\n children: "policy"\n }), ", ", _jsx(_components.code, {\n children: "stage"\n }), ", ", _jsx(_components.code, {\n children: "resource"\n }), ", ", _jsx(_components.code, {\n children: "knowledge"\n })]\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Edge kinds:"\n }), " ", _jsx(_components.code, {\n children: "contains"\n }), ", ", _jsx(_components.code, {\n children: "references"\n }), ", ", _jsx(_components.code, {\n children: "maps_to"\n }), ", ", _jsx(_components.code, {\n children: "uses"\n }), ", ", _jsx(_components.code, {\n children: "governs"\n }), ", ", _jsx(_components.code, {\n children: "links"\n }), ", ", _jsx(_components.code, {\n children: "affects"\n }), ", ", _jsx(_components.code, {\n children: "emits"\n }), ", ", _jsx(_components.code, {\n children: "originates_from"\n }), ", ", _jsx(_components.code, {\n children: "triggers"\n }), ", ", _jsx(_components.code, {\n children: "applies_to"\n }), ", ", _jsx(_components.code, {\n children: "effects"\n })]\n }), "\\n", _jsxs(_components.p, {\n children: ["The ", _jsx(_components.code, {\n children: "resourceType"\n }), " overlay on resource nodes is a separate enum: ", _jsx(_components.code, {\n children: "workflow"\n }), ", ", _jsx(_components.code, {\n children: "agent"\n }), ", ", _jsx(_components.code, {\n children: "trigger"\n }), ", ", _jsx(_components.code, {\n children: "integration"\n }), ", ", _jsx(_components.code, {\n children: "external"\n }), ", ", _jsx(_components.code, {\n children: "human_checkpoint"\n }), ", ", _jsx(_components.code, {\n children: "script"\n }), "."]\n }), "\\n", _jsx(_components.h2, {\n children: "Authored Primitives vs Projected Graph Nodes"\n }), "\\n", _jsxs(_components.p, {\n children: ["Authored primitives are what you write directly in the OM: ", _jsx(_components.code, {\n children: "systems"\n }), ", ", _jsx(_components.code, {\n children: "roles"\n }), ", ", _jsx(_components.code, {\n children: "resources"\n }), ", ", _jsx(_components.code, {\n children: "actions"\n }), ", ", _jsx(_components.code, {\n children: "entities"\n }), ", ", _jsx(_components.code, {\n children: "policies"\n }), ", ", _jsx(_components.code, {\n children: "knowledge"\n }), ". The graph builder reads these and emits a richer set of typed nodes and edges. Events, for example, are not authored directly -- they are projected from resource ", _jsx(_components.code, {\n children: "emits"\n }), " declarations. Stages are projected from prospecting stage catalogs."]\n }), "\\n", _jsx(_components.h2, {\n children: "Command View"\n }), "\\n", _jsxs(_components.p, {\n children: ["Command View is a derived operational projection of the OM graph. It visualizes systems, resources, actions, entities, and relationships using the same node and edge taxonomy as ", _jsx(_components.code, {\n children: "buildOrganizationGraph()"\n }), ". It does not have a separate deployment manifest model -- the OM ", _jsx(_components.code, {\n children: "resources"\n }), " domain is the single source of resource identity."]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
40
41
  "knowledge.seo-lead-gen-playbook": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n h2: "h2",\n li: "li",\n ol: "ol",\n p: "p",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Overview"\n }), "\\n", _jsx(_components.p, {\n children: "This playbook governs the handoff from SEO-sourced traffic to the lead-gen pipeline."\n }), "\\n", _jsx(_components.h2, {\n children: "Steps"\n }), "\\n", _jsxs(_components.ol, {\n children: ["\\n", _jsx(_components.li, {\n children: "SEO feature captures visitor signal (form fill or intent data)."\n }), "\\n", _jsx(_components.li, {\n children: "Score the lead using the standard ICP scoring thresholds."\n }), "\\n", _jsx(_components.li, {\n children: "If score >= 60, inject into the lead-gen prospect list."\n }), "\\n", _jsx(_components.li, {\n children: "Assign to the appropriate outreach campaign in the CRM."\n }), "\\n"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
41
- "knowledge.outreach-campaign-playbook": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: "code",\n h2: "h2",\n li: "li",\n ol: "ol",\n p: "p",\n strong: "strong",\n table: "table",\n tbody: "tbody",\n td: "td",\n th: "th",\n thead: "thead",\n tr: "tr",\n ul: "ul",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Benchmarks"\n }), "\\n", _jsxs(_components.p, {\n children: ["B2B cold email benchmarks (2025-2026). Use these as evaluation thresholds when running ", _jsx(_components.code, {\n children: "ist-analytics-workflow"\n }), "."]\n }), "\\n", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: "Metric"\n }), _jsx(_components.th, {\n children: "Bad"\n }), _jsx(_components.th, {\n children: "Needs Work"\n }), _jsx(_components.th, {\n children: "Good"\n }), _jsx(_components.th, {\n children: "Excellent"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Open Rate"\n })\n }), _jsx(_components.td, {\n children: "<20%"\n }), _jsx(_components.td, {\n children: "20-30%"\n }), _jsx(_components.td, {\n children: "30-45%"\n }), _jsx(_components.td, {\n children: "45%+"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Reply Rate"\n })\n }), _jsx(_components.td, {\n children: "<1%"\n }), _jsx(_components.td, {\n children: "1-3%"\n }), _jsx(_components.td, {\n children: "3-8%"\n }), _jsx(_components.td, {\n children: "8%+"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Positive Reply Rate"\n })\n }), _jsx(_components.td, {\n children: "<0.5%"\n }), _jsx(_components.td, {\n children: "0.5-1%"\n }), _jsx(_components.td, {\n children: "1-3%"\n }), _jsx(_components.td, {\n children: "3%+"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Bounce Rate"\n })\n }), _jsx(_components.td, {\n children: ">5%"\n }), _jsx(_components.td, {\n children: "2-5%"\n }), _jsx(_components.td, {\n children: "1-2%"\n }), _jsx(_components.td, {\n children: "<1%"\n })]\n })]\n })]\n }), "\\n", _jsx(_components.h2, {\n children: "Campaign Sizing Rules"\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "100-200 contacts per campaign segment"\n }), " -- small enough for meaningful personalization, large enough for statistical learning"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "1-2 contacts per company"\n }), " -- reply rates drop from ~8% to ~4% when blasting 10+ people at the same company"]\n }), "\\n", _jsx(_components.li, {\n children: _jsx(_components.strong, {\n children: "30-50 emails/day max per sending account"\n })\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "50-100 emails/day total during testing"\n }), " (weeks 1-4), scaling to 500+/day once a winning formula is found"]\n }), "\\n"]\n }), "\\n", _jsx(_components.h2, {\n children: "Testing Priority"\n }), "\\n", _jsxs(_components.ol, {\n children: ["\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Subject lines"\n }), " -- highest leverage, easiest to isolate"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Opening line / hook"\n }), " -- determines if they keep reading"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "CTA type"\n }), " -- meeting request vs. soft question vs. value offer"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Body copy angle"\n }), " -- pain-point framing vs. benefit lead vs. social proof"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Send timing"\n }), " -- Tuesday-Thursday outperform Monday/Friday for B2B"]\n }), "\\n"]\n }), "\\n", _jsx(_components.h2, {\n children: "Sequence Structure"\n }), "\\n", _jsx(_components.p, {\n children: "3 emails total (1 opener + 2 follow-ups). 87-95% of replies come within the first 3 emails."\n }), "\\n", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: "Step"\n }), _jsx(_components.th, {\n children: "Timing"\n }), _jsx(_components.th, {\n children: "Strategy"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Email 1"\n })\n }), _jsx(_components.td, {\n children: "Day 0"\n }), _jsx(_components.td, {\n children: "Cold read opener + EMRG social proof + interest-based CTA"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Email 2"\n })\n }), _jsx(_components.td, {\n children: "Day 3"\n }), _jsx(_components.td, {\n children: "Short bump in same thread"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Email 3"\n })\n }), _jsx(_components.td, {\n children: "Day 5"\n }), _jsx(_components.td, {\n children: "Breakup email. Soft close, loss aversion"\n })]\n })]\n })]\n }), "\\n", _jsx(_components.h2, {\n children: "Agent Optimization Loop"\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Phase 1 (Launch):"\n }), " Verify batch readiness \u2192 Personalize \u2192 Create campaign \u2192 Create tracking list \u2192 Upload \u2192 Activate"]\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Phase 2 (Analyze Day 7-14):"\n }), " Run ", _jsx(_components.code, {\n children: "ist-campaign-review-workflow"\n }), " \u2192 Run ", _jsx(_components.code, {\n children: "ist-analytics-workflow"\n }), " \u2192 Interpret results"]\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Phase 3 (Optimize):"\n }), " Fix based on Phase 2 analysis (subject lines, personalization, bounce cleanup)"]\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Phase 4 (Scale):"\n }), " Document winning combination \u2192 Replicate to new segments \u2192 Maintain hygiene"]\n }), "\\n", _jsx(_components.h2, {\n children: "Offer Framing"\n }), "\\n", _jsx(_components.p, {\n children: "\\"We find one bottleneck, build an AI solution to fix it, and you only pay if it actually saves you time or makes you money.\\""\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsx(_components.li, {\n children: "Never use \\"free\\" in subject lines -- triggers spam filters"\n }), "\\n", _jsx(_components.li, {\n children: "Frame as conditional, not charitable"\n }), "\\n", _jsx(_components.li, {\n children: "Low-commitment CTAs get 2x more replies than direct meeting requests"\n }), "\\n"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
42
+ "knowledge.outreach-campaign-playbook": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: "code",\n h2: "h2",\n li: "li",\n ol: "ol",\n p: "p",\n strong: "strong",\n table: "table",\n tbody: "tbody",\n td: "td",\n th: "th",\n thead: "thead",\n tr: "tr",\n ul: "ul",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Benchmarks"\n }), "\\n", _jsxs(_components.p, {\n children: ["B2B cold email benchmarks (2025-2026). Use these as evaluation thresholds when running ", _jsx(_components.code, {\n children: "ist-analytics-workflow"\n }), "."]\n }), "\\n", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: "Metric"\n }), _jsx(_components.th, {\n children: "Bad"\n }), _jsx(_components.th, {\n children: "Needs Work"\n }), _jsx(_components.th, {\n children: "Good"\n }), _jsx(_components.th, {\n children: "Excellent"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Open Rate"\n })\n }), _jsx(_components.td, {\n children: "<20%"\n }), _jsx(_components.td, {\n children: "20-30%"\n }), _jsx(_components.td, {\n children: "30-45%"\n }), _jsx(_components.td, {\n children: "45%+"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Reply Rate"\n })\n }), _jsx(_components.td, {\n children: "<1%"\n }), _jsx(_components.td, {\n children: "1-3%"\n }), _jsx(_components.td, {\n children: "3-8%"\n }), _jsx(_components.td, {\n children: "8%+"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Positive Reply Rate"\n })\n }), _jsx(_components.td, {\n children: "<0.5%"\n }), _jsx(_components.td, {\n children: "0.5-1%"\n }), _jsx(_components.td, {\n children: "1-3%"\n }), _jsx(_components.td, {\n children: "3%+"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Bounce Rate"\n })\n }), _jsx(_components.td, {\n children: ">5%"\n }), _jsx(_components.td, {\n children: "2-5%"\n }), _jsx(_components.td, {\n children: "1-2%"\n }), _jsx(_components.td, {\n children: "<1%"\n })]\n })]\n })]\n }), "\\n", _jsx(_components.h2, {\n children: "Campaign Sizing Rules"\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "100-200 contacts per campaign segment"\n }), " -- small enough for meaningful personalization, large enough for statistical learning"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "1-2 contacts per company"\n }), " -- reply rates drop from ~8% to ~4% when blasting 10+ people at the same company"]\n }), "\\n", _jsx(_components.li, {\n children: _jsx(_components.strong, {\n children: "30-50 emails/day max per sending account"\n })\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "50-100 emails/day total during testing"\n }), " (weeks 1-4), scaling to 500+/day once a winning formula is found"]\n }), "\\n"]\n }), "\\n", _jsx(_components.h2, {\n children: "Testing Priority"\n }), "\\n", _jsxs(_components.ol, {\n children: ["\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Subject lines"\n }), " -- highest leverage, easiest to isolate"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Opening line / hook"\n }), " -- determines if they keep reading"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "CTA type"\n }), " -- meeting request vs. soft question vs. value offer"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Body copy angle"\n }), " -- pain-point framing vs. benefit lead vs. social proof"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Send timing"\n }), " -- Tuesday-Thursday outperform Monday/Friday for B2B"]\n }), "\\n"]\n }), "\\n", _jsx(_components.h2, {\n children: "Sequence Structure"\n }), "\\n", _jsx(_components.p, {\n children: "3 emails total (1 opener + 2 follow-ups). 87-95% of replies come within the first 3 emails."\n }), "\\n", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: "Step"\n }), _jsx(_components.th, {\n children: "Timing"\n }), _jsx(_components.th, {\n children: "Strategy"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Email 1"\n })\n }), _jsx(_components.td, {\n children: "Day 0"\n }), _jsx(_components.td, {\n children: "Cold read opener + EMRG social proof + interest-based CTA"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Email 2"\n })\n }), _jsx(_components.td, {\n children: "Day 3"\n }), _jsx(_components.td, {\n children: "Short bump in same thread"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Email 3"\n })\n }), _jsx(_components.td, {\n children: "Day 5"\n }), _jsx(_components.td, {\n children: "Breakup email. Soft close, loss aversion"\n })]\n })]\n })]\n }), "\\n", _jsx(_components.h2, {\n children: "Agent Optimization Loop"\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Phase 1 (Launch):"\n }), " Verify batch readiness \xE2\u2020\u2019 Personalize \xE2\u2020\u2019 Create campaign \xE2\u2020\u2019 Create tracking list \xE2\u2020\u2019 Upload \xE2\u2020\u2019 Activate"]\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Phase 2 (Analyze Day 7-14):"\n }), " Run ", _jsx(_components.code, {\n children: "ist-campaign-review-workflow"\n }), " \xE2\u2020\u2019 Run ", _jsx(_components.code, {\n children: "ist-analytics-workflow"\n }), " \xE2\u2020\u2019 Interpret results"]\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Phase 3 (Optimize):"\n }), " Fix based on Phase 2 analysis (subject lines, personalization, bounce cleanup)"]\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Phase 4 (Scale):"\n }), " Document winning combination \xE2\u2020\u2019 Replicate to new segments \xE2\u2020\u2019 Maintain hygiene"]\n }), "\\n", _jsx(_components.h2, {\n children: "Offer Framing"\n }), "\\n", _jsx(_components.p, {\n children: "\\"We find one bottleneck, build an AI solution to fix it, and you only pay if it actually saves you time or makes you money.\\""\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsx(_components.li, {\n children: "Never use \\"free\\" in subject lines -- triggers spam filters"\n }), "\\n", _jsx(_components.li, {\n children: "Frame as conditional, not charitable"\n }), "\\n", _jsx(_components.li, {\n children: "Low-commitment CTAs get 2x more replies than direct meeting requests"\n }), "\\n"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
42
43
  "knowledge.outreach-copy-strategy": makeKnowledgeComponent(`"use strict";
43
44
  const {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];
44
45
  function _createMdxContent(props) {
@@ -95,19 +96,19 @@ function _createMdxContent(props) {
95
96
  }), "\\n", _jsx(_components.h2, {
96
97
  children: "3-Email Sequence Framework"
97
98
  }), "\\n", _jsx(_components.h3, {
98
- children: "Email 1 \u2014 Hook + Offer (Day 0, ~80 words)"
99
+ children: "Email 1 \xE2\u20AC\u201D Hook + Offer (Day 0, ~80 words)"
99
100
  }), "\\n", _jsx(_components.pre, {
100
101
  children: _jsx(_components.code, {
101
- children: "Hi {{firstName | there}},\\n\\n{{opening_line}}\\n\\n{{category_pain}}\\n\\nI built 4 automations for a company that worked with Google and Sony Music. The first one alone saved them over $1,500 a month. I do the same thing for businesses like yours \u2014 you only pay if it actually works.\\n\\nWorth a quick look?\\n\\n{{sendingAccountFirstName}}\\n"
102
+ children: "Hi {{firstName | there}},\\n\\n{{opening_line}}\\n\\n{{category_pain}}\\n\\nI built 4 automations for a company that worked with Google and Sony Music. The first one alone saved them over $1,500 a month. I do the same thing for businesses like yours \xE2\u20AC\u201D you only pay if it actually works.\\n\\nWorth a quick look?\\n\\n{{sendingAccountFirstName}}\\n"
102
103
  })
103
104
  }), "\\n", _jsx(_components.h3, {
104
- children: "Email 2 \u2014 Bump (Day 3, ~40 words)"
105
+ children: "Email 2 \xE2\u20AC\u201D Bump (Day 3, ~40 words)"
105
106
  }), "\\n", _jsx(_components.pre, {
106
107
  children: _jsx(_components.code, {
107
- children: "Hi {{firstName | there}},\\n\\nWanted to circle back on this \u2014 I've been helping a few companies like {{companyName}} free up their team by automating the repetitive stuff that eats up the day.\\n\\nHappy to take a 10-minute look \u2014 no pitch, just observations.\\n\\n{{sendingAccountFirstName}}\\n"
108
+ children: "Hi {{firstName | there}},\\n\\nWanted to circle back on this \xE2\u20AC\u201D I've been helping a few companies like {{companyName}} free up their team by automating the repetitive stuff that eats up the day.\\n\\nHappy to take a 10-minute look \xE2\u20AC\u201D no pitch, just observations.\\n\\n{{sendingAccountFirstName}}\\n"
108
109
  })
109
110
  }), "\\n", _jsx(_components.h3, {
110
- children: "Email 3 \u2014 Breakup (Day 5, ~25 words)"
111
+ children: "Email 3 \xE2\u20AC\u201D Breakup (Day 5, ~25 words)"
111
112
  }), "\\n", _jsx(_components.pre, {
112
113
  children: _jsx(_components.code, {
113
114
  children: "Totally understand if this isn't the right time. If you ever want a second pair of eyes on what could be automated at {{companyName}}, the offer stands.\\n\\n{{sendingAccountFirstName}}\\n"
@@ -344,9 +345,9 @@ function _createMdxContent(props) {
344
345
  })
345
346
  }), "\\n", _jsxs(_components.ul, {
346
347
  children: ["\\n", _jsx(_components.li, {
347
- children: "\\"4,400 reviews since 2018 \u2014 that kind of growth in Orange County is honestly wild.\\""
348
+ children: "\\"4,400 reviews since 2018 \xE2\u20AC\u201D that kind of growth in Orange County is honestly wild.\\""
348
349
  }), "\\n", _jsx(_components.li, {
349
- children: "\\"60 years family-owned with a proprietary Clean Green method \u2014 that's rare in pest control.\\""
350
+ children: "\\"60 years family-owned with a proprietary Clean Green method \xE2\u20AC\u201D that's rare in pest control.\\""
350
351
  }), "\\n"]
351
352
  }), "\\n", _jsx(_components.p, {
352
353
  children: _jsx(_components.strong, {
@@ -354,7 +355,7 @@ function _createMdxContent(props) {
354
355
  })
355
356
  }), "\\n", _jsxs(_components.ul, {
356
357
  children: ["\\n", _jsx(_components.li, {
357
- children: "\\"You do termite inspections \u2014 how many follow-up calls get missed?\\" (Implication \u2014 signals selling)"
358
+ children: "\\"You do termite inspections \xE2\u20AC\u201D how many follow-up calls get missed?\\" (Implication \xE2\u20AC\u201D signals selling)"
358
359
  }), "\\n", _jsx(_components.li, {
359
360
  children: "\\"Great company you've built!\\" (Generic flattery)"
360
361
  }), "\\n"]
@@ -466,7 +467,7 @@ function _createMdxContent(props) {
466
467
  children: [_jsx(_components.td, {
467
468
  children: "\\"78% of homeowners hire the first contractor who responds.\\""
468
469
  }), _jsx(_components.td, {
469
- children: "\\"When you're on a job, you can't answer the phone \u2014 but the homeowner already called two other plumbers.\\""
470
+ children: "\\"When you're on a job, you can't answer the phone \xE2\u20AC\u201D but the homeowner already called two other plumbers.\\""
470
471
  })]
471
472
  })
472
473
  })]
@@ -776,7 +777,7 @@ return {
776
777
  default: MDXContent
777
778
  };
778
779
  `),
779
- "knowledge.lead-gen-pipeline-playbook": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n h2: "h2",\n h3: "h3",\n li: "li",\n ol: "ol",\n p: "p",\n table: "table",\n tbody: "tbody",\n td: "td",\n th: "th",\n thead: "thead",\n tr: "tr",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Performance Benchmarks"\n }), "\\n", _jsx(_components.p, {\n children: "Per-stage success rates across the 3 completed Orange County batches (vet-1, auto-1, home-1)."\n }), "\\n", _jsx(_components.h3, {\n children: "Stage 1: Scrape (Raw to Filtered)"\n }), "\\n", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: "Metric"\n }), _jsx(_components.th, {\n children: "vet-1"\n }), _jsx(_components.th, {\n children: "auto-1"\n }), _jsx(_components.th, {\n children: "home-1"\n }), _jsx(_components.th, {\n children: "Benchmark"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Raw results"\n }), _jsx(_components.td, {\n children: "480"\n }), _jsx(_components.td, {\n children: "800"\n }), _jsx(_components.td, {\n children: "1000"\n }), _jsx(_components.td, {\n children: "--"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Companies created"\n }), _jsx(_components.td, {\n children: "393"\n }), _jsx(_components.td, {\n children: "566"\n }), _jsx(_components.td, {\n children: "701"\n }), _jsx(_components.td, {\n children: "--"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Active in DB"\n }), _jsx(_components.td, {\n children: "322"\n }), _jsx(_components.td, {\n children: "428"\n }), _jsx(_components.td, {\n children: "640"\n }), _jsx(_components.td, {\n children: "--"\n })]\n })]\n })]\n }), "\\n", _jsx(_components.h3, {\n children: "Stage 3: Company Qualification Rate"\n }), "\\n", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: "Metric"\n }), _jsx(_components.th, {\n children: "vet-1"\n }), _jsx(_components.th, {\n children: "auto-1"\n }), _jsx(_components.th, {\n children: "home-1"\n }), _jsx(_components.th, {\n children: "Benchmark"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Qualified"\n }), _jsx(_components.td, {\n children: "213 (76%)"\n }), _jsx(_components.td, {\n children: "284 (79%)"\n }), _jsx(_components.td, {\n children: "326 (60%)"\n }), _jsx(_components.td, {\n children: "60-80%"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Disqualified"\n }), _jsx(_components.td, {\n children: "66 (24%)"\n }), _jsx(_components.td, {\n children: "74 (21%)"\n }), _jsx(_components.td, {\n children: "222 (40%)"\n }), _jsx(_components.td, {\n children: "20-40%"\n })]\n })]\n })]\n }), "\\n", _jsx(_components.h3, {\n children: "Stage 5: Email Verification"\n }), "\\n", _jsx(_components.p, {\n children: "VALID rate: ~33-41% of discovered emails across batches. Target bounce rate <2%."\n }), "\\n", _jsx(_components.h2, {\n children: "Model Selection"\n }), "\\n", _jsx(_components.p, {\n children: "Use Gemini Flash models for high-volume qualification steps (cost/quality balance). Use GPT for personalization where quality matters most."\n }), "\\n", _jsx(_components.h2, {\n children: "Provider Economics"\n }), "\\n", _jsx(_components.p, {\n children: "Tomba domain search provides the best cost-per-verified-contact for local SMBs. Dual-verify (Tomba + Mails.so) catches most false positives."\n }), "\\n", _jsx(_components.h2, {\n children: "Pipeline Stages"\n }), "\\n", _jsxs(_components.ol, {\n children: ["\\n", _jsx(_components.li, {\n children: "Scrape (Google Maps via Apify)"\n }), "\\n", _jsx(_components.li, {\n children: "LLM Extract (website crawl \u2192 structured data)"\n }), "\\n", _jsx(_components.li, {\n children: "Company Qualification (LLM ICP scoring)"\n }), "\\n", _jsx(_components.li, {\n children: "Email Discovery (Tomba domain search)"\n }), "\\n", _jsx(_components.li, {\n children: "Email Verification (Mails.so)"\n }), "\\n", _jsx(_components.li, {\n children: "Opening Line Generation (ist-personalization-workflow)"\n }), "\\n", _jsx(_components.li, {\n children: "Campaign Upload (ist-upload-workflow)"\n }), "\\n"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
780
+ "knowledge.lead-gen-pipeline-playbook": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n h2: "h2",\n h3: "h3",\n li: "li",\n ol: "ol",\n p: "p",\n table: "table",\n tbody: "tbody",\n td: "td",\n th: "th",\n thead: "thead",\n tr: "tr",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Performance Benchmarks"\n }), "\\n", _jsx(_components.p, {\n children: "Per-stage success rates across the 3 completed Orange County batches (vet-1, auto-1, home-1)."\n }), "\\n", _jsx(_components.h3, {\n children: "Stage 1: Scrape (Raw to Filtered)"\n }), "\\n", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: "Metric"\n }), _jsx(_components.th, {\n children: "vet-1"\n }), _jsx(_components.th, {\n children: "auto-1"\n }), _jsx(_components.th, {\n children: "home-1"\n }), _jsx(_components.th, {\n children: "Benchmark"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Raw results"\n }), _jsx(_components.td, {\n children: "480"\n }), _jsx(_components.td, {\n children: "800"\n }), _jsx(_components.td, {\n children: "1000"\n }), _jsx(_components.td, {\n children: "--"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Companies created"\n }), _jsx(_components.td, {\n children: "393"\n }), _jsx(_components.td, {\n children: "566"\n }), _jsx(_components.td, {\n children: "701"\n }), _jsx(_components.td, {\n children: "--"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Active in DB"\n }), _jsx(_components.td, {\n children: "322"\n }), _jsx(_components.td, {\n children: "428"\n }), _jsx(_components.td, {\n children: "640"\n }), _jsx(_components.td, {\n children: "--"\n })]\n })]\n })]\n }), "\\n", _jsx(_components.h3, {\n children: "Stage 3: Company Qualification Rate"\n }), "\\n", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: "Metric"\n }), _jsx(_components.th, {\n children: "vet-1"\n }), _jsx(_components.th, {\n children: "auto-1"\n }), _jsx(_components.th, {\n children: "home-1"\n }), _jsx(_components.th, {\n children: "Benchmark"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Qualified"\n }), _jsx(_components.td, {\n children: "213 (76%)"\n }), _jsx(_components.td, {\n children: "284 (79%)"\n }), _jsx(_components.td, {\n children: "326 (60%)"\n }), _jsx(_components.td, {\n children: "60-80%"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Disqualified"\n }), _jsx(_components.td, {\n children: "66 (24%)"\n }), _jsx(_components.td, {\n children: "74 (21%)"\n }), _jsx(_components.td, {\n children: "222 (40%)"\n }), _jsx(_components.td, {\n children: "20-40%"\n })]\n })]\n })]\n }), "\\n", _jsx(_components.h3, {\n children: "Stage 5: Email Verification"\n }), "\\n", _jsx(_components.p, {\n children: "VALID rate: ~33-41% of discovered emails across batches. Target bounce rate <2%."\n }), "\\n", _jsx(_components.h2, {\n children: "Model Selection"\n }), "\\n", _jsx(_components.p, {\n children: "Use Gemini Flash models for high-volume qualification steps (cost/quality balance). Use GPT for personalization where quality matters most."\n }), "\\n", _jsx(_components.h2, {\n children: "Provider Economics"\n }), "\\n", _jsx(_components.p, {\n children: "Tomba domain search provides the best cost-per-verified-contact for local SMBs. Dual-verify (Tomba + Mails.so) catches most false positives."\n }), "\\n", _jsx(_components.h2, {\n children: "Pipeline Stages"\n }), "\\n", _jsxs(_components.ol, {\n children: ["\\n", _jsx(_components.li, {\n children: "Scrape (Google Maps via Apify)"\n }), "\\n", _jsx(_components.li, {\n children: "LLM Extract (website crawl \xE2\u2020\u2019 structured data)"\n }), "\\n", _jsx(_components.li, {\n children: "Company Qualification (LLM ICP scoring)"\n }), "\\n", _jsx(_components.li, {\n children: "Email Discovery (Tomba domain search)"\n }), "\\n", _jsx(_components.li, {\n children: "Email Verification (Mails.so)"\n }), "\\n", _jsx(_components.li, {\n children: "Opening Line Generation (ist-personalization-workflow)"\n }), "\\n", _jsx(_components.li, {\n children: "Campaign Upload (ist-upload-workflow)"\n }), "\\n"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
780
781
  "knowledge.upwork-proposal-playbook": makeKnowledgeComponent(`"use strict";
781
782
  const {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];
782
783
  function _createMdxContent(props) {
@@ -847,23 +848,23 @@ function _createMdxContent(props) {
847
848
  children: ["\\n", _jsxs(_components.li, {
848
849
  children: [_jsx(_components.strong, {
849
850
  children: "Hook (1-2 sentences)"
850
- }), " \u2014 Lead with what you do and why it's relevant. Never use \\"caught my attention\\" \u2014 overused clich\xE9."]
851
+ }), " \xE2\u20AC\u201D Lead with what you do and why it's relevant. Never use \\"caught my attention\\" \xE2\u20AC\u201D overused clich\xC3\xA9."]
851
852
  }), "\\n", _jsxs(_components.li, {
852
853
  children: [_jsx(_components.strong, {
853
854
  children: "Proof (1-2 sentences)"
854
- }), " \u2014 One concrete metric from past work."]
855
+ }), " \xE2\u20AC\u201D One concrete metric from past work."]
855
856
  }), "\\n", _jsxs(_components.li, {
856
857
  children: [_jsx(_components.strong, {
857
858
  children: "Plan (2-3 lines)"
858
- }), " \u2014 Maximum 3 steps."]
859
+ }), " \xE2\u20AC\u201D Maximum 3 steps."]
859
860
  }), "\\n", _jsxs(_components.li, {
860
861
  children: [_jsx(_components.strong, {
861
862
  children: "Discovery Questions (exactly 2)"
862
- }), " \u2014 Smart, role-specific questions. End with a binary CTA."]
863
+ }), " \xE2\u20AC\u201D Smart, role-specific questions. End with a binary CTA."]
863
864
  }), "\\n", _jsxs(_components.li, {
864
865
  children: [_jsx(_components.strong, {
865
866
  children: "Sample (optional)"
866
- }), " \u2014 Loom video (2-3 min)."]
867
+ }), " \xE2\u20AC\u201D Loom video (2-3 min)."]
867
868
  }), "\\n"]
868
869
  }), "\\n", _jsx(_components.h2, {
869
870
  children: "Opening Lines"
@@ -872,7 +873,7 @@ function _createMdxContent(props) {
872
873
  }), "\\n", _jsxs(_components.p, {
873
874
  children: [_jsx(_components.strong, {
874
875
  children: "Good openers:"
875
- }), " \\"Hi \u2014 I build ", _jsx(_components.code, {
876
+ }), " \\"Hi \xE2\u20AC\u201D I build ", _jsx(_components.code, {
876
877
  children: "{what_they_need}"
877
878
  }), " for a living and run my own business on them daily.\\""]
878
879
  }), "\\n", _jsxs(_components.p, {
@@ -884,20 +885,20 @@ function _createMdxContent(props) {
884
885
  }), "\\n", _jsxs(_components.p, {
885
886
  children: [_jsx(_components.strong, {
886
887
  children: "Dogfooding (Strongest Differentiator):"
887
- }), " We run our own 7-stage client acquisition pipeline on the platform: Scrape \u2192 Extract \u2192 Qualify \u2192 Email Discovery \u2192 Verify \u2192 Personalize \u2192 Outreach."]
888
+ }), " We run our own 7-stage client acquisition pipeline on the platform: Scrape \xE2\u2020\u2019 Extract \xE2\u2020\u2019 Qualify \xE2\u2020\u2019 Email Discovery \xE2\u2020\u2019 Verify \xE2\u2020\u2019 Personalize \xE2\u2020\u2019 Outreach."]
888
889
  }), "\\n", _jsx(_components.p, {
889
890
  children: _jsx(_components.strong, {
890
891
  children: "The 4 Principles (Use in Discovery Questions):"
891
892
  })
892
893
  }), "\\n", _jsxs(_components.ol, {
893
894
  children: ["\\n", _jsx(_components.li, {
894
- children: "Integrated \u2014 Works with existing tools"
895
+ children: "Integrated \xE2\u20AC\u201D Works with existing tools"
895
896
  }), "\\n", _jsx(_components.li, {
896
- children: "Improving \u2014 Learns from every human decision"
897
+ children: "Improving \xE2\u20AC\u201D Learns from every human decision"
897
898
  }), "\\n", _jsx(_components.li, {
898
- children: "Observable \u2014 Real-time visibility"
899
+ children: "Observable \xE2\u20AC\u201D Real-time visibility"
899
900
  }), "\\n", _jsx(_components.li, {
900
- children: "Governed \u2014 Humans approve what matters"
901
+ children: "Governed \xE2\u20AC\u201D Humans approve what matters"
901
902
  }), "\\n"]
902
903
  })]
903
904
  });
@@ -1024,9 +1025,9 @@ return {
1024
1025
  };
1025
1026
  `),
1026
1027
  "knowledge.seo-playbook": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: "code",\n h2: "h2",\n h3: "h3",\n li: "li",\n p: "p",\n pre: "pre",\n ul: "ul",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Vertical Launch Workflow"\n }), "\\n", _jsxs(_components.p, {\n children: ["End-to-end process for launching a new vertical (e.g., ", _jsx(_components.code, {\n children: "hvac-contractors"\n }), "):"]\n }), "\\n", _jsx(_components.h3, {\n children: "Step 1: Research vertical data"\n }), "\\n", _jsx(_components.p, {\n children: "Find real, citable industry statistics: pain points, automation ROI, market context. Sources: trade associations, industry surveys, government data (BLS, Census)."\n }), "\\n", _jsx(_components.h3, {\n children: "Step 2: Generate pages"\n }), "\\n", _jsx(_components.pre, {\n children: _jsx(_components.code, {\n className: "language-bash",\n children: "# Pillar page\\npnpm tsx scripts/seo/generate-pages.ts --vertical hvac-contractors --type pillar --dry-run\\npnpm tsx scripts/seo/generate-pages.ts --vertical hvac-contractors --type pillar\\n\\n# Cluster pages\\npnpm tsx scripts/seo/generate-pages.ts --vertical hvac-contractors --type cluster\\n"\n })\n }), "\\n", _jsx(_components.h3, {\n children: "Step 3: Backfill chart data"\n }), "\\n", _jsxs(_components.p, {\n children: ["Charts require post-generation patching. Write chart patch files using Step 1 research, then apply via ", _jsx(_components.code, {\n children: "content.ts patch"\n }), "."]\n }), "\\n", _jsx(_components.h3, {\n children: "Step 4: AEO optimization"\n }), "\\n", _jsx(_components.p, {\n children: "Every section must be self-contained. AI engines extract individual passages, not full pages."\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsx(_components.li, {\n children: "Lead with a 30-50 word standalone answer in the first sentence of each section"\n }), "\\n", _jsx(_components.li, {\n children: "78% of AI Overview answers use list format"\n }), "\\n", _jsx(_components.li, {\n children: "Frame headings as questions when possible"\n }), "\\n"]\n }), "\\n", _jsx(_components.h3, {\n children: "Step 5: Post-publish distribution"\n }), "\\n", _jsxs(_components.p, {\n children: ["Update ", _jsx(_components.code, {\n children: "llms.txt"\n }), ", ping IndexNow, submit sitemap segments to Search Console."]\n }), "\\n", _jsx(_components.h2, {\n children: "Data Sourcing Rules"\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsx(_components.li, {\n children: "Tier 1 (Verified): Named source, specific methodology. Use confidently."\n }), "\\n", _jsx(_components.li, {\n children: "Tier 2 (Plausible): Widely cited, directionally correct. Soften the specific number."\n }), "\\n", _jsx(_components.li, {\n children: "Tier 3 (Unverified): No credible source. Do not use specific numbers."\n }), "\\n"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
1027
- "knowledge.seo-content-guide": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n h2: "h2",\n h3: "h3",\n li: "li",\n ol: "ol",\n p: "p",\n strong: "strong",\n ul: "ul",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Overview"\n }), "\\n", _jsx(_components.p, {\n children: "This guide covers how to write SEO content that ranks in traditional search AND gets cited by AI answer engines \u2014 ChatGPT, Perplexity, Google AI Overviews, and Gemini."\n }), "\\n", _jsx(_components.p, {\n children: "The distribution channel is split: 69% of Google searches result in zero clicks, while AI platforms generated 1.13 billion referral visits in June 2025 alone."\n }), "\\n", _jsx(_components.h2, {\n children: "Page Structure"\n }), "\\n", _jsx(_components.h3, {\n children: "Section Architecture"\n }), "\\n", _jsx(_components.p, {\n children: "Every section must be self-contained. AI engines extract individual passages, not full pages."\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsx(_components.li, {\n children: "Lead with a 30-50 word standalone answer in the first sentence of each section"\n }), "\\n", _jsx(_components.li, {\n children: "Paragraphs: 2-4 sentences max"\n }), "\\n", _jsx(_components.li, {\n children: "78% of AI Overview answers use list format -- use bullets and numbered lists extensively"\n }), "\\n", _jsx(_components.li, {\n children: "Heading hierarchy: one H1 (page title), H2 for major sections, H3 for subsections"\n }), "\\n", _jsx(_components.li, {\n children: "Frame headings as questions when possible"\n }), "\\n"]\n }), "\\n", _jsx(_components.h3, {\n children: "Section Length"\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Pillar pages:"\n }), " 2,000-3,000 words total"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Cluster pages:"\n }), " 1,000-2,000 words total"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Each major section:"\n }), " 150-300 words"]\n }), "\\n"]\n }), "\\n", _jsx(_components.h2, {\n children: "Conciseness Rules"\n }), "\\n", _jsxs(_components.ol, {\n children: ["\\n", _jsx(_components.li, {\n children: "Two-paragraph intro max"\n }), "\\n", _jsx(_components.li, {\n children: "No stat duplication between intro and problem section"\n }), "\\n", _jsx(_components.li, {\n children: "Section character budget: Intro 450-600 chars, Problem 250-400 chars, Solution 300-550 chars"\n }), "\\n"]\n }), "\\n", _jsx(_components.h2, {\n children: "E-E-A-T Signals"\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsx(_components.li, {\n children: "Brand name \\"Elevasis\\" must appear explicitly minimum 3x per page"\n }), "\\n", _jsx(_components.li, {\n children: "Vertical names used as proper noun concepts"\n }), "\\n", _jsx(_components.li, {\n children: "Organization + Service + SoftwareApplication schema markup reinforces entity recognition"\n }), "\\n"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
1028
+ "knowledge.seo-content-guide": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n h2: "h2",\n h3: "h3",\n li: "li",\n ol: "ol",\n p: "p",\n strong: "strong",\n ul: "ul",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Overview"\n }), "\\n", _jsx(_components.p, {\n children: "This guide covers how to write SEO content that ranks in traditional search AND gets cited by AI answer engines \xE2\u20AC\u201D ChatGPT, Perplexity, Google AI Overviews, and Gemini."\n }), "\\n", _jsx(_components.p, {\n children: "The distribution channel is split: 69% of Google searches result in zero clicks, while AI platforms generated 1.13 billion referral visits in June 2025 alone."\n }), "\\n", _jsx(_components.h2, {\n children: "Page Structure"\n }), "\\n", _jsx(_components.h3, {\n children: "Section Architecture"\n }), "\\n", _jsx(_components.p, {\n children: "Every section must be self-contained. AI engines extract individual passages, not full pages."\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsx(_components.li, {\n children: "Lead with a 30-50 word standalone answer in the first sentence of each section"\n }), "\\n", _jsx(_components.li, {\n children: "Paragraphs: 2-4 sentences max"\n }), "\\n", _jsx(_components.li, {\n children: "78% of AI Overview answers use list format -- use bullets and numbered lists extensively"\n }), "\\n", _jsx(_components.li, {\n children: "Heading hierarchy: one H1 (page title), H2 for major sections, H3 for subsections"\n }), "\\n", _jsx(_components.li, {\n children: "Frame headings as questions when possible"\n }), "\\n"]\n }), "\\n", _jsx(_components.h3, {\n children: "Section Length"\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Pillar pages:"\n }), " 2,000-3,000 words total"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Cluster pages:"\n }), " 1,000-2,000 words total"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Each major section:"\n }), " 150-300 words"]\n }), "\\n"]\n }), "\\n", _jsx(_components.h2, {\n children: "Conciseness Rules"\n }), "\\n", _jsxs(_components.ol, {\n children: ["\\n", _jsx(_components.li, {\n children: "Two-paragraph intro max"\n }), "\\n", _jsx(_components.li, {\n children: "No stat duplication between intro and problem section"\n }), "\\n", _jsx(_components.li, {\n children: "Section character budget: Intro 450-600 chars, Problem 250-400 chars, Solution 300-550 chars"\n }), "\\n"]\n }), "\\n", _jsx(_components.h2, {\n children: "E-E-A-T Signals"\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsx(_components.li, {\n children: "Brand name \\"Elevasis\\" must appear explicitly minimum 3x per page"\n }), "\\n", _jsx(_components.li, {\n children: "Vertical names used as proper noun concepts"\n }), "\\n", _jsx(_components.li, {\n children: "Organization + Service + SoftwareApplication schema markup reinforces entity recognition"\n }), "\\n"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
1028
1029
  "knowledge.seo-distribution-playbook": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: "code",\n h2: "h2",\n h3: "h3",\n li: "li",\n p: "p",\n strong: "strong",\n table: "table",\n tbody: "tbody",\n td: "td",\n th: "th",\n thead: "thead",\n tr: "tr",\n ul: "ul",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Overview"\n }), "\\n", _jsx(_components.p, {\n children: "Everything that happens after pages are published and sitemap/IndexNow pings are sent. Evergreen reference for maximizing visibility across traditional search, AI answer engines, and buyer-intent directories."\n }), "\\n", _jsx(_components.h2, {\n children: "AI Crawler Discovery"\n }), "\\n", _jsx(_components.h3, {\n children: _jsx(_components.code, {\n children: "llms.txt"\n })\n }), "\\n", _jsxs(_components.p, {\n children: ["A plain-text Markdown file at the domain root that gives LLMs a structured map of key content. Location: ", _jsx(_components.code, {\n children: "apps/website/public/llms.txt"\n }), "."]\n }), "\\n", _jsx(_components.p, {\n children: "Update whenever pillar or cluster pages are published."\n }), "\\n", _jsx(_components.h3, {\n children: "Sitemap Segmentation"\n }), "\\n", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: "Segment ID"\n }), _jsx(_components.th, {\n children: "Contents"\n }), _jsx(_components.th, {\n children: "Priority"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "0"\n }), _jsx(_components.td, {\n children: "Static pages"\n }), _jsx(_components.td, {\n children: "Default"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "1"\n }), _jsx(_components.td, {\n children: "Pillar pages (9)"\n }), _jsx(_components.td, {\n children: "0.9"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "2"\n }), _jsx(_components.td, {\n children: "Cluster pages (52)"\n }), _jsx(_components.td, {\n children: "0.8"\n })]\n })]\n })]\n }), "\\n", _jsx(_components.h3, {\n children: "Entity Density Rules"\n }), "\\n", _jsx(_components.p, {\n children: "Pages with 15+ recognized entities show 4.8x higher selection probability for AI citations."\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsx(_components.li, {\n children: "Brand name \\"Elevasis\\" must appear explicitly (minimum 3x per page)"\n }), "\\n", _jsx(_components.li, {\n children: "Stat density target: one statistic every 150-200 words"\n }), "\\n"]\n }), "\\n", _jsx(_components.h2, {\n children: "Directory Citations"\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Tier 1 (Buyer Intent):"\n }), " G2, Capterra, Product Hunt, AppSumo (direct buyer intent, high domain authority)"]\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Tier 2 (Authority):"\n }), " Crunchbase, AngelList, LinkedIn company page, industry association directories"]\n }), "\\n", _jsx(_components.h2, {\n children: "Google Business Profile"\n }), "\\n", _jsx(_components.p, {\n children: "Claim and verify GBP listing. Category: \\"Software Company\\". Keep NAP (Name, Address, Phone) consistent across all citations."\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
1029
- "knowledge.content-playbook": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: "code",\n h2: "h2",\n h3: "h3",\n li: "li",\n ol: "ol",\n p: "p",\n strong: "strong",\n table: "table",\n tbody: "tbody",\n td: "td",\n th: "th",\n thead: "thead",\n tr: "tr",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Content Pillars"\n }), "\\n", _jsx(_components.p, {\n children: "Every content piece maps to one of five pillars."\n }), "\\n", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: "Pillar"\n }), _jsx(_components.th, {\n children: "What It Is"\n }), _jsx(_components.th, {\n children: "Target Frequency"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "dogfooding"\n })\n }), _jsx(_components.td, {\n children: "How we run Elevasis using our own platform"\n }), _jsx(_components.td, {\n children: "1-2x/week"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "education"\n })\n }), _jsx(_components.td, {\n children: "4 Pattern Framework and AI orchestration concepts"\n }), _jsx(_components.td, {\n children: "1x/week"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "demo"\n })\n }), _jsx(_components.td, {\n children: "\\"Watch AI Work\\" \u2014 showing the platform in action"\n }), _jsx(_components.td, {\n children: "1x/2 weeks"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "pain-point"\n })\n }), _jsx(_components.td, {\n children: "SMB pain points backed by data"\n }), _jsx(_components.td, {\n children: "1x/week"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "founder-journey"\n })\n }), _jsx(_components.td, {\n children: "Solo founder building with AI"\n }), _jsx(_components.td, {\n children: "1x/week"\n })]\n })]\n })]\n }), "\\n", _jsx(_components.h3, {\n children: "The 90-10 Rule"\n }), "\\n", _jsx(_components.p, {\n children: "90% educational value, 10% promotional. Keeping promotional content to <15% ensures your audience stays receptive when you do make an offer."\n }), "\\n", _jsx(_components.h2, {\n children: "Content Creation Workflow"\n }), "\\n", _jsxs(_components.ol, {\n children: ["\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Capture the Idea"\n }), " \u2014 Insert into ", _jsx(_components.code, {\n children: "acq_content"\n }), " with ", _jsx(_components.code, {\n children: "status: idea"\n })]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Draft the Source Content"\n }), " \u2014 Write core idea in ", _jsx(_components.code, {\n children: "acq_content.body"\n }), ". LinkedIn first."]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Adapt for Platforms"\n }), " \u2014 Repurpose from LinkedIn to YouTube, Instagram, X"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Schedule and Publish"\n }), " \u2014 Use platform-native scheduling"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Track Performance"\n }), " \u2014 Monitor in ", _jsx(_components.code, {\n children: "acq_content"\n }), " via Command Center"]\n }), "\\n"]\n }), "\\n", _jsx(_components.h2, {\n children: "Platform Priority"\n }), "\\n", _jsxs(_components.ol, {\n children: ["\\n", _jsx(_components.li, {\n children: "LinkedIn \u2014 #1 priority, 3x/week"\n }), "\\n", _jsx(_components.li, {\n children: "YouTube \u2014 #2 priority, 1x/week + Shorts"\n }), "\\n", _jsx(_components.li, {\n children: "Instagram \u2014 #3 priority, 2-3x/week, repurpose from LinkedIn/YouTube"\n }), "\\n", _jsx(_components.li, {\n children: "X \u2014 #4 priority, 2-3x/week, threads from LinkedIn"\n }), "\\n"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
1030
+ "knowledge.content-playbook": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: "code",\n h2: "h2",\n h3: "h3",\n li: "li",\n ol: "ol",\n p: "p",\n strong: "strong",\n table: "table",\n tbody: "tbody",\n td: "td",\n th: "th",\n thead: "thead",\n tr: "tr",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Content Pillars"\n }), "\\n", _jsx(_components.p, {\n children: "Every content piece maps to one of five pillars."\n }), "\\n", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: "Pillar"\n }), _jsx(_components.th, {\n children: "What It Is"\n }), _jsx(_components.th, {\n children: "Target Frequency"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "dogfooding"\n })\n }), _jsx(_components.td, {\n children: "How we run Elevasis using our own platform"\n }), _jsx(_components.td, {\n children: "1-2x/week"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "education"\n })\n }), _jsx(_components.td, {\n children: "4 Pattern Framework and AI orchestration concepts"\n }), _jsx(_components.td, {\n children: "1x/week"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "demo"\n })\n }), _jsx(_components.td, {\n children: "\\"Watch AI Work\\" \xE2\u20AC\u201D showing the platform in action"\n }), _jsx(_components.td, {\n children: "1x/2 weeks"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "pain-point"\n })\n }), _jsx(_components.td, {\n children: "SMB pain points backed by data"\n }), _jsx(_components.td, {\n children: "1x/week"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "founder-journey"\n })\n }), _jsx(_components.td, {\n children: "Solo founder building with AI"\n }), _jsx(_components.td, {\n children: "1x/week"\n })]\n })]\n })]\n }), "\\n", _jsx(_components.h3, {\n children: "The 90-10 Rule"\n }), "\\n", _jsx(_components.p, {\n children: "90% educational value, 10% promotional. Keeping promotional content to <15% ensures your audience stays receptive when you do make an offer."\n }), "\\n", _jsx(_components.h2, {\n children: "Content Creation Workflow"\n }), "\\n", _jsxs(_components.ol, {\n children: ["\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Capture the Idea"\n }), " \xE2\u20AC\u201D Insert into ", _jsx(_components.code, {\n children: "acq_content"\n }), " with ", _jsx(_components.code, {\n children: "status: idea"\n })]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Draft the Source Content"\n }), " \xE2\u20AC\u201D Write core idea in ", _jsx(_components.code, {\n children: "acq_content.body"\n }), ". LinkedIn first."]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Adapt for Platforms"\n }), " \xE2\u20AC\u201D Repurpose from LinkedIn to YouTube, Instagram, X"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Schedule and Publish"\n }), " \xE2\u20AC\u201D Use platform-native scheduling"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Track Performance"\n }), " \xE2\u20AC\u201D Monitor in ", _jsx(_components.code, {\n children: "acq_content"\n }), " via Command Center"]\n }), "\\n"]\n }), "\\n", _jsx(_components.h2, {\n children: "Platform Priority"\n }), "\\n", _jsxs(_components.ol, {\n children: ["\\n", _jsx(_components.li, {\n children: "LinkedIn \xE2\u20AC\u201D #1 priority, 3x/week"\n }), "\\n", _jsx(_components.li, {\n children: "YouTube \xE2\u20AC\u201D #2 priority, 1x/week + Shorts"\n }), "\\n", _jsx(_components.li, {\n children: "Instagram \xE2\u20AC\u201D #3 priority, 2-3x/week, repurpose from LinkedIn/YouTube"\n }), "\\n", _jsx(_components.li, {\n children: "X \xE2\u20AC\u201D #4 priority, 2-3x/week, threads from LinkedIn"\n }), "\\n"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
1030
1031
  "knowledge.inbound-reply-handling-playbook": makeKnowledgeComponent(`"use strict";
1031
1032
  const {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];
1032
1033
  function _createMdxContent(props) {
@@ -1075,7 +1076,7 @@ function _createMdxContent(props) {
1075
1076
  }), _jsx(_components.td, {
1076
1077
  children: "\\"Yes I'm interested\\", \\"Tell me more\\""
1077
1078
  }), _jsx(_components.td, {
1078
- children: "CRM \u2192 HITL task with LLM-drafted follow-up"
1079
+ children: "CRM \xE2\u2020\u2019 HITL task with LLM-drafted follow-up"
1079
1080
  })]
1080
1081
  }), _jsxs(_components.tr, {
1081
1082
  children: [_jsx(_components.td, {
@@ -1095,7 +1096,7 @@ function _createMdxContent(props) {
1095
1096
  }), _jsx(_components.td, {
1096
1097
  children: "mailer-daemon@, \\"Undeliverable\\""
1097
1098
  }), _jsx(_components.td, {
1098
- children: "Stop outreach \u2192 Mark Lead DB INVALID \u2192 Skip CRM"
1099
+ children: "Stop outreach \xE2\u2020\u2019 Mark Lead DB INVALID \xE2\u2020\u2019 Skip CRM"
1099
1100
  })]
1100
1101
  }), _jsxs(_components.tr, {
1101
1102
  children: [_jsx(_components.td, {
@@ -1105,7 +1106,7 @@ function _createMdxContent(props) {
1105
1106
  }), _jsx(_components.td, {
1106
1107
  children: "Out-of-office, ticketing acknowledgments"
1107
1108
  }), _jsx(_components.td, {
1108
- children: "No action \u2014 campaign continues"
1109
+ children: "No action \xE2\u20AC\u201D campaign continues"
1109
1110
  })]
1110
1111
  })]
1111
1112
  })]
@@ -1139,7 +1140,7 @@ function _createMdxContent(props) {
1139
1140
  children: "update-interest-status"
1140
1141
  })]
1141
1142
  }), "\\n", _jsx(_components.li, {
1142
- children: "INTERESTED: does NOT stop sequence \u2014 proceeds to CRM creation and HITL queue"
1143
+ children: "INTERESTED: does NOT stop sequence \xE2\u20AC\u201D proceeds to CRM creation and HITL queue"
1143
1144
  }), "\\n", _jsx(_components.li, {
1144
1145
  children: "AUTO-REPLY: no CRM, no sequence stop, no reply"
1145
1146
  }), "\\n"]
@@ -1163,15 +1164,15 @@ return {
1163
1164
  default: MDXContent
1164
1165
  };
1165
1166
  `),
1166
- "knowledge.inbound-booking-playbook": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: "code",\n h2: "h2",\n h3: "h3",\n li: "li",\n ol: "ol",\n p: "p",\n strong: "strong",\n ul: "ul",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Overview"\n }), "\\n", _jsx(_components.p, {\n children: "When a prospect books a discovery call via Cal.com, the booking handler manages CRM updates, notifications, and reminder scheduling across all booking lifecycle events."\n }), "\\n", _jsx(_components.h2, {\n children: "Booking Handler Workflow"\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Triggers:"\n }), " Cal.com webhooks (BOOKING_CREATED, BOOKING_RESCHEDULED, BOOKING_CANCELLED)"]\n }), "\\n", _jsx(_components.h3, {\n children: "Event Flows"\n }), "\\n", _jsx(_components.p, {\n children: _jsx(_components.strong, {\n children: "BOOKING_CREATED:"\n })\n }), "\\n", _jsxs(_components.ol, {\n children: ["\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "create-contact"\n }), " \u2014 Create or update Attio Person record, resolve Deal via metadata or email, update Deal stage to ", _jsx(_components.code, {\n children: "booked"\n }), ", create Discovery Call Prep note, cancel brochure follow-ups"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "notify-created"\n }), " \u2014 Send platform notification to admin"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "schedule-reminders"\n }), " \u2014 Create absolute schedule with pre-computed -24h and -1h reminder times"]\n }), "\\n"]\n }), "\\n", _jsx(_components.p, {\n children: _jsx(_components.strong, {\n children: "BOOKING_RESCHEDULED:"\n })\n }), "\\n", _jsxs(_components.ol, {\n children: ["\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "update-schedule"\n }), " \u2014 Cancel existing reminders, schedule new ones at updated times"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "finish-reschedule"\n }), " \u2014 Update Deal stage, notify admin"]\n }), "\\n"]\n }), "\\n", _jsx(_components.p, {\n children: _jsx(_components.strong, {\n children: "BOOKING_CANCELLED:"\n })\n }), "\\n", _jsxs(_components.ol, {\n children: ["\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "cancel-schedule"\n }), " \u2014 Cancel all scheduled reminders"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "finish-cancel"\n }), " \u2014 Update Deal stage to ", _jsx(_components.code, {\n children: "cancelled"\n }), ", notify admin"]\n }), "\\n"]\n }), "\\n", _jsx(_components.h2, {\n children: "Reminder Schedule"\n }), "\\n", _jsx(_components.p, {\n children: "Two automated reminders per booking:"\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsx(_components.li, {\n children: "-24h reminder: \\"Looking forward to our call tomorrow\\""\n }), "\\n", _jsx(_components.li, {\n children: "-1h reminder: \\"See you in 1 hour\\" with discovery form link"\n }), "\\n"]\n }), "\\n", _jsx(_components.p, {\n children: "Reminders are scheduled as absolute times (not relative), so rescheduling correctly cancels and re-schedules them."\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
1167
- "knowledge.discovery-call-playbook": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: "code",\n h2: "h2",\n li: "li",\n ol: "ol",\n p: "p",\n strong: "strong",\n ul: "ul",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Overview"\n }), "\\n", _jsx(_components.p, {\n children: "The discovery form is filled during the call by the salesperson. On submission, the workflow stores structured data, updates the CRM, and routes based on qualification."\n }), "\\n", _jsxs(_components.p, {\n children: ["This is the ", _jsx(_components.strong, {\n children: "current pipeline endpoint"\n }), " \u2014 qualified leads receive a HITL task for manual follow-up; no automated stages exist beyond this point."]\n }), "\\n", _jsx(_components.h2, {\n children: "Workflow Steps"\n }), "\\n", _jsxs(_components.ol, {\n children: ["\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "route-by-action"\n }), " \u2014 Route to submission or no-show flow"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "compute-cost"\n }), " \u2014 Calculate totalAnnualCost from bottlenecks"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "store-discovery"\n }), " \u2014 Save discovery_data JSONB to acq_deals"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "find-deal"\n }), " \u2014 Find Attio Deal (acq_deals \u2192 URL context \u2192 Attio API)"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "update-attio-stage"\n }), " \u2014 Update Deal.stage based on qualification"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "create-summary-note"\n }), " \u2014 Add markdown Note to Deal"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "create-hitl-task"\n }), " \u2014 Create HITL approval item for qualified leads"]\n }), "\\n"]\n }), "\\n", _jsx(_components.h2, {\n children: "Qualification Routing"\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Qualified:"\n }), " Deal moves to ", _jsx(_components.code, {\n children: "qualified"\n }), " stage; HITL task created for admin follow-up"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Not Qualified:"\n }), " Deal moves to ", _jsx(_components.code, {\n children: "closed_lost"\n }), " stage; no further automation"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "No-Show:"\n }), " Deal moves to ", _jsx(_components.code, {\n children: "no_show"\n }), " stage; timeout checker handles re-engagement"]\n }), "\\n"]\n }), "\\n", _jsx(_components.h2, {\n children: "Discovery Form Structure"\n }), "\\n", _jsx(_components.p, {\n children: "The form captures: company size, current tools, 3 biggest bottlenecks, estimated time wasted per week, budget comfort range, urgency, decision-making authority."\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
1168
- "knowledge.pipeline-management-playbook": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: "code",\n h2: "h2",\n h3: "h3",\n li: "li",\n ol: "ol",\n p: "p",\n strong: "strong",\n table: "table",\n tbody: "tbody",\n td: "td",\n th: "th",\n thead: "thead",\n tr: "tr",\n ul: "ul",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Overview"\n }), "\\n", _jsx(_components.p, {\n children: "Pipeline management keeps the inbound pipeline clean without manual intervention."\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Timeout monitoring"\n }), " \u2014 Detecting deals that have gone stale in a stage"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Unsubscribe cleanup"\n }), " \u2014 Closing deals and cancelling automation when a contact opts out"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Full cleanup"\n }), " \u2014 Complete removal of all pipeline data for a contact"]\n }), "\\n"]\n }), "\\n", _jsx(_components.p, {\n children: "No timeout action transitions a deal automatically. All stage changes from the timeout system require admin approval via a HITL Command Queue item."\n }), "\\n", _jsx(_components.h2, {\n children: "Timeout System"\n }), "\\n", _jsxs(_components.h3, {\n children: ["Timeout Checker (", _jsx(_components.code, {\n children: "inb-pipeline-timeout-checker-workflow"\n }), ")"]\n }), "\\n", _jsx(_components.p, {\n children: "Scans all active pipeline stages. For each stale deal, creates a HITL approval item in the Command Queue. Never modifies deal records directly."\n }), "\\n", _jsx(_components.p, {\n children: _jsx(_components.strong, {\n children: "Timeout rules by stage:"\n })\n }), "\\n", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: "Stage"\n }), _jsx(_components.th, {\n children: "Condition"\n }), _jsx(_components.th, {\n children: "Timeout"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.code, {\n children: "interested"\n })\n }), _jsx(_components.td, {\n children: "No activity"\n }), _jsx(_components.td, {\n children: "30 days"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.code, {\n children: "booked"\n })\n }), _jsx(_components.td, {\n children: "Meeting time has passed"\n }), _jsx(_components.td, {\n children: "3 hours after meeting"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.code, {\n children: "discovery"\n })\n }), _jsx(_components.td, {\n children: "No form submission"\n }), _jsx(_components.td, {\n children: "24 hours after call"\n })]\n })]\n })]\n }), "\\n", _jsx(_components.h3, {\n children: "Action Workflows"\n }), "\\n", _jsx(_components.p, {\n children: "4 action workflows triggered by admin approval:"\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Nurture:"\n }), " Move to nurture sequence"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Close-Lost:"\n }), " Mark deal closed, stop all automation"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "No-Show:"\n }), " Re-send booking link with personal note"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Follow-Up:"\n }), " Send soft re-engagement email"]\n }), "\\n"]\n }), "\\n", _jsx(_components.h2, {\n children: "Unsubscribe Cleanup"\n }), "\\n", _jsx(_components.p, {\n children: "When a contact opts out:"\n }), "\\n", _jsxs(_components.ol, {\n children: ["\\n", _jsx(_components.li, {\n children: "Find all active automation for the contact"\n }), "\\n", _jsx(_components.li, {\n children: "Cancel scheduled reminders"\n }), "\\n", _jsxs(_components.li, {\n children: ["Update Deal stage to ", _jsx(_components.code, {\n children: "unsubscribed"\n })]\n }), "\\n", _jsx(_components.li, {\n children: "Mark contact as unsubscribed in Attio"\n }), "\\n"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
1169
- "knowledge.communications-map": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: "code",\n h2: "h2",\n li: "li",\n p: "p",\n pre: "pre",\n strong: "strong",\n table: "table",\n tbody: "tbody",\n td: "td",\n th: "th",\n thead: "thead",\n tr: "tr",\n ul: "ul",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Overview"\n }), "\\n", _jsxs(_components.p, {\n children: ["Every message sent to a lead across the active acquisition pipeline \u2014 outreach, follow-ups, reminders, and event-triggered emails. ", _jsx(_components.strong, {\n children: "~10 total active messages"\n }), " (3 outreach + 1 reply + 2 subsequent reply + 2 discovery reminders + 1 timeout follow-up + 1 timeout re-engagement)."]\n }), "\\n", _jsx(_components.p, {\n children: "Stages 04-08 communications (proposal follow-ups, payment reminders, nurture sequences) are archived."\n }), "\\n", _jsx(_components.h2, {\n children: "Active Pipeline Phases"\n }), "\\n", _jsx(_components.pre, {\n children: _jsx(_components.code, {\n children: "1. Outreach (Instantly) 2. Reply Handling 3. Discovery Reminders\\n 3 emails 1 email + 2 HITL 2 reminders\\n Day 0/3/7 On reply -24h/-1h\\n"\n })\n }), "\\n", _jsx(_components.h2, {\n children: "Phase 1: Outreach (Instantly)"\n }), "\\n", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: "#"\n }), _jsx(_components.th, {\n children: "Day"\n }), _jsx(_components.th, {\n children: "Subject"\n }), _jsx(_components.th, {\n children: "Angle"\n }), _jsx(_components.th, {\n children: "Purpose"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "1"\n }), _jsx(_components.td, {\n children: "0"\n }), _jsx(_components.td, {\n children: _jsx(_components.code, {\n children: "idea for {{companyName}}"\n })\n }), _jsx(_components.td, {\n children: "Earn attention"\n }), _jsx(_components.td, {\n children: "Personal, specific"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "2"\n }), _jsx(_components.td, {\n children: "3"\n }), _jsx(_components.td, {\n children: _jsx(_components.code, {\n children: "where do business hours actually go?"\n })\n }), _jsx(_components.td, {\n children: "New angle"\n }), _jsx(_components.td, {\n children: "Peer-level, intriguing"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "3"\n }), _jsx(_components.td, {\n children: "7"\n }), _jsx(_components.td, {\n children: _jsx(_components.code, {\n children: "the offer (whenever useful)"\n })\n }), _jsx(_components.td, {\n children: "Permission to close"\n }), _jsx(_components.td, {\n children: "Warm, zero pressure"\n })]\n })]\n })]\n }), "\\n", _jsx(_components.h2, {\n children: "Phase 2: Reply Handling (Resend)"\n }), "\\n", _jsx(_components.p, {\n children: "Sent only to INTERESTED replies. LLM drafts; admin approves via HITL before sending."\n }), "\\n", _jsx(_components.h2, {\n children: "Phase 3: Discovery Reminders (Resend)"\n }), "\\n", _jsx(_components.p, {\n children: "Two automated reminders per booking:"\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsx(_components.li, {\n children: "-24h: \\"Looking forward to our call tomorrow\\""\n }), "\\n", _jsx(_components.li, {\n children: "-1h: \\"See you in 1 hour\\" with discovery form link"\n }), "\\n"]\n }), "\\n", _jsx(_components.p, {\n children: "All scheduled/event emails signed \\"Alex\\". Plain text."\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
1170
- "knowledge.reddit-monitoring-playbook": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: "code",\n h2: "h2",\n p: "p",\n pre: "pre",\n strong: "strong",\n table: "table",\n tbody: "tbody",\n td: "td",\n th: "th",\n thead: "thead",\n tr: "tr",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Overview"\n }), "\\n", _jsx(_components.p, {\n children: "Social monitoring surfaces Reddit posts where business owners discuss operational challenges, manual processes, and automation needs."\n }), "\\n", _jsx(_components.pre, {\n children: _jsx(_components.code, {\n children: "Cron Trigger (3x/day: 16:00, 22:00, 04:00 UTC)\\n \u2192 mnt-reddit-monitor-workflow (4-step pipeline)\\n \u2192 Step 1: Search \u2014 4 sequential Apify actors (one per tier)\\n \u2192 Step 2: Score \u2014 Gemini Flash Lite (concurrency 5)\\n \u2192 Step 3: Draft \u2014 Gemini Flash (high-score only)\\n \u2192 Step 4: Report \u2014 Store to acq_social_posts, log breakdown\\n \u2192 Command Center: /acquisition/monitoring\\n"\n })\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Status:"\n }), " Paused until further notice (2026-03-31). Pipeline technically validated but ROI is low without deep vertical expertise."]\n }), "\\n", _jsx(_components.h2, {\n children: "Velocity Batches"\n }), "\\n", _jsxs(_components.p, {\n children: ["Subreddits grouped by posting velocity, each with its own ", _jsx(_components.code, {\n children: "maxPostsPerSource"\n }), "."]\n }), "\\n", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: "Batch"\n }), _jsx(_components.th, {\n children: "Subs"\n }), _jsx(_components.th, {\n children: "Posts/Source"\n }), _jsx(_components.th, {\n children: "Example Subreddits"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Medium Velocity"\n }), _jsx(_components.td, {\n children: "2"\n }), _jsx(_components.td, {\n children: "5"\n }), _jsx(_components.td, {\n children: "Accounting, Plumbing"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Buyer Low-Volume"\n }), _jsx(_components.td, {\n children: "10"\n }), _jsx(_components.td, {\n children: "3"\n }), _jsx(_components.td, {\n children: "CRM, EntrepreneurRideAlong, sweatystartup"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Trade Niche"\n }), _jsx(_components.td, {\n children: "10"\n }), _jsx(_components.td, {\n children: "2"\n }), _jsx(_components.td, {\n children: "electricians, Dentists, InsuranceAgent"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Decision Niche"\n }), _jsx(_components.td, {\n children: "3"\n }), _jsx(_components.td, {\n children: "2"\n }), _jsx(_components.td, {\n children: "logistics, FreightBrokers, healthIT"\n })]\n })]\n })]\n }), "\\n", _jsx(_components.h2, {\n children: "Scoring"\n }), "\\n", _jsx(_components.p, {\n children: "Posts scored 0-100 by Gemini Flash Lite for business automation opportunity relevance. Posts scoring >= 60 get response drafts via Gemini Flash."\n }), "\\n", _jsx(_components.h2, {\n children: "AlexElevasis Account"\n }), "\\n", _jsx(_components.p, {\n children: "All responses posted via the AlexElevasis Reddit account. See Reddit Account strategy doc for warmup playbook and karma thresholds."\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
1171
- "knowledge.reddit-account-strategy": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: "code",\n h2: "h2",\n li: "li",\n p: "p",\n strong: "strong",\n table: "table",\n tbody: "tbody",\n td: "td",\n th: "th",\n thead: "thead",\n tr: "tr",\n ul: "ul",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Account Details"\n }), "\\n", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: "Field"\n }), _jsx(_components.th, {\n children: "Value"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Username"\n })\n }), _jsx(_components.td, {\n children: _jsx(_components.code, {\n children: "AlexElevasis"\n })\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Created"\n })\n }), _jsx(_components.td, {\n children: "2026-03-26"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Purpose"\n })\n }), _jsx(_components.td, {\n children: "Lead generation via Reddit monitoring pipeline"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Persona"\n })\n }), _jsx(_components.td, {\n children: "Alexander, founder of an AI automation company"\n })]\n })]\n })]\n }), "\\n", _jsx(_components.p, {\n children: "The username serves double duty: every helpful comment puts \\"Elevasis\\" in front of the reader."\n }), "\\n", _jsx(_components.h2, {\n children: "Warm-Up Playbook"\n }), "\\n", _jsx(_components.p, {\n children: _jsx(_components.strong, {\n children: "Days 1-3 \u2014 Cold Start:"\n })\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsx(_components.li, {\n children: "Browse, upvote, follow target subs"\n }), "\\n", _jsx(_components.li, {\n children: "1 comment per day max"\n }), "\\n", _jsx(_components.li, {\n children: "No links, no self-promotion, no CTAs"\n }), "\\n"]\n }), "\\n", _jsx(_components.p, {\n children: _jsx(_components.strong, {\n children: "Days 4-14 \u2014 Gradual Ramp:"\n })\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsx(_components.li, {\n children: "Increase to 2-3 comments/day"\n }), "\\n", _jsx(_components.li, {\n children: "Genuine, helpful answers \u2014 no copy-paste across threads"\n }), "\\n", _jsx(_components.li, {\n children: "Still no links or CTAs"\n }), "\\n"]\n }), "\\n", _jsx(_components.p, {\n children: _jsx(_components.strong, {\n children: "After 30 Days + 100 Karma \u2014 Activation:"\n })\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsx(_components.li, {\n children: "Most automod filters cleared"\n }), "\\n", _jsx(_components.li, {\n children: "Start using monitoring pipeline drafts"\n }), "\\n", _jsx(_components.li, {\n children: "300+ karma unlocks more restrictive subs (r/Entrepreneur, r/startups)"\n }), "\\n"]\n }), "\\n", _jsx(_components.h2, {\n children: "Karma Thresholds"\n }), "\\n", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: "Karma"\n }), _jsx(_components.th, {\n children: "Access Level"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "100"\n }), _jsx(_components.td, {\n children: "Bypasses most automod filters"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "300+"\n }), _jsx(_components.td, {\n children: "Access to restrictive subs"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "1,000+"\n }), _jsx(_components.td, {\n children: "Considered established community member"\n })]\n })]\n })]\n }), "\\n", _jsx(_components.h2, {\n children: "Posting Rules"\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsx(_components.li, {\n children: "Genuine value first \u2014 no pitching without established reputation"\n }), "\\n", _jsx(_components.li, {\n children: "30-day account age required before using pipeline drafts"\n }), "\\n", _jsx(_components.li, {\n children: "Open questions in responses (not CTAs) per pipeline draft conventions"\n }), "\\n"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
1172
- "knowledge.linkedin-strategy": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n h2: "h2",\n h3: "h3",\n li: "li",\n ol: "ol",\n p: "p",\n strong: "strong",\n table: "table",\n tbody: "tbody",\n td: "td",\n th: "th",\n thead: "thead",\n tr: "tr",\n ul: "ul",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Overview"\n }), "\\n", _jsxs(_components.p, {\n children: ["LinkedIn is the ", _jsx(_components.strong, {\n children: "#1 priority platform"\n }), ". The algorithm heavily favors personal profiles over company pages. In 2025-2026, LinkedIn shifted from viral reach to ", _jsx(_components.strong, {\n children: "depth and authority"\n }), " \u2014 topical consistency is now the single biggest strategic lever."]\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Cadence:"\n }), " 3-5x/week (Wed/Thu/Fri strongest, Monday weakest)"]\n }), "\\n", _jsx(_components.h2, {\n children: "Algorithm Deep Dive"\n }), "\\n", _jsx(_components.h3, {\n children: "Ranking Signals (by weight)"\n }), "\\n", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: "Signal"\n }), _jsx(_components.th, {\n children: "Weight"\n }), _jsx(_components.th, {\n children: "Notes"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Comments"\n })\n }), _jsx(_components.td, {\n children: "Highest"\n }), _jsx(_components.td, {\n children: "15x more valuable than likes"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Saves and sends"\n })\n }), _jsx(_components.td, {\n children: "Very high"\n }), _jsx(_components.td, {\n children: "Added to analytics in late 2025"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Dwell time"\n })\n }), _jsx(_components.td, {\n children: "High"\n }), _jsx(_components.td, {\n children: "15+ seconds = meaningful"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "\\"See more\\" clicks"\n })\n }), _jsx(_components.td, {\n children: "High"\n }), _jsx(_components.td, {\n children: "Whether people expand the full post"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Reactions/likes"\n })\n }), _jsx(_components.td, {\n children: "Lowest"\n }), _jsx(_components.td, {\n children: "Significantly de-emphasized"\n })]\n })]\n })]\n }), "\\n", _jsx(_components.h3, {\n children: "Topical Authority"\n }), "\\n", _jsx(_components.p, {\n children: "The algorithm rewards consistent publishing within a defined area of expertise. Pick a lane (AI automation) and stay in it."\n }), "\\n", _jsx(_components.h2, {\n children: "Post Formats"\n }), "\\n", _jsxs(_components.ol, {\n children: ["\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Carousels"\n }), " \u2014 Highest avg engagement; 10-slide with text + data"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Text posts"\n }), " \u2014 Quick takes, contrarian observations, founder stories"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Documents/PDFs"\n }), " \u2014 In-depth guides, playbooks, frameworks"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Videos"\n }), " \u2014 Native upload outperforms external links by ~5x"]\n }), "\\n"]\n }), "\\n", _jsx(_components.h2, {\n children: "Hook Techniques"\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsx(_components.li, {\n children: "Lead with the most surprising/counterintuitive insight"\n }), "\\n", _jsx(_components.li, {\n children: "Use \\"I\\" not \\"we\\" \u2014 personal profile posts outperform company pages"\n }), "\\n", _jsx(_components.li, {\n children: "3 lines max before \\"...see more\\" break"\n }), "\\n", _jsx(_components.li, {\n children: "Questions outperform statements for comments engagement"\n }), "\\n"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
1173
- "knowledge.instagram-strategy": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n h2: "h2",\n h3: "h3",\n li: "li",\n p: "p",\n strong: "strong",\n table: "table",\n tbody: "tbody",\n td: "td",\n th: "th",\n thead: "thead",\n tr: "tr",\n ul: "ul",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Overview"\n }), "\\n", _jsxs(_components.p, {\n children: ["Instagram is the ", _jsx(_components.strong, {\n children: "#3 priority platform"\n }), ". Carousels repurpose easily from LinkedIn, and Reels come directly from YouTube Shorts."]\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Cadence:"\n }), " 3-5x/week feed posts + daily Stories"]\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "B2B Reality Check:"\n }), " Instagram is a complementary channel for B2B SaaS, not a primary lead gen tool. Decision-makers are on Instagram (76% of B2B companies use it), but they are in consumer mode."]\n }), "\\n", _jsx(_components.h2, {\n children: "Algorithm Deep Dive (2025-2026)"\n }), "\\n", _jsx(_components.h3, {\n children: "Reels Algorithm (Most Important for Reach)"\n }), "\\n", _jsxs(_components.p, {\n children: ["Reels are designed for ", _jsx(_components.strong, {\n children: "discovery"\n }), ": 55% of Reels views come from non-followers."]\n }), "\\n", _jsx(_components.p, {\n children: _jsx(_components.strong, {\n children: "Three priority signals:"\n })\n }), "\\n", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: "Signal"\n }), _jsx(_components.th, {\n children: "Weight"\n }), _jsx(_components.th, {\n children: "How to Optimize"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Watch time"\n })\n }), _jsx(_components.td, {\n children: "#1"\n }), _jsx(_components.td, {\n children: "Hook in first 1.7s; optimize for completion"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Sends per reach"\n })\n }), _jsx(_components.td, {\n children: "Highest for new audiences"\n }), _jsx(_components.td, {\n children: "\\"Send this to someone\\" content"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Likes per reach"\n })\n }), _jsx(_components.td, {\n children: "Highest for followers"\n }), _jsx(_components.td, {\n children: "Valuable content followers engage with"\n })]\n })]\n })]\n }), "\\n", _jsx(_components.h2, {\n children: "Content Strategy"\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Repurpose from LinkedIn:"\n }), " Carousel slides \u2192 Instagram carousel"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Repurpose from YouTube:"\n }), " Long-form \u2192 Reels (cut 30-60s clips)"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Stories:"\n }), " Daily touchpoints, polls, Q&A, behind-the-scenes"]\n }), "\\n"]\n }), "\\n", _jsx(_components.h2, {\n children: "Carousel Optimization"\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsx(_components.li, {\n children: "Slide 1: Hook (bold claim or question)"\n }), "\\n", _jsx(_components.li, {\n children: "Slides 2-9: Value delivery (one point per slide)"\n }), "\\n", _jsx(_components.li, {\n children: "Slide 10: CTA (follow, DM, link in bio)"\n }), "\\n"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
1174
- "knowledge.x-strategy": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n h2: "h2",\n h3: "h3",\n li: "li",\n p: "p",\n strong: "strong",\n table: "table",\n tbody: "tbody",\n td: "td",\n th: "th",\n thead: "thead",\n tr: "tr",\n ul: "ul",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Overview"\n }), "\\n", _jsxs(_components.p, {\n children: ["X is the ", _jsx(_components.strong, {\n children: "#4 priority platform"\n }), ". Most content is repurposed from LinkedIn text posts as threads."]\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Cadence:"\n }), " 3-5 posts/day (mix of original posts + replies + quote tweets), 2-3 threads/week"]\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Prerequisite:"\n }), " Get ", _jsx(_components.strong, {\n children: "X Premium ($8/mo)"\n }), " \u2014 verified accounts get ~10x more impressions. Non-Premium accounts posting links receive near-zero engagement as of 2026."]\n }), "\\n", _jsx(_components.h2, {\n children: "Algorithm Deep Dive"\n }), "\\n", _jsx(_components.h3, {\n children: "Engagement Weight Scoring"\n }), "\\n", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: "Signal"\n }), _jsx(_components.th, {\n children: "Weight"\n }), _jsx(_components.th, {\n children: "vs. Like"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Reply engaged by author"\n })\n }), _jsx(_components.td, {\n children: "+75"\n }), _jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "150x"\n })\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Reply"\n }), _jsx(_components.td, {\n children: "+13.5"\n }), _jsx(_components.td, {\n children: "27x"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Profile click + engagement"\n }), _jsx(_components.td, {\n children: "+12.0"\n }), _jsx(_components.td, {\n children: "24x"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Bookmark"\n }), _jsx(_components.td, {\n children: "+10.0"\n }), _jsx(_components.td, {\n children: "20x"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Retweet"\n }), _jsx(_components.td, {\n children: "+1.0"\n }), _jsx(_components.td, {\n children: "2x"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Like"\n }), _jsx(_components.td, {\n children: "+0.5"\n }), _jsx(_components.td, {\n children: "1x"\n })]\n })]\n })]\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Critical takeaway:"\n }), " Replying to your own replies is worth ", _jsx(_components.strong, {\n children: "150x a like"\n }), "."]\n }), "\\n", _jsx(_components.h3, {\n children: "Penalties"\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsxs(_components.li, {\n children: ["External links: ", _jsx(_components.strong, {\n children: "30-50% reach reduction"\n })]\n }), "\\n", _jsxs(_components.li, {\n children: ["Multiple hashtags: ", _jsx(_components.strong, {\n children: "40% penalty"\n })]\n }), "\\n"]\n }), "\\n", _jsx(_components.h2, {\n children: "Thread Strategy"\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsx(_components.li, {\n children: "First tweet = hook (bold claim or surprising stat)"\n }), "\\n", _jsx(_components.li, {\n children: "5-10 tweets per thread"\n }), "\\n", _jsx(_components.li, {\n children: "Last tweet = CTA (follow for more, link to extended content)"\n }), "\\n", _jsx(_components.li, {\n children: "Reply to your own threads within the first hour to boost algorithmic velocity"\n }), "\\n"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
1167
+ "knowledge.inbound-booking-playbook": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: "code",\n h2: "h2",\n h3: "h3",\n li: "li",\n ol: "ol",\n p: "p",\n strong: "strong",\n ul: "ul",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Overview"\n }), "\\n", _jsx(_components.p, {\n children: "When a prospect books a discovery call via Cal.com, the booking handler manages CRM updates, notifications, and reminder scheduling across all booking lifecycle events."\n }), "\\n", _jsx(_components.h2, {\n children: "Booking Handler Workflow"\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Triggers:"\n }), " Cal.com webhooks (BOOKING_CREATED, BOOKING_RESCHEDULED, BOOKING_CANCELLED)"]\n }), "\\n", _jsx(_components.h3, {\n children: "Event Flows"\n }), "\\n", _jsx(_components.p, {\n children: _jsx(_components.strong, {\n children: "BOOKING_CREATED:"\n })\n }), "\\n", _jsxs(_components.ol, {\n children: ["\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "create-contact"\n }), " \xE2\u20AC\u201D Create or update Attio Person record, resolve Deal via metadata or email, update Deal stage to ", _jsx(_components.code, {\n children: "booked"\n }), ", create Discovery Call Prep note, cancel brochure follow-ups"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "notify-created"\n }), " \xE2\u20AC\u201D Send platform notification to admin"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "schedule-reminders"\n }), " \xE2\u20AC\u201D Create absolute schedule with pre-computed -24h and -1h reminder times"]\n }), "\\n"]\n }), "\\n", _jsx(_components.p, {\n children: _jsx(_components.strong, {\n children: "BOOKING_RESCHEDULED:"\n })\n }), "\\n", _jsxs(_components.ol, {\n children: ["\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "update-schedule"\n }), " \xE2\u20AC\u201D Cancel existing reminders, schedule new ones at updated times"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "finish-reschedule"\n }), " \xE2\u20AC\u201D Update Deal stage, notify admin"]\n }), "\\n"]\n }), "\\n", _jsx(_components.p, {\n children: _jsx(_components.strong, {\n children: "BOOKING_CANCELLED:"\n })\n }), "\\n", _jsxs(_components.ol, {\n children: ["\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "cancel-schedule"\n }), " \xE2\u20AC\u201D Cancel all scheduled reminders"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "finish-cancel"\n }), " \xE2\u20AC\u201D Update Deal stage to ", _jsx(_components.code, {\n children: "cancelled"\n }), ", notify admin"]\n }), "\\n"]\n }), "\\n", _jsx(_components.h2, {\n children: "Reminder Schedule"\n }), "\\n", _jsx(_components.p, {\n children: "Two automated reminders per booking:"\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsx(_components.li, {\n children: "-24h reminder: \\"Looking forward to our call tomorrow\\""\n }), "\\n", _jsx(_components.li, {\n children: "-1h reminder: \\"See you in 1 hour\\" with discovery form link"\n }), "\\n"]\n }), "\\n", _jsx(_components.p, {\n children: "Reminders are scheduled as absolute times (not relative), so rescheduling correctly cancels and re-schedules them."\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
1168
+ "knowledge.discovery-call-playbook": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: "code",\n h2: "h2",\n li: "li",\n ol: "ol",\n p: "p",\n strong: "strong",\n ul: "ul",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Overview"\n }), "\\n", _jsx(_components.p, {\n children: "The discovery form is filled during the call by the salesperson. On submission, the workflow stores structured data, updates the CRM, and routes based on qualification."\n }), "\\n", _jsxs(_components.p, {\n children: ["This is the ", _jsx(_components.strong, {\n children: "current pipeline endpoint"\n }), " \xE2\u20AC\u201D qualified leads receive a HITL task for manual follow-up; no automated stages exist beyond this point."]\n }), "\\n", _jsx(_components.h2, {\n children: "Workflow Steps"\n }), "\\n", _jsxs(_components.ol, {\n children: ["\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "route-by-action"\n }), " \xE2\u20AC\u201D Route to submission or no-show flow"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "compute-cost"\n }), " \xE2\u20AC\u201D Calculate totalAnnualCost from bottlenecks"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "store-discovery"\n }), " \xE2\u20AC\u201D Save discovery_data JSONB to acq_deals"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "find-deal"\n }), " \xE2\u20AC\u201D Find Attio Deal (acq_deals \xE2\u2020\u2019 URL context \xE2\u2020\u2019 Attio API)"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "update-attio-stage"\n }), " \xE2\u20AC\u201D Update Deal.stage based on qualification"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "create-summary-note"\n }), " \xE2\u20AC\u201D Add markdown Note to Deal"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: "create-hitl-task"\n }), " \xE2\u20AC\u201D Create HITL approval item for qualified leads"]\n }), "\\n"]\n }), "\\n", _jsx(_components.h2, {\n children: "Qualification Routing"\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Qualified:"\n }), " Deal moves to ", _jsx(_components.code, {\n children: "qualified"\n }), " stage; HITL task created for admin follow-up"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Not Qualified:"\n }), " Deal moves to ", _jsx(_components.code, {\n children: "closed_lost"\n }), " stage; no further automation"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "No-Show:"\n }), " Deal moves to ", _jsx(_components.code, {\n children: "no_show"\n }), " stage; timeout checker handles re-engagement"]\n }), "\\n"]\n }), "\\n", _jsx(_components.h2, {\n children: "Discovery Form Structure"\n }), "\\n", _jsx(_components.p, {\n children: "The form captures: company size, current tools, 3 biggest bottlenecks, estimated time wasted per week, budget comfort range, urgency, decision-making authority."\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
1169
+ "knowledge.pipeline-management-playbook": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: "code",\n h2: "h2",\n h3: "h3",\n li: "li",\n ol: "ol",\n p: "p",\n strong: "strong",\n table: "table",\n tbody: "tbody",\n td: "td",\n th: "th",\n thead: "thead",\n tr: "tr",\n ul: "ul",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Overview"\n }), "\\n", _jsx(_components.p, {\n children: "Pipeline management keeps the inbound pipeline clean without manual intervention."\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Timeout monitoring"\n }), " \xE2\u20AC\u201D Detecting deals that have gone stale in a stage"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Unsubscribe cleanup"\n }), " \xE2\u20AC\u201D Closing deals and cancelling automation when a contact opts out"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Full cleanup"\n }), " \xE2\u20AC\u201D Complete removal of all pipeline data for a contact"]\n }), "\\n"]\n }), "\\n", _jsx(_components.p, {\n children: "No timeout action transitions a deal automatically. All stage changes from the timeout system require admin approval via a HITL Command Queue item."\n }), "\\n", _jsx(_components.h2, {\n children: "Timeout System"\n }), "\\n", _jsxs(_components.h3, {\n children: ["Timeout Checker (", _jsx(_components.code, {\n children: "inb-pipeline-timeout-checker-workflow"\n }), ")"]\n }), "\\n", _jsx(_components.p, {\n children: "Scans all active pipeline stages. For each stale deal, creates a HITL approval item in the Command Queue. Never modifies deal records directly."\n }), "\\n", _jsx(_components.p, {\n children: _jsx(_components.strong, {\n children: "Timeout rules by stage:"\n })\n }), "\\n", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: "Stage"\n }), _jsx(_components.th, {\n children: "Condition"\n }), _jsx(_components.th, {\n children: "Timeout"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.code, {\n children: "interested"\n })\n }), _jsx(_components.td, {\n children: "No activity"\n }), _jsx(_components.td, {\n children: "30 days"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.code, {\n children: "booked"\n })\n }), _jsx(_components.td, {\n children: "Meeting time has passed"\n }), _jsx(_components.td, {\n children: "3 hours after meeting"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.code, {\n children: "discovery"\n })\n }), _jsx(_components.td, {\n children: "No form submission"\n }), _jsx(_components.td, {\n children: "24 hours after call"\n })]\n })]\n })]\n }), "\\n", _jsx(_components.h3, {\n children: "Action Workflows"\n }), "\\n", _jsx(_components.p, {\n children: "4 action workflows triggered by admin approval:"\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Nurture:"\n }), " Move to nurture sequence"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Close-Lost:"\n }), " Mark deal closed, stop all automation"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "No-Show:"\n }), " Re-send booking link with personal note"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Follow-Up:"\n }), " Send soft re-engagement email"]\n }), "\\n"]\n }), "\\n", _jsx(_components.h2, {\n children: "Unsubscribe Cleanup"\n }), "\\n", _jsx(_components.p, {\n children: "When a contact opts out:"\n }), "\\n", _jsxs(_components.ol, {\n children: ["\\n", _jsx(_components.li, {\n children: "Find all active automation for the contact"\n }), "\\n", _jsx(_components.li, {\n children: "Cancel scheduled reminders"\n }), "\\n", _jsxs(_components.li, {\n children: ["Update Deal stage to ", _jsx(_components.code, {\n children: "unsubscribed"\n })]\n }), "\\n", _jsx(_components.li, {\n children: "Mark contact as unsubscribed in Attio"\n }), "\\n"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
1170
+ "knowledge.communications-map": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: "code",\n h2: "h2",\n li: "li",\n p: "p",\n pre: "pre",\n strong: "strong",\n table: "table",\n tbody: "tbody",\n td: "td",\n th: "th",\n thead: "thead",\n tr: "tr",\n ul: "ul",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Overview"\n }), "\\n", _jsxs(_components.p, {\n children: ["Every message sent to a lead across the active acquisition pipeline \xE2\u20AC\u201D outreach, follow-ups, reminders, and event-triggered emails. ", _jsx(_components.strong, {\n children: "~10 total active messages"\n }), " (3 outreach + 1 reply + 2 subsequent reply + 2 discovery reminders + 1 timeout follow-up + 1 timeout re-engagement)."]\n }), "\\n", _jsx(_components.p, {\n children: "Stages 04-08 communications (proposal follow-ups, payment reminders, nurture sequences) are archived."\n }), "\\n", _jsx(_components.h2, {\n children: "Active Pipeline Phases"\n }), "\\n", _jsx(_components.pre, {\n children: _jsx(_components.code, {\n children: "1. Outreach (Instantly) 2. Reply Handling 3. Discovery Reminders\\n 3 emails 1 email + 2 HITL 2 reminders\\n Day 0/3/7 On reply -24h/-1h\\n"\n })\n }), "\\n", _jsx(_components.h2, {\n children: "Phase 1: Outreach (Instantly)"\n }), "\\n", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: "#"\n }), _jsx(_components.th, {\n children: "Day"\n }), _jsx(_components.th, {\n children: "Subject"\n }), _jsx(_components.th, {\n children: "Angle"\n }), _jsx(_components.th, {\n children: "Purpose"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "1"\n }), _jsx(_components.td, {\n children: "0"\n }), _jsx(_components.td, {\n children: _jsx(_components.code, {\n children: "idea for {{companyName}}"\n })\n }), _jsx(_components.td, {\n children: "Earn attention"\n }), _jsx(_components.td, {\n children: "Personal, specific"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "2"\n }), _jsx(_components.td, {\n children: "3"\n }), _jsx(_components.td, {\n children: _jsx(_components.code, {\n children: "where do business hours actually go?"\n })\n }), _jsx(_components.td, {\n children: "New angle"\n }), _jsx(_components.td, {\n children: "Peer-level, intriguing"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "3"\n }), _jsx(_components.td, {\n children: "7"\n }), _jsx(_components.td, {\n children: _jsx(_components.code, {\n children: "the offer (whenever useful)"\n })\n }), _jsx(_components.td, {\n children: "Permission to close"\n }), _jsx(_components.td, {\n children: "Warm, zero pressure"\n })]\n })]\n })]\n }), "\\n", _jsx(_components.h2, {\n children: "Phase 2: Reply Handling (Resend)"\n }), "\\n", _jsx(_components.p, {\n children: "Sent only to INTERESTED replies. LLM drafts; admin approves via HITL before sending."\n }), "\\n", _jsx(_components.h2, {\n children: "Phase 3: Discovery Reminders (Resend)"\n }), "\\n", _jsx(_components.p, {\n children: "Two automated reminders per booking:"\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsx(_components.li, {\n children: "-24h: \\"Looking forward to our call tomorrow\\""\n }), "\\n", _jsx(_components.li, {\n children: "-1h: \\"See you in 1 hour\\" with discovery form link"\n }), "\\n"]\n }), "\\n", _jsx(_components.p, {\n children: "All scheduled/event emails signed \\"Alex\\". Plain text."\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
1171
+ "knowledge.reddit-monitoring-playbook": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: "code",\n h2: "h2",\n p: "p",\n pre: "pre",\n strong: "strong",\n table: "table",\n tbody: "tbody",\n td: "td",\n th: "th",\n thead: "thead",\n tr: "tr",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Overview"\n }), "\\n", _jsx(_components.p, {\n children: "Social monitoring surfaces Reddit posts where business owners discuss operational challenges, manual processes, and automation needs."\n }), "\\n", _jsx(_components.pre, {\n children: _jsx(_components.code, {\n children: "Cron Trigger (3x/day: 16:00, 22:00, 04:00 UTC)\\n \xE2\u2020\u2019 mnt-reddit-monitor-workflow (4-step pipeline)\\n \xE2\u2020\u2019 Step 1: Search \xE2\u20AC\u201D 4 sequential Apify actors (one per tier)\\n \xE2\u2020\u2019 Step 2: Score \xE2\u20AC\u201D Gemini Flash Lite (concurrency 5)\\n \xE2\u2020\u2019 Step 3: Draft \xE2\u20AC\u201D Gemini Flash (high-score only)\\n \xE2\u2020\u2019 Step 4: Report \xE2\u20AC\u201D Store to acq_social_posts, log breakdown\\n \xE2\u2020\u2019 Command Center: /acquisition/monitoring\\n"\n })\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Status:"\n }), " Paused until further notice (2026-03-31). Pipeline technically validated but ROI is low without deep vertical expertise."]\n }), "\\n", _jsx(_components.h2, {\n children: "Velocity Batches"\n }), "\\n", _jsxs(_components.p, {\n children: ["Subreddits grouped by posting velocity, each with its own ", _jsx(_components.code, {\n children: "maxPostsPerSource"\n }), "."]\n }), "\\n", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: "Batch"\n }), _jsx(_components.th, {\n children: "Subs"\n }), _jsx(_components.th, {\n children: "Posts/Source"\n }), _jsx(_components.th, {\n children: "Example Subreddits"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Medium Velocity"\n }), _jsx(_components.td, {\n children: "2"\n }), _jsx(_components.td, {\n children: "5"\n }), _jsx(_components.td, {\n children: "Accounting, Plumbing"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Buyer Low-Volume"\n }), _jsx(_components.td, {\n children: "10"\n }), _jsx(_components.td, {\n children: "3"\n }), _jsx(_components.td, {\n children: "CRM, EntrepreneurRideAlong, sweatystartup"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Trade Niche"\n }), _jsx(_components.td, {\n children: "10"\n }), _jsx(_components.td, {\n children: "2"\n }), _jsx(_components.td, {\n children: "electricians, Dentists, InsuranceAgent"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Decision Niche"\n }), _jsx(_components.td, {\n children: "3"\n }), _jsx(_components.td, {\n children: "2"\n }), _jsx(_components.td, {\n children: "logistics, FreightBrokers, healthIT"\n })]\n })]\n })]\n }), "\\n", _jsx(_components.h2, {\n children: "Scoring"\n }), "\\n", _jsx(_components.p, {\n children: "Posts scored 0-100 by Gemini Flash Lite for business automation opportunity relevance. Posts scoring >= 60 get response drafts via Gemini Flash."\n }), "\\n", _jsx(_components.h2, {\n children: "AlexElevasis Account"\n }), "\\n", _jsx(_components.p, {\n children: "All responses posted via the AlexElevasis Reddit account. See Reddit Account strategy doc for warmup playbook and karma thresholds."\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
1172
+ "knowledge.reddit-account-strategy": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: "code",\n h2: "h2",\n li: "li",\n p: "p",\n strong: "strong",\n table: "table",\n tbody: "tbody",\n td: "td",\n th: "th",\n thead: "thead",\n tr: "tr",\n ul: "ul",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Account Details"\n }), "\\n", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: "Field"\n }), _jsx(_components.th, {\n children: "Value"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Username"\n })\n }), _jsx(_components.td, {\n children: _jsx(_components.code, {\n children: "AlexElevasis"\n })\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Created"\n })\n }), _jsx(_components.td, {\n children: "2026-03-26"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Purpose"\n })\n }), _jsx(_components.td, {\n children: "Lead generation via Reddit monitoring pipeline"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Persona"\n })\n }), _jsx(_components.td, {\n children: "Alexander, founder of an AI automation company"\n })]\n })]\n })]\n }), "\\n", _jsx(_components.p, {\n children: "The username serves double duty: every helpful comment puts \\"Elevasis\\" in front of the reader."\n }), "\\n", _jsx(_components.h2, {\n children: "Warm-Up Playbook"\n }), "\\n", _jsx(_components.p, {\n children: _jsx(_components.strong, {\n children: "Days 1-3 \xE2\u20AC\u201D Cold Start:"\n })\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsx(_components.li, {\n children: "Browse, upvote, follow target subs"\n }), "\\n", _jsx(_components.li, {\n children: "1 comment per day max"\n }), "\\n", _jsx(_components.li, {\n children: "No links, no self-promotion, no CTAs"\n }), "\\n"]\n }), "\\n", _jsx(_components.p, {\n children: _jsx(_components.strong, {\n children: "Days 4-14 \xE2\u20AC\u201D Gradual Ramp:"\n })\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsx(_components.li, {\n children: "Increase to 2-3 comments/day"\n }), "\\n", _jsx(_components.li, {\n children: "Genuine, helpful answers \xE2\u20AC\u201D no copy-paste across threads"\n }), "\\n", _jsx(_components.li, {\n children: "Still no links or CTAs"\n }), "\\n"]\n }), "\\n", _jsx(_components.p, {\n children: _jsx(_components.strong, {\n children: "After 30 Days + 100 Karma \xE2\u20AC\u201D Activation:"\n })\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsx(_components.li, {\n children: "Most automod filters cleared"\n }), "\\n", _jsx(_components.li, {\n children: "Start using monitoring pipeline drafts"\n }), "\\n", _jsx(_components.li, {\n children: "300+ karma unlocks more restrictive subs (r/Entrepreneur, r/startups)"\n }), "\\n"]\n }), "\\n", _jsx(_components.h2, {\n children: "Karma Thresholds"\n }), "\\n", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: "Karma"\n }), _jsx(_components.th, {\n children: "Access Level"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "100"\n }), _jsx(_components.td, {\n children: "Bypasses most automod filters"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "300+"\n }), _jsx(_components.td, {\n children: "Access to restrictive subs"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "1,000+"\n }), _jsx(_components.td, {\n children: "Considered established community member"\n })]\n })]\n })]\n }), "\\n", _jsx(_components.h2, {\n children: "Posting Rules"\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsx(_components.li, {\n children: "Genuine value first \xE2\u20AC\u201D no pitching without established reputation"\n }), "\\n", _jsx(_components.li, {\n children: "30-day account age required before using pipeline drafts"\n }), "\\n", _jsx(_components.li, {\n children: "Open questions in responses (not CTAs) per pipeline draft conventions"\n }), "\\n"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
1173
+ "knowledge.linkedin-strategy": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n h2: "h2",\n h3: "h3",\n li: "li",\n ol: "ol",\n p: "p",\n strong: "strong",\n table: "table",\n tbody: "tbody",\n td: "td",\n th: "th",\n thead: "thead",\n tr: "tr",\n ul: "ul",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Overview"\n }), "\\n", _jsxs(_components.p, {\n children: ["LinkedIn is the ", _jsx(_components.strong, {\n children: "#1 priority platform"\n }), ". The algorithm heavily favors personal profiles over company pages. In 2025-2026, LinkedIn shifted from viral reach to ", _jsx(_components.strong, {\n children: "depth and authority"\n }), " \xE2\u20AC\u201D topical consistency is now the single biggest strategic lever."]\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Cadence:"\n }), " 3-5x/week (Wed/Thu/Fri strongest, Monday weakest)"]\n }), "\\n", _jsx(_components.h2, {\n children: "Algorithm Deep Dive"\n }), "\\n", _jsx(_components.h3, {\n children: "Ranking Signals (by weight)"\n }), "\\n", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: "Signal"\n }), _jsx(_components.th, {\n children: "Weight"\n }), _jsx(_components.th, {\n children: "Notes"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Comments"\n })\n }), _jsx(_components.td, {\n children: "Highest"\n }), _jsx(_components.td, {\n children: "15x more valuable than likes"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Saves and sends"\n })\n }), _jsx(_components.td, {\n children: "Very high"\n }), _jsx(_components.td, {\n children: "Added to analytics in late 2025"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Dwell time"\n })\n }), _jsx(_components.td, {\n children: "High"\n }), _jsx(_components.td, {\n children: "15+ seconds = meaningful"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "\\"See more\\" clicks"\n })\n }), _jsx(_components.td, {\n children: "High"\n }), _jsx(_components.td, {\n children: "Whether people expand the full post"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Reactions/likes"\n })\n }), _jsx(_components.td, {\n children: "Lowest"\n }), _jsx(_components.td, {\n children: "Significantly de-emphasized"\n })]\n })]\n })]\n }), "\\n", _jsx(_components.h3, {\n children: "Topical Authority"\n }), "\\n", _jsx(_components.p, {\n children: "The algorithm rewards consistent publishing within a defined area of expertise. Pick a lane (AI automation) and stay in it."\n }), "\\n", _jsx(_components.h2, {\n children: "Post Formats"\n }), "\\n", _jsxs(_components.ol, {\n children: ["\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Carousels"\n }), " \xE2\u20AC\u201D Highest avg engagement; 10-slide with text + data"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Text posts"\n }), " \xE2\u20AC\u201D Quick takes, contrarian observations, founder stories"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Documents/PDFs"\n }), " \xE2\u20AC\u201D In-depth guides, playbooks, frameworks"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Videos"\n }), " \xE2\u20AC\u201D Native upload outperforms external links by ~5x"]\n }), "\\n"]\n }), "\\n", _jsx(_components.h2, {\n children: "Hook Techniques"\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsx(_components.li, {\n children: "Lead with the most surprising/counterintuitive insight"\n }), "\\n", _jsx(_components.li, {\n children: "Use \\"I\\" not \\"we\\" \xE2\u20AC\u201D personal profile posts outperform company pages"\n }), "\\n", _jsx(_components.li, {\n children: "3 lines max before \\"...see more\\" break"\n }), "\\n", _jsx(_components.li, {\n children: "Questions outperform statements for comments engagement"\n }), "\\n"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
1174
+ "knowledge.instagram-strategy": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n h2: "h2",\n h3: "h3",\n li: "li",\n p: "p",\n strong: "strong",\n table: "table",\n tbody: "tbody",\n td: "td",\n th: "th",\n thead: "thead",\n tr: "tr",\n ul: "ul",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Overview"\n }), "\\n", _jsxs(_components.p, {\n children: ["Instagram is the ", _jsx(_components.strong, {\n children: "#3 priority platform"\n }), ". Carousels repurpose easily from LinkedIn, and Reels come directly from YouTube Shorts."]\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Cadence:"\n }), " 3-5x/week feed posts + daily Stories"]\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "B2B Reality Check:"\n }), " Instagram is a complementary channel for B2B SaaS, not a primary lead gen tool. Decision-makers are on Instagram (76% of B2B companies use it), but they are in consumer mode."]\n }), "\\n", _jsx(_components.h2, {\n children: "Algorithm Deep Dive (2025-2026)"\n }), "\\n", _jsx(_components.h3, {\n children: "Reels Algorithm (Most Important for Reach)"\n }), "\\n", _jsxs(_components.p, {\n children: ["Reels are designed for ", _jsx(_components.strong, {\n children: "discovery"\n }), ": 55% of Reels views come from non-followers."]\n }), "\\n", _jsx(_components.p, {\n children: _jsx(_components.strong, {\n children: "Three priority signals:"\n })\n }), "\\n", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: "Signal"\n }), _jsx(_components.th, {\n children: "Weight"\n }), _jsx(_components.th, {\n children: "How to Optimize"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Watch time"\n })\n }), _jsx(_components.td, {\n children: "#1"\n }), _jsx(_components.td, {\n children: "Hook in first 1.7s; optimize for completion"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Sends per reach"\n })\n }), _jsx(_components.td, {\n children: "Highest for new audiences"\n }), _jsx(_components.td, {\n children: "\\"Send this to someone\\" content"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Likes per reach"\n })\n }), _jsx(_components.td, {\n children: "Highest for followers"\n }), _jsx(_components.td, {\n children: "Valuable content followers engage with"\n })]\n })]\n })]\n }), "\\n", _jsx(_components.h2, {\n children: "Content Strategy"\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Repurpose from LinkedIn:"\n }), " Carousel slides \xE2\u2020\u2019 Instagram carousel"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Repurpose from YouTube:"\n }), " Long-form \xE2\u2020\u2019 Reels (cut 30-60s clips)"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Stories:"\n }), " Daily touchpoints, polls, Q&A, behind-the-scenes"]\n }), "\\n"]\n }), "\\n", _jsx(_components.h2, {\n children: "Carousel Optimization"\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsx(_components.li, {\n children: "Slide 1: Hook (bold claim or question)"\n }), "\\n", _jsx(_components.li, {\n children: "Slides 2-9: Value delivery (one point per slide)"\n }), "\\n", _jsx(_components.li, {\n children: "Slide 10: CTA (follow, DM, link in bio)"\n }), "\\n"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
1175
+ "knowledge.x-strategy": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n h2: "h2",\n h3: "h3",\n li: "li",\n p: "p",\n strong: "strong",\n table: "table",\n tbody: "tbody",\n td: "td",\n th: "th",\n thead: "thead",\n tr: "tr",\n ul: "ul",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Overview"\n }), "\\n", _jsxs(_components.p, {\n children: ["X is the ", _jsx(_components.strong, {\n children: "#4 priority platform"\n }), ". Most content is repurposed from LinkedIn text posts as threads."]\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Cadence:"\n }), " 3-5 posts/day (mix of original posts + replies + quote tweets), 2-3 threads/week"]\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Prerequisite:"\n }), " Get ", _jsx(_components.strong, {\n children: "X Premium ($8/mo)"\n }), " \xE2\u20AC\u201D verified accounts get ~10x more impressions. Non-Premium accounts posting links receive near-zero engagement as of 2026."]\n }), "\\n", _jsx(_components.h2, {\n children: "Algorithm Deep Dive"\n }), "\\n", _jsx(_components.h3, {\n children: "Engagement Weight Scoring"\n }), "\\n", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: "Signal"\n }), _jsx(_components.th, {\n children: "Weight"\n }), _jsx(_components.th, {\n children: "vs. Like"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Reply engaged by author"\n })\n }), _jsx(_components.td, {\n children: "+75"\n }), _jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "150x"\n })\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Reply"\n }), _jsx(_components.td, {\n children: "+13.5"\n }), _jsx(_components.td, {\n children: "27x"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Profile click + engagement"\n }), _jsx(_components.td, {\n children: "+12.0"\n }), _jsx(_components.td, {\n children: "24x"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Bookmark"\n }), _jsx(_components.td, {\n children: "+10.0"\n }), _jsx(_components.td, {\n children: "20x"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Retweet"\n }), _jsx(_components.td, {\n children: "+1.0"\n }), _jsx(_components.td, {\n children: "2x"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Like"\n }), _jsx(_components.td, {\n children: "+0.5"\n }), _jsx(_components.td, {\n children: "1x"\n })]\n })]\n })]\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Critical takeaway:"\n }), " Replying to your own replies is worth ", _jsx(_components.strong, {\n children: "150x a like"\n }), "."]\n }), "\\n", _jsx(_components.h3, {\n children: "Penalties"\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsxs(_components.li, {\n children: ["External links: ", _jsx(_components.strong, {\n children: "30-50% reach reduction"\n })]\n }), "\\n", _jsxs(_components.li, {\n children: ["Multiple hashtags: ", _jsx(_components.strong, {\n children: "40% penalty"\n })]\n }), "\\n"]\n }), "\\n", _jsx(_components.h2, {\n children: "Thread Strategy"\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsx(_components.li, {\n children: "First tweet = hook (bold claim or surprising stat)"\n }), "\\n", _jsx(_components.li, {\n children: "5-10 tweets per thread"\n }), "\\n", _jsx(_components.li, {\n children: "Last tweet = CTA (follow for more, link to extended content)"\n }), "\\n", _jsx(_components.li, {\n children: "Reply to your own threads within the first hour to boost algorithmic velocity"\n }), "\\n"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
1175
1176
  "knowledge.youtube-channel-strategy": makeKnowledgeComponent(`"use strict";
1176
1177
  const {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];
1177
1178
  function _createMdxContent(props) {
@@ -1191,14 +1192,14 @@ function _createMdxContent(props) {
1191
1192
  }), "\\n", _jsxs(_components.p, {
1192
1193
  children: ["Build the \\"Alexander Le | Elevasis\\" YouTube channel as an evergreen discovery engine for Elevasis. YouTube is the ", _jsx(_components.strong, {
1193
1194
  children: "#1 content priority"
1194
- }), " \u2014 evergreen discovery, SEO compounding, and 53% of B2B buyers watch video before requesting demos."]
1195
+ }), " \xE2\u20AC\u201D evergreen discovery, SEO compounding, and 53% of B2B buyers watch video before requesting demos."]
1195
1196
  }), "\\n", _jsx(_components.h2, {
1196
1197
  children: "Channel Identity"
1197
1198
  }), "\\n", _jsxs(_components.ul, {
1198
1199
  children: ["\\n", _jsxs(_components.li, {
1199
1200
  children: [_jsx(_components.strong, {
1200
1201
  children: "Name:"
1201
- }), " \\"Alexander Le | Elevasis\\" \u2014 personal-brand hybrid with clear business association"]
1202
+ }), " \\"Alexander Le | Elevasis\\" \xE2\u20AC\u201D personal-brand hybrid with clear business association"]
1202
1203
  }), "\\n", _jsxs(_components.li, {
1203
1204
  children: [_jsx(_components.strong, {
1204
1205
  children: "Handle:"
@@ -1211,7 +1212,7 @@ function _createMdxContent(props) {
1211
1212
  }), " People subscribe to people. Algorithm favors creator-branded channels over faceless brands."]
1212
1213
  }), "\\n"]
1213
1214
  }), "\\n", _jsx(_components.h2, {
1214
- children: "Content Format: Face Bubble Intro \u2192 Screen Recording"
1215
+ children: "Content Format: Face Bubble Intro \xE2\u2020\u2019 Screen Recording"
1215
1216
  }), "\\n", _jsxs(_components.p, {
1216
1217
  children: [_jsx(_components.strong, {
1217
1218
  children: "Primary format:"
@@ -1222,7 +1223,7 @@ function _createMdxContent(props) {
1222
1223
  })
1223
1224
  }), "\\n", _jsxs(_components.ul, {
1224
1225
  children: ["\\n", _jsx(_components.li, {
1225
- children: "40%+ of YouTube's top 1,000 channels never show a presenter \u2014 faceless works"
1226
+ children: "40%+ of YouTube's top 1,000 channels never show a presenter \xE2\u20AC\u201D faceless works"
1226
1227
  }), "\\n", _jsx(_components.li, {
1227
1228
  children: "Screen recording tutorials rank extremely well on YouTube + Google"
1228
1229
  }), "\\n", _jsxs(_components.li, {
@@ -1240,7 +1241,7 @@ function _createMdxContent(props) {
1240
1241
  }), "\\n", _jsx(_components.li, {
1241
1242
  children: "\\"Document the build\\" format: record while building, editing, deploying"
1242
1243
  }), "\\n", _jsx(_components.li, {
1243
- children: "Show Command Center in action \u2014 no equivalent content exists"
1244
+ children: "Show Command Center in action \xE2\u20AC\u201D no equivalent content exists"
1244
1245
  }), "\\n"]
1245
1246
  }), "\\n", _jsx(_components.h2, {
1246
1247
  children: "Launch Queue"
@@ -1325,7 +1326,7 @@ function _createMdxContent(props) {
1325
1326
  }), "\\n", _jsxs(_components.li, {
1326
1327
  children: ["Use YouTube's ", _jsx(_components.strong, {
1327
1328
  children: "Test & Compare"
1328
- }), " \u2014 upload 3 thumbnails, YouTube A/B tests and reports CTR"]
1329
+ }), " \xE2\u20AC\u201D upload 3 thumbnails, YouTube A/B tests and reports CTR"]
1329
1330
  }), "\\n"]
1330
1331
  }), "\\n", _jsx(_components.h3, {
1331
1332
  children: "Description"
@@ -1337,7 +1338,7 @@ function _createMdxContent(props) {
1337
1338
  }), "\\n", _jsxs(_components.li, {
1338
1339
  children: ["Add ", _jsx(_components.strong, {
1339
1340
  children: "timestamps/chapters"
1340
- }), " \u2014 improve retention + create extra search ranking hooks"]
1341
+ }), " \xE2\u20AC\u201D improve retention + create extra search ranking hooks"]
1341
1342
  }), "\\n"]
1342
1343
  }), "\\n", _jsx(_components.h2, {
1343
1344
  children: "Shorts Strategy"
@@ -1359,7 +1360,7 @@ function _createMdxContent(props) {
1359
1360
  }), "\\n", _jsx(_components.li, {
1360
1361
  children: "Reply to every comment within the first 24 hours"
1361
1362
  }), "\\n", _jsx(_components.li, {
1362
- children: "Share in relevant communities (not spam \u2014 genuine value)"
1363
+ children: "Share in relevant communities (not spam \xE2\u20AC\u201D genuine value)"
1363
1364
  }), "\\n"]
1364
1365
  })]
1365
1366
  });
@@ -1377,7 +1378,7 @@ return {
1377
1378
  default: MDXContent
1378
1379
  };
1379
1380
  `),
1380
- "knowledge.youtube-growth-playbook": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n h2: "h2",\n li: "li",\n ol: "ol",\n p: "p",\n table: "table",\n tbody: "tbody",\n td: "td",\n th: "th",\n thead: "thead",\n tr: "tr",\n ul: "ul",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Overview"\n }), "\\n", _jsx(_components.p, {\n children: "This playbook maps YouTube growth tactics to the current Elevasis content format: screen recordings, Command Center walkthroughs, founder commentary, proof assets, and short clips cut from real demos."\n }), "\\n", _jsx(_components.p, {\n children: "The goal is to make real AI orchestration visible enough that buyers and technical peers understand what Elevasis does."\n }), "\\n", _jsx(_components.h2, {\n children: "Core Format"\n }), "\\n", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: "Format"\n }), _jsx(_components.th, {\n children: "Use For"\n }), _jsx(_components.th, {\n children: "Notes"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Face intro \u2192 screen recording"\n }), _jsx(_components.td, {\n children: "Flagship demos, founder-led walkthroughs"\n }), _jsx(_components.td, {\n children: "15-30 second intro, then full-screen product work"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Screen recording only"\n }), _jsx(_components.td, {\n children: "Tutorials, Shorts source material"\n }), _jsx(_components.td, {\n children: "Fastest to produce"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Data walkthrough"\n }), _jsx(_components.td, {\n children: "Campaign metrics, cost tracking, workflow results"\n }), _jsx(_components.td, {\n children: "Use only real data"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Concept explainer"\n }), _jsx(_components.td, {\n children: "AI agents, orchestration, human oversight"\n }), _jsx(_components.td, {\n children: "Keep tied to concrete business workflows"\n })]\n })]\n })]\n }), "\\n", _jsx(_components.h2, {\n children: "CTR Optimization"\n }), "\\n", _jsx(_components.p, {\n children: "Thumbnails should show the result or system, not abstract concepts:"\n }), "\\n", _jsxs(_components.ol, {\n children: ["\\n", _jsx(_components.li, {\n children: "Command Center, workflow graph, campaign analytics, or visible output"\n }), "\\n", _jsx(_components.li, {\n children: "Optional face overlay when it improves trust"\n }), "\\n", _jsx(_components.li, {\n children: "Three to five words of context. High contrast, readable at mobile size."\n }), "\\n"]\n }), "\\n", _jsx(_components.p, {\n children: "Title rules:"\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsx(_components.li, {\n children: "Front-load the topic"\n }), "\\n", _jsx(_components.li, {\n children: "Use real numbers only when current and verifiable"\n }), "\\n", _jsx(_components.li, {\n children: "Prefer \\"Watch\\", \\"Real\\", \\"Live\\", \\"Actual\\", \\"Walkthrough\\" over hype language"\n }), "\\n", _jsx(_components.li, {\n children: "Make the title and thumbnail say different things"\n }), "\\n"]\n }), "\\n", _jsx(_components.h2, {\n children: "Retention"\n }), "\\n", _jsx(_components.p, {\n children: "Open with the payoff:"\n }), "\\n", _jsxs(_components.ol, {\n children: ["\\n", _jsx(_components.li, {\n children: "Show the final dashboard, result, or workflow output"\n }), "\\n", _jsx(_components.li, {\n children: "Explain what the viewer is about to see"\n }), "\\n", _jsx(_components.li, {\n children: "Switch into the walkthrough quickly"\n }), "\\n"]\n }), "\\n", _jsx(_components.h2, {\n children: "First-24-Hour Workflow"\n }), "\\n", _jsx(_components.p, {\n children: "Algorithm watches first 30-60 minutes closely. A video getting 10 replies in 15 minutes dramatically outperforms one getting 10 replies over 24 hours."\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
1381
+ "knowledge.youtube-growth-playbook": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n h2: "h2",\n li: "li",\n ol: "ol",\n p: "p",\n table: "table",\n tbody: "tbody",\n td: "td",\n th: "th",\n thead: "thead",\n tr: "tr",\n ul: "ul",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Overview"\n }), "\\n", _jsx(_components.p, {\n children: "This playbook maps YouTube growth tactics to the current Elevasis content format: screen recordings, Command Center walkthroughs, founder commentary, proof assets, and short clips cut from real demos."\n }), "\\n", _jsx(_components.p, {\n children: "The goal is to make real AI orchestration visible enough that buyers and technical peers understand what Elevasis does."\n }), "\\n", _jsx(_components.h2, {\n children: "Core Format"\n }), "\\n", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: "Format"\n }), _jsx(_components.th, {\n children: "Use For"\n }), _jsx(_components.th, {\n children: "Notes"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Face intro \xE2\u2020\u2019 screen recording"\n }), _jsx(_components.td, {\n children: "Flagship demos, founder-led walkthroughs"\n }), _jsx(_components.td, {\n children: "15-30 second intro, then full-screen product work"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Screen recording only"\n }), _jsx(_components.td, {\n children: "Tutorials, Shorts source material"\n }), _jsx(_components.td, {\n children: "Fastest to produce"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Data walkthrough"\n }), _jsx(_components.td, {\n children: "Campaign metrics, cost tracking, workflow results"\n }), _jsx(_components.td, {\n children: "Use only real data"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Concept explainer"\n }), _jsx(_components.td, {\n children: "AI agents, orchestration, human oversight"\n }), _jsx(_components.td, {\n children: "Keep tied to concrete business workflows"\n })]\n })]\n })]\n }), "\\n", _jsx(_components.h2, {\n children: "CTR Optimization"\n }), "\\n", _jsx(_components.p, {\n children: "Thumbnails should show the result or system, not abstract concepts:"\n }), "\\n", _jsxs(_components.ol, {\n children: ["\\n", _jsx(_components.li, {\n children: "Command Center, workflow graph, campaign analytics, or visible output"\n }), "\\n", _jsx(_components.li, {\n children: "Optional face overlay when it improves trust"\n }), "\\n", _jsx(_components.li, {\n children: "Three to five words of context. High contrast, readable at mobile size."\n }), "\\n"]\n }), "\\n", _jsx(_components.p, {\n children: "Title rules:"\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsx(_components.li, {\n children: "Front-load the topic"\n }), "\\n", _jsx(_components.li, {\n children: "Use real numbers only when current and verifiable"\n }), "\\n", _jsx(_components.li, {\n children: "Prefer \\"Watch\\", \\"Real\\", \\"Live\\", \\"Actual\\", \\"Walkthrough\\" over hype language"\n }), "\\n", _jsx(_components.li, {\n children: "Make the title and thumbnail say different things"\n }), "\\n"]\n }), "\\n", _jsx(_components.h2, {\n children: "Retention"\n }), "\\n", _jsx(_components.p, {\n children: "Open with the payoff:"\n }), "\\n", _jsxs(_components.ol, {\n children: ["\\n", _jsx(_components.li, {\n children: "Show the final dashboard, result, or workflow output"\n }), "\\n", _jsx(_components.li, {\n children: "Explain what the viewer is about to see"\n }), "\\n", _jsx(_components.li, {\n children: "Switch into the walkthrough quickly"\n }), "\\n"]\n }), "\\n", _jsx(_components.h2, {\n children: "First-24-Hour Workflow"\n }), "\\n", _jsx(_components.p, {\n children: "Algorithm watches first 30-60 minutes closely. A video getting 10 replies in 15 minutes dramatically outperforms one getting 10 replies over 24 hours."\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
1381
1382
  "knowledge.youtube-mental-prep": makeKnowledgeComponent(`"use strict";
1382
1383
  const {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];
1383
1384
  function _createMdxContent(props) {
@@ -1394,7 +1395,7 @@ function _createMdxContent(props) {
1394
1395
  children: [_jsx(_components.h2, {
1395
1396
  children: "Why This Exists"
1396
1397
  }), "\\n", _jsx(_components.p, {
1397
- children: "Recording yourself and putting your ideas out publicly is genuinely uncomfortable. This doc captures the research and practical strategies so you can reference them when the anxiety spikes \u2014 not as motivation, but as evidence that the discomfort is normal, finite, and navigable."
1398
+ children: "Recording yourself and putting your ideas out publicly is genuinely uncomfortable. This doc captures the research and practical strategies so you can reference them when the anxiety spikes \xE2\u20AC\u201D not as motivation, but as evidence that the discomfort is normal, finite, and navigable."
1398
1399
  }), "\\n", _jsx(_components.h2, {
1399
1400
  children: "The Core Insight"
1400
1401
  }), "\\n", _jsxs(_components.p, {
@@ -1408,30 +1409,30 @@ function _createMdxContent(props) {
1408
1409
  }), "\\n", _jsxs(_components.p, {
1409
1410
  children: ["People overestimate how much others notice and judge them by roughly ", _jsx(_components.strong, {
1410
1411
  children: "2x"
1411
- }), ". Early videos get almost zero views \u2014 you're practicing in an empty room."]
1412
+ }), ". Early videos get almost zero views \xE2\u20AC\u201D you're practicing in an empty room."]
1412
1413
  }), "\\n", _jsx(_components.h3, {
1413
1414
  children: "The Five Common Fears (in order of prevalence)"
1414
1415
  }), "\\n", _jsxs(_components.ol, {
1415
1416
  children: ["\\n", _jsxs(_components.li, {
1416
1417
  children: [_jsx(_components.strong, {
1417
1418
  children: "Judgment from people you know"
1418
- }), " \u2014 not strangers. The #1 blocker."]
1419
+ }), " \xE2\u20AC\u201D not strangers. The #1 blocker."]
1419
1420
  }), "\\n", _jsxs(_components.li, {
1420
1421
  children: [_jsx(_components.strong, {
1421
1422
  children: "Perfectionism as procrastination"
1422
- }), " \u2014 \\"I'll start when I have better equipment.\\" This is avoidance."]
1423
+ }), " \xE2\u20AC\u201D \\"I'll start when I have better equipment.\\" This is avoidance."]
1423
1424
  }), "\\n", _jsxs(_components.li, {
1424
1425
  children: [_jsx(_components.strong, {
1425
1426
  children: "Impostor syndrome"
1426
- }), " \u2014 \\"Who am I to teach this?\\""]
1427
+ }), " \xE2\u20AC\u201D \\"Who am I to teach this?\\""]
1427
1428
  }), "\\n", _jsxs(_components.li, {
1428
1429
  children: [_jsx(_components.strong, {
1429
1430
  children: "Permanence anxiety"
1430
- }), " \u2014 \\"This will be on the internet forever\\""]
1431
+ }), " \xE2\u20AC\u201D \\"This will be on the internet forever\\""]
1431
1432
  }), "\\n", _jsxs(_components.li, {
1432
1433
  children: [_jsx(_components.strong, {
1433
1434
  children: "Voice/face aversion"
1434
- }), " \u2014 Most people dislike their recorded voice (bone conduction gap)"]
1435
+ }), " \xE2\u20AC\u201D Most people dislike their recorded voice (bone conduction gap)"]
1435
1436
  }), "\\n"]
1436
1437
  }), "\\n", _jsx(_components.h3, {
1437
1438
  children: "The Real Fear: Cringe"
@@ -1441,11 +1442,11 @@ function _createMdxContent(props) {
1441
1442
  children: "Graduated Exposure Protocol"
1442
1443
  }), "\\n", _jsxs(_components.ol, {
1443
1444
  children: ["\\n", _jsx(_components.li, {
1444
- children: "Screen recording only (no face, no voice) \u2014 2 videos"
1445
+ children: "Screen recording only (no face, no voice) \xE2\u20AC\u201D 2 videos"
1445
1446
  }), "\\n", _jsx(_components.li, {
1446
- children: "Screen recording + voiceover (no face) \u2014 5 videos"
1447
+ children: "Screen recording + voiceover (no face) \xE2\u20AC\u201D 5 videos"
1447
1448
  }), "\\n", _jsx(_components.li, {
1448
- children: "Face bubble intro (15-30s) + screen recording \u2014 ongoing"
1449
+ children: "Face bubble intro (15-30s) + screen recording \xE2\u20AC\u201D ongoing"
1449
1450
  }), "\\n"]
1450
1451
  }), "\\n", _jsx(_components.p, {
1451
1452
  children: "Each stage desensitizes one fear at a time. Never skip ahead. The goal is consistency, not perfection."
@@ -1465,8 +1466,8 @@ return {
1465
1466
  default: MDXContent
1466
1467
  };
1467
1468
  `),
1468
- "knowledge.what-is-elevasis": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n h2: "h2",\n h3: "h3",\n li: "li",\n p: "p",\n strong: "strong",\n ul: "ul",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Executive Summary"\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Company:"\n }), " Bootstrapped AI orchestration platform for done-for-you business automation"]\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Founder:"\n }), " Solo (Alex, 34), bootstrapped"]\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Market:"\n }), " Service-based SMBs that need practical AI automation without building internal AI teams"]\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "GTM:"\n }), " Content-led marketing, proof assets, consultative sales, and land-and-expand pricing"]\n }), "\\n", _jsx(_components.h2, {\n children: "Company Overview"\n }), "\\n", _jsx(_components.h3, {\n children: "Current Status"\n }), "\\n", _jsx(_components.p, {\n children: "The platform core is production-ready enough to support client-facing demonstrations and implementation work. Current business focus is client acquisition, proof-building, and turning the platform into a repeatable service delivery system."\n }), "\\n", _jsx(_components.h3, {\n children: "Founder Profile"\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Alex, 34"\n }), " \u2014 Solo founder with software engineering background (BSCS degree). Previous: Ecommerce platforms, Streaming technology. No formal AI background \u2014 practitioner, not academic."]\n }), "\\n", _jsx(_components.h3, {\n children: "What We Are"\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Operating layer for AI automation."\n }), " We help SMBs operate with closed-loop feedback, decision capture, and continuous learning \u2014 at SMB pricing with done-for-you implementation (NOT self-service)."]\n }), "\\n", _jsx(_components.h3, {\n children: "Target Market"\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "ICP:"\n }), " Service-based SMBs (2-50 employees, USA, $200K-$5M revenue)"]\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Core Pain:"\n }), " Capacity crisis, pipeline problems, operational chaos, growth blockers \u2014 too busy serving clients to grow their own business."]\n }), "\\n", _jsx(_components.h3, {\n children: "Pricing (Land-and-Expand)"\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsx(_components.li, {\n children: "Tier 1 \u2014 Foundation (1-2 workflows): $500-2k/mo"\n }), "\\n", _jsx(_components.li, {\n children: "Tier 2 \u2014 Scaled Operations (3-5 workflows): $2k-5k/mo"\n }), "\\n", _jsx(_components.li, {\n children: "Tier 3 \u2014 AI-Powered Systems (6+ workflows): $5k-15k+/mo"\n }), "\\n"]\n }), "\\n", _jsx(_components.p, {\n children: "Additional workflows cost less due to shared infrastructure."\n }), "\\n", _jsx(_components.h3, {\n children: "Value Proposition"\n }), "\\n", _jsx(_components.p, {\n children: "\\"We find one bottleneck in your business, build an AI solution to fix it, and you only pay if it actually saves you time or makes you money.\\""\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
1469
- "knowledge.platform-systems-overview": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: "code",\n h2: "h2",\n h3: "h3",\n p: "p",\n strong: "strong",\n table: "table",\n tbody: "tbody",\n td: "td",\n th: "th",\n thead: "thead",\n tr: "tr",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Overview"\n }), "\\n", _jsx(_components.p, {\n children: "Elevasis is a production AI orchestration platform that coordinates workflows, autonomous agents, and human approvals into a unified operating layer for SMBs. Everything described below is implemented and running in production."\n }), "\\n", _jsx(_components.p, {\n children: _jsx(_components.strong, {\n children: "Core Architecture:"\n })\n }), "\\n", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: "Layer"\n }), _jsx(_components.th, {\n children: "What It Does"\n }), _jsx(_components.th, {\n children: "Key Components"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Execution"\n })\n }), _jsx(_components.td, {\n children: "Runs workflows and agents with schema validation"\n }), _jsx(_components.td, {\n children: "Workflow Engine, Agent Framework, Execution Runner"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Control"\n })\n }), _jsx(_components.td, {\n children: "Human oversight, approvals, and decision capture"\n }), _jsx(_components.td, {\n children: "Command Queue (HITL), Dynamic Forms, Action System"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Intelligence"\n })\n }), _jsx(_components.td, {\n children: "Autonomous reasoning, tool use, and memory management"\n }), _jsx(_components.td, {\n children: "ReAct Agents, Knowledge Map, Session Memory"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Observability"\n })\n }), _jsx(_components.td, {\n children: "Real-time visibility into cost, performance, and health"\n }), _jsx(_components.td, {\n children: "Cost Tracking, Metrics, Activity Log, SSE Streaming"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Platform"\n })\n }), _jsx(_components.td, {\n children: "Multi-tenancy, security, scheduling, integrations"\n }), _jsx(_components.td, {\n children: "Registry, RLS, Scheduler, Credential Vault, SDK"\n })]\n })]\n })]\n }), "\\n", _jsx(_components.h2, {\n children: "Execution Engine"\n }), "\\n", _jsx(_components.h3, {\n children: "AI Workflows"\n }), "\\n", _jsx(_components.p, {\n children: "Graph-based workflow execution with schema-validated steps and conditional routing. Steps define explicit routing: linear, conditional (rule-based branching), or terminal. Context flows through the entire workflow."\n }), "\\n", _jsx(_components.h3, {\n children: "Autonomous Agents"\n }), "\\n", _jsx(_components.p, {\n children: "Production-grade ReAct-style agents with tool use, memory management, and security hardening."\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "LLM Provider Support:"\n }), " OpenAI (GPT-5), Google (Gemini 3 Flash), Anthropic (Claude Sonnet 4.5), OpenRouter (GLM-5)"]\n }), "\\n", _jsx(_components.h2, {\n children: "Human-in-the-Loop (HITL)"\n }), "\\n", _jsx(_components.p, {\n children: "The Command Queue surfaces pending approvals as structured tasks. Admin reviews, approves or edits, and the workflow continues. Every critical decision \u2014 sending emails to prospects, updating customer records, publishing content \u2014 requires human approval."\n }), "\\n", _jsx(_components.h2, {\n children: "Knowledge Map"\n }), "\\n", _jsx(_components.p, {\n children: "Organizational knowledge loaded lazily into agent context. 80-95% token savings vs. always-loading full context. Nodes link to features, teams, and other nodes."\n }), "\\n", _jsx(_components.h2, {\n children: "Integrations (13 active)"\n }), "\\n", _jsx(_components.p, {\n children: "Attio CRM, Cal.com, Instantly (cold email), Resend, Apify, Google Maps, Tomba, Mails.so, Supabase, Stripe, OpenAI, Google Gemini, Anthropic Claude."\n }), "\\n", _jsx(_components.h2, {\n children: "SDK"\n }), "\\n", _jsxs(_components.p, {\n children: ["TypeScript-based resource development with local testing, validation, and deployment pipeline. External consumers define workflows and agents in their own repos and deploy via ", _jsx(_components.code, {\n children: "elevasis-sdk deploy"\n }), "."]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
1469
+ "knowledge.what-is-elevasis": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n h2: "h2",\n h3: "h3",\n li: "li",\n p: "p",\n strong: "strong",\n ul: "ul",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Executive Summary"\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Company:"\n }), " Bootstrapped AI orchestration platform for done-for-you business automation"]\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Founder:"\n }), " Solo (Alex, 34), bootstrapped"]\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Market:"\n }), " Service-based SMBs that need practical AI automation without building internal AI teams"]\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "GTM:"\n }), " Content-led marketing, proof assets, consultative sales, and land-and-expand pricing"]\n }), "\\n", _jsx(_components.h2, {\n children: "Company Overview"\n }), "\\n", _jsx(_components.h3, {\n children: "Current Status"\n }), "\\n", _jsx(_components.p, {\n children: "The platform core is production-ready enough to support client-facing demonstrations and implementation work. Current business focus is client acquisition, proof-building, and turning the platform into a repeatable service delivery system."\n }), "\\n", _jsx(_components.h3, {\n children: "Founder Profile"\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Alex, 34"\n }), " \xE2\u20AC\u201D Solo founder with software engineering background (BSCS degree). Previous: Ecommerce platforms, Streaming technology. No formal AI background \xE2\u20AC\u201D practitioner, not academic."]\n }), "\\n", _jsx(_components.h3, {\n children: "What We Are"\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Operating layer for AI automation."\n }), " We help SMBs operate with closed-loop feedback, decision capture, and continuous learning \xE2\u20AC\u201D at SMB pricing with done-for-you implementation (NOT self-service)."]\n }), "\\n", _jsx(_components.h3, {\n children: "Target Market"\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "ICP:"\n }), " Service-based SMBs (2-50 employees, USA, $200K-$5M revenue)"]\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "Core Pain:"\n }), " Capacity crisis, pipeline problems, operational chaos, growth blockers \xE2\u20AC\u201D too busy serving clients to grow their own business."]\n }), "\\n", _jsx(_components.h3, {\n children: "Pricing (Land-and-Expand)"\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsx(_components.li, {\n children: "Tier 1 \xE2\u20AC\u201D Foundation (1-2 workflows): $500-2k/mo"\n }), "\\n", _jsx(_components.li, {\n children: "Tier 2 \xE2\u20AC\u201D Scaled Operations (3-5 workflows): $2k-5k/mo"\n }), "\\n", _jsx(_components.li, {\n children: "Tier 3 \xE2\u20AC\u201D AI-Powered Systems (6+ workflows): $5k-15k+/mo"\n }), "\\n"]\n }), "\\n", _jsx(_components.p, {\n children: "Additional workflows cost less due to shared infrastructure."\n }), "\\n", _jsx(_components.h3, {\n children: "Value Proposition"\n }), "\\n", _jsx(_components.p, {\n children: "\\"We find one bottleneck in your business, build an AI solution to fix it, and you only pay if it actually saves you time or makes you money.\\""\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
1470
+ "knowledge.platform-systems-overview": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: "code",\n h2: "h2",\n h3: "h3",\n p: "p",\n strong: "strong",\n table: "table",\n tbody: "tbody",\n td: "td",\n th: "th",\n thead: "thead",\n tr: "tr",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n children: "Overview"\n }), "\\n", _jsx(_components.p, {\n children: "Elevasis is a production AI orchestration platform that coordinates workflows, autonomous agents, and human approvals into a unified operating layer for SMBs. Everything described below is implemented and running in production."\n }), "\\n", _jsx(_components.p, {\n children: _jsx(_components.strong, {\n children: "Core Architecture:"\n })\n }), "\\n", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: "Layer"\n }), _jsx(_components.th, {\n children: "What It Does"\n }), _jsx(_components.th, {\n children: "Key Components"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Execution"\n })\n }), _jsx(_components.td, {\n children: "Runs workflows and agents with schema validation"\n }), _jsx(_components.td, {\n children: "Workflow Engine, Agent Framework, Execution Runner"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Control"\n })\n }), _jsx(_components.td, {\n children: "Human oversight, approvals, and decision capture"\n }), _jsx(_components.td, {\n children: "Command Queue (HITL), Dynamic Forms, Action System"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Intelligence"\n })\n }), _jsx(_components.td, {\n children: "Autonomous reasoning, tool use, and memory management"\n }), _jsx(_components.td, {\n children: "ReAct Agents, Knowledge Map, Session Memory"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Observability"\n })\n }), _jsx(_components.td, {\n children: "Real-time visibility into cost, performance, and health"\n }), _jsx(_components.td, {\n children: "Cost Tracking, Metrics, Activity Log, SSE Streaming"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.strong, {\n children: "Platform"\n })\n }), _jsx(_components.td, {\n children: "Multi-tenancy, security, scheduling, integrations"\n }), _jsx(_components.td, {\n children: "Registry, RLS, Scheduler, Credential Vault, SDK"\n })]\n })]\n })]\n }), "\\n", _jsx(_components.h2, {\n children: "Execution Engine"\n }), "\\n", _jsx(_components.h3, {\n children: "AI Workflows"\n }), "\\n", _jsx(_components.p, {\n children: "Graph-based workflow execution with schema-validated steps and conditional routing. Steps define explicit routing: linear, conditional (rule-based branching), or terminal. Context flows through the entire workflow."\n }), "\\n", _jsx(_components.h3, {\n children: "Autonomous Agents"\n }), "\\n", _jsx(_components.p, {\n children: "Production-grade ReAct-style agents with tool use, memory management, and security hardening."\n }), "\\n", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: "LLM Provider Support:"\n }), " OpenAI (GPT-5), Google (Gemini 3 Flash), Anthropic (Claude Sonnet 4.5), OpenRouter (GLM-5)"]\n }), "\\n", _jsx(_components.h2, {\n children: "Human-in-the-Loop (HITL)"\n }), "\\n", _jsx(_components.p, {\n children: "The Command Queue surfaces pending approvals as structured tasks. Admin reviews, approves or edits, and the workflow continues. Every critical decision \xE2\u20AC\u201D sending emails to prospects, updating customer records, publishing content \xE2\u20AC\u201D requires human approval."\n }), "\\n", _jsx(_components.h2, {\n children: "Knowledge Map"\n }), "\\n", _jsx(_components.p, {\n children: "Organizational knowledge loaded lazily into agent context. 80-95% token savings vs. always-loading full context. Nodes link to features, teams, and other nodes."\n }), "\\n", _jsx(_components.h2, {\n children: "Integrations (13 active)"\n }), "\\n", _jsx(_components.p, {\n children: "Attio CRM, Cal.com, Instantly (cold email), Resend, Apify, Google Maps, Tomba, Mails.so, Supabase, Stripe, OpenAI, Google Gemini, Anthropic Claude."\n }), "\\n", _jsx(_components.h2, {\n children: "SDK"\n }), "\\n", _jsxs(_components.p, {\n children: ["TypeScript-based resource development with local testing, validation, and deployment pipeline. External consumers define workflows and agents in their own repos and deploy via ", _jsx(_components.code, {\n children: "elevasis-sdk deploy"\n }), "."]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
1470
1471
  "knowledge.client-testimonials": makeKnowledgeComponent(`"use strict";
1471
1472
  const {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];
1472
1473
  function _createMdxContent(props) {
@@ -1491,7 +1492,7 @@ function _createMdxContent(props) {
1491
1492
  }), "\\n", _jsx(_components.h2, {
1492
1493
  children: "Testimonials"
1493
1494
  }), "\\n", _jsx(_components.h3, {
1494
- children: "Xero Automation \u2014 The Invoice Chase That Disappeared"
1495
+ children: "Xero Automation \xE2\u20AC\u201D The Invoice Chase That Disappeared"
1495
1496
  }), "\\n", _jsxs(_components.p, {
1496
1497
  children: [_jsx(_components.strong, {
1497
1498
  children: "Client:"
@@ -1509,7 +1510,7 @@ function _createMdxContent(props) {
1509
1510
  children: "Permission:"
1510
1511
  }), " Case study approved with company name."]
1511
1512
  }), "\\n", _jsx(_components.h3, {
1512
- children: "Influencer Discovery \u2014 From Spreadsheet Hell to Strategic Decisions"
1513
+ children: "Influencer Discovery \xE2\u20AC\u201D From Spreadsheet Hell to Strategic Decisions"
1513
1514
  }), "\\n", _jsxs(_components.p, {
1514
1515
  children: [_jsx(_components.strong, {
1515
1516
  children: "Client:"
@@ -1527,7 +1528,7 @@ function _createMdxContent(props) {
1527
1528
  children: "Permission:"
1528
1529
  }), " Case study approved with company name."]
1529
1530
  }), "\\n", _jsx(_components.h3, {
1530
- children: "EMRG Media \u2014 4 Automations for NYC's Premier Events Firm"
1531
+ children: "EMRG Media \xE2\u20AC\u201D 4 Automations for NYC's Premier Events Firm"
1531
1532
  }), "\\n", _jsxs(_components.p, {
1532
1533
  children: [_jsx(_components.strong, {
1533
1534
  children: "Client:"
@@ -1540,19 +1541,19 @@ function _createMdxContent(props) {
1540
1541
  children: ["\\n", _jsxs(_components.li, {
1541
1542
  children: [_jsx(_components.strong, {
1542
1543
  children: "Case Study Generator"
1543
- }), " \u2014 7-10 hours \u2192 2 hours. Publication rate: 1/quarter \u2192 2/month."]
1544
+ }), " \xE2\u20AC\u201D 7-10 hours \xE2\u2020\u2019 2 hours. Publication rate: 1/quarter \xE2\u2020\u2019 2/month."]
1544
1545
  }), "\\n", _jsxs(_components.li, {
1545
1546
  children: [_jsx(_components.strong, {
1546
1547
  children: "EMRG Follow-Up Generator"
1547
- }), " \u2014 Automated post-event follow-ups with signature management."]
1548
+ }), " \xE2\u20AC\u201D Automated post-event follow-ups with signature management."]
1548
1549
  }), "\\n", _jsxs(_components.li, {
1549
1550
  children: [_jsx(_components.strong, {
1550
1551
  children: "Event Sponsor Tracker"
1551
- }), " \u2014 Automated sponsor pipeline tracking and communications."]
1552
+ }), " \xE2\u20AC\u201D Automated sponsor pipeline tracking and communications."]
1552
1553
  }), "\\n", _jsxs(_components.li, {
1553
1554
  children: [_jsx(_components.strong, {
1554
1555
  children: "Lead Scraper"
1555
- }), " \u2014 Automated discovery of event planning prospects."]
1556
+ }), " \xE2\u20AC\u201D Automated discovery of event planning prospects."]
1556
1557
  }), "\\n"]
1557
1558
  }), "\\n", _jsx(_components.p, {
1558
1559
  children: _jsx(_components.strong, {
@@ -1586,7 +1587,7 @@ return {
1586
1587
  default: MDXContent
1587
1588
  };
1588
1589
  `),
1589
- "knowledge.understanding-elevasis": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n h2: "h2",\n li: "li",\n p: "p",\n strong: "strong",\n table: "table",\n tbody: "tbody",\n td: "td",\n th: "th",\n thead: "thead",\n tr: "tr",\n ul: "ul",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: "Lean documentation explaining what Elevasis is and what the platform can do. This section provides the foundational context for business conversations and technical evaluation."\n }), "\\n", _jsx(_components.p, {\n children: "Elevasis is a done-for-you AI automation service backed by a production-grade platform. The company targets service-based SMBs (2-50 employees, $200K-$5M revenue) who are too busy serving clients to grow their own business."\n }), "\\n", _jsx(_components.h2, {\n children: "Key Facts"\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Stage:"\n }), " Pre-revenue, platform 100% complete, client acquisition active"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Offer:"\n }), " Done-for-you AI automation -- we build and maintain the workflows, no coding required"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "ICP:"\n }), " Service-based SMBs (2-50 employees, $200K-$5M revenue, USA)"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Pricing:"\n }), " $500-$2k/mo (Foundation) \u2192 $2k-$5k/mo (Scaled) \u2192 $5k-$15k+/mo (AI-Powered)"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Market:"\n }), " Early Adopters stage, $23.77B TAM growing to $87.7B by 2032"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Competitive position:"\n }), " No dominant done-for-you SMB AI provider exists; blue ocean"]\n }), "\\n"]\n }), "\\n", _jsx(_components.h2, {\n children: "When to Use Each Document"\n }), "\\n", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: "Situation"\n }), _jsx(_components.th, {\n children: "Document"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "First conversation with any audience"\n }), _jsx(_components.td, {\n children: "What is Elevasis"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Technical evaluation or demo prep"\n }), _jsx(_components.td, {\n children: "Platform Systems Overview"\n })]\n })]\n })]\n }), "\\n", _jsx(_components.h2, {\n children: "Documentation"\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "What is Elevasis"\n }), " \u2014 AI orchestration platform overview, company stage, value proposition, and pricing tiers"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Platform Systems Overview"\n }), " \u2014 Authoritative overview of what is built, what each system does, and how the pieces fit together"]\n }), "\\n"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
1590
+ "knowledge.understanding-elevasis": makeKnowledgeComponent('"use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n h2: "h2",\n li: "li",\n p: "p",\n strong: "strong",\n table: "table",\n tbody: "tbody",\n td: "td",\n th: "th",\n thead: "thead",\n tr: "tr",\n ul: "ul",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: "Lean documentation explaining what Elevasis is and what the platform can do. This section provides the foundational context for business conversations and technical evaluation."\n }), "\\n", _jsx(_components.p, {\n children: "Elevasis is a done-for-you AI automation service backed by a production-grade platform. The company targets service-based SMBs (2-50 employees, $200K-$5M revenue) who are too busy serving clients to grow their own business."\n }), "\\n", _jsx(_components.h2, {\n children: "Key Facts"\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Stage:"\n }), " Pre-revenue, platform 100% complete, client acquisition active"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Offer:"\n }), " Done-for-you AI automation -- we build and maintain the workflows, no coding required"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "ICP:"\n }), " Service-based SMBs (2-50 employees, $200K-$5M revenue, USA)"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Pricing:"\n }), " $500-$2k/mo (Foundation) \xE2\u2020\u2019 $2k-$5k/mo (Scaled) \xE2\u2020\u2019 $5k-$15k+/mo (AI-Powered)"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Market:"\n }), " Early Adopters stage, $23.77B TAM growing to $87.7B by 2032"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Competitive position:"\n }), " No dominant done-for-you SMB AI provider exists; blue ocean"]\n }), "\\n"]\n }), "\\n", _jsx(_components.h2, {\n children: "When to Use Each Document"\n }), "\\n", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: "Situation"\n }), _jsx(_components.th, {\n children: "Document"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "First conversation with any audience"\n }), _jsx(_components.td, {\n children: "What is Elevasis"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: "Technical evaluation or demo prep"\n }), _jsx(_components.td, {\n children: "Platform Systems Overview"\n })]\n })]\n })]\n }), "\\n", _jsx(_components.h2, {\n children: "Documentation"\n }), "\\n", _jsxs(_components.ul, {\n children: ["\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "What is Elevasis"\n }), " \xE2\u20AC\u201D AI orchestration platform overview, company stage, value proposition, and pricing tiers"]\n }), "\\n", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: "Platform Systems Overview"\n }), " \xE2\u20AC\u201D Authoritative overview of what is built, what each system does, and how the pieces fit together"]\n }), "\\n"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n'),
1590
1591
  "knowledge.marketing-overview": makeKnowledgeComponent(`"use strict";
1591
1592
  const {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];
1592
1593
  function _createMdxContent(props) {
@@ -1610,12 +1611,12 @@ function _createMdxContent(props) {
1610
1611
  children: ["\\n", _jsxs(_components.li, {
1611
1612
  children: [_jsx(_components.strong, {
1612
1613
  children: "Overview"
1613
- }), " \u2014 Channel strategy, inbound content system, and proof-led demand generation"]
1614
+ }), " \xE2\u20AC\u201D Channel strategy, inbound content system, and proof-led demand generation"]
1614
1615
  }), "\\n"]
1615
1616
  }), "\\n", _jsx(_components.h3, {
1616
1617
  children: "Website"
1617
1618
  }), "\\n", _jsx(_components.p, {
1618
- children: "The marketing website's technical infrastructure, setup, and SEO docs now live under Architecture \u2192 Website."
1619
+ children: "The marketing website's technical infrastructure, setup, and SEO docs now live under Architecture \xE2\u2020\u2019 Website."
1619
1620
  })]
1620
1621
  });
1621
1622
  }
@@ -1658,7 +1659,7 @@ function _createMdxContent(props) {
1658
1659
  children: "Principle:"
1659
1660
  }), " AI must work with your existing tools, not replace them."]
1660
1661
  }), "\\n", _jsx(_components.p, {
1661
- children: "AI that doesn't connect to your CRM, your email, your calendar, your existing workflows is a toy. Real AI automation works WITH what you already have \u2014 not instead of it."
1662
+ children: "AI that doesn't connect to your CRM, your email, your calendar, your existing workflows is a toy. Real AI automation works WITH what you already have \xE2\u20AC\u201D not instead of it."
1662
1663
  }), "\\n", _jsxs(_components.ul, {
1663
1664
  children: ["\\n", _jsx(_components.li, {
1664
1665
  children: "Your 50 Zapier workflows keep running"
@@ -1678,7 +1679,7 @@ function _createMdxContent(props) {
1678
1679
  children: "Principle:"
1679
1680
  }), " AI must learn from every decision and improve continuously."]
1680
1681
  }), "\\n", _jsx(_components.p, {
1681
- children: "Static automation is just fancy if-then logic. Real AI captures every approval, rejection, and edit \u2014 then uses that data to get smarter."
1682
+ children: "Static automation is just fancy if-then logic. Real AI captures every approval, rejection, and edit \xE2\u20AC\u201D then uses that data to get smarter."
1682
1683
  }), "\\n", _jsxs(_components.p, {
1683
1684
  children: [_jsx(_components.strong, {
1684
1685
  children: "The anti-pattern:"
@@ -1690,7 +1691,7 @@ function _createMdxContent(props) {
1690
1691
  children: "Principle:"
1691
1692
  }), " You must be able to see what AI systems are doing in real-time."]
1692
1693
  }), "\\n", _jsx(_components.p, {
1693
- children: "Black-box automation is unacceptable for business operations. You need to see every action, every decision, every cost \u2014 as it happens."
1694
+ children: "Black-box automation is unacceptable for business operations. You need to see every action, every decision, every cost \xE2\u20AC\u201D as it happens."
1694
1695
  }), "\\n", _jsxs(_components.ul, {
1695
1696
  children: ["\\n", _jsx(_components.li, {
1696
1697
  children: "Real-time activity feeds showing what's executing"
@@ -1712,7 +1713,7 @@ function _createMdxContent(props) {
1712
1713
  children: "Principle:"
1713
1714
  }), " Humans must approve important actions before execution."]
1714
1715
  }), "\\n", _jsx(_components.p, {
1715
- children: "AI should handle the grunt work. But critical decisions \u2014 sending emails to prospects, updating customer records, publishing content \u2014 require human approval."
1716
+ children: "AI should handle the grunt work. But critical decisions \xE2\u20AC\u201D sending emails to prospects, updating customer records, publishing content \xE2\u20AC\u201D require human approval."
1716
1717
  }), "\\n", _jsxs(_components.ul, {
1717
1718
  children: ["\\n", _jsx(_components.li, {
1718
1719
  children: "AI researches 50 prospects and drafts personalized emails"
@@ -2231,7 +2232,7 @@ function _createMdxContent(props) {
2231
2232
  }), "\\n", _jsx(_components.pre, {
2232
2233
  children: _jsx(_components.code, {
2233
2234
  className: "language-text",
2234
- children: "q{NN}-{slug}.mdx\\ncandidate-{slug}.mdx\\nsummary.mdx\\n"
2235
+ children: "q{NN}-{slug}.mdx\\r\\ncandidate-{slug}.mdx\\r\\nsummary.mdx\\n"
2235
2236
  })
2236
2237
  }), "\\n", _jsxs(_components.p, {
2237
2238
  children: ["Use active-query filenames such as ", _jsx(_components.code, {
@@ -3242,7 +3243,7 @@ function _createMdxContent(props) {
3242
3243
  }), "\\n", _jsx(_components.pre, {
3243
3244
  children: _jsx(_components.code, {
3244
3245
  className: "language-text",
3245
- children: "Video: 1920x1080, 60fps, NV12, Rec. 709 Partial\\nEncode: NVENC H.264, CQP 18, P5 preset, High profile\\nFormat: MKV with automatic remux to MP4\\nAudio: 48 kHz stereo, 320 kbps AAC, mixed plus mic-only tracks\\nCamera: Insta360 Link 2C at 1080p60 with circle mask\\nScenes: Face + Screen on F5, Screen Only on F6\\n"
3246
+ children: "Video: 1920x1080, 60fps, NV12, Rec. 709 Partial\\r\\nEncode: NVENC H.264, CQP 18, P5 preset, High profile\\r\\nFormat: MKV with automatic remux to MP4\\r\\nAudio: 48 kHz stereo, 320 kbps AAC, mixed plus mic-only tracks\\r\\nCamera: Insta360 Link 2C at 1080p60 with circle mask\\r\\nScenes: Face + Screen on F5, Screen Only on F6\\n"
3246
3247
  })
3247
3248
  }), "\\n", _jsx(_components.p, {
3248
3249
  children: "Prefer 1080p60 over 4K30 for screen recordings. Smooth cursor motion, scrolling, typing, and app transitions matter more than pixel density, and most viewers watch at 1080p or below. 4K30 produces larger files, slower editing, and visibly choppier screen motion."
@@ -3264,7 +3265,7 @@ function _createMdxContent(props) {
3264
3265
  }), "\\n", _jsx(_components.pre, {
3265
3266
  children: _jsx(_components.code, {
3266
3267
  className: "language-text",
3267
- children: "Settings > Output > Output Mode: Advanced\\nRecording Tab:\\n Type: Standard\\n Recording Format: mkv\\n Encoder: NVIDIA NVENC H.264\\n Rate Control: CQP\\n CQ Level: 18\\n Keyframe Interval: 2\\n Preset: P5 (Slow)\\n Profile: high\\n Look-ahead: checked\\n Psycho Visual Tuning: checked\\n Max B-frames: 2\\n"
3268
+ children: "Settings > Output > Output Mode: Advanced\\r\\nRecording Tab:\\r\\n Type: Standard\\r\\n Recording Format: mkv\\r\\n Encoder: NVIDIA NVENC H.264\\r\\n Rate Control: CQP\\r\\n CQ Level: 18\\r\\n Keyframe Interval: 2\\r\\n Preset: P5 (Slow)\\r\\n Profile: high\\r\\n Look-ahead: checked\\r\\n Psycho Visual Tuning: checked\\r\\n Max B-frames: 2\\n"
3268
3269
  })
3269
3270
  }), "\\n", _jsx(_components.p, {
3270
3271
  children: "CQP 18 is the stable quality target for screen content. It is visually lossless for this use case and gives YouTube a high-quality source before its VP9 or AV1 re-encode."
@@ -3285,7 +3286,7 @@ function _createMdxContent(props) {
3285
3286
  }), "\\n", _jsx(_components.pre, {
3286
3287
  children: _jsx(_components.code, {
3287
3288
  className: "language-text",
3288
- children: "Output > Advanced > Audio:\\n Track 1: 320 kbps\\n Track 2: 320 kbps\\n"
3289
+ children: "Output > Advanced > Audio:\\r\\n Track 1: 320 kbps\\r\\n Track 2: 320 kbps\\n"
3289
3290
  })
3290
3291
  }), "\\n", _jsx(_components.h2, {
3291
3292
  children: "Video Settings"
@@ -3294,14 +3295,14 @@ function _createMdxContent(props) {
3294
3295
  }), "\\n", _jsx(_components.pre, {
3295
3296
  children: _jsx(_components.code, {
3296
3297
  className: "language-text",
3297
- children: "Settings > Video:\\n Base (Canvas) Resolution: 1920x1080\\n Output (Scaled) Resolution: 1920x1080\\n Downscale Filter: Lanczos (36 samples)\\n Common FPS Values: 60\\n"
3298
+ children: "Settings > Video:\\r\\n Base (Canvas) Resolution: 1920x1080\\r\\n Output (Scaled) Resolution: 1920x1080\\r\\n Downscale Filter: Lanczos (36 samples)\\r\\n Common FPS Values: 60\\n"
3298
3299
  })
3299
3300
  }), "\\n", _jsx(_components.p, {
3300
3301
  children: "Use Rec. 709 limited-range color:"
3301
3302
  }), "\\n", _jsx(_components.pre, {
3302
3303
  children: _jsx(_components.code, {
3303
3304
  className: "language-text",
3304
- children: "Settings > Advanced:\\n Color Format: NV12\\n Color Space: 709\\n Color Range: Partial\\n"
3305
+ children: "Settings > Advanced:\\r\\n Color Format: NV12\\r\\n Color Space: 709\\r\\n Color Range: Partial\\n"
3305
3306
  })
3306
3307
  }), "\\n", _jsx(_components.p, {
3307
3308
  children: "YouTube expects Rec. 709 limited range. Full range can produce washed-out or overly contrasty results after processing."
@@ -3340,7 +3341,7 @@ function _createMdxContent(props) {
3340
3341
  }), "\\n", _jsx(_components.pre, {
3341
3342
  children: _jsx(_components.code, {
3342
3343
  className: "language-text",
3343
- children: "Settings > Audio:\\n Sample Rate: 48 kHz\\n Channels: Stereo\\n Desktop Audio: Default\\n Mic/Auxiliary Audio: Focusrite USB Audio (Scarlett 2i2)\\n"
3344
+ children: "Settings > Audio:\\r\\n Sample Rate: 48 kHz\\r\\n Channels: Stereo\\r\\n Desktop Audio: Default\\r\\n Mic/Auxiliary Audio: Focusrite USB Audio (Scarlett 2i2)\\n"
3344
3345
  })
3345
3346
  }), "\\n", _jsx(_components.p, {
3346
3347
  children: "Set the Focusrite input in Windows before recording:"
@@ -3419,7 +3420,7 @@ function _createMdxContent(props) {
3419
3420
  }), "\\n", _jsx(_components.pre, {
3420
3421
  children: _jsx(_components.code, {
3421
3422
  className: "language-text",
3422
- children: "Settings > Output > Advanced > Recording Tab:\\n Audio Track: check 1 and 2\\n"
3423
+ children: "Settings > Output > Advanced > Recording Tab:\\r\\n Audio Track: check 1 and 2\\n"
3423
3424
  })
3424
3425
  }), "\\n", _jsxs(_components.p, {
3425
3426
  children: ["Route tracks in ", _jsx(_components.code, {
@@ -3484,7 +3485,7 @@ function _createMdxContent(props) {
3484
3485
  }), "\\n", _jsx(_components.pre, {
3485
3486
  children: _jsx(_components.code, {
3486
3487
  className: "language-text",
3487
- children: "Source: Display Capture\\nDisplay: Primary monitor\\nCapture Method: Windows 10 (1903 and later)\\nCapture Cursor: checked\\n"
3488
+ children: "Source: Display Capture\\r\\nDisplay: Primary monitor\\r\\nCapture Method: Windows 10 (1903 and later)\\r\\nCapture Cursor: checked\\n"
3488
3489
  })
3489
3490
  }), "\\n", _jsx(_components.p, {
3490
3491
  children: "Apply the ultrawide crop to this source when recording from the 3440x1440 monitor."
@@ -3493,7 +3494,7 @@ function _createMdxContent(props) {
3493
3494
  }), "\\n", _jsx(_components.pre, {
3494
3495
  children: _jsx(_components.code, {
3495
3496
  className: "language-text",
3496
- children: "Device: Insta360 Link 2C\\nResolution: 1920x1080\\nFPS: 60\\nVideo Format: MJPEG or default\\n"
3497
+ children: "Device: Insta360 Link 2C\\r\\nResolution: 1920x1080\\r\\nFPS: 60\\r\\nVideo Format: MJPEG or default\\n"
3497
3498
  })
3498
3499
  }), "\\n", _jsx(_components.p, {
3499
3500
  children: "Create a 512x512 PNG with a white circle on a black background and store it permanently, for example:"
@@ -3507,7 +3508,7 @@ function _createMdxContent(props) {
3507
3508
  }), "\\n", _jsx(_components.pre, {
3508
3509
  children: _jsx(_components.code, {
3509
3510
  className: "language-text",
3510
- children: "Filters > Image Mask/Blend:\\n Type: Alpha Mask (Colour Channel)\\n Path: E:\\\\OBS\\\\circle-mask.png\\n"
3511
+ children: "Filters > Image Mask/Blend:\\r\\n Type: Alpha Mask (Colour Channel)\\r\\n Path: E:\\\\OBS\\\\circle-mask.png\\n"
3511
3512
  })
3512
3513
  }), "\\n", _jsx(_components.p, {
3513
3514
  children: "Resize the facecam source to roughly 300-400 px diameter and place it in a lower corner."
@@ -3524,7 +3525,7 @@ function _createMdxContent(props) {
3524
3525
  }), "\\n", _jsx(_components.pre, {
3525
3526
  children: _jsx(_components.code, {
3526
3527
  className: "language-text",
3527
- children: "Settings > Hotkeys:\\n Switch to Scene \\"Face + Screen\\": F5\\n Switch to Scene \\"Screen Only\\": F6\\n Start Recording: Ctrl+F9\\n Stop Recording: Ctrl+F10\\n"
3528
+ children: "Settings > Hotkeys:\\r\\n Switch to Scene \\"Face + Screen\\": F5\\r\\n Switch to Scene \\"Screen Only\\": F6\\r\\n Start Recording: Ctrl+F9\\r\\n Stop Recording: Ctrl+F10\\n"
3528
3529
  })
3529
3530
  }), "\\n", _jsx(_components.p, {
3530
3531
  children: "Avoid hotkeys that collide with the app being recorded. If using F5 inside a browser-heavy recording, choose a different key because F5 refreshes the page."
@@ -3946,29 +3947,25 @@ function _createMdxContent(props) {
3946
3947
  }), " field links the entity to a state catalog. The graph builder uses this to project event nodes for each state transition:"]
3947
3948
  }), "\\n", _jsxs(_components.ul, {
3948
3949
  children: ["\\n", _jsxs(_components.li, {
3949
- children: ["For general status catalogs, the builder walks ", _jsx(_components.code, {
3950
- children: "OM.statuses"
3951
- }), " entries whose ", _jsx(_components.code, {
3952
- children: "semanticClass"
3953
- }), " matches the catalog ID."]
3954
- }), "\\n", _jsxs(_components.li, {
3955
3950
  children: ["For ", _jsx(_components.code, {
3956
3951
  children: "crm.pipeline"
3957
- }), ", the builder also walks pipeline stages from ", _jsx(_components.code, {
3958
- children: "OM.sales"
3959
- }), "."]
3952
+ }), ", the builder walks pipeline content via the pipeline migration helper."]
3960
3953
  }), "\\n", _jsxs(_components.li, {
3961
3954
  children: ["For ", _jsx(_components.code, {
3962
3955
  children: "delivery.task"
3963
- }), ", the builder walks task statuses from ", _jsx(_components.code, {
3964
- children: "OM.projects"
3965
- }), "."]
3956
+ }), ", the builder walks project task status content via the project-status helper."]
3966
3957
  }), "\\n", _jsxs(_components.li, {
3967
3958
  children: ["For ", _jsx(_components.code, {
3968
3959
  children: "lead-gen.company"
3969
3960
  }), " and ", _jsx(_components.code, {
3970
3961
  children: "lead-gen.contact"
3971
3962
  }), ", the builder walks the lead-gen stage catalog."]
3963
+ }), "\\n", _jsxs(_components.li, {
3964
+ children: ["General status catalogs now live in ", _jsx(_components.code, {
3965
+ children: "System.content"
3966
+ }), "; direct ", _jsx(_components.code, {
3967
+ children: "OM.statuses"
3968
+ }), " reads are legacy."]
3972
3969
  }), "\\n"]
3973
3970
  }), "\\n", _jsxs(_components.p, {
3974
3971
  children: ["Each matching status or stage generates an ", _jsx(_components.code, {
@@ -4133,7 +4130,7 @@ function _createMdxContent(props) {
4133
4130
  }), "\\n", _jsxs(_components.li, {
4134
4131
  children: ["To change an entity state-transition event, update the entity's ", _jsx(_components.code, {
4135
4132
  children: "stateCatalogId"
4136
- }), " or the underlying status/stage entry in the relevant catalog domain."]
4133
+ }), " or the underlying status/stage content entry on the owning System."]
4137
4134
  }), "\\n"]
4138
4135
  }), "\\n", _jsxs(_components.p, {
4139
4136
  children: ["The graph builder projects these into ", _jsx(_components.code, {
@@ -4267,29 +4264,23 @@ function _createMdxContent(props) {
4267
4264
  children: ["\\n", _jsxs(_components.li, {
4268
4265
  children: [_jsx(_components.strong, {
4269
4266
  children: "General status catalogs"
4270
- }), ": walks ", _jsx(_components.code, {
4267
+ }), ": status data now lives in ", _jsx(_components.code, {
4268
+ children: "System.content"
4269
+ }), "; direct ", _jsx(_components.code, {
4271
4270
  children: "OM.statuses"
4272
- }), " entries whose ", _jsx(_components.code, {
4273
- children: "semanticClass"
4274
- }), " matches the entity's ", _jsx(_components.code, {
4275
- children: "stateCatalogId"
4276
- }), "."]
4271
+ }), " reads are legacy."]
4277
4272
  }), "\\n", _jsxs(_components.li, {
4278
4273
  children: [_jsx(_components.strong, {
4279
4274
  children: _jsx(_components.code, {
4280
4275
  children: "crm.pipeline"
4281
4276
  })
4282
- }), ": also walks pipeline stages from ", _jsx(_components.code, {
4283
- children: "OM.sales"
4284
- }), " that reference the entity."]
4277
+ }), ": walks pipeline content via the pipeline migration helper."]
4285
4278
  }), "\\n", _jsxs(_components.li, {
4286
4279
  children: [_jsx(_components.strong, {
4287
4280
  children: _jsx(_components.code, {
4288
4281
  children: "delivery.task"
4289
4282
  })
4290
- }), ": also walks task statuses from ", _jsx(_components.code, {
4291
- children: "OM.projects"
4292
- }), "."]
4283
+ }), ": walks project task status content via the project-status helper."]
4293
4284
  }), "\\n", _jsxs(_components.li, {
4294
4285
  children: [_jsxs(_components.strong, {
4295
4286
  children: [_jsx(_components.code, {
@@ -4532,13 +4523,13 @@ function _createMdxContent(props) {
4532
4523
  }), "\\n", _jsxs(_components.p, {
4533
4524
  children: ["Source schema: ", _jsx(_components.code, {
4534
4525
  children: "packages/core/src/organization-model/graph/schema.ts"
4535
- }), "\\nProjection logic: ", _jsx(_components.code, {
4526
+ }), "\\r\\nProjection logic: ", _jsx(_components.code, {
4536
4527
  children: "packages/core/src/organization-model/graph/build.ts"
4537
4528
  })]
4538
4529
  }), "\\n", _jsx(_components.h2, {
4539
4530
  children: "Node Kinds"
4540
4531
  }), "\\n", _jsx(_components.p, {
4541
- children: "Ten node kinds are valid in the graph."
4532
+ children: "The graph vocabulary includes authored semantic nodes and projected operational/navigation nodes."
4542
4533
  }), "\\n", _jsxs(_components.table, {
4543
4534
  children: [_jsx(_components.thead, {
4544
4535
  children: _jsxs(_components.tr, {
@@ -4643,9 +4634,9 @@ function _createMdxContent(props) {
4643
4634
  }), _jsx(_components.td, {
4644
4635
  children: "Projected"
4645
4636
  }), _jsxs(_components.td, {
4646
- children: ["Derived from ", _jsx(_components.code, {
4647
- children: "OM.prospecting"
4648
- }), " stage catalogs"]
4637
+ children: ["Derived from prospecting stage helpers over ", _jsx(_components.code, {
4638
+ children: "System.content"
4639
+ }), " and compatibility catalogs"]
4649
4640
  })]
4650
4641
  }), _jsxs(_components.tr, {
4651
4642
  children: [_jsx(_components.td, {
@@ -4668,8 +4659,86 @@ function _createMdxContent(props) {
4668
4659
  children: "Authored"
4669
4660
  }), _jsxs(_components.td, {
4670
4661
  children: [_jsx(_components.code, {
4671
- children: "OM.knowledge.nodes"
4672
- }), " array"]
4662
+ children: "OM.knowledge"
4663
+ }), " id-keyed map"]
4664
+ })]
4665
+ }), _jsxs(_components.tr, {
4666
+ children: [_jsx(_components.td, {
4667
+ children: _jsx(_components.code, {
4668
+ children: "customer-segment"
4669
+ })
4670
+ }), _jsx(_components.td, {
4671
+ children: "Authored"
4672
+ }), _jsxs(_components.td, {
4673
+ children: [_jsx(_components.code, {
4674
+ children: "OM.customers"
4675
+ }), " domain map"]
4676
+ })]
4677
+ }), _jsxs(_components.tr, {
4678
+ children: [_jsx(_components.td, {
4679
+ children: _jsx(_components.code, {
4680
+ children: "offering"
4681
+ })
4682
+ }), _jsx(_components.td, {
4683
+ children: "Authored"
4684
+ }), _jsxs(_components.td, {
4685
+ children: [_jsx(_components.code, {
4686
+ children: "OM.offerings"
4687
+ }), " domain map"]
4688
+ })]
4689
+ }), _jsxs(_components.tr, {
4690
+ children: [_jsx(_components.td, {
4691
+ children: _jsx(_components.code, {
4692
+ children: "goal"
4693
+ })
4694
+ }), _jsx(_components.td, {
4695
+ children: "Authored"
4696
+ }), _jsxs(_components.td, {
4697
+ children: [_jsx(_components.code, {
4698
+ children: "OM.goals"
4699
+ }), " domain map"]
4700
+ })]
4701
+ }), _jsxs(_components.tr, {
4702
+ children: [_jsx(_components.td, {
4703
+ children: _jsx(_components.code, {
4704
+ children: "surface"
4705
+ })
4706
+ }), _jsx(_components.td, {
4707
+ children: "Projected"
4708
+ }), _jsxs(_components.td, {
4709
+ children: ["Routeable leaves from ", _jsx(_components.code, {
4710
+ children: "OM.navigation.sidebar"
4711
+ })]
4712
+ })]
4713
+ }), _jsxs(_components.tr, {
4714
+ children: [_jsx(_components.td, {
4715
+ children: _jsx(_components.code, {
4716
+ children: "navigation-group"
4717
+ })
4718
+ }), _jsx(_components.td, {
4719
+ children: "Projected"
4720
+ }), _jsxs(_components.td, {
4721
+ children: ["Groups from ", _jsx(_components.code, {
4722
+ children: "OM.navigation.sidebar"
4723
+ })]
4724
+ })]
4725
+ }), _jsxs(_components.tr, {
4726
+ children: [_jsx(_components.td, {
4727
+ children: _jsx(_components.code, {
4728
+ children: "content-node"
4729
+ })
4730
+ }), _jsx(_components.td, {
4731
+ children: "Authored on System, projected to graph"
4732
+ }), _jsxs(_components.td, {
4733
+ children: [_jsx(_components.code, {
4734
+ children: "System.content"
4735
+ }), " entries such as ", _jsx(_components.code, {
4736
+ children: "schema:pipeline"
4737
+ }), ", ", _jsx(_components.code, {
4738
+ children: "schema:stage"
4739
+ }), ", and ", _jsx(_components.code, {
4740
+ children: "config:kv"
4741
+ })]
4673
4742
  })]
4674
4743
  })]
4675
4744
  })]
@@ -4894,7 +4963,9 @@ function _createMdxContent(props) {
4894
4963
  }), "\\n", _jsx(_components.h3, {
4895
4964
  children: "Authored nodes"
4896
4965
  }), "\\n", _jsxs(_components.p, {
4897
- children: ["System, role, action, entity, policy, resource, and knowledge nodes are authored in the OM domain maps. Their ", _jsx(_components.code, {
4966
+ children: ["System, role, action, entity, policy, resource, knowledge, customer-segment, offering, and goal nodes are authored in the OM domain maps. Content nodes are authored inside ", _jsx(_components.code, {
4967
+ children: "System.content"
4968
+ }), " and projected with qualified graph IDs. Their ", _jsx(_components.code, {
4898
4969
  children: "id"
4899
4970
  }), ", ", _jsx(_components.code, {
4900
4971
  children: "label"
@@ -4919,14 +4990,18 @@ function _createMdxContent(props) {
4919
4990
  children: "resource.emits"
4920
4991
  }), " declarations on workflow and agent resources. Entity events come from the entity's ", _jsx(_components.code, {
4921
4992
  children: "stateCatalogId"
4922
- }), " -- the builder walks the matching statuses and pipeline/project stage catalogs to generate one event node per transition."]
4993
+ }), " -- the builder walks compatible pipeline, project-status, or lead-gen stage helpers to generate one event node per transition."]
4923
4994
  }), "\\n", _jsxs(_components.li, {
4924
4995
  children: [_jsx(_components.strong, {
4925
4996
  children: "Stage nodes"
4997
+ }), ": derived from prospecting stage helpers over current ", _jsx(_components.code, {
4998
+ children: "System.content"
4999
+ }), " and compatibility catalogs."]
5000
+ }), "\\n", _jsxs(_components.li, {
5001
+ children: [_jsx(_components.strong, {
5002
+ children: "Surface and navigation-group nodes"
4926
5003
  }), ": derived from ", _jsx(_components.code, {
4927
- children: "OM.prospecting.companyStages"
4928
- }), " and ", _jsx(_components.code, {
4929
- children: "OM.prospecting.contactStages"
5004
+ children: "navigation.sidebar"
4930
5005
  }), "."]
4931
5006
  }), "\\n"]
4932
5007
  }), "\\n", _jsxs(_components.p, {
@@ -5505,7 +5580,7 @@ function _createMdxContent(props) {
5505
5580
  }), "\\n", _jsx(_components.pre, {
5506
5581
  children: _jsx(_components.code, {
5507
5582
  className: "language-text",
5508
- children: "Trigger to Agent\\n |- Tool: Integration A\\n |- Tool: Integration B\\n |- Tool: Workflow 1 via resource invocation\\n \`- Tool: Workflow 2 via resource invocation\\n"
5583
+ children: "Trigger to Agent\\r\\n |- Tool: Integration A\\r\\n |- Tool: Integration B\\r\\n |- Tool: Workflow 1 via resource invocation\\r\\n \`- Tool: Workflow 2 via resource invocation\\n"
5509
5584
  })
5510
5585
  }), "\\n", _jsx(_components.p, {
5511
5586
  children: "Use this pattern for ambiguous goals, dynamic decision-making, multi-turn conversations, and business logic that requires judgment."
@@ -5542,7 +5617,7 @@ function _createMdxContent(props) {
5542
5617
  }), "\\n", _jsx(_components.pre, {
5543
5618
  children: _jsx(_components.code, {
5544
5619
  className: "language-text",
5545
- children: "Trigger to Workflow\\n |- Step 1: Integration A reads data\\n |- Step 2: Agent processes or reasons\\n |- Step 3: Integration B writes result\\n \`- Step 4: Conditional routing\\n"
5620
+ children: "Trigger to Workflow\\r\\n |- Step 1: Integration A reads data\\r\\n |- Step 2: Agent processes or reasons\\r\\n |- Step 3: Integration B writes result\\r\\n \`- Step 4: Conditional routing\\n"
5546
5621
  })
5547
5622
  }), "\\n", _jsx(_components.p, {
5548
5623
  children: "Use this pattern for predictable sequences, data transformation pipelines, integration orchestration, and fixed business logic."
@@ -5577,7 +5652,7 @@ function _createMdxContent(props) {
5577
5652
  }), "\\n", _jsx(_components.pre, {
5578
5653
  children: _jsx(_components.code, {
5579
5654
  className: "language-text",
5580
- children: "Trigger to Agent decides what to do\\n |- Invokes: Workflow A\\n |- Invokes: Workflow B\\n \`- Uses: Integration C directly\\n\\nWorkflow A:\\n |- Integration D reads\\n |- Agent processes a specific subtask\\n \`- Integration E writes\\n"
5655
+ children: "Trigger to Agent decides what to do\\r\\n |- Invokes: Workflow A\\r\\n |- Invokes: Workflow B\\r\\n \`- Uses: Integration C directly\\r\\n\\r\\nWorkflow A:\\r\\n |- Integration D reads\\r\\n |- Agent processes a specific subtask\\r\\n \`- Integration E writes\\n"
5581
5656
  })
5582
5657
  }), "\\n", _jsx(_components.p, {
5583
5658
  children: "Use this pattern when the system needs variable paths, reasoning, reliability, and a mix of predictable and unpredictable steps."
@@ -5635,7 +5710,7 @@ function _createMdxContent(props) {
5635
5710
  }), "\\n", _jsx(_components.pre, {
5636
5711
  children: _jsx(_components.code, {
5637
5712
  className: "language-text",
5638
- children: "Trigger to Agent reasoning\\n |- Direct tool: read integration\\n |- Invoke tool: Workflow A\\n \`- Invoke tool: Workflow B\\n"
5713
+ children: "Trigger to Agent reasoning\\r\\n |- Direct tool: read integration\\r\\n |- Invoke tool: Workflow A\\r\\n \`- Invoke tool: Workflow B\\n"
5639
5714
  })
5640
5715
  }), "\\n", _jsx(_components.p, {
5641
5716
  children: "Execution flow:"
@@ -5658,7 +5733,7 @@ function _createMdxContent(props) {
5658
5733
  }), "\\n", _jsx(_components.pre, {
5659
5734
  children: _jsx(_components.code, {
5660
5735
  className: "language-text",
5661
- children: "Trigger to Workflow\\n |- Step 1: Integration A reads\\n |- Step 2: Transform pure function\\n |- Step 3: Integration B writes\\n \`- Step 4: Notify\\n"
5736
+ children: "Trigger to Workflow\\r\\n |- Step 1: Integration A reads\\r\\n |- Step 2: Transform pure function\\r\\n |- Step 3: Integration B writes\\r\\n \`- Step 4: Notify\\n"
5662
5737
  })
5663
5738
  }), "\\n", _jsx(_components.p, {
5664
5739
  children: "Use this pattern for predictable step sequences, data transformation pipelines, integration orchestration, and cost-sensitive work that does not need LLM reasoning."
@@ -5861,7 +5936,7 @@ function _createMdxContent(props) {
5861
5936
  }), "\\n", _jsx(_components.pre, {
5862
5937
  children: _jsx(_components.code, {
5863
5938
  className: "language-typescript",
5864
- children: "{\\n id: 'sync-to-crm',\\n handler: async ({ input, context }) => {\\n try {\\n return await crmClient.createContact(input)\\n } catch (error) {\\n if (error.code === 'DUPLICATE') {\\n return crmClient.updateContact(input)\\n }\\n\\n throw error\\n }\\n },\\n next: { type: 'linear', target: 'send-notification' }\\n}\\n"
5939
+ children: "{\\r\\n id: 'sync-to-crm',\\r\\n handler: async ({ input, context }) => {\\r\\n try {\\r\\n return await crmClient.createContact(input)\\r\\n } catch (error) {\\r\\n if (error.code === 'DUPLICATE') {\\r\\n return crmClient.updateContact(input)\\r\\n }\\r\\n\\r\\n throw error\\r\\n }\\r\\n },\\r\\n next: { type: 'linear', target: 'send-notification' }\\r\\n}\\n"
5865
5940
  })
5866
5941
  }), "\\n", _jsx(_components.h3, {
5867
5942
  children: "Security"
@@ -6090,14 +6165,14 @@ function _createMdxContent(props) {
6090
6165
  }), "\\n", _jsx(_components.pre, {
6091
6166
  children: _jsx(_components.code, {
6092
6167
  className: "language-typescript",
6093
- children: "const salesTool = createAttioCreateRecordTool('attio-sales')\\nconst supportTool = createAttioCreateRecordTool('attio-support')\\n"
6168
+ children: "const salesTool = createAttioCreateRecordTool('attio-sales')\\r\\nconst supportTool = createAttioCreateRecordTool('attio-support')\\n"
6094
6169
  })
6095
6170
  }), "\\n", _jsx(_components.p, {
6096
6171
  children: "Disambiguate multi-account tools with explicit tool names:"
6097
6172
  }), "\\n", _jsx(_components.pre, {
6098
6173
  children: _jsx(_components.code, {
6099
6174
  className: "language-typescript",
6100
- children: "const tool = createAttioToolNamed(\\n 'attio_sales_create_record',\\n 'attio-sales',\\n 'createRecord'\\n)\\n"
6175
+ children: "const tool = createAttioToolNamed(\\r\\n 'attio_sales_create_record',\\r\\n 'attio-sales',\\r\\n 'createRecord'\\r\\n)\\n"
6101
6176
  })
6102
6177
  }), "\\n", _jsx(_components.h2, {
6103
6178
  children: "Authentication Patterns"
@@ -6174,7 +6249,7 @@ function _createMdxContent(props) {
6174
6249
  }), "\\n", _jsx(_components.pre, {
6175
6250
  children: _jsx(_components.code, {
6176
6251
  className: "language-typescript",
6177
- children: "interface OAuthToken {\\n provider: string\\n accessToken: string\\n refreshToken: string\\n expiresAt: string\\n tokenType: 'Bearer'\\n scope?: string\\n}\\n"
6252
+ children: "interface OAuthToken {\\r\\n provider: string\\r\\n accessToken: string\\r\\n refreshToken: string\\r\\n expiresAt: string\\r\\n tokenType: 'Bearer'\\r\\n scope?: string\\r\\n}\\n"
6178
6253
  })
6179
6254
  }), "\\n", _jsxs(_components.p, {
6180
6255
  children: [_jsx(_components.code, {
@@ -6189,7 +6264,7 @@ function _createMdxContent(props) {
6189
6264
  }), "\\n", _jsx(_components.pre, {
6190
6265
  children: _jsx(_components.code, {
6191
6266
  className: "language-typescript",
6192
- children: "interface APIKeyCredentials {\\n apiKey: string\\n}\\n"
6267
+ children: "interface APIKeyCredentials {\\r\\n apiKey: string\\r\\n}\\n"
6193
6268
  })
6194
6269
  }), "\\n", _jsx(_components.p, {
6195
6270
  children: "Provider-specific validation belongs in the adapter. For Attio, see:"
@@ -6840,7 +6915,7 @@ var KIND_CHIP_TONE_STYLES = {
6840
6915
  subtle: {
6841
6916
  backgroundColor: "var(--color-surface-hover)",
6842
6917
  borderColor: "var(--color-border)",
6843
- color: "var(--color-text-dimmed)"
6918
+ color: "var(--color-text-subtle)"
6844
6919
  },
6845
6920
  primary: {
6846
6921
  backgroundColor: "var(--surface-primary-subtle)",
@@ -6894,22 +6969,14 @@ function NodeHeader({
6894
6969
  }) {
6895
6970
  return /* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
6896
6971
  /* @__PURE__ */ jsxs(Group, { gap: "xs", align: "flex-start", wrap: "nowrap", children: [
6897
- iconToken && /* @__PURE__ */ jsx(
6898
- SemanticIcon,
6899
- {
6900
- token: iconToken,
6901
- fallbackKind: "knowledge",
6902
- size: 22,
6903
- style: { color: "var(--color-primary)", marginTop: 5 }
6904
- }
6905
- ),
6972
+ iconToken && /* @__PURE__ */ jsx(SemanticIcon, { token: iconToken, size: 22, style: { color: "var(--color-primary)", marginTop: 5 } }),
6906
6973
  /* @__PURE__ */ jsx(Title, { order: 3, style: { flex: 1, minWidth: 0, color: "var(--color-text)" }, children: title }),
6907
6974
  /* @__PURE__ */ jsx(KindChip, { kind, tone, style: { flexShrink: 0, marginTop: 4 } }),
6908
6975
  provenanceTag && /* @__PURE__ */ jsx(Badge, { variant: "light", size: "sm", style: { flexShrink: 0, marginTop: 4 }, children: provenanceTag }),
6909
6976
  rightSection
6910
6977
  ] }),
6911
- description && /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", style: { lineHeight: 1.5 }, children: description }),
6912
- updatedAt && /* @__PURE__ */ jsxs(Text, { size: "xs", c: "dimmed", style: { opacity: 0.7 }, children: [
6978
+ description && /* @__PURE__ */ jsx(Text, { size: "sm", style: { color: "var(--color-text-subtle)", lineHeight: 1.5 }, children: description }),
6979
+ updatedAt && /* @__PURE__ */ jsxs(Text, { size: "xs", style: { color: "var(--color-text-subtle)", opacity: 0.7 }, children: [
6913
6980
  "Updated ",
6914
6981
  updatedAt
6915
6982
  ] })
@@ -6943,7 +7010,7 @@ function EdgeChip({ id, onClick }) {
6943
7010
  }
6944
7011
  function EdgeGroup({ label, ids, onNavigateToNode }) {
6945
7012
  return /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
6946
- /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", fw: 500, children: label }),
7013
+ /* @__PURE__ */ jsx(Text, { size: "xs", fw: 500, style: { color: "var(--color-text-subtle)" }, children: label }),
6947
7014
  ids.map((id) => /* @__PURE__ */ jsx(EdgeChip, { id, onClick: onNavigateToNode ? () => onNavigateToNode(id) : void 0 }, id))
6948
7015
  ] });
6949
7016
  }
@@ -6965,7 +7032,7 @@ function RelatedKnowledgeSection({
6965
7032
  }).filter((card) => card !== null);
6966
7033
  if (cards.length === 0) return null;
6967
7034
  return /* @__PURE__ */ jsxs(Stack, { gap: "xs", "data-related-knowledge-section": true, children: [
6968
- /* @__PURE__ */ jsx(Text, { size: "xs", fw: 600, tt: "uppercase", c: "dimmed", style: { letterSpacing: "0.05em" }, children: "Governing Knowledge" }),
7035
+ /* @__PURE__ */ jsx(Text, { size: "xs", fw: 600, tt: "uppercase", style: { color: "var(--color-text-subtle)", letterSpacing: "0.05em" }, children: "Governing Knowledge" }),
6969
7036
  /* @__PURE__ */ jsx(Stack, { gap: "xs", children: cards.map(({ graphNodeId, node }) => /* @__PURE__ */ jsx(
6970
7037
  Box,
6971
7038
  {
@@ -6990,7 +7057,6 @@ function RelatedKnowledgeSection({
6990
7057
  SemanticIcon,
6991
7058
  {
6992
7059
  token: getKnowledgeIconToken(node),
6993
- fallbackKind: node.kind,
6994
7060
  size: 16,
6995
7061
  style: { color: "var(--color-text-subtle)", marginTop: 1 }
6996
7062
  }
@@ -6998,7 +7064,7 @@ function RelatedKnowledgeSection({
6998
7064
  /* @__PURE__ */ jsx(Text, { size: "sm", fw: 600, style: { flex: 1, minWidth: 0, lineHeight: 1.35 }, children: node.title }),
6999
7065
  /* @__PURE__ */ jsx(KindChip, { kind: node.kind, tone: "muted", style: { flexShrink: 0 } })
7000
7066
  ] }),
7001
- /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", style: { lineHeight: 1.45 }, children: node.summary })
7067
+ /* @__PURE__ */ jsx(Text, { size: "xs", style: { color: "var(--color-text-subtle)", lineHeight: 1.45 }, children: node.summary })
7002
7068
  ] })
7003
7069
  },
7004
7070
  node.id
@@ -7055,7 +7121,7 @@ function EdgeRelationshipGroup({
7055
7121
  if (!hasRelationships) return null;
7056
7122
  return /* @__PURE__ */ jsxs(Stack, { gap: "xs", "data-edge-relationship-group": true, children: [
7057
7123
  /* @__PURE__ */ jsx(Divider, {}),
7058
- /* @__PURE__ */ jsx(Text, { size: "xs", fw: 600, tt: "uppercase", c: "dimmed", style: { letterSpacing: "0.05em" }, children: "Relationships" }),
7124
+ /* @__PURE__ */ jsx(Text, { size: "xs", fw: 600, tt: "uppercase", style: { color: "var(--color-text-subtle)", letterSpacing: "0.05em" }, children: "Relationships" }),
7059
7125
  subSystems.length > 0 && /* @__PURE__ */ jsx(EdgeGroup, { label: `Sub-systems (${subSystems.length})`, ids: subSystems, onNavigateToNode }),
7060
7126
  containedResources.length > 0 && /* @__PURE__ */ jsx(
7061
7127
  EdgeGroup,
@@ -7239,7 +7305,7 @@ function NodeMetadataFooter({
7239
7305
  component: "summary",
7240
7306
  style: {
7241
7307
  cursor: "pointer",
7242
- color: "var(--color-text-dimmed)",
7308
+ color: "var(--color-text-subtle)",
7243
7309
  fontSize: "var(--mantine-font-size-xs)",
7244
7310
  fontWeight: 600,
7245
7311
  letterSpacing: "0.05em",
@@ -7260,6 +7326,66 @@ function NodeMetadataFooter({
7260
7326
  }
7261
7327
  );
7262
7328
  }
7329
+ function getKnowledgeCommand(nodeId) {
7330
+ return getKnowledgeNodeReadCommand(nodeId);
7331
+ }
7332
+ function KnowledgePageHeader({
7333
+ title,
7334
+ kind,
7335
+ tone,
7336
+ iconToken,
7337
+ description,
7338
+ updatedAt,
7339
+ provenanceTag,
7340
+ copyCommand,
7341
+ badges
7342
+ }) {
7343
+ const copyButton = copyCommand ? /* @__PURE__ */ jsx(CopyButton, { value: copyCommand, timeout: 2e3, children: ({ copied, copy }) => /* @__PURE__ */ jsx(Tooltip, { label: copied ? "Copied knowledge command" : "Copy knowledge command", withArrow: true, children: /* @__PURE__ */ jsx(
7344
+ ActionIcon,
7345
+ {
7346
+ "aria-label": "Copy knowledge command",
7347
+ onClick: copy,
7348
+ variant: "subtle",
7349
+ size: "sm",
7350
+ color: copied ? "green" : "var(--color-text-subtle)",
7351
+ style: { flexShrink: 0, marginTop: 2 },
7352
+ children: copied ? /* @__PURE__ */ jsx(IconCheck, { size: 14 }) : /* @__PURE__ */ jsx(IconCopy, { size: 14 })
7353
+ }
7354
+ ) }) }) : void 0;
7355
+ return /* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
7356
+ /* @__PURE__ */ jsx(
7357
+ NodeHeader,
7358
+ {
7359
+ title,
7360
+ kind,
7361
+ tone,
7362
+ iconToken,
7363
+ description,
7364
+ updatedAt,
7365
+ provenanceTag,
7366
+ rightSection: copyButton
7367
+ }
7368
+ ),
7369
+ badges
7370
+ ] });
7371
+ }
7372
+ function DomainPanelFrame({ children }) {
7373
+ return /* @__PURE__ */ jsx(Box, { style: { width: "100%" }, children: /* @__PURE__ */ jsx(PageContainer, { children: /* @__PURE__ */ jsx(
7374
+ Paper,
7375
+ {
7376
+ withBorder: true,
7377
+ style: {
7378
+ minWidth: 0,
7379
+ width: "100%",
7380
+ maxWidth: 820,
7381
+ marginInline: "auto",
7382
+ background: "var(--glass-background)",
7383
+ borderColor: "var(--color-border)"
7384
+ },
7385
+ children
7386
+ }
7387
+ ) }) });
7388
+ }
7263
7389
  function NodeDescribeShell({ header, content, relationships, footer }) {
7264
7390
  return /* @__PURE__ */ jsxs(Stack, { gap: "md", style: { padding: "var(--mantine-spacing-md)", width: "100%" }, children: [
7265
7391
  header,
@@ -7273,7 +7399,7 @@ function NodeDescribeShell({ header, content, relationships, footer }) {
7273
7399
  }
7274
7400
  function KeyField({ label, value }) {
7275
7401
  return /* @__PURE__ */ jsxs(Group, { gap: "xs", align: "baseline", children: [
7276
- /* @__PURE__ */ jsx(Text, { size: "xs", fw: 500, c: "dimmed", style: { minWidth: 96 }, children: label }),
7402
+ /* @__PURE__ */ jsx(Text, { size: "xs", fw: 500, style: { minWidth: 96, color: "var(--color-text-subtle)" }, children: label }),
7277
7403
  /* @__PURE__ */ jsx(Text, { size: "sm", style: { fontFamily: "var(--mantine-font-family-monospace)" }, children: value })
7278
7404
  ] });
7279
7405
  }
@@ -7290,9 +7416,6 @@ function resolveKnowledgeGraphNode(graph, node) {
7290
7416
  (graphNode) => graphNode.kind === "knowledge" && (graphNode.sourceId === node.id || graphNode.id === `knowledge:${node.id}`)
7291
7417
  );
7292
7418
  }
7293
- function getKnowledgeCommand(nodeId) {
7294
- return `/knowledge read ${nodeId.replace(/^knowledge:/, "")}`;
7295
- }
7296
7419
  function detectProvenanceTag(nodeId) {
7297
7420
  if (nodeId in KNOWLEDGE_BODIES) return "MDX";
7298
7421
  return "inline TS";
@@ -7318,7 +7441,7 @@ function KnowledgeNodeView({
7318
7441
  const reinitializeTocRef = useRef(() => void 0);
7319
7442
  const [scrollHost, setScrollHost] = useState();
7320
7443
  const provenanceTag = detectProvenanceTag(node.id);
7321
- const sourceFilePath = void 0;
7444
+ const sourceFilePath = node.sourceFilePath;
7322
7445
  useEffect(() => {
7323
7446
  setScrollHost(findScrollParent(rootRef.current));
7324
7447
  }, []);
@@ -7326,6 +7449,31 @@ function KnowledgeNodeView({
7326
7449
  const timer = window.setTimeout(() => reinitializeTocRef.current?.(), 0);
7327
7450
  return () => window.clearTimeout(timer);
7328
7451
  }, [node.id]);
7452
+ const ownersBlock = node.ownerIds.length > 0 ? /* @__PURE__ */ jsx(Group, { gap: "xs", wrap: "wrap", children: node.ownerIds.map((roleId) => {
7453
+ const graphNodeId = roleId.startsWith("role:") ? roleId : `role:${roleId}`;
7454
+ return /* @__PURE__ */ jsx(
7455
+ EdgeChip,
7456
+ {
7457
+ id: roleId,
7458
+ onClick: onNavigateToNode ? () => onNavigateToNode(graphNodeId) : void 0
7459
+ },
7460
+ roleId
7461
+ );
7462
+ }) }) : null;
7463
+ const externalUrlBlock = node.externalUrl ? /* @__PURE__ */ jsx(
7464
+ Button,
7465
+ {
7466
+ component: "a",
7467
+ href: node.externalUrl,
7468
+ target: "_blank",
7469
+ rel: "noopener noreferrer",
7470
+ variant: "subtle",
7471
+ size: "xs",
7472
+ leftSection: /* @__PURE__ */ jsx(IconExternalLink, { size: 14 }),
7473
+ style: { alignSelf: "flex-start" },
7474
+ children: "View full documentation"
7475
+ }
7476
+ ) : null;
7329
7477
  return /* @__PURE__ */ jsx(KnowledgeMDXProvider, { extraComponents, children: /* @__PURE__ */ jsx(Box, { ref: rootRef, style: { width: "100%" }, children: /* @__PURE__ */ jsx(PageContainer, { children: /* @__PURE__ */ jsxs(
7330
7478
  Box,
7331
7479
  {
@@ -7344,63 +7492,29 @@ function KnowledgeNodeView({
7344
7492
  style: {
7345
7493
  minWidth: 0,
7346
7494
  flex: "1 1 0",
7347
- maxWidth: 920,
7495
+ maxWidth: 820,
7348
7496
  background: "var(--glass-background)",
7349
7497
  borderColor: "var(--color-border)"
7350
7498
  },
7351
7499
  children: /* @__PURE__ */ jsx(
7352
7500
  NodeDescribeShell,
7353
7501
  {
7354
- header: /* @__PURE__ */ jsxs(Fragment, { children: [
7355
- /* @__PURE__ */ jsx(
7356
- NodeHeader,
7357
- {
7358
- title: node.title,
7359
- kind: node.kind,
7360
- iconToken: getKnowledgeIconToken(node),
7361
- description: node.summary,
7362
- updatedAt: node.updatedAt,
7363
- provenanceTag,
7364
- rightSection: /* @__PURE__ */ jsx(CopyButton, { value: getKnowledgeCommand(node.id), timeout: 2e3, children: ({ copied, copy }) => /* @__PURE__ */ jsx(Tooltip, { label: copied ? "Copied knowledge command" : "Copy knowledge command", withArrow: true, children: /* @__PURE__ */ jsx(
7365
- ActionIcon,
7366
- {
7367
- "aria-label": "Copy knowledge command",
7368
- onClick: copy,
7369
- variant: "subtle",
7370
- size: "sm",
7371
- color: copied ? "green" : "var(--color-text-subtle)",
7372
- style: { flexShrink: 0, marginTop: 2 },
7373
- children: copied ? /* @__PURE__ */ jsx(IconCheck, { size: 14 }) : /* @__PURE__ */ jsx(IconCopy, { size: 14 })
7374
- }
7375
- ) }) })
7376
- }
7377
- ),
7378
- node.ownerIds.length > 0 && /* @__PURE__ */ jsx(Group, { gap: "xs", wrap: "wrap", children: node.ownerIds.map((roleId) => {
7379
- const graphNodeId = roleId.startsWith("role:") ? roleId : `role:${roleId}`;
7380
- return /* @__PURE__ */ jsx(
7381
- EdgeChip,
7382
- {
7383
- id: roleId,
7384
- onClick: onNavigateToNode ? () => onNavigateToNode(graphNodeId) : void 0
7385
- },
7386
- roleId
7387
- );
7388
- }) }),
7389
- node.externalUrl && /* @__PURE__ */ jsx(
7390
- Button,
7391
- {
7392
- component: "a",
7393
- href: node.externalUrl,
7394
- target: "_blank",
7395
- rel: "noopener noreferrer",
7396
- variant: "subtle",
7397
- size: "xs",
7398
- leftSection: /* @__PURE__ */ jsx(IconExternalLink, { size: 14 }),
7399
- style: { alignSelf: "flex-start" },
7400
- children: "View full documentation"
7401
- }
7402
- )
7403
- ] }),
7502
+ header: /* @__PURE__ */ jsx(
7503
+ KnowledgePageHeader,
7504
+ {
7505
+ title: node.title,
7506
+ kind: node.kind,
7507
+ iconToken: getKnowledgeIconToken(node),
7508
+ description: node.summary,
7509
+ updatedAt: node.updatedAt,
7510
+ provenanceTag,
7511
+ copyCommand: getKnowledgeCommand(node.id),
7512
+ badges: /* @__PURE__ */ jsxs(Fragment, { children: [
7513
+ ownersBlock,
7514
+ externalUrlBlock
7515
+ ] })
7516
+ }
7517
+ ),
7404
7518
  content: /* @__PURE__ */ jsx(
7405
7519
  Box,
7406
7520
  {
@@ -7461,358 +7575,17 @@ function KnowledgeNodeView({
7461
7575
  }
7462
7576
  ) }) }) });
7463
7577
  }
7464
- function KnowledgeBrowser({
7465
- graph,
7466
- knowledgeNodes,
7467
- initialNodeId,
7468
- onNavigateToNode,
7469
- onSelectNode
7470
- }) {
7471
- const selectedNode = useMemo(
7472
- () => initialNodeId ? knowledgeNodes.find((n) => n.id === initialNodeId) ?? null : null,
7473
- [initialNodeId, knowledgeNodes]
7474
- );
7475
- if (!selectedNode) {
7476
- return /* @__PURE__ */ jsx(KnowledgeOverview, { graph, knowledgeNodes, onSelectNode });
7477
- }
7478
- return /* @__PURE__ */ jsx(KnowledgeNodeView, { node: selectedNode, graph, onNavigateToNode });
7479
- }
7480
- var ENTRY_NODE_IDS = [
7481
- "knowledge.org-model-reference",
7482
- "knowledge.org-model-graph-contract",
7483
- "knowledge.org-model-actions",
7484
- "knowledge.org-model-entities",
7485
- "knowledge.org-model-events",
7486
- "knowledge.org-model-policies",
7487
- "knowledge.platform-command-view",
7488
- "knowledge.platform-systems-overview",
7489
- "knowledge.what-is-elevasis",
7490
- "knowledge.understanding-elevasis"
7491
- ];
7492
- function formatKindLabel(kind) {
7493
- return kind.charAt(0).toUpperCase() + kind.slice(1);
7494
- }
7495
- function createKindCounts(nodes) {
7496
- return nodes.reduce(
7497
- (counts, node) => {
7498
- counts[node.kind] += 1;
7499
- return counts;
7500
- },
7501
- { playbook: 0, strategy: 0, reference: 0 }
7502
- );
7578
+ function getMeta(schema) {
7579
+ return schema.meta() ?? {};
7503
7580
  }
7504
- function resolveKnowledgeGraphIds(graph) {
7505
- return new Set(graph.nodes.filter((node) => node.kind === "knowledge").map((node) => node.id));
7581
+ function labelFromFieldName(fieldName) {
7582
+ return fieldName.replace(/([a-z0-9])([A-Z])/g, "$1 $2").replace(/[-_]/g, " ").replace(/^./, (c) => c.toUpperCase());
7506
7583
  }
7507
- function getGovernedSystemCoverage(graph) {
7508
- const graphNodesById = new Map(graph.nodes.map((node) => [node.id, node]));
7509
- const knowledgeGraphIds = resolveKnowledgeGraphIds(graph);
7510
- const systemCounts = /* @__PURE__ */ new Map();
7511
- for (const edge of graph.edges) {
7512
- if (edge.kind !== "governs" || !knowledgeGraphIds.has(edge.sourceId)) continue;
7513
- const target = graphNodesById.get(edge.targetId);
7514
- if (target?.kind !== "system") continue;
7515
- systemCounts.set(target.id, (systemCounts.get(target.id) ?? 0) + 1);
7584
+ function unwrap(schema) {
7585
+ if (schema instanceof ZodOptional || schema instanceof ZodNullable || schema instanceof ZodDefault) {
7586
+ return unwrap(schema.def.innerType);
7516
7587
  }
7517
- return [...systemCounts.entries()].map(([systemId, count]) => ({
7518
- systemId,
7519
- count,
7520
- label: graphNodesById.get(systemId)?.label ?? systemId.replace(/^system:/, "")
7521
- })).sort((left, right) => right.count - left.count || left.label.localeCompare(right.label));
7522
- }
7523
- function KnowledgeOverview({ graph, knowledgeNodes, onSelectNode }) {
7524
- const kindCounts = useMemo(() => createKindCounts(knowledgeNodes), [knowledgeNodes]);
7525
- const entryNodes = useMemo(
7526
- () => ENTRY_NODE_IDS.map((id) => knowledgeNodes.find((node) => node.id === id)).filter(
7527
- (node) => Boolean(node)
7528
- ),
7529
- [knowledgeNodes]
7530
- );
7531
- const recentNodes = useMemo(
7532
- () => [...knowledgeNodes].sort((left, right) => right.updatedAt.localeCompare(left.updatedAt) || left.title.localeCompare(right.title)).slice(0, 5),
7533
- [knowledgeNodes]
7534
- );
7535
- const governedSystemCoverage = useMemo(() => getGovernedSystemCoverage(graph), [graph]);
7536
- const governedSystemCount = governedSystemCoverage.length;
7537
- const governedTargetCount = useMemo(() => {
7538
- const knowledgeGraphIds = resolveKnowledgeGraphIds(graph);
7539
- return new Set(
7540
- graph.edges.filter((edge) => edge.kind === "governs" && knowledgeGraphIds.has(edge.sourceId)).map((edge) => edge.targetId)
7541
- ).size;
7542
- }, [graph]);
7543
- return /* @__PURE__ */ jsx(Box, { style: { width: "100%" }, children: /* @__PURE__ */ jsx(PageContainer, { children: /* @__PURE__ */ jsx(
7544
- Paper,
7545
- {
7546
- withBorder: true,
7547
- style: {
7548
- maxWidth: 920,
7549
- margin: "0 auto",
7550
- background: "var(--glass-background)",
7551
- borderColor: "var(--color-border)"
7552
- },
7553
- children: /* @__PURE__ */ jsxs(Stack, { gap: "xl", p: "lg", children: [
7554
- /* @__PURE__ */ jsx(Stack, { gap: "xs", children: /* @__PURE__ */ jsxs(Group, { justify: "space-between", align: "start", gap: "md", children: [
7555
- /* @__PURE__ */ jsxs(Group, { gap: "sm", align: "start", wrap: "nowrap", children: [
7556
- /* @__PURE__ */ jsx(ThemeIcon, { variant: "light", color: "blue", radius: "sm", size: "lg", children: /* @__PURE__ */ jsx(SemanticIcon, { token: "nav.knowledge", fallbackKind: "knowledge", size: 18 }) }),
7557
- /* @__PURE__ */ jsxs(Box, { children: [
7558
- /* @__PURE__ */ jsx(Title, { order: 1, size: "h2", children: "Knowledge Base" }),
7559
- /* @__PURE__ */ jsx(Text, { c: "dimmed", size: "sm", maw: 720, mt: 4, children: "Start at Profile to understand the org. Browse Business Model for who we serve and what we sell. Systems is operational structure. Graph shows the machinery. Governance & Wiring covers cross-cutting roles, policies, statuses, and navigation surfaces." })
7560
- ] })
7561
- ] }),
7562
- /* @__PURE__ */ jsxs(Badge, { variant: "light", color: "blue", children: [
7563
- knowledgeNodes.length,
7564
- " nodes"
7565
- ] })
7566
- ] }) }),
7567
- /* @__PURE__ */ jsxs(SimpleGrid, { cols: { base: 1, sm: 2, md: 4 }, spacing: "sm", children: [
7568
- /* @__PURE__ */ jsx(OverviewStat, { label: "Knowledge nodes", value: knowledgeNodes.length.toString() }),
7569
- /* @__PURE__ */ jsx(OverviewStat, { label: "Governed areas", value: governedTargetCount.toString() }),
7570
- /* @__PURE__ */ jsx(OverviewStat, { label: "Covered systems", value: governedSystemCount.toString() }),
7571
- /* @__PURE__ */ jsx(OverviewStat, { label: "Graph nodes", value: graph.nodes.length.toString() })
7572
- ] }),
7573
- /* @__PURE__ */ jsx(Divider, {}),
7574
- /* @__PURE__ */ jsxs(SimpleGrid, { cols: { base: 1, md: 3 }, spacing: "lg", children: [
7575
- /* @__PURE__ */ jsx(
7576
- OverviewSection,
7577
- {
7578
- title: "Profile",
7579
- body: "Understand identity, branding, mission, legal shape, and business hours before moving into the model."
7580
- }
7581
- ),
7582
- /* @__PURE__ */ jsx(
7583
- OverviewSection,
7584
- {
7585
- title: "Business Model",
7586
- body: "Review customers, offerings, and goals to see who we serve, what we sell, and what the org is optimizing for."
7587
- }
7588
- ),
7589
- /* @__PURE__ */ jsx(
7590
- OverviewSection,
7591
- {
7592
- title: "Systems",
7593
- body: "Browse operational structure, including business systems and their nested sales, prospecting, and project configuration."
7594
- }
7595
- ),
7596
- /* @__PURE__ */ jsx(
7597
- OverviewSection,
7598
- {
7599
- title: "Graph",
7600
- body: "Drill into resources, actions, entities, events, and the knowledge Start Here hub that explains the graph contract."
7601
- }
7602
- ),
7603
- /* @__PURE__ */ jsx(
7604
- OverviewSection,
7605
- {
7606
- title: "Governance & Wiring",
7607
- body: "Check cross-cutting roles, policies, status vocabularies, and navigation surfaces that connect the model."
7608
- }
7609
- )
7610
- ] }),
7611
- /* @__PURE__ */ jsx(Divider, {}),
7612
- /* @__PURE__ */ jsxs(Stack, { gap: "sm", children: [
7613
- /* @__PURE__ */ jsxs(Group, { justify: "space-between", align: "center", children: [
7614
- /* @__PURE__ */ jsx(Title, { order: 2, size: "h3", children: "Start Here" }),
7615
- /* @__PURE__ */ jsx(Group, { gap: 6, children: Object.entries(kindCounts).map(([kind, count]) => /* @__PURE__ */ jsxs(Badge, { variant: "outline", color: "gray", children: [
7616
- formatKindLabel(kind),
7617
- ": ",
7618
- count
7619
- ] }, kind)) })
7620
- ] }),
7621
- /* @__PURE__ */ jsx(Stack, { gap: "xs", children: entryNodes.map((node) => /* @__PURE__ */ jsx(KnowledgeOverviewRow, { node, onSelectNode }, node.id)) })
7622
- ] }),
7623
- /* @__PURE__ */ jsxs(SimpleGrid, { cols: { base: 1, md: 2 }, spacing: "lg", children: [
7624
- /* @__PURE__ */ jsxs(Stack, { gap: "sm", children: [
7625
- /* @__PURE__ */ jsx(Title, { order: 2, size: "h3", children: "Recent Updates" }),
7626
- /* @__PURE__ */ jsx(Stack, { gap: "xs", children: recentNodes.map((node) => /* @__PURE__ */ jsx(KnowledgeOverviewRow, { node, compact: true, onSelectNode }, node.id)) })
7627
- ] }),
7628
- /* @__PURE__ */ jsxs(Stack, { gap: "sm", children: [
7629
- /* @__PURE__ */ jsx(Title, { order: 2, size: "h3", children: "System Coverage" }),
7630
- /* @__PURE__ */ jsx(Stack, { gap: 6, children: governedSystemCoverage.slice(0, 6).map((system) => /* @__PURE__ */ jsxs(
7631
- Group,
7632
- {
7633
- justify: "space-between",
7634
- wrap: "nowrap",
7635
- style: {
7636
- borderBottom: "1px solid var(--color-border)",
7637
- paddingBlock: 8
7638
- },
7639
- children: [
7640
- /* @__PURE__ */ jsx(Text, { size: "sm", fw: 650, lineClamp: 1, children: system.label }),
7641
- /* @__PURE__ */ jsx(Badge, { variant: "light", color: "gray", children: system.count })
7642
- ]
7643
- },
7644
- system.systemId
7645
- )) })
7646
- ] })
7647
- ] })
7648
- ] })
7649
- }
7650
- ) }) });
7651
- }
7652
- function OverviewStat({ label, value }) {
7653
- return /* @__PURE__ */ jsxs(
7654
- Box,
7655
- {
7656
- style: {
7657
- border: "1px solid var(--color-border)",
7658
- borderRadius: 8,
7659
- padding: "var(--mantine-spacing-sm)"
7660
- },
7661
- children: [
7662
- /* @__PURE__ */ jsx(Text, { size: "xl", fw: 800, lh: 1, children: value }),
7663
- /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", fw: 650, tt: "uppercase", mt: 6, children: label })
7664
- ]
7665
- }
7666
- );
7667
- }
7668
- function OverviewSection({ title, body }) {
7669
- return /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
7670
- /* @__PURE__ */ jsx(Text, { fw: 750, children: title }),
7671
- /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", lh: 1.6, children: body })
7672
- ] });
7673
- }
7674
- function KnowledgeOverviewRow({
7675
- node,
7676
- compact = false,
7677
- onSelectNode
7678
- }) {
7679
- return /* @__PURE__ */ jsx(
7680
- UnstyledButton,
7681
- {
7682
- onClick: () => onSelectNode?.(node.id),
7683
- disabled: !onSelectNode,
7684
- style: {
7685
- display: "block",
7686
- width: "100%",
7687
- border: "1px solid var(--color-border)",
7688
- borderRadius: 8,
7689
- padding: compact ? "10px 12px" : "12px 14px",
7690
- color: "var(--color-text)",
7691
- cursor: onSelectNode ? "pointer" : "default"
7692
- },
7693
- children: /* @__PURE__ */ jsxs(Group, { gap: "sm", align: "start", wrap: "nowrap", children: [
7694
- /* @__PURE__ */ jsx(
7695
- SemanticIcon,
7696
- {
7697
- token: getKnowledgeIconToken(node),
7698
- fallbackKind: node.kind,
7699
- size: 16,
7700
- style: { color: "var(--color-primary)", marginTop: 2 }
7701
- }
7702
- ),
7703
- /* @__PURE__ */ jsxs(Box, { style: { minWidth: 0, flex: 1 }, children: [
7704
- /* @__PURE__ */ jsxs(Group, { gap: "xs", wrap: "nowrap", children: [
7705
- /* @__PURE__ */ jsx(Text, { size: "sm", fw: 750, lineClamp: 1, children: node.title }),
7706
- /* @__PURE__ */ jsx(Badge, { variant: "light", color: "gray", size: "xs", style: { flexShrink: 0 }, children: node.kind })
7707
- ] }),
7708
- !compact && /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", mt: 4, lineClamp: 2, children: node.summary }),
7709
- /* @__PURE__ */ jsxs(Text, { size: "xs", c: "dimmed", mt: compact ? 2 : 6, children: [
7710
- "Updated ",
7711
- node.updatedAt
7712
- ] })
7713
- ] })
7714
- ] })
7715
- }
7716
- );
7717
- }
7718
- function KnowledgeNodeList({ nodes, onSelect, selectedNodeId, label }) {
7719
- if (nodes.length === 0) {
7720
- return /* @__PURE__ */ jsxs(Stack, { gap: "xs", style: { padding: "var(--mantine-spacing-md)" }, children: [
7721
- label && /* @__PURE__ */ jsx(Text, { size: "xs", fw: 600, tt: "uppercase", c: "dimmed", style: { letterSpacing: "0.05em" }, children: label }),
7722
- /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "No knowledge nodes found." })
7723
- ] });
7724
- }
7725
- return /* @__PURE__ */ jsxs(Stack, { gap: 4, style: { padding: "var(--mantine-spacing-sm)" }, children: [
7726
- label && /* @__PURE__ */ jsx(
7727
- Text,
7728
- {
7729
- size: "xs",
7730
- fw: 600,
7731
- tt: "uppercase",
7732
- c: "dimmed",
7733
- style: { letterSpacing: "0.05em", paddingBottom: "var(--mantine-spacing-xs)" },
7734
- children: label
7735
- }
7736
- ),
7737
- nodes.map((node) => {
7738
- const isActive = node.id === selectedNodeId;
7739
- return /* @__PURE__ */ jsx(
7740
- UnstyledButton,
7741
- {
7742
- onClick: () => onSelect(node),
7743
- style: {
7744
- padding: "var(--mantine-spacing-sm)",
7745
- borderRadius: "var(--mantine-radius-default)",
7746
- backgroundColor: isActive ? "color-mix(in srgb, var(--color-primary) 10%, transparent)" : "transparent",
7747
- border: isActive ? "1px solid color-mix(in srgb, var(--color-primary) 25%, transparent)" : "1px solid transparent",
7748
- transition: `all var(--duration-fast) var(--easing)`,
7749
- cursor: "pointer",
7750
- width: "100%",
7751
- textAlign: "left"
7752
- },
7753
- onMouseEnter: (e) => {
7754
- if (!isActive) {
7755
- e.currentTarget.style.backgroundColor = "var(--color-surface-hover)";
7756
- }
7757
- },
7758
- onMouseLeave: (e) => {
7759
- if (!isActive) {
7760
- e.currentTarget.style.backgroundColor = "transparent";
7761
- }
7762
- },
7763
- children: /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
7764
- /* @__PURE__ */ jsxs(Group, { gap: "xs", wrap: "nowrap", children: [
7765
- /* @__PURE__ */ jsx(
7766
- Text,
7767
- {
7768
- size: "sm",
7769
- fw: isActive ? 600 : 400,
7770
- style: {
7771
- flex: 1,
7772
- overflow: "hidden",
7773
- textOverflow: "ellipsis",
7774
- whiteSpace: "nowrap",
7775
- color: isActive ? "var(--color-primary)" : "var(--color-text)"
7776
- },
7777
- children: node.title
7778
- }
7779
- ),
7780
- /* @__PURE__ */ jsx(KindChip, { kind: node.kind, tone: "primary", style: { flexShrink: 0 } })
7781
- ] }),
7782
- /* @__PURE__ */ jsx(
7783
- Text,
7784
- {
7785
- size: "xs",
7786
- c: "dimmed",
7787
- style: {
7788
- overflow: "hidden",
7789
- display: "-webkit-box",
7790
- WebkitLineClamp: 2,
7791
- WebkitBoxOrient: "vertical",
7792
- textOverflow: "ellipsis"
7793
- },
7794
- children: node.summary
7795
- }
7796
- )
7797
- ] })
7798
- },
7799
- node.id
7800
- );
7801
- })
7802
- ] });
7803
- }
7804
- var KNOWLEDGE_ITEMS = [{ label: "Knowledge", to: "/knowledge", icon: IconBook, exact: true }];
7805
- function getMeta(schema) {
7806
- return schema.meta() ?? {};
7807
- }
7808
- function labelFromFieldName(fieldName) {
7809
- return fieldName.replace(/([a-z0-9])([A-Z])/g, "$1 $2").replace(/[-_]/g, " ").replace(/^./, (c) => c.toUpperCase());
7810
- }
7811
- function unwrap(schema) {
7812
- if (schema instanceof ZodOptional || schema instanceof ZodNullable || schema instanceof ZodDefault) {
7813
- return unwrap(schema.def.innerType);
7814
- }
7815
- return schema;
7588
+ return schema;
7816
7589
  }
7817
7590
  function renderField({ schema, value, fieldName, onNavigateToNode }) {
7818
7591
  const meta = getMeta(schema);
@@ -7856,7 +7629,7 @@ function renderField({ schema, value, fieldName, onNavigateToNode }) {
7856
7629
  cursor: "pointer",
7857
7630
  fontSize: "var(--mantine-font-size-xs)",
7858
7631
  fontWeight: 600,
7859
- color: "var(--color-text-dimmed)",
7632
+ color: "var(--color-text-subtle)",
7860
7633
  paddingBottom: 4
7861
7634
  },
7862
7635
  children: label
@@ -7886,7 +7659,7 @@ function renderField({ schema, value, fieldName, onNavigateToNode }) {
7886
7659
  cursor: "pointer",
7887
7660
  fontSize: "var(--mantine-font-size-xs)",
7888
7661
  fontWeight: 600,
7889
- color: "var(--color-text-dimmed)",
7662
+ color: "var(--color-text-subtle)",
7890
7663
  paddingBottom: 4
7891
7664
  },
7892
7665
  children: /* @__PURE__ */ jsxs(Group, { gap: 4, align: "center", component: "span", style: { display: "inline-flex" }, children: [
@@ -7969,9 +7742,9 @@ function ParentBreadcrumb({
7969
7742
  }
7970
7743
  if (ancestors.length === 0) return null;
7971
7744
  return /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
7972
- /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", fw: 500, children: "Parent system" }),
7745
+ /* @__PURE__ */ jsx(Text, { size: "xs", fw: 500, style: { color: "var(--color-text-subtle)" }, children: "Parent system" }),
7973
7746
  /* @__PURE__ */ jsx(Group, { gap: 4, align: "center", wrap: "wrap", children: ancestors.map((ancestor, i) => /* @__PURE__ */ jsxs(Group, { gap: 4, align: "center", children: [
7974
- i > 0 && /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", children: ">" }),
7747
+ i > 0 && /* @__PURE__ */ jsx(Text, { size: "xs", style: { color: "var(--color-text-subtle)" }, children: ">" }),
7975
7748
  /* @__PURE__ */ jsx(
7976
7749
  EdgeChip,
7977
7750
  {
@@ -7992,7 +7765,7 @@ function UiPlacementSection({
7992
7765
  const hasAny = uiOrder !== void 0 || uiPosition !== void 0 || requiresAdmin !== void 0 || devOnly !== void 0 || color !== void 0;
7993
7766
  if (!hasAny) return null;
7994
7767
  return /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
7995
- /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", fw: 500, children: "UI placement" }),
7768
+ /* @__PURE__ */ jsx(Text, { size: "xs", fw: 500, style: { color: "var(--color-text-subtle)" }, children: "UI placement" }),
7996
7769
  /* @__PURE__ */ jsxs(Group, { gap: 4, wrap: "wrap", children: [
7997
7770
  uiOrder !== void 0 && /* @__PURE__ */ jsx(KindChip, { kind: `order: ${uiOrder}`, tone: "subtle" }),
7998
7771
  uiPosition !== void 0 && /* @__PURE__ */ jsx(KindChip, { kind: uiPosition, tone: "subtle" }),
@@ -8002,6 +7775,16 @@ function UiPlacementSection({
8002
7775
  ] })
8003
7776
  ] });
8004
7777
  }
7778
+ function getContainedOntologyNodeIds(node, graph, ontologyKind) {
7779
+ return graph.edges.filter((edge) => edge.kind === "contains" && edge.sourceId === node.id).map((edge) => graph.nodes.find((candidate) => candidate.id === edge.targetId)).filter(
7780
+ (candidate) => candidate !== void 0 && candidate.kind === "ontology" && candidate.ontologyKind === ontologyKind
7781
+ ).map((candidate) => candidate.id);
7782
+ }
7783
+ function getPrimaryOntologyNodeIds(systemId, organizationModel, domainKey) {
7784
+ if (systemId === void 0 || organizationModel === void 0) return void 0;
7785
+ const projection = getKnowledgeOntologyProjection(organizationModel);
7786
+ return getPrimaryOntologyItemsForDomain(projection, domainKey).filter((item) => item.ownerSystemId === systemId).map((item) => item.kind === "resource" ? `resource:${item.id}` : `ontology:${item.id}`);
7787
+ }
8005
7788
  function SystemDescribeView({
8006
7789
  node,
8007
7790
  graph,
@@ -8019,6 +7802,10 @@ function SystemDescribeView({
8019
7802
  );
8020
7803
  const exposesActionIds = actionEdges.filter((e) => e.label === "exposes").map((e) => e.targetId);
8021
7804
  const consumesActionIds = actionEdges.filter((e) => e.label === "consumes").map((e) => e.targetId);
7805
+ const ontologyObjectIds = getPrimaryOntologyNodeIds(systemSourceId, organizationModel, "ontology-objects") ?? getContainedOntologyNodeIds(node, graph, "object");
7806
+ const ontologyActionIds = getPrimaryOntologyNodeIds(systemSourceId, organizationModel, "ontology-actions") ?? getContainedOntologyNodeIds(node, graph, "action");
7807
+ const ontologyCatalogIds = getPrimaryOntologyNodeIds(systemSourceId, organizationModel, "ontology-catalogs") ?? getContainedOntologyNodeIds(node, graph, "catalog");
7808
+ const ontologySurfaceIds = getPrimaryOntologyNodeIds(systemSourceId, organizationModel, "ontology-surfaces") ?? getContainedOntologyNodeIds(node, graph, "surface");
8022
7809
  const uiIcon = system?.ui?.icon ?? system?.icon;
8023
7810
  const uiPath = system?.ui?.path ?? system?.path;
8024
7811
  const uiSurfaces = system?.ui?.surfaces;
@@ -8033,13 +7820,15 @@ function SystemDescribeView({
8033
7820
  NodeDescribeShell,
8034
7821
  {
8035
7822
  header: /* @__PURE__ */ jsx(
8036
- NodeHeader,
7823
+ KnowledgePageHeader,
8037
7824
  {
8038
7825
  title: node.label,
8039
7826
  kind: "System",
8040
7827
  tone: "subtle",
7828
+ iconToken: uiIcon,
8041
7829
  description: node.description,
8042
- rightSection: system?.kind != null ? /* @__PURE__ */ jsx(KindChip, { kind: system.kind, tone: "muted" }) : void 0
7830
+ copyCommand: getKnowledgeGraphNodeCommand(node),
7831
+ badges: system?.kind != null ? /* @__PURE__ */ jsx(KindChip, { kind: system.kind, tone: "muted" }) : void 0
8043
7832
  }
8044
7833
  ),
8045
7834
  content: /* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
@@ -8048,27 +7837,19 @@ function SystemDescribeView({
8048
7837
  node.enabled !== void 0 && /* @__PURE__ */ jsx(KeyField, { label: "Enabled", value: String(node.enabled) }),
8049
7838
  uiPath != null && /* @__PURE__ */ jsx(KeyField, { label: "UI path", value: uiPath }),
8050
7839
  uiIcon != null && /* @__PURE__ */ jsxs(Group, { gap: "xs", align: "center", children: [
8051
- /* @__PURE__ */ jsx(Text, { size: "xs", fw: 500, c: "dimmed", style: { minWidth: 96 }, children: "UI icon" }),
7840
+ /* @__PURE__ */ jsx(Text, { size: "xs", fw: 500, style: { minWidth: 96, color: "var(--color-text-subtle)" }, children: "UI icon" }),
8052
7841
  /* @__PURE__ */ jsxs(Group, { gap: 4, align: "center", children: [
8053
- /* @__PURE__ */ jsx(
8054
- SemanticIcon,
8055
- {
8056
- token: uiIcon,
8057
- fallbackKind: "unknown",
8058
- size: 14,
8059
- style: { color: "var(--color-text-subtle)" }
8060
- }
8061
- ),
7842
+ /* @__PURE__ */ jsx(SemanticIcon, { token: uiIcon, size: 14, style: { color: "var(--color-text-subtle)" } }),
8062
7843
  /* @__PURE__ */ jsx(KindChip, { kind: uiIcon, tone: "subtle" })
8063
7844
  ] })
8064
7845
  ] }),
8065
7846
  system?.lifecycle != null && /* @__PURE__ */ jsxs(Group, { gap: "xs", align: "baseline", children: [
8066
- /* @__PURE__ */ jsx(Text, { size: "xs", fw: 500, c: "dimmed", style: { minWidth: 96 }, children: "Lifecycle" }),
7847
+ /* @__PURE__ */ jsx(Text, { size: "xs", fw: 500, style: { minWidth: 96, color: "var(--color-text-subtle)" }, children: "Lifecycle" }),
8067
7848
  /* @__PURE__ */ jsx(KindChip, { kind: system.lifecycle, tone: system.lifecycle === "active" ? "primary" : "subtle" })
8068
7849
  ] }),
8069
7850
  systemSourceId != null && systemSourceId.includes(".") && /* @__PURE__ */ jsx(ParentBreadcrumb, { systemId: systemSourceId, graph, onNavigateToNode }),
8070
7851
  system?.responsibleRoleId != null && /* @__PURE__ */ jsxs(Group, { gap: "xs", align: "baseline", children: [
8071
- /* @__PURE__ */ jsx(Text, { size: "xs", fw: 500, c: "dimmed", style: { minWidth: 96 }, children: "Responsible role" }),
7852
+ /* @__PURE__ */ jsx(Text, { size: "xs", fw: 500, style: { minWidth: 96, color: "var(--color-text-subtle)" }, children: "Responsible role" }),
8072
7853
  /* @__PURE__ */ jsx(
8073
7854
  EdgeChip,
8074
7855
  {
@@ -8078,7 +7859,7 @@ function SystemDescribeView({
8078
7859
  )
8079
7860
  ] }),
8080
7861
  system?.drivesGoals != null && system.drivesGoals.length > 0 && /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
8081
- /* @__PURE__ */ jsxs(Text, { size: "xs", c: "dimmed", fw: 500, children: [
7862
+ /* @__PURE__ */ jsxs(Text, { size: "xs", fw: 500, style: { color: "var(--color-text-subtle)" }, children: [
8082
7863
  "Drives goals (",
8083
7864
  system.drivesGoals.length,
8084
7865
  ")"
@@ -8119,8 +7900,40 @@ function SystemDescribeView({
8119
7900
  color
8120
7901
  }
8121
7902
  ),
7903
+ ontologyObjectIds.length > 0 && /* @__PURE__ */ jsx(
7904
+ EdgeGroup,
7905
+ {
7906
+ label: `Ontology objects (${ontologyObjectIds.length})`,
7907
+ ids: ontologyObjectIds,
7908
+ onNavigateToNode
7909
+ }
7910
+ ),
7911
+ ontologyActionIds.length > 0 && /* @__PURE__ */ jsx(
7912
+ EdgeGroup,
7913
+ {
7914
+ label: `Ontology actions (${ontologyActionIds.length})`,
7915
+ ids: ontologyActionIds,
7916
+ onNavigateToNode
7917
+ }
7918
+ ),
7919
+ ontologyCatalogIds.length > 0 && /* @__PURE__ */ jsx(
7920
+ EdgeGroup,
7921
+ {
7922
+ label: `Ontology catalogs (${ontologyCatalogIds.length})`,
7923
+ ids: ontologyCatalogIds,
7924
+ onNavigateToNode
7925
+ }
7926
+ ),
7927
+ ontologySurfaceIds.length > 0 && /* @__PURE__ */ jsx(
7928
+ EdgeGroup,
7929
+ {
7930
+ label: `Ontology surfaces (${ontologySurfaceIds.length})`,
7931
+ ids: ontologySurfaceIds,
7932
+ onNavigateToNode
7933
+ }
7934
+ ),
8122
7935
  exposesActionIds.length > 0 && /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
8123
- /* @__PURE__ */ jsxs(Text, { size: "xs", c: "dimmed", fw: 500, children: [
7936
+ /* @__PURE__ */ jsxs(Text, { size: "xs", fw: 500, style: { color: "var(--color-text-subtle)" }, children: [
8124
7937
  "Exposes actions (",
8125
7938
  exposesActionIds.length,
8126
7939
  ")"
@@ -8128,7 +7941,7 @@ function SystemDescribeView({
8128
7941
  /* @__PURE__ */ jsx(Group, { gap: 4, wrap: "wrap", children: exposesActionIds.map((id) => /* @__PURE__ */ jsx(EdgeChip, { id, onClick: onNavigateToNode ? () => onNavigateToNode(id) : void 0 }, id)) })
8129
7942
  ] }),
8130
7943
  consumesActionIds.length > 0 && /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
8131
- /* @__PURE__ */ jsxs(Text, { size: "xs", c: "dimmed", fw: 500, children: [
7944
+ /* @__PURE__ */ jsxs(Text, { size: "xs", fw: 500, style: { color: "var(--color-text-subtle)" }, children: [
8132
7945
  "Consumes actions (",
8133
7946
  consumesActionIds.length,
8134
7947
  ")"
@@ -8138,7 +7951,7 @@ function SystemDescribeView({
8138
7951
  ownedEntityIds.length > 0 && /* @__PURE__ */ jsx(
8139
7952
  EdgeGroup,
8140
7953
  {
8141
- label: `Entities owned (${ownedEntityIds.length})`,
7954
+ label: `Legacy entities owned (${ownedEntityIds.length})`,
8142
7955
  ids: ownedEntityIds,
8143
7956
  onNavigateToNode
8144
7957
  }
@@ -8193,7 +8006,16 @@ function GenericDescribeView({ node, graph, knowledgeNodes, onNavigateToNode })
8193
8006
  return /* @__PURE__ */ jsx(
8194
8007
  NodeDescribeShell,
8195
8008
  {
8196
- header: /* @__PURE__ */ jsx(NodeHeader, { title: node.label, kind: node.kind, tone: "subtle", description: node.description }),
8009
+ header: /* @__PURE__ */ jsx(
8010
+ KnowledgePageHeader,
8011
+ {
8012
+ title: node.label,
8013
+ kind: node.kind,
8014
+ tone: "subtle",
8015
+ description: node.description,
8016
+ copyCommand: getKnowledgeGraphNodeCommand(node)
8017
+ }
8018
+ ),
8197
8019
  content: /* @__PURE__ */ jsx(Stack, { gap: 4, children: entries.map(([key, value]) => /* @__PURE__ */ jsx(KeyField, { label: key, value: String(value) }, key)) }),
8198
8020
  relationships: /* @__PURE__ */ jsx(
8199
8021
  EdgeRelationshipGroup,
@@ -8284,7 +8106,7 @@ function InvocationsTable({ action, onNavigateToNode }) {
8284
8106
  fz: "xs",
8285
8107
  styles: {
8286
8108
  table: { borderColor: "var(--color-border)", background: "var(--color-surface)" },
8287
- th: { color: "var(--color-text-dimmed)", fontWeight: 600, padding: "4px 8px" },
8109
+ th: { color: "var(--color-text-subtle)", fontWeight: 600, padding: "4px 8px" },
8288
8110
  td: { padding: "4px 8px", verticalAlign: "middle" }
8289
8111
  },
8290
8112
  children: [
@@ -8459,7 +8281,7 @@ function InvocationsTable2({
8459
8281
  fz: "xs",
8460
8282
  styles: {
8461
8283
  table: { borderColor: "var(--color-border)", background: "var(--color-surface)" },
8462
- th: { color: "var(--color-text-dimmed)", fontWeight: 600, padding: "4px 8px" },
8284
+ th: { color: "var(--color-text-subtle)", fontWeight: 600, padding: "4px 8px" },
8463
8285
  td: { padding: "4px 8px", verticalAlign: "middle" }
8464
8286
  },
8465
8287
  children: [
@@ -8529,7 +8351,7 @@ function ScriptSource({ source }) {
8529
8351
  }
8530
8352
  function WorkflowContent({ resource }) {
8531
8353
  return /* @__PURE__ */ jsxs(Fragment, { children: [
8532
- resource.actionKey && /* @__PURE__ */ jsx(KeyField, { label: "Action key", value: resource.actionKey }),
8354
+ resource.ontology?.primaryAction && /* @__PURE__ */ jsx(KeyField, { label: "Primary action", value: resource.ontology.primaryAction }),
8533
8355
  resource.emits && resource.emits.length > 0 && /* @__PURE__ */ jsx(EmitsList, { emits: resource.emits })
8534
8356
  ] });
8535
8357
  }
@@ -8652,7 +8474,6 @@ function ResourceDescribeView({
8652
8474
  "kind",
8653
8475
  "status",
8654
8476
  "ownerRoleId",
8655
- "actionKey",
8656
8477
  "emits",
8657
8478
  "agentKind",
8658
8479
  "actsAsRoleId",
@@ -8777,10 +8598,10 @@ function EntityDescribeView({
8777
8598
  },
8778
8599
  children: [
8779
8600
  /* @__PURE__ */ jsx(Table.Thead, { children: /* @__PURE__ */ jsxs(Table.Tr, { children: [
8780
- /* @__PURE__ */ jsx(Table.Th, { style: { color: "var(--color-text-dimmed)", fontWeight: 500 }, children: "To Entity" }),
8781
- /* @__PURE__ */ jsx(Table.Th, { style: { color: "var(--color-text-dimmed)", fontWeight: 500 }, children: "Kind" }),
8782
- /* @__PURE__ */ jsx(Table.Th, { style: { color: "var(--color-text-dimmed)", fontWeight: 500 }, children: "Via" }),
8783
- /* @__PURE__ */ jsx(Table.Th, { style: { color: "var(--color-text-dimmed)", fontWeight: 500 }, children: "Label" })
8601
+ /* @__PURE__ */ jsx(Table.Th, { style: { color: "var(--color-text-subtle)", fontWeight: 500 }, children: "To Entity" }),
8602
+ /* @__PURE__ */ jsx(Table.Th, { style: { color: "var(--color-text-subtle)", fontWeight: 500 }, children: "Kind" }),
8603
+ /* @__PURE__ */ jsx(Table.Th, { style: { color: "var(--color-text-subtle)", fontWeight: 500 }, children: "Via" }),
8604
+ /* @__PURE__ */ jsx(Table.Th, { style: { color: "var(--color-text-subtle)", fontWeight: 500 }, children: "Label" })
8784
8605
  ] }) }),
8785
8606
  /* @__PURE__ */ jsx(Table.Tbody, { children: linkEdges.map((edge) => /* @__PURE__ */ jsxs(Table.Tr, { children: [
8786
8607
  /* @__PURE__ */ jsx(Table.Td, { style: { fontFamily: "var(--mantine-font-family-monospace)" }, children: edge.targetId }),
@@ -9204,14 +9025,30 @@ function ContentNodeDescribeView({
9204
9025
  function BrandingPanel({ model }) {
9205
9026
  const branding = model.branding;
9206
9027
  if (!branding) {
9207
- return /* @__PURE__ */ jsxs(Stack, { p: "lg", gap: "sm", children: [
9208
- /* @__PURE__ */ jsx(Text, { fw: 650, children: "Branding" }),
9028
+ return /* @__PURE__ */ jsxs(Stack, { p: "md", gap: "sm", children: [
9029
+ /* @__PURE__ */ jsx(
9030
+ KnowledgePageHeader,
9031
+ {
9032
+ title: "Branding",
9033
+ kind: "Domain",
9034
+ tone: "subtle",
9035
+ copyCommand: getKnowledgeDomainFolderCommand("branding")
9036
+ }
9037
+ ),
9209
9038
  /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "No branding configured." })
9210
9039
  ] });
9211
9040
  }
9212
- return /* @__PURE__ */ jsxs(Stack, { p: "lg", gap: "md", children: [
9213
- /* @__PURE__ */ jsx(Title, { order: 3, children: "Branding" }),
9214
- /* @__PURE__ */ jsx(Divider, {}),
9041
+ return /* @__PURE__ */ jsxs(Stack, { p: "md", gap: "md", children: [
9042
+ /* @__PURE__ */ jsx(
9043
+ KnowledgePageHeader,
9044
+ {
9045
+ title: "Branding",
9046
+ kind: "Domain",
9047
+ tone: "subtle",
9048
+ copyCommand: getKnowledgeDomainFolderCommand("branding")
9049
+ }
9050
+ ),
9051
+ /* @__PURE__ */ jsx(Divider, {}),
9215
9052
  /* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
9216
9053
  /* @__PURE__ */ jsxs(Group, { gap: "xs", children: [
9217
9054
  /* @__PURE__ */ jsx(Text, { size: "sm", fw: 500, c: "dimmed", style: { minWidth: 140 }, children: "Organization Name" }),
@@ -9272,13 +9109,29 @@ function CustomersPanel({ model, filterToItemId }) {
9272
9109
  const customers = model.customers;
9273
9110
  const segments = Object.values(customers).filter((segment) => !filterToItemId || segment.id === filterToItemId).sort((a, b) => a.order - b.order);
9274
9111
  if (segments.length === 0) {
9275
- return /* @__PURE__ */ jsxs(Stack, { p: "lg", gap: "sm", children: [
9276
- /* @__PURE__ */ jsx(Text, { fw: 650, children: "Customers" }),
9112
+ return /* @__PURE__ */ jsxs(Stack, { p: "md", gap: "sm", children: [
9113
+ /* @__PURE__ */ jsx(
9114
+ KnowledgePageHeader,
9115
+ {
9116
+ title: "Customers",
9117
+ kind: "Domain",
9118
+ tone: "subtle",
9119
+ copyCommand: getKnowledgeDomainFolderCommand("customers")
9120
+ }
9121
+ ),
9277
9122
  /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: filterToItemId ? "Customer segment not found." : "No customer segments defined yet." })
9278
9123
  ] });
9279
9124
  }
9280
- return /* @__PURE__ */ jsxs(Stack, { p: "lg", gap: "md", children: [
9281
- /* @__PURE__ */ jsx(Title, { order: 3, children: "Customers" }),
9125
+ return /* @__PURE__ */ jsxs(Stack, { p: "md", gap: "md", children: [
9126
+ /* @__PURE__ */ jsx(
9127
+ KnowledgePageHeader,
9128
+ {
9129
+ title: "Customers",
9130
+ kind: "Domain",
9131
+ tone: "subtle",
9132
+ copyCommand: getKnowledgeDomainFolderCommand("customers")
9133
+ }
9134
+ ),
9282
9135
  /* @__PURE__ */ jsxs(Text, { size: "sm", c: "dimmed", children: [
9283
9136
  segments.length,
9284
9137
  " segment",
@@ -9326,13 +9179,29 @@ function GoalsPanel({ model, filterToItemId }) {
9326
9179
  const goals = model.goals;
9327
9180
  const objectives = Object.values(goals).filter((objective) => !filterToItemId || objective.id === filterToItemId).sort((a, b) => a.order - b.order);
9328
9181
  if (objectives.length === 0) {
9329
- return /* @__PURE__ */ jsxs(Stack, { p: "lg", gap: "sm", children: [
9330
- /* @__PURE__ */ jsx(Text, { fw: 650, children: "Goals" }),
9182
+ return /* @__PURE__ */ jsxs(Stack, { p: "md", gap: "sm", children: [
9183
+ /* @__PURE__ */ jsx(
9184
+ KnowledgePageHeader,
9185
+ {
9186
+ title: "Goals",
9187
+ kind: "Domain",
9188
+ tone: "subtle",
9189
+ copyCommand: getKnowledgeDomainFolderCommand("goals")
9190
+ }
9191
+ ),
9331
9192
  /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: filterToItemId ? "Goal not found." : "No goals defined yet." })
9332
9193
  ] });
9333
9194
  }
9334
- return /* @__PURE__ */ jsxs(Stack, { p: "lg", gap: "md", children: [
9335
- /* @__PURE__ */ jsx(Title, { order: 3, children: "Goals" }),
9195
+ return /* @__PURE__ */ jsxs(Stack, { p: "md", gap: "md", children: [
9196
+ /* @__PURE__ */ jsx(
9197
+ KnowledgePageHeader,
9198
+ {
9199
+ title: "Goals",
9200
+ kind: "Domain",
9201
+ tone: "subtle",
9202
+ copyCommand: getKnowledgeDomainFolderCommand("goals")
9203
+ }
9204
+ ),
9336
9205
  /* @__PURE__ */ jsxs(Text, { size: "sm", c: "dimmed", children: [
9337
9206
  objectives.length,
9338
9207
  " goal",
@@ -9393,8 +9262,16 @@ function IdentityPanel({ model }) {
9393
9262
  const identity = model.identity;
9394
9263
  const hasAnyField = identity.mission || identity.vision || identity.legalName || identity.entityType || identity.jurisdiction || identity.industryCategory || identity.geographicFocus || identity.timeZone !== "UTC" || identity.clientBrief;
9395
9264
  if (!hasAnyField) {
9396
- return /* @__PURE__ */ jsxs(Stack, { p: "lg", gap: "sm", children: [
9397
- /* @__PURE__ */ jsx(Text, { fw: 650, children: "Identity" }),
9265
+ return /* @__PURE__ */ jsxs(Stack, { p: "md", gap: "sm", children: [
9266
+ /* @__PURE__ */ jsx(
9267
+ KnowledgePageHeader,
9268
+ {
9269
+ title: "Identity",
9270
+ kind: "Domain",
9271
+ tone: "subtle",
9272
+ copyCommand: getKnowledgeDomainFolderCommand("identity")
9273
+ }
9274
+ ),
9398
9275
  /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "No identity configured." })
9399
9276
  ] });
9400
9277
  }
@@ -9403,8 +9280,16 @@ function IdentityPanel({ model }) {
9403
9280
  return { day: capitalize(day), hours };
9404
9281
  });
9405
9282
  const hasBusinessHours = businessHoursRows.some((r) => r.hours !== void 0);
9406
- return /* @__PURE__ */ jsxs(Stack, { p: "lg", gap: "md", children: [
9407
- /* @__PURE__ */ jsx(Title, { order: 3, children: "Identity" }),
9283
+ return /* @__PURE__ */ jsxs(Stack, { p: "md", gap: "md", children: [
9284
+ /* @__PURE__ */ jsx(
9285
+ KnowledgePageHeader,
9286
+ {
9287
+ title: "Identity",
9288
+ kind: "Domain",
9289
+ tone: "subtle",
9290
+ copyCommand: getKnowledgeDomainFolderCommand("identity")
9291
+ }
9292
+ ),
9408
9293
  /* @__PURE__ */ jsx(Divider, {}),
9409
9294
  /* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
9410
9295
  identity.mission && /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
@@ -9462,8 +9347,16 @@ var SURFACE_TYPE_COLORS = {
9462
9347
  function NavigationPanel({ model, onNavigateToNode, lastModified }) {
9463
9348
  const surfaces = projectNavigationSurfaces(model);
9464
9349
  const groups = projectNavigationGroups(model);
9465
- return /* @__PURE__ */ jsxs(Stack, { p: "lg", gap: "md", children: [
9466
- /* @__PURE__ */ jsx(Title, { order: 3, children: "Navigation" }),
9350
+ return /* @__PURE__ */ jsxs(Stack, { p: "md", gap: "md", children: [
9351
+ /* @__PURE__ */ jsx(
9352
+ KnowledgePageHeader,
9353
+ {
9354
+ title: "Navigation",
9355
+ kind: "Domain",
9356
+ tone: "subtle",
9357
+ copyCommand: getKnowledgeDomainFolderCommand("navigation")
9358
+ }
9359
+ ),
9467
9360
  /* @__PURE__ */ jsxs(Text, { size: "sm", c: "dimmed", children: [
9468
9361
  surfaces.length,
9469
9362
  " surface",
@@ -9557,13 +9450,29 @@ function OfferingsPanel({ model, onNavigateToNode, filterToItemId }) {
9557
9450
  const offerings = model.offerings;
9558
9451
  const products = Object.values(offerings).filter((product) => !filterToItemId || product.id === filterToItemId).sort((a, b) => a.order - b.order);
9559
9452
  if (products.length === 0) {
9560
- return /* @__PURE__ */ jsxs(Stack, { p: "lg", gap: "sm", children: [
9561
- /* @__PURE__ */ jsx(Text, { fw: 650, children: "Offerings" }),
9453
+ return /* @__PURE__ */ jsxs(Stack, { p: "md", gap: "sm", children: [
9454
+ /* @__PURE__ */ jsx(
9455
+ KnowledgePageHeader,
9456
+ {
9457
+ title: "Offerings",
9458
+ kind: "Domain",
9459
+ tone: "subtle",
9460
+ copyCommand: getKnowledgeDomainFolderCommand("offerings")
9461
+ }
9462
+ ),
9562
9463
  /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: filterToItemId ? "Offering not found." : "No offerings defined yet." })
9563
9464
  ] });
9564
9465
  }
9565
- return /* @__PURE__ */ jsxs(Stack, { p: "lg", gap: "md", children: [
9566
- /* @__PURE__ */ jsx(Title, { order: 3, children: "Offerings" }),
9466
+ return /* @__PURE__ */ jsxs(Stack, { p: "md", gap: "md", children: [
9467
+ /* @__PURE__ */ jsx(
9468
+ KnowledgePageHeader,
9469
+ {
9470
+ title: "Offerings",
9471
+ kind: "Domain",
9472
+ tone: "subtle",
9473
+ copyCommand: getKnowledgeDomainFolderCommand("offerings")
9474
+ }
9475
+ ),
9567
9476
  /* @__PURE__ */ jsxs(Text, { size: "sm", c: "dimmed", children: [
9568
9477
  products.length,
9569
9478
  " product",
@@ -9731,13 +9640,29 @@ function PoliciesPanel({ model, onNavigateToNode, filterToItemId }) {
9731
9640
  const policiesRecord = model.policies ?? {};
9732
9641
  const policies = Object.values(policiesRecord).filter((policy) => !filterToItemId || policy.id === filterToItemId).sort((a, b) => a.id.localeCompare(b.id));
9733
9642
  if (policies.length === 0) {
9734
- return /* @__PURE__ */ jsxs(Stack, { p: "lg", gap: "sm", children: [
9735
- /* @__PURE__ */ jsx(Text, { fw: 650, children: "Policies" }),
9643
+ return /* @__PURE__ */ jsxs(Stack, { p: "md", gap: "sm", children: [
9644
+ /* @__PURE__ */ jsx(
9645
+ KnowledgePageHeader,
9646
+ {
9647
+ title: "Policies",
9648
+ kind: "Domain",
9649
+ tone: "subtle",
9650
+ copyCommand: getKnowledgeDomainFolderCommand("policies")
9651
+ }
9652
+ ),
9736
9653
  /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: filterToItemId ? "Policy not found." : "No policies defined yet." })
9737
9654
  ] });
9738
9655
  }
9739
- return /* @__PURE__ */ jsxs(Stack, { p: "lg", gap: "md", children: [
9740
- /* @__PURE__ */ jsx(Title, { order: 3, children: "Policies" }),
9656
+ return /* @__PURE__ */ jsxs(Stack, { p: "md", gap: "md", children: [
9657
+ /* @__PURE__ */ jsx(
9658
+ KnowledgePageHeader,
9659
+ {
9660
+ title: "Policies",
9661
+ kind: "Domain",
9662
+ tone: "subtle",
9663
+ copyCommand: getKnowledgeDomainFolderCommand("policies")
9664
+ }
9665
+ ),
9741
9666
  /* @__PURE__ */ jsxs(Text, { size: "sm", c: "dimmed", children: [
9742
9667
  policies.length,
9743
9668
  " polic",
@@ -9765,13 +9690,29 @@ function RolesPanel({ model, onNavigateToNode, filterToItemId }) {
9765
9690
  const roles = model.roles;
9766
9691
  const roleList = Object.values(roles).filter((role) => !filterToItemId || role.id === filterToItemId).sort((a, b) => a.order - b.order);
9767
9692
  if (roleList.length === 0) {
9768
- return /* @__PURE__ */ jsxs(Stack, { p: "lg", gap: "sm", children: [
9769
- /* @__PURE__ */ jsx(Text, { fw: 650, children: "Roles" }),
9693
+ return /* @__PURE__ */ jsxs(Stack, { p: "md", gap: "sm", children: [
9694
+ /* @__PURE__ */ jsx(
9695
+ KnowledgePageHeader,
9696
+ {
9697
+ title: "Roles",
9698
+ kind: "Domain",
9699
+ tone: "subtle",
9700
+ copyCommand: getKnowledgeDomainFolderCommand("roles")
9701
+ }
9702
+ ),
9770
9703
  /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: filterToItemId ? "Role not found." : "No roles defined yet." })
9771
9704
  ] });
9772
9705
  }
9773
- return /* @__PURE__ */ jsxs(Stack, { p: "lg", gap: "md", children: [
9774
- /* @__PURE__ */ jsx(Title, { order: 3, children: "Roles" }),
9706
+ return /* @__PURE__ */ jsxs(Stack, { p: "md", gap: "md", children: [
9707
+ /* @__PURE__ */ jsx(
9708
+ KnowledgePageHeader,
9709
+ {
9710
+ title: "Roles",
9711
+ kind: "Domain",
9712
+ tone: "subtle",
9713
+ copyCommand: getKnowledgeDomainFolderCommand("roles")
9714
+ }
9715
+ ),
9775
9716
  /* @__PURE__ */ jsxs(Text, { size: "sm", c: "dimmed", children: [
9776
9717
  roleList.length,
9777
9718
  " role",
@@ -9867,8 +9808,16 @@ function collectAllStatusEntries(model) {
9867
9808
  function StatusesPanel({ model, filterToItemId }) {
9868
9809
  const allEntries = collectAllStatusEntries(model).filter((entry) => !filterToItemId || entry.id === filterToItemId).sort((a, b) => a.order - b.order);
9869
9810
  if (allEntries.length === 0) {
9870
- return /* @__PURE__ */ jsxs(Stack, { p: "lg", gap: "sm", children: [
9871
- /* @__PURE__ */ jsx(Text, { fw: 650, children: "Statuses" }),
9811
+ return /* @__PURE__ */ jsxs(Stack, { p: "md", gap: "sm", children: [
9812
+ /* @__PURE__ */ jsx(
9813
+ KnowledgePageHeader,
9814
+ {
9815
+ title: "Statuses",
9816
+ kind: "Domain",
9817
+ tone: "subtle",
9818
+ copyCommand: getKnowledgeDomainFolderCommand("statuses")
9819
+ }
9820
+ ),
9872
9821
  /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: filterToItemId ? "Status not found." : "No statuses defined yet." })
9873
9822
  ] });
9874
9823
  }
@@ -9911,8 +9860,16 @@ function StatusesPanel({ model, filterToItemId }) {
9911
9860
  /* @__PURE__ */ jsx(Table.Td, { ta: "right", children: /* @__PURE__ */ jsx(Text, { size: "sm", children: entry.order }) })
9912
9861
  ] }, entry.id)) })
9913
9862
  ] }) });
9914
- return /* @__PURE__ */ jsxs(Stack, { p: "lg", gap: "md", children: [
9915
- /* @__PURE__ */ jsx(Title, { order: 3, children: "Statuses" }),
9863
+ return /* @__PURE__ */ jsxs(Stack, { p: "md", gap: "md", children: [
9864
+ /* @__PURE__ */ jsx(
9865
+ KnowledgePageHeader,
9866
+ {
9867
+ title: "Statuses",
9868
+ kind: "Domain",
9869
+ tone: "subtle",
9870
+ copyCommand: getKnowledgeDomainFolderCommand("statuses")
9871
+ }
9872
+ ),
9916
9873
  /* @__PURE__ */ jsxs(Text, { size: "sm", c: "dimmed", children: [
9917
9874
  allEntries.length,
9918
9875
  " status",
@@ -9956,27 +9913,110 @@ function StatusesPanel({ model, filterToItemId }) {
9956
9913
  )) })
9957
9914
  ] });
9958
9915
  }
9916
+ var SOURCE_COLORS = {
9917
+ ontology: "blue",
9918
+ "legacy-bridge": "gray",
9919
+ resource: "green"
9920
+ };
9921
+ function formatSource(source) {
9922
+ return source === "legacy-bridge" ? "legacy bridge" : source;
9923
+ }
9924
+ function OntologyStats({
9925
+ projection
9926
+ }) {
9927
+ const primaryStats = [
9928
+ "ontology-objects",
9929
+ "ontology-links",
9930
+ "ontology-actions",
9931
+ "ontology-catalogs",
9932
+ "ontology-events",
9933
+ "ontology-surfaces"
9934
+ ];
9935
+ const optionalStats = [
9936
+ "ontology-interfaces",
9937
+ "ontology-value-types",
9938
+ "ontology-properties",
9939
+ "ontology-groups"
9940
+ ];
9941
+ const stats = [
9942
+ ...primaryStats.map((domainKey) => ({
9943
+ domainKey,
9944
+ value: getPrimaryOntologyItemsForDomain(projection, domainKey).length
9945
+ })),
9946
+ ...optionalStats.map((domainKey) => ({
9947
+ domainKey,
9948
+ value: getPrimaryOntologyItemsForDomain(projection, domainKey).length
9949
+ })).filter((stat) => stat.value > 0)
9950
+ ];
9951
+ return /* @__PURE__ */ jsx(SimpleGrid, { cols: { base: 2, sm: 5 }, spacing: "xs", children: stats.map((stat) => /* @__PURE__ */ jsx(StatCard, { label: getOntologyDomainLabel(stat.domainKey), value: stat.value }, stat.domainKey)) });
9952
+ }
9953
+ function StatCard({ label, value }) {
9954
+ return /* @__PURE__ */ jsxs(Card, { withBorder: true, padding: "sm", radius: "sm", children: [
9955
+ /* @__PURE__ */ jsx(Text, { size: "xs", tt: "uppercase", fw: 700, style: { color: "var(--color-text-subtle)" }, children: label }),
9956
+ /* @__PURE__ */ jsx(Text, { size: "xl", fw: 800, ff: "monospace", children: value })
9957
+ ] });
9958
+ }
9959
+ function MetadataSummary({ item }) {
9960
+ const entries = Object.entries(item.meta).slice(0, 3);
9961
+ if (entries.length === 0) return null;
9962
+ return /* @__PURE__ */ jsx(Group, { gap: 4, wrap: "wrap", children: entries.map(([key, value]) => /* @__PURE__ */ jsxs(Badge, { variant: "outline", color: "gray", size: "xs", children: [
9963
+ key,
9964
+ ": ",
9965
+ String(value)
9966
+ ] }, key)) });
9967
+ }
9968
+ function OntologyPanel({ model, domainKey, filterToItemId }) {
9969
+ const projection = getKnowledgeOntologyProjection(model);
9970
+ const label = getOntologyDomainLabel(domainKey);
9971
+ const items = getPrimaryOntologyItemsForDomain(projection, domainKey).filter(
9972
+ (item) => !filterToItemId || item.id === filterToItemId
9973
+ );
9974
+ return /* @__PURE__ */ jsxs(Stack, { p: "md", gap: "md", children: [
9975
+ /* @__PURE__ */ jsx(
9976
+ KnowledgePageHeader,
9977
+ {
9978
+ title: label,
9979
+ kind: "Ontology",
9980
+ tone: "subtle",
9981
+ description: "Primary ontology records from authored scopes.",
9982
+ copyCommand: getKnowledgeDomainFolderCommand(domainKey),
9983
+ badges: /* @__PURE__ */ jsxs(Group, { gap: "xs", children: [
9984
+ /* @__PURE__ */ jsxs(Badge, { variant: "light", color: "blue", children: [
9985
+ items.length,
9986
+ " records"
9987
+ ] }),
9988
+ projection.diagnosticsCount > 0 && /* @__PURE__ */ jsxs(Badge, { variant: "light", color: "red", children: [
9989
+ projection.diagnosticsCount,
9990
+ " diagnostics"
9991
+ ] })
9992
+ ] })
9993
+ }
9994
+ ),
9995
+ !filterToItemId && /* @__PURE__ */ jsx(OntologyStats, { projection }),
9996
+ items.length === 0 ? /* @__PURE__ */ jsx(Text, { size: "sm", style: { color: "var(--color-text-subtle)" }, children: filterToItemId ? "Ontology record not found." : `No ${label.toLowerCase()} projected yet.` }) : /* @__PURE__ */ jsx(Card, { withBorder: true, padding: 0, radius: "sm", children: /* @__PURE__ */ jsxs(Table, { verticalSpacing: "xs", horizontalSpacing: "md", children: [
9997
+ /* @__PURE__ */ jsx(Table.Thead, { children: /* @__PURE__ */ jsxs(Table.Tr, { children: [
9998
+ /* @__PURE__ */ jsx(Table.Th, { children: "Record" }),
9999
+ /* @__PURE__ */ jsx(Table.Th, { children: "Owner" }),
10000
+ /* @__PURE__ */ jsx(Table.Th, { children: "Source" }),
10001
+ /* @__PURE__ */ jsx(Table.Th, { children: "Metadata" })
10002
+ ] }) }),
10003
+ /* @__PURE__ */ jsx(Table.Tbody, { children: items.map((item) => /* @__PURE__ */ jsxs(Table.Tr, { children: [
10004
+ /* @__PURE__ */ jsx(Table.Td, { children: /* @__PURE__ */ jsxs(Stack, { gap: 3, children: [
10005
+ /* @__PURE__ */ jsx(Text, { size: "sm", fw: 650, children: item.label }),
10006
+ /* @__PURE__ */ jsx(Code, { fz: "xs", style: { whiteSpace: "normal" }, children: item.id }),
10007
+ item.description && /* @__PURE__ */ jsx(Text, { size: "xs", lineClamp: 2, style: { color: "var(--color-text-subtle)" }, children: item.description })
10008
+ ] }) }),
10009
+ /* @__PURE__ */ jsx(Table.Td, { children: /* @__PURE__ */ jsx(Text, { size: "sm", style: { color: "var(--color-text-subtle)" }, children: item.ownerSystemId ?? "global" }) }),
10010
+ /* @__PURE__ */ jsx(Table.Td, { children: /* @__PURE__ */ jsx(Badge, { variant: "light", color: SOURCE_COLORS[item.source], children: formatSource(item.source) }) }),
10011
+ /* @__PURE__ */ jsx(Table.Td, { children: /* @__PURE__ */ jsx(MetadataSummary, { item }) })
10012
+ ] }, item.id)) })
10013
+ ] }) })
10014
+ ] });
10015
+ }
9959
10016
  function resolveKnowledgeNode(graphNode, knowledgeNodes) {
9960
10017
  const knowledgeId = graphNode.sourceId ?? graphNode.id.replace(/^knowledge:/, "");
9961
10018
  return knowledgeNodes.find((knowledgeNode) => knowledgeNode.id === knowledgeId);
9962
10019
  }
9963
- function GraphNodeFrame({ children }) {
9964
- return /* @__PURE__ */ jsx(Box, { style: { width: "100%" }, children: /* @__PURE__ */ jsx(PageContainer, { children: /* @__PURE__ */ jsx(
9965
- Paper,
9966
- {
9967
- withBorder: true,
9968
- style: {
9969
- minWidth: 0,
9970
- width: "100%",
9971
- maxWidth: 820,
9972
- marginInline: "auto",
9973
- background: "var(--glass-background)",
9974
- borderColor: "var(--color-border)"
9975
- },
9976
- children
9977
- }
9978
- ) }) });
9979
- }
9980
10020
  function isTreeSelectionNode(node) {
9981
10021
  return "nodeType" in node;
9982
10022
  }
@@ -9984,7 +10024,7 @@ function hasDomainPanel(domainKey) {
9984
10024
  return KNOWLEDGE_DOMAINS_WITH_PANELS.has(domainKey);
9985
10025
  }
9986
10026
  function UnavailableDomainPanel({ domainKey }) {
9987
- return /* @__PURE__ */ jsxs(Stack, { p: "lg", gap: "xs", children: [
10027
+ return /* @__PURE__ */ jsxs(Stack, { p: "md", gap: "xs", children: [
9988
10028
  /* @__PURE__ */ jsx(Text, { fw: 650, children: "Domain unavailable" }),
9989
10029
  /* @__PURE__ */ jsxs(Text, { size: "sm", c: "dimmed", children: [
9990
10030
  "No organization model was provided for `",
@@ -10019,8 +10059,20 @@ function DomainPanel({
10019
10059
  return /* @__PURE__ */ jsx(NavigationPanel, { model, onNavigateToNode });
10020
10060
  case "policies":
10021
10061
  return /* @__PURE__ */ jsx(PoliciesPanel, { model, onNavigateToNode, filterToItemId });
10062
+ case "ontology-objects":
10063
+ case "ontology-links":
10064
+ case "ontology-actions":
10065
+ case "ontology-catalogs":
10066
+ case "ontology-events":
10067
+ case "ontology-interfaces":
10068
+ case "ontology-value-types":
10069
+ case "ontology-properties":
10070
+ case "ontology-groups":
10071
+ case "ontology-surfaces":
10072
+ case "ontology-resources":
10073
+ return /* @__PURE__ */ jsx(OntologyPanel, { model, domainKey, filterToItemId });
10022
10074
  default:
10023
- return /* @__PURE__ */ jsxs(Stack, { p: "lg", gap: "xs", children: [
10075
+ return /* @__PURE__ */ jsxs(Stack, { p: "md", gap: "xs", children: [
10024
10076
  /* @__PURE__ */ jsx(Text, { fw: 650, children: "Unknown domain" }),
10025
10077
  /* @__PURE__ */ jsxs(Text, { size: "sm", c: "dimmed", children: [
10026
10078
  "No panel for `",
@@ -10039,16 +10091,18 @@ function childSummary(child) {
10039
10091
  }
10040
10092
  function GroupOverviewPanel({ node }) {
10041
10093
  const children = node.children ?? [];
10042
- return /* @__PURE__ */ jsxs(Stack, { p: "lg", gap: "md", children: [
10043
- /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
10044
- /* @__PURE__ */ jsx(Title, { order: 3, children: node.label }),
10045
- /* @__PURE__ */ jsxs(Text, { size: "sm", c: "dimmed", children: [
10046
- children.length,
10047
- " child branch",
10048
- children.length === 1 ? "" : "es",
10049
- "."
10050
- ] })
10051
- ] }),
10094
+ const copyCommand = node.value ? getKnowledgeTreeFolderCommand(node.value) : void 0;
10095
+ return /* @__PURE__ */ jsxs(Stack, { p: "md", gap: "md", children: [
10096
+ /* @__PURE__ */ jsx(
10097
+ KnowledgePageHeader,
10098
+ {
10099
+ title: node.label,
10100
+ kind: "Group",
10101
+ tone: "subtle",
10102
+ description: `${children.length} child branch${children.length === 1 ? "" : "es"}.`,
10103
+ copyCommand
10104
+ }
10105
+ ),
10052
10106
  /* @__PURE__ */ jsx(Divider, {}),
10053
10107
  children.length === 0 ? /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "No child branches available." }) : /* @__PURE__ */ jsx(Stack, { gap: "sm", children: children.map((child) => /* @__PURE__ */ jsx(Card, { withBorder: true, padding: "md", children: /* @__PURE__ */ jsxs(Group, { justify: "space-between", align: "start", gap: "md", wrap: "nowrap", children: [
10054
10108
  /* @__PURE__ */ jsxs(Stack, { gap: 4, style: { minWidth: 0 }, children: [
@@ -10059,6 +10113,54 @@ function GroupOverviewPanel({ node }) {
10059
10113
  ] }) }, child.value ?? child.id ?? `${child.nodeType}:${child.label}`)) })
10060
10114
  ] });
10061
10115
  }
10116
+ function OntologyDescribeView({
10117
+ node,
10118
+ graph,
10119
+ knowledgeNodes,
10120
+ onNavigateToNode
10121
+ }) {
10122
+ const parentSystemEdge = graph.edges.find(
10123
+ (edge) => edge.kind === "contains" && edge.targetId === node.id && graph.nodes.find((candidate) => candidate.id === edge.sourceId)?.kind === "system"
10124
+ );
10125
+ return /* @__PURE__ */ jsx(
10126
+ NodeDescribeShell,
10127
+ {
10128
+ header: /* @__PURE__ */ jsx(
10129
+ KnowledgePageHeader,
10130
+ {
10131
+ title: node.label,
10132
+ kind: "Ontology",
10133
+ tone: "subtle",
10134
+ description: node.description,
10135
+ copyCommand: getKnowledgeGraphNodeCommand(node),
10136
+ badges: node.ontologyKind ? /* @__PURE__ */ jsx(KindChip, { kind: node.ontologyKind, tone: "muted" }) : void 0
10137
+ }
10138
+ ),
10139
+ content: /* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
10140
+ /* @__PURE__ */ jsx(KeyField, { label: "ID", value: node.id }),
10141
+ node.sourceId !== void 0 && /* @__PURE__ */ jsx(KeyField, { label: "Ontology ID", value: node.sourceId }),
10142
+ node.ontologyKind !== void 0 && /* @__PURE__ */ jsx(KeyField, { label: "Ontology kind", value: node.ontologyKind }),
10143
+ parentSystemEdge !== void 0 && /* @__PURE__ */ jsx(
10144
+ KeyField,
10145
+ {
10146
+ label: "System",
10147
+ value: graph.nodes.find((candidate) => candidate.id === parentSystemEdge.sourceId)?.label ?? parentSystemEdge.sourceId
10148
+ }
10149
+ )
10150
+ ] }),
10151
+ relationships: /* @__PURE__ */ jsx(
10152
+ EdgeRelationshipGroup,
10153
+ {
10154
+ nodeId: node.id,
10155
+ graph,
10156
+ knowledgeNodes,
10157
+ onNavigateToNode
10158
+ }
10159
+ ),
10160
+ footer: /* @__PURE__ */ jsx(NodeMetadataFooter, { node })
10161
+ }
10162
+ );
10163
+ }
10062
10164
  function renderTreeSelection(node, organizationModel, onNavigateToNode) {
10063
10165
  if (node.nodeType === "group") {
10064
10166
  return /* @__PURE__ */ jsx(GroupOverviewPanel, { node });
@@ -10077,7 +10179,7 @@ function renderTreeSelection(node, organizationModel, onNavigateToNode) {
10077
10179
  }
10078
10180
  );
10079
10181
  }
10080
- return /* @__PURE__ */ jsxs(Stack, { p: "lg", gap: "xs", children: [
10182
+ return /* @__PURE__ */ jsxs(Stack, { p: "md", gap: "xs", children: [
10081
10183
  /* @__PURE__ */ jsx(Text, { fw: 650, children: node.label }),
10082
10184
  /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "No panel coverage for this tree node." })
10083
10185
  ] });
@@ -10090,12 +10192,12 @@ function DescribeNodeView({
10090
10192
  onNavigateToNode
10091
10193
  }) {
10092
10194
  if (isTreeSelectionNode(node)) {
10093
- return /* @__PURE__ */ jsx(GraphNodeFrame, { children: renderTreeSelection(node, organizationModel, onNavigateToNode) });
10195
+ return /* @__PURE__ */ jsx(DomainPanelFrame, { children: renderTreeSelection(node, organizationModel, onNavigateToNode) });
10094
10196
  }
10095
10197
  switch (node.kind) {
10096
10198
  case "knowledge": {
10097
10199
  const knowledgeNode = resolveKnowledgeNode(node, knowledgeNodes);
10098
- return knowledgeNode ? /* @__PURE__ */ jsx(KnowledgeNodeView, { node: knowledgeNode, graph, onNavigateToNode }) : /* @__PURE__ */ jsx(GraphNodeFrame, { children: /* @__PURE__ */ jsx(
10200
+ return knowledgeNode ? /* @__PURE__ */ jsx(KnowledgeNodeView, { node: knowledgeNode, graph, onNavigateToNode }) : /* @__PURE__ */ jsx(DomainPanelFrame, { children: /* @__PURE__ */ jsx(
10099
10201
  GenericDescribeView,
10100
10202
  {
10101
10203
  node,
@@ -10106,17 +10208,18 @@ function DescribeNodeView({
10106
10208
  ) });
10107
10209
  }
10108
10210
  case "system":
10109
- return /* @__PURE__ */ jsx(GraphNodeFrame, { children: /* @__PURE__ */ jsx(
10211
+ return /* @__PURE__ */ jsx(DomainPanelFrame, { children: /* @__PURE__ */ jsx(
10110
10212
  SystemDescribeView,
10111
10213
  {
10112
10214
  node,
10113
10215
  graph,
10114
10216
  knowledgeNodes,
10115
- onNavigateToNode
10217
+ onNavigateToNode,
10218
+ organizationModel
10116
10219
  }
10117
10220
  ) });
10118
10221
  case "resource":
10119
- return /* @__PURE__ */ jsx(GraphNodeFrame, { children: /* @__PURE__ */ jsx(
10222
+ return /* @__PURE__ */ jsx(DomainPanelFrame, { children: /* @__PURE__ */ jsx(
10120
10223
  ResourceDescribeView,
10121
10224
  {
10122
10225
  node,
@@ -10125,8 +10228,18 @@ function DescribeNodeView({
10125
10228
  onNavigateToNode
10126
10229
  }
10127
10230
  ) });
10231
+ case "ontology":
10232
+ return /* @__PURE__ */ jsx(DomainPanelFrame, { children: /* @__PURE__ */ jsx(
10233
+ OntologyDescribeView,
10234
+ {
10235
+ node,
10236
+ graph,
10237
+ knowledgeNodes,
10238
+ onNavigateToNode
10239
+ }
10240
+ ) });
10128
10241
  case "organization":
10129
- return /* @__PURE__ */ jsx(GraphNodeFrame, { children: /* @__PURE__ */ jsx(
10242
+ return /* @__PURE__ */ jsx(DomainPanelFrame, { children: /* @__PURE__ */ jsx(
10130
10243
  OrganizationDescribeView,
10131
10244
  {
10132
10245
  node,
@@ -10137,7 +10250,7 @@ function DescribeNodeView({
10137
10250
  }
10138
10251
  ) });
10139
10252
  case "stage":
10140
- return /* @__PURE__ */ jsx(GraphNodeFrame, { children: /* @__PURE__ */ jsx(
10253
+ return /* @__PURE__ */ jsx(DomainPanelFrame, { children: /* @__PURE__ */ jsx(
10141
10254
  StageDescribeView,
10142
10255
  {
10143
10256
  node,
@@ -10148,7 +10261,7 @@ function DescribeNodeView({
10148
10261
  }
10149
10262
  ) });
10150
10263
  case "action":
10151
- return /* @__PURE__ */ jsx(GraphNodeFrame, { children: /* @__PURE__ */ jsx(
10264
+ return /* @__PURE__ */ jsx(DomainPanelFrame, { children: /* @__PURE__ */ jsx(
10152
10265
  ActionDescribeView,
10153
10266
  {
10154
10267
  node,
@@ -10158,7 +10271,7 @@ function DescribeNodeView({
10158
10271
  }
10159
10272
  ) });
10160
10273
  case "entity":
10161
- return /* @__PURE__ */ jsx(GraphNodeFrame, { children: /* @__PURE__ */ jsx(
10274
+ return /* @__PURE__ */ jsx(DomainPanelFrame, { children: /* @__PURE__ */ jsx(
10162
10275
  EntityDescribeView,
10163
10276
  {
10164
10277
  node,
@@ -10168,7 +10281,7 @@ function DescribeNodeView({
10168
10281
  }
10169
10282
  ) });
10170
10283
  case "event":
10171
- return /* @__PURE__ */ jsx(GraphNodeFrame, { children: /* @__PURE__ */ jsx(
10284
+ return /* @__PURE__ */ jsx(DomainPanelFrame, { children: /* @__PURE__ */ jsx(
10172
10285
  EventDescribeView,
10173
10286
  {
10174
10287
  node,
@@ -10178,7 +10291,7 @@ function DescribeNodeView({
10178
10291
  }
10179
10292
  ) });
10180
10293
  case "policy":
10181
- return /* @__PURE__ */ jsx(GraphNodeFrame, { children: /* @__PURE__ */ jsx(
10294
+ return /* @__PURE__ */ jsx(DomainPanelFrame, { children: /* @__PURE__ */ jsx(
10182
10295
  PolicyDescribeView,
10183
10296
  {
10184
10297
  node,
@@ -10189,7 +10302,7 @@ function DescribeNodeView({
10189
10302
  }
10190
10303
  ) });
10191
10304
  case "role":
10192
- return /* @__PURE__ */ jsx(GraphNodeFrame, { children: /* @__PURE__ */ jsx(
10305
+ return /* @__PURE__ */ jsx(DomainPanelFrame, { children: /* @__PURE__ */ jsx(
10193
10306
  RoleDescribeView,
10194
10307
  {
10195
10308
  node,
@@ -10200,7 +10313,7 @@ function DescribeNodeView({
10200
10313
  }
10201
10314
  ) });
10202
10315
  case "surface":
10203
- return /* @__PURE__ */ jsx(GraphNodeFrame, { children: /* @__PURE__ */ jsx(
10316
+ return /* @__PURE__ */ jsx(DomainPanelFrame, { children: /* @__PURE__ */ jsx(
10204
10317
  SurfaceDescribeView,
10205
10318
  {
10206
10319
  node,
@@ -10210,7 +10323,7 @@ function DescribeNodeView({
10210
10323
  }
10211
10324
  ) });
10212
10325
  case "content-node":
10213
- return /* @__PURE__ */ jsx(GraphNodeFrame, { children: /* @__PURE__ */ jsx(
10326
+ return /* @__PURE__ */ jsx(DomainPanelFrame, { children: /* @__PURE__ */ jsx(
10214
10327
  ContentNodeDescribeView,
10215
10328
  {
10216
10329
  node,
@@ -10221,7 +10334,7 @@ function DescribeNodeView({
10221
10334
  }
10222
10335
  ) });
10223
10336
  default:
10224
- return /* @__PURE__ */ jsx(GraphNodeFrame, { children: /* @__PURE__ */ jsx(
10337
+ return /* @__PURE__ */ jsx(DomainPanelFrame, { children: /* @__PURE__ */ jsx(
10225
10338
  GenericDescribeView,
10226
10339
  {
10227
10340
  node,
@@ -10232,23 +10345,389 @@ function DescribeNodeView({
10232
10345
  ) });
10233
10346
  }
10234
10347
  }
10235
- function DomainFrame({ children }) {
10348
+ function KnowledgeBrowser({
10349
+ graph,
10350
+ knowledgeNodes,
10351
+ organizationModel,
10352
+ initialNodeId,
10353
+ onNavigateToNode,
10354
+ onSelectNode
10355
+ }) {
10356
+ const initialFocus = useMemo(
10357
+ () => resolveInitialFocus(graph, knowledgeNodes, initialNodeId),
10358
+ [graph, initialNodeId, knowledgeNodes]
10359
+ );
10360
+ if (!initialFocus) {
10361
+ return /* @__PURE__ */ jsx(KnowledgeOverview, { graph, knowledgeNodes, onSelectNode });
10362
+ }
10363
+ if (initialFocus.kind === "knowledge") {
10364
+ return /* @__PURE__ */ jsx(KnowledgeNodeView, { node: initialFocus.node, graph, onNavigateToNode });
10365
+ }
10366
+ return /* @__PURE__ */ jsx(
10367
+ DescribeNodeView,
10368
+ {
10369
+ node: initialFocus.node,
10370
+ graph,
10371
+ organizationModel,
10372
+ knowledgeNodes,
10373
+ onNavigateToNode
10374
+ }
10375
+ );
10376
+ }
10377
+ var ENTRY_NODE_IDS = [
10378
+ "knowledge.org-model-reference",
10379
+ "knowledge.org-model-graph-contract",
10380
+ "knowledge.org-model-actions",
10381
+ "knowledge.org-model-entities",
10382
+ "knowledge.org-model-events",
10383
+ "knowledge.org-model-policies",
10384
+ "knowledge.platform-command-view",
10385
+ "knowledge.platform-systems-overview",
10386
+ "knowledge.what-is-elevasis",
10387
+ "knowledge.understanding-elevasis"
10388
+ ];
10389
+ function formatKindLabel(kind) {
10390
+ return kind.charAt(0).toUpperCase() + kind.slice(1);
10391
+ }
10392
+ function createKindCounts(nodes) {
10393
+ return nodes.reduce(
10394
+ (counts, node) => {
10395
+ counts[node.kind] += 1;
10396
+ return counts;
10397
+ },
10398
+ { playbook: 0, strategy: 0, reference: 0 }
10399
+ );
10400
+ }
10401
+ function resolveKnowledgeNodeFromGraphNode(graphNode, knowledgeNodesById) {
10402
+ if (graphNode.sourceId) return knowledgeNodesById.get(graphNode.sourceId);
10403
+ return graphNode.id.startsWith("knowledge:") ? knowledgeNodesById.get(graphNode.id.slice("knowledge:".length)) : void 0;
10404
+ }
10405
+ function resolveBareOntologyGraphNodeId(nodeId) {
10406
+ const ontologyId = OntologyIdSchema.safeParse(nodeId);
10407
+ return ontologyId.success ? ontologyGraphNodeId(ontologyId.data) : void 0;
10408
+ }
10409
+ function decodeInitialNodeId(nodeId) {
10410
+ try {
10411
+ return decodeURIComponent(nodeId);
10412
+ } catch {
10413
+ return nodeId;
10414
+ }
10415
+ }
10416
+ function resolveInitialFocus(graph, knowledgeNodes, initialNodeId) {
10417
+ if (!initialNodeId) return null;
10418
+ const routeNodeId = decodeInitialNodeId(initialNodeId);
10419
+ const knowledgeNodesById = new Map(knowledgeNodes.map((node) => [node.id, node]));
10420
+ const directKnowledgeNode = knowledgeNodesById.get(routeNodeId);
10421
+ if (directKnowledgeNode) return { kind: "knowledge", node: directKnowledgeNode };
10422
+ const graphNodesById = new Map(graph.nodes.map((node) => [node.id, node]));
10423
+ const graphNode = graphNodesById.get(routeNodeId) ?? graphNodesById.get(resolveBareOntologyGraphNodeId(routeNodeId) ?? "") ?? graphNodesById.get(`system:${routeNodeId}`);
10424
+ if (!graphNode) return null;
10425
+ if (graphNode.kind === "knowledge") {
10426
+ const knowledgeNode = resolveKnowledgeNodeFromGraphNode(graphNode, knowledgeNodesById);
10427
+ if (knowledgeNode) return { kind: "knowledge", node: knowledgeNode };
10428
+ }
10429
+ return { kind: "graph", node: graphNode };
10430
+ }
10431
+ function resolveKnowledgeGraphIds(graph) {
10432
+ return new Set(graph.nodes.filter((node) => node.kind === "knowledge").map((node) => node.id));
10433
+ }
10434
+ function getGovernedSystemCoverage(graph) {
10435
+ const graphNodesById = new Map(graph.nodes.map((node) => [node.id, node]));
10436
+ const knowledgeGraphIds = resolveKnowledgeGraphIds(graph);
10437
+ const systemCounts = /* @__PURE__ */ new Map();
10438
+ for (const edge of graph.edges) {
10439
+ if (edge.kind !== "governs" || !knowledgeGraphIds.has(edge.sourceId)) continue;
10440
+ const target = graphNodesById.get(edge.targetId);
10441
+ if (target?.kind !== "system") continue;
10442
+ systemCounts.set(target.id, (systemCounts.get(target.id) ?? 0) + 1);
10443
+ }
10444
+ return [...systemCounts.entries()].map(([systemId, count]) => ({
10445
+ systemId,
10446
+ count,
10447
+ label: graphNodesById.get(systemId)?.label ?? systemId.replace(/^system:/, "")
10448
+ })).sort((left, right) => right.count - left.count || left.label.localeCompare(right.label));
10449
+ }
10450
+ function KnowledgeOverview({ graph, knowledgeNodes, onSelectNode }) {
10451
+ const kindCounts = useMemo(() => createKindCounts(knowledgeNodes), [knowledgeNodes]);
10452
+ const entryNodes = useMemo(
10453
+ () => ENTRY_NODE_IDS.map((id) => knowledgeNodes.find((node) => node.id === id)).filter(
10454
+ (node) => Boolean(node)
10455
+ ),
10456
+ [knowledgeNodes]
10457
+ );
10458
+ const recentNodes = useMemo(
10459
+ () => [...knowledgeNodes].sort((left, right) => right.updatedAt.localeCompare(left.updatedAt) || left.title.localeCompare(right.title)).slice(0, 5),
10460
+ [knowledgeNodes]
10461
+ );
10462
+ const governedSystemCoverage = useMemo(() => getGovernedSystemCoverage(graph), [graph]);
10463
+ const governedSystemCount = governedSystemCoverage.length;
10464
+ const governedTargetCount = useMemo(() => {
10465
+ const knowledgeGraphIds = resolveKnowledgeGraphIds(graph);
10466
+ return new Set(
10467
+ graph.edges.filter((edge) => edge.kind === "governs" && knowledgeGraphIds.has(edge.sourceId)).map((edge) => edge.targetId)
10468
+ ).size;
10469
+ }, [graph]);
10236
10470
  return /* @__PURE__ */ jsx(Box, { style: { width: "100%" }, children: /* @__PURE__ */ jsx(PageContainer, { children: /* @__PURE__ */ jsx(
10237
10471
  Paper,
10238
10472
  {
10239
10473
  withBorder: true,
10240
10474
  style: {
10241
- minWidth: 0,
10242
- width: "100%",
10243
- maxWidth: 820,
10244
- marginInline: "auto",
10475
+ maxWidth: 920,
10476
+ margin: "0 auto",
10245
10477
  background: "var(--glass-background)",
10246
10478
  borderColor: "var(--color-border)"
10247
10479
  },
10248
- children
10480
+ children: /* @__PURE__ */ jsxs(Stack, { gap: "xl", p: "lg", children: [
10481
+ /* @__PURE__ */ jsx(Stack, { gap: "xs", children: /* @__PURE__ */ jsxs(Group, { justify: "space-between", align: "start", gap: "md", children: [
10482
+ /* @__PURE__ */ jsxs(Group, { gap: "sm", align: "start", wrap: "nowrap", children: [
10483
+ /* @__PURE__ */ jsx(ThemeIcon, { variant: "light", color: "blue", radius: "sm", size: "lg", children: /* @__PURE__ */ jsx(SemanticIcon, { token: "knowledge", size: 18 }) }),
10484
+ /* @__PURE__ */ jsxs(Box, { children: [
10485
+ /* @__PURE__ */ jsx(Title, { order: 1, size: "h2", children: "Knowledge Base" }),
10486
+ /* @__PURE__ */ jsx(Text, { size: "sm", maw: 720, mt: 4, style: { color: "var(--color-text-subtle)" }, children: "Start at Profile to understand the org. Browse Business Model for who we serve and what we sell. Systems is operational structure. Ontology shows the machinery. Governance & Wiring covers cross-cutting roles, policies, statuses, and navigation surfaces." })
10487
+ ] })
10488
+ ] }),
10489
+ /* @__PURE__ */ jsxs(Badge, { variant: "light", color: "blue", children: [
10490
+ knowledgeNodes.length,
10491
+ " nodes"
10492
+ ] })
10493
+ ] }) }),
10494
+ /* @__PURE__ */ jsxs(SimpleGrid, { cols: { base: 1, sm: 2, md: 4 }, spacing: "sm", children: [
10495
+ /* @__PURE__ */ jsx(OverviewStat, { label: "Knowledge nodes", value: knowledgeNodes.length.toString() }),
10496
+ /* @__PURE__ */ jsx(OverviewStat, { label: "Governed areas", value: governedTargetCount.toString() }),
10497
+ /* @__PURE__ */ jsx(OverviewStat, { label: "Covered systems", value: governedSystemCount.toString() }),
10498
+ /* @__PURE__ */ jsx(OverviewStat, { label: "Graph nodes", value: graph.nodes.length.toString() })
10499
+ ] }),
10500
+ /* @__PURE__ */ jsx(Divider, {}),
10501
+ /* @__PURE__ */ jsxs(SimpleGrid, { cols: { base: 1, md: 3 }, spacing: "lg", children: [
10502
+ /* @__PURE__ */ jsx(
10503
+ OverviewSection,
10504
+ {
10505
+ title: "Profile",
10506
+ body: "Understand identity, branding, mission, legal shape, and business hours before moving into the model."
10507
+ }
10508
+ ),
10509
+ /* @__PURE__ */ jsx(
10510
+ OverviewSection,
10511
+ {
10512
+ title: "Business Model",
10513
+ body: "Review customers, offerings, and goals to see who we serve, what we sell, and what the org is optimizing for."
10514
+ }
10515
+ ),
10516
+ /* @__PURE__ */ jsx(
10517
+ OverviewSection,
10518
+ {
10519
+ title: "Systems",
10520
+ body: "Browse operational structure, including business systems and their nested sales, prospecting, and project configuration."
10521
+ }
10522
+ ),
10523
+ /* @__PURE__ */ jsx(
10524
+ OverviewSection,
10525
+ {
10526
+ title: "Ontology",
10527
+ body: "Drill into compiled ontology indexes, resources, actions, entities, events, and the knowledge Start Here hub that explains the model contract."
10528
+ }
10529
+ ),
10530
+ /* @__PURE__ */ jsx(
10531
+ OverviewSection,
10532
+ {
10533
+ title: "Governance & Wiring",
10534
+ body: "Check cross-cutting roles, policies, status vocabularies, and navigation surfaces that connect the model."
10535
+ }
10536
+ )
10537
+ ] }),
10538
+ /* @__PURE__ */ jsx(Divider, {}),
10539
+ /* @__PURE__ */ jsxs(Stack, { gap: "sm", children: [
10540
+ /* @__PURE__ */ jsxs(Group, { justify: "space-between", align: "center", children: [
10541
+ /* @__PURE__ */ jsx(Title, { order: 2, size: "h3", children: "Start Here" }),
10542
+ /* @__PURE__ */ jsx(Group, { gap: 6, children: Object.entries(kindCounts).map(([kind, count]) => /* @__PURE__ */ jsxs(Badge, { variant: "outline", color: "gray", children: [
10543
+ formatKindLabel(kind),
10544
+ ": ",
10545
+ count
10546
+ ] }, kind)) })
10547
+ ] }),
10548
+ /* @__PURE__ */ jsx(Stack, { gap: "xs", children: entryNodes.map((node) => /* @__PURE__ */ jsx(KnowledgeOverviewRow, { node, onSelectNode }, node.id)) })
10549
+ ] }),
10550
+ /* @__PURE__ */ jsxs(SimpleGrid, { cols: { base: 1, md: 2 }, spacing: "lg", children: [
10551
+ /* @__PURE__ */ jsxs(Stack, { gap: "sm", children: [
10552
+ /* @__PURE__ */ jsx(Title, { order: 2, size: "h3", children: "Recent Updates" }),
10553
+ /* @__PURE__ */ jsx(Stack, { gap: "xs", children: recentNodes.map((node) => /* @__PURE__ */ jsx(KnowledgeOverviewRow, { node, compact: true, onSelectNode }, node.id)) })
10554
+ ] }),
10555
+ /* @__PURE__ */ jsxs(Stack, { gap: "sm", children: [
10556
+ /* @__PURE__ */ jsx(Title, { order: 2, size: "h3", children: "System Coverage" }),
10557
+ /* @__PURE__ */ jsx(Stack, { gap: 6, children: governedSystemCoverage.slice(0, 6).map((system) => /* @__PURE__ */ jsxs(
10558
+ Group,
10559
+ {
10560
+ justify: "space-between",
10561
+ wrap: "nowrap",
10562
+ style: {
10563
+ borderBottom: "1px solid var(--color-border)",
10564
+ paddingBlock: 8
10565
+ },
10566
+ children: [
10567
+ /* @__PURE__ */ jsx(Text, { size: "sm", fw: 650, lineClamp: 1, children: system.label }),
10568
+ /* @__PURE__ */ jsx(Badge, { variant: "light", color: "gray", children: system.count })
10569
+ ]
10570
+ },
10571
+ system.systemId
10572
+ )) })
10573
+ ] })
10574
+ ] })
10575
+ ] })
10249
10576
  }
10250
10577
  ) }) });
10251
10578
  }
10579
+ function OverviewStat({ label, value }) {
10580
+ return /* @__PURE__ */ jsxs(
10581
+ Box,
10582
+ {
10583
+ style: {
10584
+ border: "1px solid var(--color-border)",
10585
+ borderRadius: 8,
10586
+ padding: "var(--mantine-spacing-sm)"
10587
+ },
10588
+ children: [
10589
+ /* @__PURE__ */ jsx(Text, { size: "xl", fw: 800, lh: 1, children: value }),
10590
+ /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", fw: 650, tt: "uppercase", mt: 6, children: label })
10591
+ ]
10592
+ }
10593
+ );
10594
+ }
10595
+ function OverviewSection({ title, body }) {
10596
+ return /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
10597
+ /* @__PURE__ */ jsx(Text, { fw: 750, children: title }),
10598
+ /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", lh: 1.6, children: body })
10599
+ ] });
10600
+ }
10601
+ function KnowledgeOverviewRow({
10602
+ node,
10603
+ compact = false,
10604
+ onSelectNode
10605
+ }) {
10606
+ return /* @__PURE__ */ jsx(
10607
+ UnstyledButton,
10608
+ {
10609
+ onClick: () => onSelectNode?.(node.id),
10610
+ disabled: !onSelectNode,
10611
+ style: {
10612
+ display: "block",
10613
+ width: "100%",
10614
+ border: "1px solid var(--color-border)",
10615
+ borderRadius: 8,
10616
+ padding: compact ? "10px 12px" : "12px 14px",
10617
+ color: "var(--color-text)",
10618
+ cursor: onSelectNode ? "pointer" : "default"
10619
+ },
10620
+ children: /* @__PURE__ */ jsxs(Group, { gap: "sm", align: "start", wrap: "nowrap", children: [
10621
+ /* @__PURE__ */ jsx(
10622
+ SemanticIcon,
10623
+ {
10624
+ token: getKnowledgeIconToken(node) ?? node.kind,
10625
+ size: 16,
10626
+ style: { color: "var(--color-primary)", marginTop: 2 }
10627
+ }
10628
+ ),
10629
+ /* @__PURE__ */ jsxs(Box, { style: { minWidth: 0, flex: 1 }, children: [
10630
+ /* @__PURE__ */ jsxs(Group, { gap: "xs", wrap: "nowrap", children: [
10631
+ /* @__PURE__ */ jsx(Text, { size: "sm", fw: 750, lineClamp: 1, children: node.title }),
10632
+ /* @__PURE__ */ jsx(Badge, { variant: "light", color: "gray", size: "xs", style: { flexShrink: 0 }, children: node.kind })
10633
+ ] }),
10634
+ !compact && /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", mt: 4, lineClamp: 2, children: node.summary }),
10635
+ /* @__PURE__ */ jsxs(Text, { size: "xs", c: "dimmed", mt: compact ? 2 : 6, children: [
10636
+ "Updated ",
10637
+ node.updatedAt
10638
+ ] })
10639
+ ] })
10640
+ ] })
10641
+ }
10642
+ );
10643
+ }
10644
+ function KnowledgeNodeList({ nodes, onSelect, selectedNodeId, label }) {
10645
+ if (nodes.length === 0) {
10646
+ return /* @__PURE__ */ jsxs(Stack, { gap: "xs", style: { padding: "var(--mantine-spacing-md)" }, children: [
10647
+ label && /* @__PURE__ */ jsx(Text, { size: "xs", fw: 600, tt: "uppercase", c: "dimmed", style: { letterSpacing: "0.05em" }, children: label }),
10648
+ /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "No knowledge nodes found." })
10649
+ ] });
10650
+ }
10651
+ return /* @__PURE__ */ jsxs(Stack, { gap: 4, style: { padding: "var(--mantine-spacing-sm)" }, children: [
10652
+ label && /* @__PURE__ */ jsx(
10653
+ Text,
10654
+ {
10655
+ size: "xs",
10656
+ fw: 600,
10657
+ tt: "uppercase",
10658
+ c: "dimmed",
10659
+ style: { letterSpacing: "0.05em", paddingBottom: "var(--mantine-spacing-xs)" },
10660
+ children: label
10661
+ }
10662
+ ),
10663
+ nodes.map((node) => {
10664
+ const isActive = node.id === selectedNodeId;
10665
+ return /* @__PURE__ */ jsx(
10666
+ UnstyledButton,
10667
+ {
10668
+ onClick: () => onSelect(node),
10669
+ style: {
10670
+ padding: "var(--mantine-spacing-sm)",
10671
+ borderRadius: "var(--mantine-radius-default)",
10672
+ backgroundColor: isActive ? "color-mix(in srgb, var(--color-primary) 10%, transparent)" : "transparent",
10673
+ border: isActive ? "1px solid color-mix(in srgb, var(--color-primary) 25%, transparent)" : "1px solid transparent",
10674
+ transition: `all var(--duration-fast) var(--easing)`,
10675
+ cursor: "pointer",
10676
+ width: "100%",
10677
+ textAlign: "left"
10678
+ },
10679
+ onMouseEnter: (e) => {
10680
+ if (!isActive) {
10681
+ e.currentTarget.style.backgroundColor = "var(--color-surface-hover)";
10682
+ }
10683
+ },
10684
+ onMouseLeave: (e) => {
10685
+ if (!isActive) {
10686
+ e.currentTarget.style.backgroundColor = "transparent";
10687
+ }
10688
+ },
10689
+ children: /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
10690
+ /* @__PURE__ */ jsxs(Group, { gap: "xs", wrap: "nowrap", children: [
10691
+ /* @__PURE__ */ jsx(
10692
+ Text,
10693
+ {
10694
+ size: "sm",
10695
+ fw: isActive ? 600 : 400,
10696
+ style: {
10697
+ flex: 1,
10698
+ overflow: "hidden",
10699
+ textOverflow: "ellipsis",
10700
+ whiteSpace: "nowrap",
10701
+ color: isActive ? "var(--color-primary)" : "var(--color-text)"
10702
+ },
10703
+ children: node.title
10704
+ }
10705
+ ),
10706
+ /* @__PURE__ */ jsx(KindChip, { kind: node.kind, tone: "primary", style: { flexShrink: 0 } })
10707
+ ] }),
10708
+ /* @__PURE__ */ jsx(
10709
+ Text,
10710
+ {
10711
+ size: "xs",
10712
+ c: "dimmed",
10713
+ style: {
10714
+ overflow: "hidden",
10715
+ display: "-webkit-box",
10716
+ WebkitLineClamp: 2,
10717
+ WebkitBoxOrient: "vertical",
10718
+ textOverflow: "ellipsis"
10719
+ },
10720
+ children: node.summary
10721
+ }
10722
+ )
10723
+ ] })
10724
+ },
10725
+ node.id
10726
+ );
10727
+ })
10728
+ ] });
10729
+ }
10730
+ var KNOWLEDGE_ITEMS = [{ label: "Knowledge", to: "/knowledge", icon: IconBook, exact: true }];
10252
10731
  function DomainPanelDispatcher({
10253
10732
  domainKey,
10254
10733
  model,
@@ -10257,25 +10736,37 @@ function DomainPanelDispatcher({
10257
10736
  }) {
10258
10737
  switch (domainKey) {
10259
10738
  case "identity":
10260
- return /* @__PURE__ */ jsx(DomainFrame, { children: /* @__PURE__ */ jsx(IdentityPanel, { model, onNavigateToNode }) });
10739
+ return /* @__PURE__ */ jsx(DomainPanelFrame, { children: /* @__PURE__ */ jsx(IdentityPanel, { model, onNavigateToNode }) });
10261
10740
  case "branding":
10262
- return /* @__PURE__ */ jsx(DomainFrame, { children: /* @__PURE__ */ jsx(BrandingPanel, { model, onNavigateToNode }) });
10741
+ return /* @__PURE__ */ jsx(DomainPanelFrame, { children: /* @__PURE__ */ jsx(BrandingPanel, { model, onNavigateToNode }) });
10263
10742
  case "customers":
10264
- return /* @__PURE__ */ jsx(DomainFrame, { children: /* @__PURE__ */ jsx(CustomersPanel, { model, onNavigateToNode, filterToItemId }) });
10743
+ return /* @__PURE__ */ jsx(DomainPanelFrame, { children: /* @__PURE__ */ jsx(CustomersPanel, { model, onNavigateToNode, filterToItemId }) });
10265
10744
  case "offerings":
10266
- return /* @__PURE__ */ jsx(DomainFrame, { children: /* @__PURE__ */ jsx(OfferingsPanel, { model, onNavigateToNode, filterToItemId }) });
10745
+ return /* @__PURE__ */ jsx(DomainPanelFrame, { children: /* @__PURE__ */ jsx(OfferingsPanel, { model, onNavigateToNode, filterToItemId }) });
10267
10746
  case "goals":
10268
- return /* @__PURE__ */ jsx(DomainFrame, { children: /* @__PURE__ */ jsx(GoalsPanel, { model, onNavigateToNode, filterToItemId }) });
10747
+ return /* @__PURE__ */ jsx(DomainPanelFrame, { children: /* @__PURE__ */ jsx(GoalsPanel, { model, onNavigateToNode, filterToItemId }) });
10269
10748
  case "roles":
10270
- return /* @__PURE__ */ jsx(DomainFrame, { children: /* @__PURE__ */ jsx(RolesPanel, { model, onNavigateToNode, filterToItemId }) });
10749
+ return /* @__PURE__ */ jsx(DomainPanelFrame, { children: /* @__PURE__ */ jsx(RolesPanel, { model, onNavigateToNode, filterToItemId }) });
10271
10750
  case "statuses":
10272
- return /* @__PURE__ */ jsx(DomainFrame, { children: /* @__PURE__ */ jsx(StatusesPanel, { model, onNavigateToNode, filterToItemId }) });
10751
+ return /* @__PURE__ */ jsx(DomainPanelFrame, { children: /* @__PURE__ */ jsx(StatusesPanel, { model, onNavigateToNode, filterToItemId }) });
10273
10752
  case "navigation":
10274
- return /* @__PURE__ */ jsx(DomainFrame, { children: /* @__PURE__ */ jsx(NavigationPanel, { model, onNavigateToNode }) });
10753
+ return /* @__PURE__ */ jsx(DomainPanelFrame, { children: /* @__PURE__ */ jsx(NavigationPanel, { model, onNavigateToNode }) });
10275
10754
  case "policies":
10276
- return /* @__PURE__ */ jsx(DomainFrame, { children: /* @__PURE__ */ jsx(PoliciesPanel, { model, onNavigateToNode, filterToItemId }) });
10755
+ return /* @__PURE__ */ jsx(DomainPanelFrame, { children: /* @__PURE__ */ jsx(PoliciesPanel, { model, onNavigateToNode, filterToItemId }) });
10756
+ case "ontology-objects":
10757
+ case "ontology-links":
10758
+ case "ontology-actions":
10759
+ case "ontology-catalogs":
10760
+ case "ontology-events":
10761
+ case "ontology-interfaces":
10762
+ case "ontology-value-types":
10763
+ case "ontology-properties":
10764
+ case "ontology-groups":
10765
+ case "ontology-surfaces":
10766
+ case "ontology-resources":
10767
+ return /* @__PURE__ */ jsx(DomainPanelFrame, { children: /* @__PURE__ */ jsx(OntologyPanel, { model, domainKey, filterToItemId }) });
10277
10768
  default:
10278
- return /* @__PURE__ */ jsx(DomainFrame, { children: /* @__PURE__ */ jsxs(Stack, { p: "lg", gap: "xs", children: [
10769
+ return /* @__PURE__ */ jsx(DomainPanelFrame, { children: /* @__PURE__ */ jsxs(Stack, { p: "md", gap: "xs", children: [
10279
10770
  /* @__PURE__ */ jsx(Text, { fw: 650, children: "Unknown domain" }),
10280
10771
  /* @__PURE__ */ jsxs(Text, { size: "sm", c: "dimmed", children: [
10281
10772
  "No panel for `",