@lucern/pack-host 0.1.0-alpha.2
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.
- package/README.md +64 -0
- package/dist/contracts.d.ts +77 -0
- package/dist/contracts.js +21 -0
- package/dist/contracts.js.map +1 -0
- package/dist/convex.config.d.ts +5 -0
- package/dist/convex.config.js +9 -0
- package/dist/convex.config.js.map +1 -0
- package/dist/dependencyResolution.d.ts +18 -0
- package/dist/dependencyResolution.js +131 -0
- package/dist/dependencyResolution.js.map +1 -0
- package/dist/domain-pack/authoring.d.ts +172 -0
- package/dist/domain-pack/authoring.js +1896 -0
- package/dist/domain-pack/authoring.js.map +1 -0
- package/dist/domain-pack/contracts.d.ts +183 -0
- package/dist/domain-pack/contracts.js +65 -0
- package/dist/domain-pack/contracts.js.map +1 -0
- package/dist/domain-pack/index.d.ts +8 -0
- package/dist/domain-pack/index.js +3813 -0
- package/dist/domain-pack/index.js.map +1 -0
- package/dist/domain-pack/ontology/software-entities-v1.d.ts +102 -0
- package/dist/domain-pack/ontology/software-entities-v1.js +104 -0
- package/dist/domain-pack/ontology/software-entities-v1.js.map +1 -0
- package/dist/domain-pack/packs/developer-reasoning.d.ts +14 -0
- package/dist/domain-pack/packs/developer-reasoning.js +339 -0
- package/dist/domain-pack/packs/developer-reasoning.js.map +1 -0
- package/dist/domain-pack/packs/engineering-accelerator.d.ts +11 -0
- package/dist/domain-pack/packs/engineering-accelerator.js +1348 -0
- package/dist/domain-pack/packs/engineering-accelerator.js.map +1 -0
- package/dist/domain-pack/packs/index.d.ts +18 -0
- package/dist/domain-pack/packs/index.js +2653 -0
- package/dist/domain-pack/packs/index.js.map +1 -0
- package/dist/domain-pack/shaping.d.ts +54 -0
- package/dist/domain-pack/shaping.js +1013 -0
- package/dist/domain-pack/shaping.js.map +1 -0
- package/dist/domain-pack/validation.d.ts +26 -0
- package/dist/domain-pack/validation.js +775 -0
- package/dist/domain-pack/validation.js.map +1 -0
- package/dist/domain-pack.d.ts +8 -0
- package/dist/domain-pack.js +3813 -0
- package/dist/domain-pack.js.map +1 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.js +5520 -0
- package/dist/index.js.map +1 -0
- package/dist/lifecycle.d.ts +27 -0
- package/dist/lifecycle.js +98 -0
- package/dist/lifecycle.js.map +1 -0
- package/dist/manifestValidation.d.ts +28 -0
- package/dist/manifestValidation.js +253 -0
- package/dist/manifestValidation.js.map +1 -0
- package/dist/manifests/chat-v1.d.ts +10 -0
- package/dist/manifests/chat-v1.js +87 -0
- package/dist/manifests/chat-v1.js.map +1 -0
- package/dist/manifests/deals-v1.d.ts +10 -0
- package/dist/manifests/deals-v1.js +107 -0
- package/dist/manifests/deals-v1.js.map +1 -0
- package/dist/manifests/decisions-v1.d.ts +10 -0
- package/dist/manifests/decisions-v1.js +103 -0
- package/dist/manifests/decisions-v1.js.map +1 -0
- package/dist/manifests/documents-v1.d.ts +10 -0
- package/dist/manifests/documents-v1.js +88 -0
- package/dist/manifests/documents-v1.js.map +1 -0
- package/dist/manifests/epistemic-algorithms-v1.d.ts +10 -0
- package/dist/manifests/epistemic-algorithms-v1.js +107 -0
- package/dist/manifests/epistemic-algorithms-v1.js.map +1 -0
- package/dist/manifests/graph-visualization-v1.d.ts +10 -0
- package/dist/manifests/graph-visualization-v1.js +88 -0
- package/dist/manifests/graph-visualization-v1.js.map +1 -0
- package/dist/manifests/index.d.ts +23 -0
- package/dist/manifests/index.js +955 -0
- package/dist/manifests/index.js.map +1 -0
- package/dist/manifests/news-v1.d.ts +10 -0
- package/dist/manifests/news-v1.js +93 -0
- package/dist/manifests/news-v1.js.map +1 -0
- package/dist/manifests/philosophy-mode-v1.d.ts +10 -0
- package/dist/manifests/philosophy-mode-v1.js +100 -0
- package/dist/manifests/philosophy-mode-v1.js.map +1 -0
- package/dist/manifests/task-management-v1.d.ts +10 -0
- package/dist/manifests/task-management-v1.js +86 -0
- package/dist/manifests/task-management-v1.js.map +1 -0
- package/dist/manifests/team-analysis-v1.d.ts +10 -0
- package/dist/manifests/team-analysis-v1.js +93 -0
- package/dist/manifests/team-analysis-v1.js.map +1 -0
- package/dist/manifests/themes-v1.d.ts +10 -0
- package/dist/manifests/themes-v1.js +118 -0
- package/dist/manifests/themes-v1.js.map +1 -0
- package/dist/manifests/user-profiles-v1.d.ts +10 -0
- package/dist/manifests/user-profiles-v1.js +100 -0
- package/dist/manifests/user-profiles-v1.js.map +1 -0
- package/dist/manifests.d.ts +14 -0
- package/dist/manifests.js +955 -0
- package/dist/manifests.js.map +1 -0
- package/dist/namespacePolicy.d.ts +26 -0
- package/dist/namespacePolicy.js +129 -0
- package/dist/namespacePolicy.js.map +1 -0
- package/dist/registry.d.ts +13 -0
- package/dist/registry.js +1710 -0
- package/dist/registry.js.map +1 -0
- package/dist/runtime.d.ts +19 -0
- package/dist/runtime.js +638 -0
- package/dist/runtime.js.map +1 -0
- package/dist/serviceContracts.d.ts +18 -0
- package/dist/serviceContracts.js +64 -0
- package/dist/serviceContracts.js.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/domain-pack/contracts.ts","../../src/domain-pack/validation.ts","../../src/domain-pack/authoring.ts"],"names":["KEBAB_CASE","SEMVER","issue","dedupeStrings","normalizeRuntimeTargets"],"mappings":"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","file":"authoring.js","sourcesContent":["/**\n * Domain Pack Contracts\n *\n * A DomainPack is a self-contained reasoning context bundle that defines\n * how reasoning works in a specific domain. It binds ontology versions,\n * defines topic structure, declares workflow templates, gate schemas,\n * artifact schemas, and reasoning roles.\n *\n * This is the THIRD pack type in Lucern's architecture:\n * - AppPackManifest: UI routes, surfaces, policy profiles (app-level)\n * - MethodologyPack: Agent workflow phases, gates, enforcement (process-level)\n * - DomainPack: Reasoning domain context (domain-level)\n *\n * All fields are internal until RS-5+ external authoring certification.\n */\n\n// ---------------------------------------------------------------------------\n// Ontology Binding — ties a pack to specific ontology versions\n// ---------------------------------------------------------------------------\n\nexport type OntologyProvisionMode = \"bind\" | \"seed\" | \"extend\";\n\nexport type OntologyBinding = {\n ontologyId: string;\n versionConstraint: string; // semver range, e.g., \"^1.0.0\"\n required: boolean;\n provisionMode?: OntologyProvisionMode;\n seedRef?: string;\n requiredEntityTypes?: string[];\n requiredEdgeTypes?: string[];\n};\n\n// ---------------------------------------------------------------------------\n// Topic Root — defines the domain's top-level topic tree structure\n// ---------------------------------------------------------------------------\n\nexport type TopicRoot = {\n slug: string;\n name: string;\n description: string;\n ontologyId?: string; // which ontology governs this root\n};\n\n// ---------------------------------------------------------------------------\n// Workflow Template — shape of a workflow (not execution logic)\n// ---------------------------------------------------------------------------\n\nexport type WorkflowStep = {\n stepId: string;\n name: string;\n description: string;\n requiredRoles: string[]; // roleId references\n produces?: string[]; // artifactId references\n gateId?: string; // gate checked after this step\n};\n\nexport type WorkflowTemplate = {\n workflowId: string;\n name: string;\n description: string;\n steps: WorkflowStep[];\n requiredArtifacts: string[]; // artifactId references\n gateCheckpoints: string[]; // gateId references\n};\n\n// ---------------------------------------------------------------------------\n// Gate Schema — declarative description of what must be true\n// ---------------------------------------------------------------------------\n\nexport type GateCriterionOperator = \"gte\" | \"lte\" | \"eq\" | \"gt\" | \"lt\";\n\nexport type GateCriterion = {\n criterionId: string;\n description: string;\n metric: string;\n threshold?: number;\n operator?: GateCriterionOperator;\n};\n\nexport type GateSeverity = \"blocking\" | \"warning\" | \"informational\";\n\nexport type GateSchema = {\n gateId: string;\n name: string;\n description: string;\n criteria: GateCriterion[];\n severity: GateSeverity;\n};\n\n// ---------------------------------------------------------------------------\n// Artifact Schema — what artifacts workflows produce\n// ---------------------------------------------------------------------------\n\nexport type ArtifactSchema = {\n artifactId: string;\n name: string;\n description: string;\n stage: string; // workflow step that produces this\n contentSchema: Record<string, unknown>; // JSON Schema for content\n requiredFields: string[];\n};\n\n// ---------------------------------------------------------------------------\n// Reasoning Role — epistemic actors in the domain\n// ---------------------------------------------------------------------------\n\nexport type ReasoningRole = {\n roleId: string;\n name: string;\n description: string;\n perspective: string;\n optimizesFor: string;\n mayBlock: boolean; // Epistemic Invariant #13: agents may block progress\n};\n\n// ---------------------------------------------------------------------------\n// Inquiry Shaping — pack-level hooks for RS-3 auto-shaping\n// ---------------------------------------------------------------------------\n\nexport type InquiryShapingQuestionTemplate = {\n templateId: string;\n questionType:\n | \"validation\"\n | \"falsification\"\n | \"assumption_probe\"\n | \"counterfactual\"\n | \"scope\"\n | \"comparison\"\n | \"mechanism\"\n | \"general\";\n priority?: \"critical\" | \"high\" | \"medium\" | \"low\";\n template: string; // Supports {{objective}} and {{hypothesis}}\n whenObjectiveIncludes?: string[];\n};\n\nexport type InquiryShapingTaskTemplate = {\n templateId: string;\n title: string; // Supports {{objective}} and {{hypothesis}}\n description?: string; // Supports {{objective}} and {{hypothesis}}\n taskType?:\n | \"general\"\n | \"find_evidence\"\n | \"verify_claim\"\n | \"research\"\n | \"review\"\n | \"interview\"\n | \"analysis\"\n | \"track_metrics\";\n priority?: \"urgent\" | \"high\" | \"medium\" | \"low\";\n whenObjectiveIncludes?: string[];\n whenQuestionTypes?: string[];\n};\n\nexport type InquiryShapingFrameworkHint = {\n frameworkName: string;\n whenObjectiveIncludes?: string[];\n whenQuestionTypes?: string[];\n boost?: number;\n reason?: string;\n};\n\nexport type InquiryShapingConfig = {\n questionTemplates?: InquiryShapingQuestionTemplate[];\n taskTemplates?: InquiryShapingTaskTemplate[];\n frameworkHints?: InquiryShapingFrameworkHint[];\n};\n\n// ---------------------------------------------------------------------------\n// Operating System Layer — prompts, tools, topic bootstrap, install surfaces\n// ---------------------------------------------------------------------------\n\nexport type RuntimeTarget = \"claude-code\" | \"codex\" | \"hybrid\" | \"portable\";\n\nexport type PromptSource = \"langfuse\" | \"file\";\nexport type PromptChannel =\n | \"bootstrap\"\n | \"workflow\"\n | \"analysis\"\n | \"review\"\n | \"tool\";\n\nexport type PromptBinding = {\n promptId: string;\n description: string;\n source: PromptSource;\n ref: string;\n fallbackRef?: string;\n channel: PromptChannel;\n required: boolean;\n runtimeTargets?: RuntimeTarget[];\n};\n\nexport type ToolKind = \"mcp\" | \"cli\" | \"script\" | \"hook\" | \"ai-tool\";\n\nexport type ToolBinding = {\n toolId: string;\n description: string;\n kind: ToolKind;\n entrypoint: string;\n required: boolean;\n runtimeTargets?: RuntimeTarget[];\n};\n\nexport type SetupAssetKind =\n | \"instruction\"\n | \"settings\"\n | \"hook\"\n | \"skill\"\n | \"agent\"\n | \"manifest\"\n | \"template\"\n | \"inbox\"\n | \"script\"\n | \"ui\";\n\nexport type SetupAsset = {\n assetId: string;\n kind: SetupAssetKind;\n description: string;\n path: string;\n required: boolean;\n runtimeTargets?: RuntimeTarget[];\n};\n\nexport type TopicTemplate = {\n slug: string;\n name: string;\n description: string;\n parentSlug?: string;\n ontologyId?: string;\n};\n\nexport type InstallProfile = {\n profileId: string;\n name: string;\n description: string;\n runtimeTarget: RuntimeTarget;\n promptIds: string[];\n toolIds: string[];\n assetIds: string[];\n defaultTopicSlugs: string[];\n};\n\nexport type OperatingSystemLayer = {\n prompts?: PromptBinding[];\n tools?: ToolBinding[];\n setupAssets?: SetupAsset[];\n topicTemplates?: TopicTemplate[];\n installProfiles?: InstallProfile[];\n};\n\n// ---------------------------------------------------------------------------\n// Domain Pack — the top-level contract\n// ---------------------------------------------------------------------------\n\nexport type DomainPack = {\n // Identity\n packId: string;\n name: string;\n version: string; // semver\n\n // Scope\n ontologyBindings: OntologyBinding[];\n topicRoots: TopicRoot[];\n\n // Workflow Templates\n workflows: WorkflowTemplate[];\n\n // Gate Schemas\n gates: GateSchema[];\n\n // Artifact Schemas\n artifacts: ArtifactSchema[];\n\n // Reasoning Roles\n roles: ReasoningRole[];\n\n // Inquiry shaping hooks\n inquiryShaping?: InquiryShapingConfig;\n\n // Runtime/install packaging layer\n operatingSystem?: OperatingSystemLayer;\n\n // Composition — optional references to other pack types\n appPackKeys?: string[]; // AppPackManifest keys this domain uses\n methodologyPackId?: string; // MethodologyPack for agent behavior\n};\n\n// ---------------------------------------------------------------------------\n// Builder helper — normalizes arrays and validates basic structure\n// ---------------------------------------------------------------------------\n\nfunction dedupeStrings(values: string[]): string[] {\n return Array.from(\n new Set(values.map((v) => v.trim()).filter((v) => v.length > 0))\n );\n}\n\nexport type DomainPackInput = Omit<DomainPack, \"appPackKeys\"> & {\n appPackKeys?: string[];\n};\n\nfunction normalizeRuntimeTargets(\n values: RuntimeTarget[] | undefined\n): RuntimeTarget[] | undefined {\n return values ? (dedupeStrings(values) as RuntimeTarget[]) : undefined;\n}\n\nfunction normalizeOntologyBinding(binding: OntologyBinding): OntologyBinding {\n return {\n ...binding,\n requiredEntityTypes: binding.requiredEntityTypes\n ? dedupeStrings(binding.requiredEntityTypes)\n : undefined,\n requiredEdgeTypes: binding.requiredEdgeTypes\n ? dedupeStrings(binding.requiredEdgeTypes)\n : undefined,\n };\n}\n\nfunction normalizeOperatingSystem(\n layer: OperatingSystemLayer | undefined\n): OperatingSystemLayer | undefined {\n if (!layer) {\n return;\n }\n\n return {\n prompts: layer.prompts?.map((prompt) => ({\n ...prompt,\n runtimeTargets: normalizeRuntimeTargets(prompt.runtimeTargets),\n })),\n tools: layer.tools?.map((tool) => ({\n ...tool,\n runtimeTargets: normalizeRuntimeTargets(tool.runtimeTargets),\n })),\n setupAssets: layer.setupAssets?.map((asset) => ({\n ...asset,\n runtimeTargets: normalizeRuntimeTargets(asset.runtimeTargets),\n })),\n topicTemplates: layer.topicTemplates,\n installProfiles: layer.installProfiles?.map((profile) => ({\n ...profile,\n promptIds: dedupeStrings(profile.promptIds),\n toolIds: dedupeStrings(profile.toolIds),\n assetIds: dedupeStrings(profile.assetIds),\n defaultTopicSlugs: dedupeStrings(profile.defaultTopicSlugs),\n })),\n };\n}\n\nexport function defineDomainPack(input: DomainPackInput): DomainPack {\n return {\n ...input,\n ontologyBindings: input.ontologyBindings.map(normalizeOntologyBinding),\n appPackKeys: input.appPackKeys\n ? dedupeStrings(input.appPackKeys)\n : undefined,\n operatingSystem: normalizeOperatingSystem(input.operatingSystem),\n workflows: input.workflows.map((w) => ({\n ...w,\n requiredArtifacts: dedupeStrings(w.requiredArtifacts),\n gateCheckpoints: dedupeStrings(w.gateCheckpoints),\n steps: w.steps.map((s) => ({\n ...s,\n requiredRoles: dedupeStrings(s.requiredRoles),\n produces: s.produces ? dedupeStrings(s.produces) : undefined,\n })),\n })),\n };\n}\n","/**\n * Domain Pack Validation\n *\n * Validates a DomainPack for structural integrity:\n * - Required fields present and non-empty\n * - IDs are unique within their collections\n * - Cross-references resolve (gates, artifacts, roles referenced in workflows exist)\n * - Version is valid semver\n * - packId is kebab-case\n */\n\nimport type {\n DomainPack,\n InquiryShapingFrameworkHint,\n InquiryShapingQuestionTemplate,\n InquiryShapingTaskTemplate,\n} from \"./contracts\";\n\nexport type DomainPackValidationIssue = {\n code: string;\n severity: \"error\" | \"warning\";\n message: string;\n path: string;\n};\n\nexport type DomainPackValidationResult = {\n valid: boolean;\n issues: DomainPackValidationIssue[];\n};\n\nfunction issue(\n code: string,\n message: string,\n path: string,\n severity: \"error\" | \"warning\" = \"error\"\n): DomainPackValidationIssue {\n return { code, severity, message, path };\n}\n\nconst KEBAB_CASE = /^[a-z][a-z0-9]*(-[a-z0-9]+)*$/;\nconst SEMVER =\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\nconst SHAPING_QUESTION_TYPES = new Set([\n \"validation\",\n \"falsification\",\n \"assumption_probe\",\n \"counterfactual\",\n \"scope\",\n \"comparison\",\n \"mechanism\",\n \"general\",\n]);\nconst RUNTIME_TARGETS = new Set([\"claude-code\", \"codex\", \"hybrid\", \"portable\"]);\nconst ONTOLOGY_PROVISION_MODES = new Set([\"bind\", \"seed\", \"extend\"]);\n\nfunction validateStringArray(\n values: string[] | undefined,\n path: string,\n label: string\n): DomainPackValidationIssue[] {\n if (!values) {\n return [];\n }\n\n return values.flatMap((value, index) => {\n if (!value?.trim()) {\n return [\n issue(\n \"INVALID_SHAPING_CONDITION\",\n `${label} must not contain empty strings`,\n `${path}[${index}]`\n ),\n ];\n }\n return [];\n });\n}\n\nfunction validateRuntimeTargets(\n values: string[] | undefined,\n path: string\n): DomainPackValidationIssue[] {\n const issues = validateStringArray(values, path, \"runtimeTargets\");\n for (const [index, value] of (values || []).entries()) {\n if (!RUNTIME_TARGETS.has(value)) {\n issues.push(\n issue(\n \"INVALID_RUNTIME_TARGET\",\n `Unsupported runtime target \"${value}\"`,\n `${path}[${index}]`\n )\n );\n }\n }\n return issues;\n}\n\nfunction validatePromptBinding(\n prompt: {\n promptId: string;\n ref: string;\n runtimeTargets?: string[];\n },\n index: number\n): DomainPackValidationIssue[] {\n const path = `operatingSystem.prompts[${index}]`;\n const issues: DomainPackValidationIssue[] = [];\n\n if (!prompt.promptId?.trim()) {\n issues.push(\n issue(\n \"MISSING_PROMPT_ID\",\n \"prompt binding requires promptId\",\n `${path}.promptId`\n )\n );\n }\n if (!prompt.ref?.trim()) {\n issues.push(\n issue(\"MISSING_PROMPT_REF\", \"prompt binding requires ref\", `${path}.ref`)\n );\n }\n\n issues.push(\n ...validateRuntimeTargets(prompt.runtimeTargets, `${path}.runtimeTargets`)\n );\n return issues;\n}\n\nfunction validateToolBinding(\n tool: {\n toolId: string;\n entrypoint: string;\n runtimeTargets?: string[];\n },\n index: number\n): DomainPackValidationIssue[] {\n const path = `operatingSystem.tools[${index}]`;\n const issues: DomainPackValidationIssue[] = [];\n\n if (!tool.toolId?.trim()) {\n issues.push(\n issue(\"MISSING_TOOL_ID\", \"tool binding requires toolId\", `${path}.toolId`)\n );\n }\n if (!tool.entrypoint?.trim()) {\n issues.push(\n issue(\n \"MISSING_TOOL_ENTRYPOINT\",\n \"tool binding requires entrypoint\",\n `${path}.entrypoint`\n )\n );\n }\n\n issues.push(\n ...validateRuntimeTargets(tool.runtimeTargets, `${path}.runtimeTargets`)\n );\n return issues;\n}\n\nfunction validateSetupAsset(\n asset: {\n assetId: string;\n path: string;\n runtimeTargets?: string[];\n },\n index: number\n): DomainPackValidationIssue[] {\n const path = `operatingSystem.setupAssets[${index}]`;\n const issues: DomainPackValidationIssue[] = [];\n\n if (!asset.assetId?.trim()) {\n issues.push(\n issue(\n \"MISSING_SETUP_ASSET_ID\",\n \"setup asset requires assetId\",\n `${path}.assetId`\n )\n );\n }\n if (!asset.path?.trim()) {\n issues.push(\n issue(\n \"MISSING_SETUP_ASSET_PATH\",\n \"setup asset requires path\",\n `${path}.path`\n )\n );\n }\n\n issues.push(\n ...validateRuntimeTargets(asset.runtimeTargets, `${path}.runtimeTargets`)\n );\n return issues;\n}\n\nfunction validateQuestionTemplate(\n template: InquiryShapingQuestionTemplate,\n index: number\n): DomainPackValidationIssue[] {\n const path = `inquiryShaping.questionTemplates[${index}]`;\n const issues: DomainPackValidationIssue[] = [];\n\n if (!template.templateId?.trim()) {\n issues.push(\n issue(\n \"MISSING_SHAPING_TEMPLATE_ID\",\n \"question template requires templateId\",\n `${path}.templateId`\n )\n );\n }\n if (!template.template?.trim()) {\n issues.push(\n issue(\n \"MISSING_SHAPING_TEMPLATE\",\n \"question template requires template text\",\n `${path}.template`\n )\n );\n }\n if (!SHAPING_QUESTION_TYPES.has(template.questionType)) {\n issues.push(\n issue(\n \"INVALID_SHAPING_QUESTION_TYPE\",\n `Unsupported questionType \"${template.questionType}\"`,\n `${path}.questionType`\n )\n );\n }\n\n issues.push(\n ...validateStringArray(\n template.whenObjectiveIncludes,\n `${path}.whenObjectiveIncludes`,\n \"whenObjectiveIncludes\"\n )\n );\n\n return issues;\n}\n\nfunction validateTaskTemplate(\n template: InquiryShapingTaskTemplate,\n index: number\n): DomainPackValidationIssue[] {\n const path = `inquiryShaping.taskTemplates[${index}]`;\n const issues: DomainPackValidationIssue[] = [];\n\n if (!template.templateId?.trim()) {\n issues.push(\n issue(\n \"MISSING_TASK_GENERATOR_ID\",\n \"task template requires templateId\",\n `${path}.templateId`\n )\n );\n }\n if (!template.title?.trim()) {\n issues.push(\n issue(\n \"MISSING_TASK_GENERATOR_TITLE\",\n \"task template requires title\",\n `${path}.title`\n )\n );\n }\n\n issues.push(\n ...validateStringArray(\n template.whenObjectiveIncludes,\n `${path}.whenObjectiveIncludes`,\n \"whenObjectiveIncludes\"\n )\n );\n issues.push(\n ...validateStringArray(\n template.whenQuestionTypes,\n `${path}.whenQuestionTypes`,\n \"whenQuestionTypes\"\n )\n );\n\n for (const [questionTypeIndex, questionType] of (\n template.whenQuestionTypes || []\n ).entries()) {\n if (!SHAPING_QUESTION_TYPES.has(questionType)) {\n issues.push(\n issue(\n \"INVALID_TASK_GENERATOR_QUESTION_TYPE\",\n `Unsupported whenQuestionTypes value \"${questionType}\"`,\n `${path}.whenQuestionTypes[${questionTypeIndex}]`\n )\n );\n }\n }\n\n return issues;\n}\n\nfunction validateFrameworkHint(\n hint: InquiryShapingFrameworkHint,\n index: number\n): DomainPackValidationIssue[] {\n const path = `inquiryShaping.frameworkHints[${index}]`;\n const issues: DomainPackValidationIssue[] = [];\n\n if (!hint.frameworkName?.trim()) {\n issues.push(\n issue(\n \"MISSING_FRAMEWORK_HOOK_NAME\",\n \"framework hint requires frameworkName\",\n `${path}.frameworkName`\n )\n );\n }\n if (hint.boost != null && (!Number.isFinite(hint.boost) || hint.boost < 0)) {\n issues.push(\n issue(\n \"INVALID_FRAMEWORK_HOOK_BOOST\",\n \"framework hint boost must be a non-negative number\",\n `${path}.boost`\n )\n );\n }\n\n issues.push(\n ...validateStringArray(\n hint.whenObjectiveIncludes,\n `${path}.whenObjectiveIncludes`,\n \"whenObjectiveIncludes\"\n )\n );\n issues.push(\n ...validateStringArray(\n hint.whenQuestionTypes,\n `${path}.whenQuestionTypes`,\n \"whenQuestionTypes\"\n )\n );\n\n for (const [questionTypeIndex, questionType] of (\n hint.whenQuestionTypes || []\n ).entries()) {\n if (!SHAPING_QUESTION_TYPES.has(questionType)) {\n issues.push(\n issue(\n \"INVALID_FRAMEWORK_HOOK_QUESTION_TYPE\",\n `Unsupported whenQuestionTypes value \"${questionType}\"`,\n `${path}.whenQuestionTypes[${questionTypeIndex}]`\n )\n );\n }\n }\n\n return issues;\n}\n\nfunction validateTopicTemplate(\n template: {\n slug: string;\n name: string;\n description: string;\n parentSlug?: string;\n },\n index: number,\n knownTopicSlugs: Set<string>\n): DomainPackValidationIssue[] {\n const path = `operatingSystem.topicTemplates[${index}]`;\n const issues: DomainPackValidationIssue[] = [];\n\n if (!template.slug?.trim()) {\n issues.push(\n issue(\n \"MISSING_TOPIC_TEMPLATE_SLUG\",\n \"topic template requires slug\",\n `${path}.slug`\n )\n );\n } else if (!KEBAB_CASE.test(template.slug)) {\n issues.push(\n issue(\n \"INVALID_TOPIC_TEMPLATE_SLUG\",\n `topic template slug \"${template.slug}\" must be kebab-case`,\n `${path}.slug`\n )\n );\n }\n\n if (!template.name?.trim()) {\n issues.push(\n issue(\n \"MISSING_TOPIC_TEMPLATE_NAME\",\n \"topic template requires name\",\n `${path}.name`\n )\n );\n }\n\n if (!template.description?.trim()) {\n issues.push(\n issue(\n \"MISSING_TOPIC_TEMPLATE_DESCRIPTION\",\n \"topic template requires description\",\n `${path}.description`\n )\n );\n }\n\n if (template.parentSlug && !knownTopicSlugs.has(template.parentSlug)) {\n issues.push(\n issue(\n \"UNKNOWN_TOPIC_PARENT\",\n `topic template references unknown parent \"${template.parentSlug}\"`,\n `${path}.parentSlug`\n )\n );\n }\n\n return issues;\n}\n\nfunction validateInstallProfile(\n profile: {\n profileId: string;\n name: string;\n description: string;\n runtimeTarget: string;\n promptIds: string[];\n toolIds: string[];\n assetIds: string[];\n defaultTopicSlugs: string[];\n },\n index: number,\n knownPromptIds: Set<string>,\n knownToolIds: Set<string>,\n knownAssetIds: Set<string>,\n knownTopicSlugs: Set<string>\n): DomainPackValidationIssue[] {\n const path = `operatingSystem.installProfiles[${index}]`;\n const issues: DomainPackValidationIssue[] = [];\n\n if (!profile.profileId?.trim()) {\n issues.push(\n issue(\n \"MISSING_INSTALL_PROFILE_ID\",\n \"install profile requires profileId\",\n `${path}.profileId`\n )\n );\n }\n if (!profile.name?.trim()) {\n issues.push(\n issue(\n \"MISSING_INSTALL_PROFILE_NAME\",\n \"install profile requires name\",\n `${path}.name`\n )\n );\n }\n if (!profile.description?.trim()) {\n issues.push(\n issue(\n \"MISSING_INSTALL_PROFILE_DESCRIPTION\",\n \"install profile requires description\",\n `${path}.description`\n )\n );\n }\n if (!RUNTIME_TARGETS.has(profile.runtimeTarget)) {\n issues.push(\n issue(\n \"INVALID_RUNTIME_TARGET\",\n `Unsupported runtime target \"${profile.runtimeTarget}\"`,\n `${path}.runtimeTarget`\n )\n );\n }\n\n for (const [promptIndex, promptId] of profile.promptIds.entries()) {\n if (!knownPromptIds.has(promptId)) {\n issues.push(\n issue(\n \"UNKNOWN_PROMPT_REF\",\n `install profile references unknown prompt \"${promptId}\"`,\n `${path}.promptIds[${promptIndex}]`\n )\n );\n }\n }\n for (const [toolIndex, toolId] of profile.toolIds.entries()) {\n if (!knownToolIds.has(toolId)) {\n issues.push(\n issue(\n \"UNKNOWN_TOOL_REF\",\n `install profile references unknown tool \"${toolId}\"`,\n `${path}.toolIds[${toolIndex}]`\n )\n );\n }\n }\n for (const [assetIndex, assetId] of profile.assetIds.entries()) {\n if (!knownAssetIds.has(assetId)) {\n issues.push(\n issue(\n \"UNKNOWN_SETUP_ASSET_REF\",\n `install profile references unknown setup asset \"${assetId}\"`,\n `${path}.assetIds[${assetIndex}]`\n )\n );\n }\n }\n for (const [topicIndex, topicSlug] of profile.defaultTopicSlugs.entries()) {\n if (!knownTopicSlugs.has(topicSlug)) {\n issues.push(\n issue(\n \"UNKNOWN_TOPIC_REF\",\n `install profile references unknown topic \"${topicSlug}\"`,\n `${path}.defaultTopicSlugs[${topicIndex}]`\n )\n );\n }\n }\n\n return issues;\n}\n\nfunction checkDuplicateIds(\n items: { [key: string]: string }[],\n idField: string,\n path: string\n): DomainPackValidationIssue[] {\n const issues: DomainPackValidationIssue[] = [];\n const seen = new Set<string>();\n for (const item of items) {\n const id = item[idField];\n if (seen.has(id)) {\n issues.push(\n issue(\n \"DUPLICATE_ID\",\n `Duplicate ${idField} \"${id}\"`,\n `${path}.${idField}`\n )\n );\n }\n seen.add(id);\n }\n return issues;\n}\n\nexport function validateDomainPack(\n pack: DomainPack\n): DomainPackValidationResult {\n const issues: DomainPackValidationIssue[] = [];\n\n // --- Identity ---\n if (!pack.packId || !pack.packId.trim()) {\n issues.push(issue(\"MISSING_PACK_ID\", \"packId is required\", \"packId\"));\n } else if (!KEBAB_CASE.test(pack.packId)) {\n issues.push(\n issue(\n \"INVALID_PACK_ID\",\n `packId \"${pack.packId}\" must be kebab-case`,\n \"packId\"\n )\n );\n }\n\n if (!pack.name || !pack.name.trim()) {\n issues.push(issue(\"MISSING_NAME\", \"name is required\", \"name\"));\n }\n\n if (!pack.version || !pack.version.trim()) {\n issues.push(issue(\"MISSING_VERSION\", \"version is required\", \"version\"));\n } else if (!SEMVER.test(pack.version)) {\n issues.push(\n issue(\n \"INVALID_VERSION\",\n `version \"${pack.version}\" must be valid semver`,\n \"version\"\n )\n );\n }\n\n // --- Scope ---\n if (!pack.ontologyBindings || pack.ontologyBindings.length === 0) {\n issues.push(\n issue(\n \"MISSING_ONTOLOGY_BINDINGS\",\n \"At least one ontologyBinding is required\",\n \"ontologyBindings\"\n )\n );\n } else {\n for (const [i, binding] of pack.ontologyBindings.entries()) {\n if (!binding.ontologyId?.trim()) {\n issues.push(\n issue(\n \"MISSING_ONTOLOGY_ID\",\n `ontologyBinding[${i}].ontologyId is required`,\n `ontologyBindings[${i}].ontologyId`\n )\n );\n }\n if (!binding.versionConstraint?.trim()) {\n issues.push(\n issue(\n \"MISSING_VERSION_CONSTRAINT\",\n `ontologyBinding[${i}].versionConstraint is required`,\n `ontologyBindings[${i}].versionConstraint`\n )\n );\n }\n if (\n binding.provisionMode &&\n !ONTOLOGY_PROVISION_MODES.has(binding.provisionMode)\n ) {\n issues.push(\n issue(\n \"INVALID_ONTOLOGY_PROVISION_MODE\",\n `Unsupported provisionMode \"${binding.provisionMode}\"`,\n `ontologyBindings[${i}].provisionMode`\n )\n );\n }\n if (\n binding.provisionMode &&\n binding.provisionMode !== \"bind\" &&\n !binding.seedRef?.trim()\n ) {\n issues.push(\n issue(\n \"MISSING_ONTOLOGY_SEED_REF\",\n `ontologyBinding[${i}] requires seedRef when provisionMode is \"${binding.provisionMode}\"`,\n `ontologyBindings[${i}].seedRef`\n )\n );\n }\n issues.push(\n ...validateStringArray(\n binding.requiredEntityTypes,\n `ontologyBindings[${i}].requiredEntityTypes`,\n \"requiredEntityTypes\"\n ),\n ...validateStringArray(\n binding.requiredEdgeTypes,\n `ontologyBindings[${i}].requiredEdgeTypes`,\n \"requiredEdgeTypes\"\n )\n );\n }\n }\n\n if (!pack.topicRoots || pack.topicRoots.length === 0) {\n issues.push(\n issue(\n \"MISSING_TOPIC_ROOTS\",\n \"At least one topicRoot is required\",\n \"topicRoots\"\n )\n );\n } else {\n issues.push(\n ...checkDuplicateIds(\n pack.topicRoots as unknown as { [key: string]: string }[],\n \"slug\",\n \"topicRoots\"\n )\n );\n }\n\n if (pack.operatingSystem) {\n const knownRootSlugs = new Set(\n pack.topicRoots?.map((topic) => topic.slug) ?? []\n );\n\n if (pack.operatingSystem.prompts) {\n issues.push(\n ...checkDuplicateIds(\n pack.operatingSystem.prompts as unknown as {\n [key: string]: string;\n }[],\n \"promptId\",\n \"operatingSystem.prompts\"\n )\n );\n pack.operatingSystem.prompts.forEach((prompt, index) => {\n issues.push(...validatePromptBinding(prompt, index));\n });\n }\n\n if (pack.operatingSystem.tools) {\n issues.push(\n ...checkDuplicateIds(\n pack.operatingSystem.tools as unknown as { [key: string]: string }[],\n \"toolId\",\n \"operatingSystem.tools\"\n )\n );\n pack.operatingSystem.tools.forEach((tool, index) => {\n issues.push(...validateToolBinding(tool, index));\n });\n }\n\n if (pack.operatingSystem.setupAssets) {\n issues.push(\n ...checkDuplicateIds(\n pack.operatingSystem.setupAssets as unknown as {\n [key: string]: string;\n }[],\n \"assetId\",\n \"operatingSystem.setupAssets\"\n )\n );\n pack.operatingSystem.setupAssets.forEach((asset, index) => {\n issues.push(...validateSetupAsset(asset, index));\n });\n }\n\n const templateSlugs = new Set<string>();\n if (pack.operatingSystem.topicTemplates) {\n issues.push(\n ...checkDuplicateIds(\n pack.operatingSystem.topicTemplates as unknown as {\n [key: string]: string;\n }[],\n \"slug\",\n \"operatingSystem.topicTemplates\"\n )\n );\n pack.operatingSystem.topicTemplates.forEach((template) => {\n if (template.slug) {\n templateSlugs.add(template.slug);\n }\n });\n const knownTopicSlugs = new Set([...knownRootSlugs, ...templateSlugs]);\n pack.operatingSystem.topicTemplates.forEach((template, index) => {\n issues.push(...validateTopicTemplate(template, index, knownTopicSlugs));\n });\n }\n\n if (pack.operatingSystem.installProfiles) {\n issues.push(\n ...checkDuplicateIds(\n pack.operatingSystem.installProfiles as unknown as {\n [key: string]: string;\n }[],\n \"profileId\",\n \"operatingSystem.installProfiles\"\n )\n );\n\n const knownPromptIds = new Set(\n pack.operatingSystem.prompts?.map((prompt) => prompt.promptId) ?? []\n );\n const knownToolIds = new Set(\n pack.operatingSystem.tools?.map((tool) => tool.toolId) ?? []\n );\n const knownAssetIds = new Set(\n pack.operatingSystem.setupAssets?.map((asset) => asset.assetId) ?? []\n );\n const knownTopicSlugs = new Set([...knownRootSlugs, ...templateSlugs]);\n\n pack.operatingSystem.installProfiles.forEach((profile, index) => {\n issues.push(\n ...validateInstallProfile(\n profile,\n index,\n knownPromptIds,\n knownToolIds,\n knownAssetIds,\n knownTopicSlugs\n )\n );\n });\n }\n }\n\n // --- Roles ---\n if (!pack.roles || pack.roles.length === 0) {\n issues.push(\n issue(\"MISSING_ROLES\", \"At least one reasoning role is required\", \"roles\")\n );\n } else {\n issues.push(\n ...checkDuplicateIds(\n pack.roles as unknown as { [key: string]: string }[],\n \"roleId\",\n \"roles\"\n )\n );\n }\n\n // Collect known IDs for cross-reference validation\n const knownGateIds = new Set(pack.gates?.map((g) => g.gateId) ?? []);\n const knownArtifactIds = new Set(\n pack.artifacts?.map((a) => a.artifactId) ?? []\n );\n const knownRoleIds = new Set(pack.roles?.map((r) => r.roleId) ?? []);\n\n // --- Gates ---\n if (pack.gates) {\n issues.push(\n ...checkDuplicateIds(\n pack.gates as unknown as { [key: string]: string }[],\n \"gateId\",\n \"gates\"\n )\n );\n for (const [i, gate] of pack.gates.entries()) {\n if (!gate.criteria || gate.criteria.length === 0) {\n issues.push(\n issue(\n \"EMPTY_GATE_CRITERIA\",\n `Gate \"${gate.gateId}\" has no criteria`,\n `gates[${i}].criteria`,\n \"warning\"\n )\n );\n } else {\n issues.push(\n ...checkDuplicateIds(\n gate.criteria as unknown as { [key: string]: string }[],\n \"criterionId\",\n `gates[${i}].criteria`\n )\n );\n }\n }\n }\n\n // --- Artifacts ---\n if (pack.artifacts) {\n issues.push(\n ...checkDuplicateIds(\n pack.artifacts as unknown as { [key: string]: string }[],\n \"artifactId\",\n \"artifacts\"\n )\n );\n }\n\n // --- Workflows: cross-reference validation ---\n if (pack.workflows) {\n issues.push(\n ...checkDuplicateIds(\n pack.workflows as unknown as { [key: string]: string }[],\n \"workflowId\",\n \"workflows\"\n )\n );\n\n for (const [wi, workflow] of pack.workflows.entries()) {\n // Check gate checkpoint references\n for (const gateId of workflow.gateCheckpoints) {\n if (!knownGateIds.has(gateId)) {\n issues.push(\n issue(\n \"UNKNOWN_GATE_REF\",\n `Workflow \"${workflow.workflowId}\" references unknown gate \"${gateId}\"`,\n `workflows[${wi}].gateCheckpoints`\n )\n );\n }\n }\n\n // Check required artifact references\n for (const artifactId of workflow.requiredArtifacts) {\n if (!knownArtifactIds.has(artifactId)) {\n issues.push(\n issue(\n \"UNKNOWN_ARTIFACT_REF\",\n `Workflow \"${workflow.workflowId}\" references unknown artifact \"${artifactId}\"`,\n `workflows[${wi}].requiredArtifacts`\n )\n );\n }\n }\n\n // Check step references\n for (const [si, step] of workflow.steps.entries()) {\n for (const roleId of step.requiredRoles) {\n if (!knownRoleIds.has(roleId)) {\n issues.push(\n issue(\n \"UNKNOWN_ROLE_REF\",\n `Step \"${step.stepId}\" references unknown role \"${roleId}\"`,\n `workflows[${wi}].steps[${si}].requiredRoles`\n )\n );\n }\n }\n\n if (step.gateId && !knownGateIds.has(step.gateId)) {\n issues.push(\n issue(\n \"UNKNOWN_GATE_REF\",\n `Step \"${step.stepId}\" references unknown gate \"${step.gateId}\"`,\n `workflows[${wi}].steps[${si}].gateId`\n )\n );\n }\n\n if (step.produces) {\n for (const artifactId of step.produces) {\n if (!knownArtifactIds.has(artifactId)) {\n issues.push(\n issue(\n \"UNKNOWN_ARTIFACT_REF\",\n `Step \"${step.stepId}\" references unknown artifact \"${artifactId}\"`,\n `workflows[${wi}].steps[${si}].produces`\n )\n );\n }\n }\n }\n }\n }\n }\n\n if (pack.inquiryShaping) {\n if (pack.inquiryShaping.questionTemplates) {\n issues.push(\n ...checkDuplicateIds(\n pack.inquiryShaping.questionTemplates as unknown as {\n [key: string]: string;\n }[],\n \"templateId\",\n \"inquiryShaping.questionTemplates\"\n )\n );\n pack.inquiryShaping.questionTemplates.forEach((template, index) => {\n issues.push(...validateQuestionTemplate(template, index));\n });\n }\n\n if (pack.inquiryShaping.taskTemplates) {\n issues.push(\n ...checkDuplicateIds(\n pack.inquiryShaping.taskTemplates as unknown as {\n [key: string]: string;\n }[],\n \"templateId\",\n \"inquiryShaping.taskTemplates\"\n )\n );\n pack.inquiryShaping.taskTemplates.forEach((template, index) => {\n issues.push(...validateTaskTemplate(template, index));\n });\n }\n\n if (pack.inquiryShaping.frameworkHints) {\n issues.push(\n ...checkDuplicateIds(\n pack.inquiryShaping.frameworkHints.map((hint) => ({\n frameworkName: hint.frameworkName,\n })),\n \"frameworkName\",\n \"inquiryShaping.frameworkHints\"\n )\n );\n pack.inquiryShaping.frameworkHints.forEach((hint, index) => {\n issues.push(...validateFrameworkHint(hint, index));\n });\n }\n }\n\n return {\n valid: issues.filter((i) => i.severity === \"error\").length === 0,\n issues,\n };\n}\n","/**\n * Domain Pack Authoring Kit\n *\n * Config-first authoring surface for tenant-authored domain packs. This layer\n * wraps the internal DomainPack contract in a stable manifest envelope with\n * framework versioning, schema and ontology extension contracts, remix/fork\n * lineage, and tool-shaped validate/preview/publish handlers.\n */\n\nimport type { DomainPack, DomainPackInput, RuntimeTarget } from \"./contracts\";\nimport { defineDomainPack } from \"./contracts\";\nimport type { DomainPackValidationIssue } from \"./validation\";\nimport { validateDomainPack } from \"./validation\";\n\nconst DOMAIN_PACK_MANIFEST_KIND = \"lucern-domain-pack-manifest\" as const;\nconst CURRENT_MANIFEST_VERSION = \"1.0.0\";\nconst KEBAB_CASE = /^[a-z][a-z0-9]*(-[a-z0-9]+)*$/;\nconst SEMVER =\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\nconst LEGACY_PUBLIC_KEYS = new Set([\n \"project\",\n \"projects\",\n \"projectId\",\n \"projectIds\",\n]);\nconst SCHEMA_EXTENSION_TARGETS = new Set([\n \"artifact\",\n \"workflow\",\n \"gate\",\n \"prompt\",\n \"tool\",\n \"install-profile\",\n \"topic-template\",\n]);\nconst ONTOLOGY_CONSTRAINT_SEVERITIES = new Set([\n \"error\",\n \"warning\",\n \"informational\",\n]);\nconst LINEAGE_MODES = new Set([\"root\", \"remix\", \"fork\"]);\nconst AUTHORING_TOOL_NAMES = {\n validate: \"validate_domain_pack_manifest\",\n preview: \"preview_domain_pack_manifest\",\n publish: \"publish_domain_pack_manifest\",\n} as const;\n\nexport type DomainPackManifestFormat = \"json\" | \"yaml\";\n\nexport type DomainPackFrameworkContract = {\n frameworkId: string;\n version: string;\n versionConstraint?: string;\n required?: boolean;\n runtimeTargets?: RuntimeTarget[];\n};\n\nexport type DomainPackSchemaExtensionTarget =\n | \"artifact\"\n | \"workflow\"\n | \"gate\"\n | \"prompt\"\n | \"tool\"\n | \"install-profile\"\n | \"topic-template\";\n\nexport type DomainPackSchemaExtension = {\n extensionId: string;\n target: DomainPackSchemaExtensionTarget;\n description: string;\n version: string;\n extends?: string;\n schema: Record<string, unknown>;\n};\n\nexport type DomainPackOntologyEntityExtension = {\n value: string;\n label: string;\n description?: string;\n schema?: Record<string, unknown>;\n subtypes?: string[];\n};\n\nexport type DomainPackOntologyEdgeExtension = {\n value: string;\n label: string;\n description?: string;\n sourceTypes?: string[];\n targetTypes?: string[];\n constraintSeverity?: \"error\" | \"warning\" | \"informational\";\n};\n\nexport type DomainPackOntologyExtension = {\n extensionId: string;\n ontologyId: string;\n baseVersionConstraint: string;\n additiveOnly: boolean;\n entityTypes?: DomainPackOntologyEntityExtension[];\n edgeTypes?: DomainPackOntologyEdgeExtension[];\n};\n\nexport type DomainPackLineageMode = \"root\" | \"remix\" | \"fork\";\n\nexport type DomainPackLineage = {\n mode: DomainPackLineageMode;\n parentPackId?: string;\n parentVersion?: string;\n parentManifestDigest?: string;\n supersedesPackId?: string;\n notes?: string;\n};\n\nexport type DomainPackAuthoringMetadata = {\n description?: string;\n owner?: string;\n tags?: string[];\n};\n\nexport type DomainPackAuthoringManifest = {\n kind: typeof DOMAIN_PACK_MANIFEST_KIND;\n manifestVersion: string;\n pack: DomainPack;\n frameworks?: DomainPackFrameworkContract[];\n schemaExtensions?: DomainPackSchemaExtension[];\n ontologyExtensions?: DomainPackOntologyExtension[];\n lineage: DomainPackLineage;\n metadata?: DomainPackAuthoringMetadata;\n};\n\nexport type DomainPackAuthoringManifestInput = {\n kind?: typeof DOMAIN_PACK_MANIFEST_KIND;\n manifestVersion?: string;\n pack: DomainPack | DomainPackInput;\n frameworks?: DomainPackFrameworkContract[];\n schemaExtensions?: DomainPackSchemaExtension[];\n ontologyExtensions?: DomainPackOntologyExtension[];\n lineage?: DomainPackLineage;\n metadata?: DomainPackAuthoringMetadata;\n};\n\nexport type DomainPackAuthoringValidationIssue = DomainPackValidationIssue & {\n source:\n | \"manifest\"\n | \"pack\"\n | \"framework\"\n | \"schema-extension\"\n | \"ontology-extension\"\n | \"lineage\"\n | \"terminology\"\n | \"parse\";\n};\n\nexport type DomainPackManifestCounts = {\n topicRoots: number;\n workflows: number;\n gates: number;\n artifacts: number;\n roles: number;\n prompts: number;\n tools: number;\n setupAssets: number;\n installProfiles: number;\n frameworks: number;\n schemaExtensions: number;\n ontologyExtensions: number;\n};\n\nexport type DomainPackAuthoringValidationResult = {\n valid: boolean;\n format: DomainPackManifestFormat | null;\n manifest: DomainPackAuthoringManifest | null;\n manifestDigest: string | null;\n issues: DomainPackAuthoringValidationIssue[];\n counts: DomainPackManifestCounts;\n};\n\nexport type DomainPackAuthoringPreview = DomainPackAuthoringValidationResult & {\n readyToPublish: boolean;\n canonicalJson: string | null;\n canonicalYaml: string | null;\n lineageSummary: string | null;\n requiredRuntimeTargets: RuntimeTarget[];\n};\n\nexport type DomainPackPublicationLineageEdge = {\n edgeType: \"remixed_from\" | \"supersedes\";\n childPackId: string;\n parentPackId: string;\n parentVersion: string;\n};\n\nexport type DomainPackPublication = {\n publicationId: string;\n packId: string;\n version: string;\n manifestDigest: string;\n manifest: DomainPackAuthoringManifest;\n lineageEdge: DomainPackPublicationLineageEdge | null;\n canonicalJson: string;\n canonicalYaml: string;\n};\n\nexport type DomainPackPublishResult = {\n published: boolean;\n preview: DomainPackAuthoringPreview;\n publication: DomainPackPublication | null;\n};\n\nexport type DomainPackAuthoringToolInput = {\n manifestText: string;\n format?: DomainPackManifestFormat;\n};\n\nexport type DomainPackAuthoringToolDefinition<Result> = {\n name:\n | typeof AUTHORING_TOOL_NAMES.validate\n | typeof AUTHORING_TOOL_NAMES.preview\n | typeof AUTHORING_TOOL_NAMES.publish;\n description: string;\n inputSchema: Record<string, unknown>;\n execute: (args: DomainPackAuthoringToolInput) => Result;\n};\n\nexport type DomainPackAuthoringToolset = {\n validate: DomainPackAuthoringToolDefinition<DomainPackAuthoringValidationResult>;\n preview: DomainPackAuthoringToolDefinition<DomainPackAuthoringPreview>;\n publish: DomainPackAuthoringToolDefinition<DomainPackPublishResult>;\n};\n\nfunction issue(\n code: string,\n message: string,\n path: string,\n source: DomainPackAuthoringValidationIssue[\"source\"],\n severity: \"error\" | \"warning\" = \"error\"\n): DomainPackAuthoringValidationIssue {\n return { code, message, path, severity, source };\n}\n\nfunction emptyCounts(): DomainPackManifestCounts {\n return {\n topicRoots: 0,\n workflows: 0,\n gates: 0,\n artifacts: 0,\n roles: 0,\n prompts: 0,\n tools: 0,\n setupAssets: 0,\n installProfiles: 0,\n frameworks: 0,\n schemaExtensions: 0,\n ontologyExtensions: 0,\n };\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return (\n typeof value === \"object\" &&\n value !== null &&\n !Array.isArray(value) &&\n Object.getPrototypeOf(value) === Object.prototype\n );\n}\n\nfunction dedupeStrings(values: string[] | undefined): string[] | undefined {\n if (!values) {\n return undefined;\n }\n return Array.from(\n new Set(values.map((value) => value.trim()).filter((value) => value.length))\n );\n}\n\nfunction normalizeRuntimeTargets(\n values: RuntimeTarget[] | undefined\n): RuntimeTarget[] | undefined {\n return values ? (dedupeStrings(values) as RuntimeTarget[]) : undefined;\n}\n\nfunction normalizeFrameworks(\n frameworks: DomainPackFrameworkContract[] | undefined\n): DomainPackFrameworkContract[] | undefined {\n if (!frameworks) {\n return undefined;\n }\n\n return frameworks.map((framework) => ({\n ...framework,\n frameworkId: framework.frameworkId.trim(),\n version: framework.version.trim(),\n versionConstraint: framework.versionConstraint?.trim(),\n runtimeTargets: normalizeRuntimeTargets(framework.runtimeTargets),\n }));\n}\n\nfunction normalizeSchemaExtensions(\n extensions: DomainPackSchemaExtension[] | undefined\n): DomainPackSchemaExtension[] | undefined {\n if (!extensions) {\n return undefined;\n }\n\n return extensions.map((extension) => ({\n ...extension,\n extensionId: extension.extensionId.trim(),\n target: extension.target,\n description: extension.description.trim(),\n version: extension.version.trim(),\n extends: extension.extends?.trim(),\n }));\n}\n\nfunction normalizeOntologyExtensions(\n extensions: DomainPackOntologyExtension[] | undefined\n): DomainPackOntologyExtension[] | undefined {\n if (!extensions) {\n return undefined;\n }\n\n return extensions.map((extension) => ({\n ...extension,\n extensionId: extension.extensionId.trim(),\n ontologyId: extension.ontologyId.trim(),\n baseVersionConstraint: extension.baseVersionConstraint.trim(),\n entityTypes: extension.entityTypes?.map((entityType) => ({\n ...entityType,\n value: entityType.value.trim(),\n label: entityType.label.trim(),\n description: entityType.description?.trim(),\n subtypes: dedupeStrings(entityType.subtypes),\n })),\n edgeTypes: extension.edgeTypes?.map((edgeType) => ({\n ...edgeType,\n value: edgeType.value.trim(),\n label: edgeType.label.trim(),\n description: edgeType.description?.trim(),\n sourceTypes: dedupeStrings(edgeType.sourceTypes),\n targetTypes: dedupeStrings(edgeType.targetTypes),\n })),\n }));\n}\n\nfunction normalizeLineage(lineage: DomainPackLineage | undefined): DomainPackLineage {\n if (!lineage) {\n return { mode: \"root\" };\n }\n\n return {\n mode: lineage.mode,\n parentPackId: lineage.parentPackId?.trim(),\n parentVersion: lineage.parentVersion?.trim(),\n parentManifestDigest: lineage.parentManifestDigest?.trim(),\n supersedesPackId: lineage.supersedesPackId?.trim(),\n notes: lineage.notes?.trim(),\n };\n}\n\nfunction normalizeMetadata(\n metadata: DomainPackAuthoringMetadata | undefined\n): DomainPackAuthoringMetadata | undefined {\n if (!metadata) {\n return undefined;\n }\n\n return {\n description: metadata.description?.trim(),\n owner: metadata.owner?.trim(),\n tags: dedupeStrings(metadata.tags),\n };\n}\n\nfunction toDomainPack(pack: DomainPack | DomainPackInput): DomainPack {\n return defineDomainPack(pack as DomainPackInput);\n}\n\nexport function defineDomainPackAuthoringManifest(\n input: DomainPackAuthoringManifestInput\n): DomainPackAuthoringManifest {\n return {\n kind: input.kind ?? DOMAIN_PACK_MANIFEST_KIND,\n manifestVersion: input.manifestVersion?.trim() || CURRENT_MANIFEST_VERSION,\n pack: toDomainPack(input.pack),\n frameworks: normalizeFrameworks(input.frameworks),\n schemaExtensions: normalizeSchemaExtensions(input.schemaExtensions),\n ontologyExtensions: normalizeOntologyExtensions(input.ontologyExtensions),\n lineage: normalizeLineage(input.lineage),\n metadata: normalizeMetadata(input.metadata),\n };\n}\n\nfunction countManifestArtifacts(\n manifest: DomainPackAuthoringManifest | null\n): DomainPackManifestCounts {\n if (!manifest) {\n return emptyCounts();\n }\n\n return {\n topicRoots: manifest.pack.topicRoots.length,\n workflows: manifest.pack.workflows.length,\n gates: manifest.pack.gates.length,\n artifacts: manifest.pack.artifacts.length,\n roles: manifest.pack.roles.length,\n prompts: manifest.pack.operatingSystem?.prompts?.length ?? 0,\n tools: manifest.pack.operatingSystem?.tools?.length ?? 0,\n setupAssets: manifest.pack.operatingSystem?.setupAssets?.length ?? 0,\n installProfiles: manifest.pack.operatingSystem?.installProfiles?.length ?? 0,\n frameworks: manifest.frameworks?.length ?? 0,\n schemaExtensions: manifest.schemaExtensions?.length ?? 0,\n ontologyExtensions: manifest.ontologyExtensions?.length ?? 0,\n };\n}\n\nfunction sortJsonValue(value: unknown): unknown {\n if (Array.isArray(value)) {\n return value.map(sortJsonValue);\n }\n if (isPlainObject(value)) {\n return Object.fromEntries(\n Object.entries(value)\n .filter(([, entryValue]) => entryValue !== undefined)\n .sort(([left], [right]) => left.localeCompare(right))\n .map(([key, entryValue]) => [key, sortJsonValue(entryValue)])\n );\n }\n return value;\n}\n\nfunction escapeYamlString(value: string): string {\n return JSON.stringify(value);\n}\n\nfunction toYamlScalar(value: unknown): string {\n if (value === null) {\n return \"null\";\n }\n if (typeof value === \"boolean\" || typeof value === \"number\") {\n return String(value);\n }\n return escapeYamlString(String(value));\n}\n\nfunction renderYaml(value: unknown, indent = 0): string[] {\n const prefix = \" \".repeat(indent);\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return [`${prefix}[]`];\n }\n return value.flatMap((entry) => {\n if (Array.isArray(entry) || isPlainObject(entry)) {\n return [`${prefix}-`, ...renderYaml(entry, indent + 2)];\n }\n return [`${prefix}- ${toYamlScalar(entry)}`];\n });\n }\n\n if (isPlainObject(value)) {\n const entries = Object.entries(value);\n if (entries.length === 0) {\n return [`${prefix}{}`];\n }\n return entries.flatMap(([key, entryValue]) => {\n if (entryValue === undefined) {\n return [];\n }\n if (Array.isArray(entryValue)) {\n if (entryValue.length === 0) {\n return [`${prefix}${key}: []`];\n }\n return [`${prefix}${key}:`, ...renderYaml(entryValue, indent + 2)];\n }\n if (isPlainObject(entryValue)) {\n if (Object.keys(entryValue).length === 0) {\n return [`${prefix}${key}: {}`];\n }\n return [`${prefix}${key}:`, ...renderYaml(entryValue, indent + 2)];\n }\n return [`${prefix}${key}: ${toYamlScalar(entryValue)}`];\n });\n }\n\n return [`${prefix}${toYamlScalar(value)}`];\n}\n\nfunction countIndent(line: string): number {\n return line.length - line.trimStart().length;\n}\n\nfunction parseYamlScalar(raw: string): unknown {\n const value = raw.trim();\n if (value === \"null\") {\n return null;\n }\n if (value === \"true\") {\n return true;\n }\n if (value === \"false\") {\n return false;\n }\n if (/^-?\\d+(?:\\.\\d+)?$/.test(value)) {\n return Number(value);\n }\n if (\n (value.startsWith(\"\\\"\") && value.endsWith(\"\\\"\")) ||\n (value.startsWith(\"'\") && value.endsWith(\"'\"))\n ) {\n if (value.startsWith(\"'\")) {\n return value.slice(1, -1).replace(/''/g, \"'\");\n }\n return JSON.parse(value) as string;\n }\n if (value === \"[]\") {\n return [];\n }\n if (value === \"{}\") {\n return {};\n }\n return value;\n}\n\nfunction splitYamlKeyValue(\n trimmed: string\n): { key: string; value: string | null } {\n const separatorIndex = trimmed.indexOf(\":\");\n if (separatorIndex === -1) {\n throw new Error(`Invalid YAML mapping entry: ${trimmed}`);\n }\n\n const key = trimmed.slice(0, separatorIndex).trim();\n const value = trimmed.slice(separatorIndex + 1).trim();\n return { key, value: value.length ? value : null };\n}\n\nfunction parseYamlDocument(text: string): unknown {\n const rawLines = text\n .replace(/\\r\\n/g, \"\\n\")\n .split(\"\\n\")\n .map((line) => line.replace(/\\t/g, \" \"));\n const lines = rawLines.filter((line) => {\n const trimmed = line.trim();\n return trimmed.length > 0 && trimmed !== \"---\" && trimmed !== \"...\";\n });\n\n let index = 0;\n\n function parseBlock(indent: number): unknown {\n if (index >= lines.length) {\n return {};\n }\n\n const currentLine = lines[index];\n const currentIndent = countIndent(currentLine);\n if (currentIndent < indent) {\n return {};\n }\n if (currentLine.trimStart().startsWith(\"-\")) {\n return parseArray(indent);\n }\n return parseObject(indent);\n }\n\n function parseArray(indent: number): unknown[] {\n const items: unknown[] = [];\n\n while (index < lines.length) {\n const line = lines[index];\n const currentIndent = countIndent(line);\n if (currentIndent < indent) {\n break;\n }\n if (currentIndent !== indent) {\n throw new Error(`Invalid YAML indentation near: ${line.trim()}`);\n }\n\n const trimmed = line.trimStart();\n if (!trimmed.startsWith(\"-\")) {\n break;\n }\n\n const rest = trimmed.slice(1).trimStart();\n index += 1;\n\n if (!rest.length) {\n items.push(parseBlock(indent + 2));\n continue;\n }\n\n items.push(parseYamlScalar(rest));\n }\n\n return items;\n }\n\n function parseObject(indent: number): Record<string, unknown> {\n const objectValue: Record<string, unknown> = {};\n\n while (index < lines.length) {\n const line = lines[index];\n const currentIndent = countIndent(line);\n if (currentIndent < indent) {\n break;\n }\n if (currentIndent !== indent) {\n throw new Error(`Invalid YAML indentation near: ${line.trim()}`);\n }\n\n const trimmed = line.trim();\n if (trimmed.startsWith(\"-\")) {\n break;\n }\n\n const { key, value } = splitYamlKeyValue(trimmed);\n index += 1;\n objectValue[key] =\n value === null ? parseBlock(indent + 2) : parseYamlScalar(value);\n }\n\n return objectValue;\n }\n\n return parseBlock(0);\n}\n\nfunction detectDomainPackManifestFormat(\n source: string,\n explicitFormat?: DomainPackManifestFormat\n): DomainPackManifestFormat {\n if (explicitFormat) {\n return explicitFormat;\n }\n\n const trimmed = source.trim();\n if (trimmed.startsWith(\"{\")) {\n return \"json\";\n }\n return \"yaml\";\n}\n\nexport function serializeDomainPackAuthoringManifest(\n manifest: DomainPackAuthoringManifest,\n format: DomainPackManifestFormat = \"json\"\n): string {\n const canonicalValue = sortJsonValue(manifest);\n if (format === \"json\") {\n return `${JSON.stringify(canonicalValue, null, 2)}\\n`;\n }\n return `${renderYaml(canonicalValue).join(\"\\n\")}\\n`;\n}\n\nexport function parseDomainPackAuthoringManifest(\n source: string,\n format?: DomainPackManifestFormat\n): DomainPackAuthoringManifest {\n const detectedFormat = detectDomainPackManifestFormat(source, format);\n const parsed =\n detectedFormat === \"json\"\n ? (JSON.parse(source) as unknown)\n : parseYamlDocument(source);\n\n if (!isPlainObject(parsed)) {\n throw new Error(\"Domain pack manifest must parse to an object.\");\n }\n\n if (!(\"pack\" in parsed)) {\n throw new Error(\"Domain pack manifest requires a top-level pack object.\");\n }\n\n return defineDomainPackAuthoringManifest({\n kind: parsed.kind as typeof DOMAIN_PACK_MANIFEST_KIND | undefined,\n manifestVersion: parsed.manifestVersion as string | undefined,\n pack: parsed.pack as DomainPackInput,\n frameworks: parsed.frameworks as DomainPackFrameworkContract[] | undefined,\n schemaExtensions: parsed.schemaExtensions as\n | DomainPackSchemaExtension[]\n | undefined,\n ontologyExtensions: parsed.ontologyExtensions as\n | DomainPackOntologyExtension[]\n | undefined,\n lineage: parsed.lineage as DomainPackLineage | undefined,\n metadata: parsed.metadata as DomainPackAuthoringMetadata | undefined,\n });\n}\n\nfunction validateFrameworks(\n frameworks: DomainPackFrameworkContract[] | undefined\n): DomainPackAuthoringValidationIssue[] {\n if (!frameworks) {\n return [];\n }\n\n const issues: DomainPackAuthoringValidationIssue[] = [];\n const seen = new Set<string>();\n\n frameworks.forEach((framework, index) => {\n const path = `frameworks[${index}]`;\n if (!framework.frameworkId) {\n issues.push(\n issue(\n \"MISSING_FRAMEWORK_ID\",\n \"frameworkId is required\",\n `${path}.frameworkId`,\n \"framework\"\n )\n );\n } else if (!KEBAB_CASE.test(framework.frameworkId)) {\n issues.push(\n issue(\n \"INVALID_FRAMEWORK_ID\",\n `frameworkId \"${framework.frameworkId}\" must be kebab-case`,\n `${path}.frameworkId`,\n \"framework\"\n )\n );\n } else if (seen.has(framework.frameworkId)) {\n issues.push(\n issue(\n \"DUPLICATE_FRAMEWORK_ID\",\n `Duplicate frameworkId \"${framework.frameworkId}\"`,\n `${path}.frameworkId`,\n \"framework\"\n )\n );\n } else {\n seen.add(framework.frameworkId);\n }\n\n if (!framework.version) {\n issues.push(\n issue(\n \"MISSING_FRAMEWORK_VERSION\",\n \"version is required\",\n `${path}.version`,\n \"framework\"\n )\n );\n } else if (!SEMVER.test(framework.version)) {\n issues.push(\n issue(\n \"INVALID_FRAMEWORK_VERSION\",\n `framework version \"${framework.version}\" must be valid semver`,\n `${path}.version`,\n \"framework\"\n )\n );\n }\n });\n\n return issues;\n}\n\nfunction validateSchemaExtensions(\n extensions: DomainPackSchemaExtension[] | undefined\n): DomainPackAuthoringValidationIssue[] {\n if (!extensions) {\n return [];\n }\n\n const issues: DomainPackAuthoringValidationIssue[] = [];\n const seen = new Set<string>();\n\n extensions.forEach((extension, index) => {\n const path = `schemaExtensions[${index}]`;\n if (!extension.extensionId) {\n issues.push(\n issue(\n \"MISSING_SCHEMA_EXTENSION_ID\",\n \"extensionId is required\",\n `${path}.extensionId`,\n \"schema-extension\"\n )\n );\n } else if (!KEBAB_CASE.test(extension.extensionId)) {\n issues.push(\n issue(\n \"INVALID_SCHEMA_EXTENSION_ID\",\n `extensionId \"${extension.extensionId}\" must be kebab-case`,\n `${path}.extensionId`,\n \"schema-extension\"\n )\n );\n } else if (seen.has(extension.extensionId)) {\n issues.push(\n issue(\n \"DUPLICATE_SCHEMA_EXTENSION_ID\",\n `Duplicate schema extension \"${extension.extensionId}\"`,\n `${path}.extensionId`,\n \"schema-extension\"\n )\n );\n } else {\n seen.add(extension.extensionId);\n }\n\n if (!SCHEMA_EXTENSION_TARGETS.has(extension.target)) {\n issues.push(\n issue(\n \"INVALID_SCHEMA_EXTENSION_TARGET\",\n `Unsupported schema extension target \"${extension.target}\"`,\n `${path}.target`,\n \"schema-extension\"\n )\n );\n }\n if (!extension.description) {\n issues.push(\n issue(\n \"MISSING_SCHEMA_EXTENSION_DESCRIPTION\",\n \"description is required\",\n `${path}.description`,\n \"schema-extension\"\n )\n );\n }\n if (!SEMVER.test(extension.version)) {\n issues.push(\n issue(\n \"INVALID_SCHEMA_EXTENSION_VERSION\",\n `schema extension version \"${extension.version}\" must be valid semver`,\n `${path}.version`,\n \"schema-extension\"\n )\n );\n }\n if (!isPlainObject(extension.schema)) {\n issues.push(\n issue(\n \"INVALID_SCHEMA_EXTENSION_SCHEMA\",\n \"schema extension schema must be a plain object\",\n `${path}.schema`,\n \"schema-extension\"\n )\n );\n }\n });\n\n return issues;\n}\n\nfunction validateOntologyExtensions(\n extensions: DomainPackOntologyExtension[] | undefined\n): DomainPackAuthoringValidationIssue[] {\n if (!extensions) {\n return [];\n }\n\n const issues: DomainPackAuthoringValidationIssue[] = [];\n const seen = new Set<string>();\n\n extensions.forEach((extension, index) => {\n const path = `ontologyExtensions[${index}]`;\n if (!extension.extensionId) {\n issues.push(\n issue(\n \"MISSING_ONTOLOGY_EXTENSION_ID\",\n \"extensionId is required\",\n `${path}.extensionId`,\n \"ontology-extension\"\n )\n );\n } else if (!KEBAB_CASE.test(extension.extensionId)) {\n issues.push(\n issue(\n \"INVALID_ONTOLOGY_EXTENSION_ID\",\n `extensionId \"${extension.extensionId}\" must be kebab-case`,\n `${path}.extensionId`,\n \"ontology-extension\"\n )\n );\n } else if (seen.has(extension.extensionId)) {\n issues.push(\n issue(\n \"DUPLICATE_ONTOLOGY_EXTENSION_ID\",\n `Duplicate ontology extension \"${extension.extensionId}\"`,\n `${path}.extensionId`,\n \"ontology-extension\"\n )\n );\n } else {\n seen.add(extension.extensionId);\n }\n\n if (!extension.ontologyId) {\n issues.push(\n issue(\n \"MISSING_ONTOLOGY_EXTENSION_TARGET\",\n \"ontologyId is required\",\n `${path}.ontologyId`,\n \"ontology-extension\"\n )\n );\n }\n if (!extension.baseVersionConstraint) {\n issues.push(\n issue(\n \"MISSING_ONTOLOGY_BASE_VERSION\",\n \"baseVersionConstraint is required\",\n `${path}.baseVersionConstraint`,\n \"ontology-extension\"\n )\n );\n }\n if (extension.additiveOnly !== true) {\n issues.push(\n issue(\n \"NON_MONOTONIC_ONTOLOGY_EXTENSION\",\n \"ontology extensions must set additiveOnly=true\",\n `${path}.additiveOnly`,\n \"ontology-extension\"\n )\n );\n }\n\n const entityTypeValues = new Set<string>();\n extension.entityTypes?.forEach((entityType, entityTypeIndex) => {\n const entityPath = `${path}.entityTypes[${entityTypeIndex}]`;\n if (!entityType.value || !KEBAB_CASE.test(entityType.value)) {\n issues.push(\n issue(\n \"INVALID_ONTOLOGY_ENTITY_VALUE\",\n \"entity extension value must be kebab-case\",\n `${entityPath}.value`,\n \"ontology-extension\"\n )\n );\n } else if (entityTypeValues.has(entityType.value)) {\n issues.push(\n issue(\n \"DUPLICATE_ONTOLOGY_ENTITY_VALUE\",\n `Duplicate entity extension value \"${entityType.value}\"`,\n `${entityPath}.value`,\n \"ontology-extension\"\n )\n );\n } else {\n entityTypeValues.add(entityType.value);\n }\n if (!entityType.label) {\n issues.push(\n issue(\n \"MISSING_ONTOLOGY_ENTITY_LABEL\",\n \"entity extension label is required\",\n `${entityPath}.label`,\n \"ontology-extension\"\n )\n );\n }\n });\n\n const edgeTypeValues = new Set<string>();\n extension.edgeTypes?.forEach((edgeType, edgeTypeIndex) => {\n const edgePath = `${path}.edgeTypes[${edgeTypeIndex}]`;\n if (!edgeType.value || !KEBAB_CASE.test(edgeType.value)) {\n issues.push(\n issue(\n \"INVALID_ONTOLOGY_EDGE_VALUE\",\n \"edge extension value must be kebab-case\",\n `${edgePath}.value`,\n \"ontology-extension\"\n )\n );\n } else if (edgeTypeValues.has(edgeType.value)) {\n issues.push(\n issue(\n \"DUPLICATE_ONTOLOGY_EDGE_VALUE\",\n `Duplicate edge extension value \"${edgeType.value}\"`,\n `${edgePath}.value`,\n \"ontology-extension\"\n )\n );\n } else {\n edgeTypeValues.add(edgeType.value);\n }\n if (!edgeType.label) {\n issues.push(\n issue(\n \"MISSING_ONTOLOGY_EDGE_LABEL\",\n \"edge extension label is required\",\n `${edgePath}.label`,\n \"ontology-extension\"\n )\n );\n }\n if (\n edgeType.constraintSeverity &&\n !ONTOLOGY_CONSTRAINT_SEVERITIES.has(edgeType.constraintSeverity)\n ) {\n issues.push(\n issue(\n \"INVALID_ONTOLOGY_EDGE_SEVERITY\",\n `Unsupported constraint severity \"${edgeType.constraintSeverity}\"`,\n `${edgePath}.constraintSeverity`,\n \"ontology-extension\"\n )\n );\n }\n });\n });\n\n return issues;\n}\n\nfunction validateLineage(\n lineage: DomainPackLineage,\n packId: string\n): DomainPackAuthoringValidationIssue[] {\n const issues: DomainPackAuthoringValidationIssue[] = [];\n\n if (!LINEAGE_MODES.has(lineage.mode)) {\n issues.push(\n issue(\n \"INVALID_LINEAGE_MODE\",\n `Unsupported lineage mode \"${lineage.mode}\"`,\n \"lineage.mode\",\n \"lineage\"\n )\n );\n return issues;\n }\n\n if (lineage.mode === \"root\") {\n if (lineage.parentPackId || lineage.parentVersion || lineage.supersedesPackId) {\n issues.push(\n issue(\n \"ROOT_LINEAGE_HAS_PARENT\",\n \"root lineage cannot declare parent or supersedes metadata\",\n \"lineage\",\n \"lineage\"\n )\n );\n }\n return issues;\n }\n\n if (!lineage.parentPackId) {\n issues.push(\n issue(\n \"MISSING_LINEAGE_PARENT_PACK\",\n \"parentPackId is required for remix or fork lineage\",\n \"lineage.parentPackId\",\n \"lineage\"\n )\n );\n } else if (!KEBAB_CASE.test(lineage.parentPackId)) {\n issues.push(\n issue(\n \"INVALID_LINEAGE_PARENT_PACK\",\n `parentPackId \"${lineage.parentPackId}\" must be kebab-case`,\n \"lineage.parentPackId\",\n \"lineage\"\n )\n );\n }\n\n if (!lineage.parentVersion) {\n issues.push(\n issue(\n \"MISSING_LINEAGE_PARENT_VERSION\",\n \"parentVersion is required for remix or fork lineage\",\n \"lineage.parentVersion\",\n \"lineage\"\n )\n );\n } else if (!SEMVER.test(lineage.parentVersion)) {\n issues.push(\n issue(\n \"INVALID_LINEAGE_PARENT_VERSION\",\n `parentVersion \"${lineage.parentVersion}\" must be valid semver`,\n \"lineage.parentVersion\",\n \"lineage\"\n )\n );\n }\n\n if (\n lineage.parentPackId &&\n lineage.parentPackId === packId &&\n lineage.parentVersion === undefined\n ) {\n issues.push(\n issue(\n \"SELF_REFERENTIAL_LINEAGE\",\n \"lineage parentPackId cannot equal the child packId without an explicit parentVersion\",\n \"lineage.parentPackId\",\n \"lineage\"\n )\n );\n }\n\n if (lineage.mode === \"remix\" && lineage.supersedesPackId) {\n issues.push(\n issue(\n \"REMIX_LINEAGE_SUPERSEDES\",\n \"remix lineage cannot declare supersedesPackId\",\n \"lineage.supersedesPackId\",\n \"lineage\"\n )\n );\n }\n\n if (lineage.mode === \"fork\") {\n if (!lineage.supersedesPackId) {\n issues.push(\n issue(\n \"MISSING_SUPERSEDES_PACK\",\n \"fork lineage requires supersedesPackId to model the supersedes edge\",\n \"lineage.supersedesPackId\",\n \"lineage\"\n )\n );\n } else if (!KEBAB_CASE.test(lineage.supersedesPackId)) {\n issues.push(\n issue(\n \"INVALID_SUPERSEDES_PACK\",\n `supersedesPackId \"${lineage.supersedesPackId}\" must be kebab-case`,\n \"lineage.supersedesPackId\",\n \"lineage\"\n )\n );\n }\n }\n\n return issues;\n}\n\nfunction scanLegacyPublicKeys(\n value: unknown,\n path = \"\"\n): DomainPackAuthoringValidationIssue[] {\n const issues: DomainPackAuthoringValidationIssue[] = [];\n\n if (Array.isArray(value)) {\n value.forEach((entry, index) => {\n issues.push(...scanLegacyPublicKeys(entry, `${path}[${index}]`));\n });\n return issues;\n }\n\n if (!isPlainObject(value)) {\n return issues;\n }\n\n Object.entries(value).forEach(([key, entryValue]) => {\n const nextPath = path ? `${path}.${key}` : key;\n if (LEGACY_PUBLIC_KEYS.has(key)) {\n issues.push(\n issue(\n \"LEGACY_PUBLIC_TERM\",\n `Public manifest field \"${key}\" uses legacy terminology; expose canonical topic/worktree terms instead.`,\n nextPath,\n \"terminology\"\n )\n );\n }\n issues.push(...scanLegacyPublicKeys(entryValue, nextPath));\n });\n\n return issues;\n}\n\n/**\n * Simple deterministic hash for manifest identification (not cryptographic).\n * Uses FNV-1a 64-bit hash to avoid node:crypto dependency in the Convex bundle.\n */\nfunction createManifestDigest(manifest: DomainPackAuthoringManifest): string {\n const data = serializeDomainPackAuthoringManifest(manifest, \"json\");\n let h1 = 0x811c9dc5 | 0;\n let h2 = 0x811c9dc5 | 0;\n for (let i = 0; i < data.length; i++) {\n const c = data.charCodeAt(i);\n h1 = Math.imul(h1 ^ c, 0x01000193);\n h2 = Math.imul(h2 ^ ((c >>> 4) | (c << 4)), 0x01000193);\n }\n return (\n (h1 >>> 0).toString(16).padStart(8, \"0\") +\n (h2 >>> 0).toString(16).padStart(8, \"0\")\n );\n}\n\nfunction evaluateDomainPackAuthoringManifest(\n manifest: DomainPackAuthoringManifest,\n format: DomainPackManifestFormat | null = null\n): DomainPackAuthoringValidationResult {\n const issues: DomainPackAuthoringValidationIssue[] = [];\n\n if (manifest.kind !== DOMAIN_PACK_MANIFEST_KIND) {\n issues.push(\n issue(\n \"INVALID_MANIFEST_KIND\",\n `kind must be \"${DOMAIN_PACK_MANIFEST_KIND}\"`,\n \"kind\",\n \"manifest\"\n )\n );\n }\n\n if (!SEMVER.test(manifest.manifestVersion)) {\n issues.push(\n issue(\n \"INVALID_MANIFEST_VERSION\",\n `manifestVersion \"${manifest.manifestVersion}\" must be valid semver`,\n \"manifestVersion\",\n \"manifest\"\n )\n );\n }\n\n issues.push(...validateFrameworks(manifest.frameworks));\n issues.push(...validateSchemaExtensions(manifest.schemaExtensions));\n issues.push(...validateOntologyExtensions(manifest.ontologyExtensions));\n issues.push(...validateLineage(manifest.lineage, manifest.pack.packId));\n issues.push(...scanLegacyPublicKeys(manifest));\n\n const packValidation = validateDomainPack(manifest.pack);\n issues.push(\n ...packValidation.issues.map((packIssue) => ({\n ...packIssue,\n path: `pack.${packIssue.path}`,\n source: \"pack\" as const,\n }))\n );\n\n return {\n valid: issues.every((currentIssue) => currentIssue.severity !== \"error\"),\n format,\n manifest,\n manifestDigest: createManifestDigest(manifest),\n issues,\n counts: countManifestArtifacts(manifest),\n };\n}\n\nfunction parseFailureResult(\n error: unknown,\n format: DomainPackManifestFormat | null\n): DomainPackAuthoringValidationResult {\n return {\n valid: false,\n format,\n manifest: null,\n manifestDigest: null,\n issues: [\n issue(\n \"PARSE_ERROR\",\n error instanceof Error ? error.message : String(error),\n \"manifest\",\n \"parse\"\n ),\n ],\n counts: emptyCounts(),\n };\n}\n\nexport function validateDomainPackAuthoringManifest(\n manifest: DomainPackAuthoringManifest | DomainPackAuthoringManifestInput\n): DomainPackAuthoringValidationResult {\n return evaluateDomainPackAuthoringManifest(\n defineDomainPackAuthoringManifest(\n manifest as DomainPackAuthoringManifestInput\n )\n );\n}\n\nexport function validateDomainPackAuthoringManifestSource(\n source: string,\n format?: DomainPackManifestFormat\n): DomainPackAuthoringValidationResult {\n const detectedFormat = detectDomainPackManifestFormat(source, format);\n\n try {\n const manifest = parseDomainPackAuthoringManifest(source, detectedFormat);\n return evaluateDomainPackAuthoringManifest(manifest, detectedFormat);\n } catch (error) {\n return parseFailureResult(error, detectedFormat);\n }\n}\n\nfunction collectRuntimeTargets(manifest: DomainPackAuthoringManifest | null): RuntimeTarget[] {\n if (!manifest) {\n return [];\n }\n\n const targets = new Set<RuntimeTarget>();\n manifest.frameworks?.forEach((framework) =>\n framework.runtimeTargets?.forEach((target) => targets.add(target))\n );\n manifest.pack.operatingSystem?.prompts?.forEach((prompt) =>\n prompt.runtimeTargets?.forEach((target) => targets.add(target))\n );\n manifest.pack.operatingSystem?.tools?.forEach((tool) =>\n tool.runtimeTargets?.forEach((target) => targets.add(target))\n );\n manifest.pack.operatingSystem?.setupAssets?.forEach((asset) =>\n asset.runtimeTargets?.forEach((target) => targets.add(target))\n );\n manifest.pack.operatingSystem?.installProfiles?.forEach((profile) =>\n targets.add(profile.runtimeTarget)\n );\n return Array.from(targets).sort();\n}\n\nfunction describeLineage(lineage: DomainPackLineage | null): string | null {\n if (!lineage) {\n return null;\n }\n if (lineage.mode === \"root\") {\n return \"Root pack with no parent lineage.\";\n }\n if (lineage.mode === \"remix\") {\n return `Remix of ${lineage.parentPackId}@${lineage.parentVersion}.`;\n }\n return `Fork of ${lineage.parentPackId}@${lineage.parentVersion} that supersedes ${lineage.supersedesPackId}.`;\n}\n\nexport function previewDomainPackAuthoringManifest(\n manifest: DomainPackAuthoringManifest | DomainPackAuthoringManifestInput\n): DomainPackAuthoringPreview {\n const validation = validateDomainPackAuthoringManifest(manifest);\n return {\n ...validation,\n readyToPublish: validation.valid,\n canonicalJson: validation.manifest\n ? serializeDomainPackAuthoringManifest(validation.manifest, \"json\")\n : null,\n canonicalYaml: validation.manifest\n ? serializeDomainPackAuthoringManifest(validation.manifest, \"yaml\")\n : null,\n lineageSummary: describeLineage(validation.manifest?.lineage ?? null),\n requiredRuntimeTargets: collectRuntimeTargets(validation.manifest),\n };\n}\n\nexport function previewDomainPackAuthoringManifestSource(\n source: string,\n format?: DomainPackManifestFormat\n): DomainPackAuthoringPreview {\n const validation = validateDomainPackAuthoringManifestSource(source, format);\n return {\n ...validation,\n readyToPublish: validation.valid,\n canonicalJson: validation.manifest\n ? serializeDomainPackAuthoringManifest(validation.manifest, \"json\")\n : null,\n canonicalYaml: validation.manifest\n ? serializeDomainPackAuthoringManifest(validation.manifest, \"yaml\")\n : null,\n lineageSummary: describeLineage(validation.manifest?.lineage ?? null),\n requiredRuntimeTargets: collectRuntimeTargets(validation.manifest),\n };\n}\n\nfunction buildLineageEdge(\n manifest: DomainPackAuthoringManifest\n): DomainPackPublicationLineageEdge | null {\n const { lineage, pack } = manifest;\n if (lineage.mode === \"root\") {\n return null;\n }\n if (lineage.mode === \"remix\") {\n return {\n edgeType: \"remixed_from\",\n childPackId: pack.packId,\n parentPackId: lineage.parentPackId!,\n parentVersion: lineage.parentVersion!,\n };\n }\n return {\n edgeType: \"supersedes\",\n childPackId: pack.packId,\n parentPackId: lineage.supersedesPackId!,\n parentVersion: lineage.parentVersion!,\n };\n}\n\nexport function publishDomainPackAuthoringManifest(\n manifest: DomainPackAuthoringManifest | DomainPackAuthoringManifestInput\n): DomainPackPublishResult {\n const preview = previewDomainPackAuthoringManifest(manifest);\n if (!preview.readyToPublish || !preview.manifest || !preview.manifestDigest) {\n return {\n published: false,\n preview,\n publication: null,\n };\n }\n\n return {\n published: true,\n preview,\n publication: {\n publicationId: `${preview.manifest.pack.packId}@${preview.manifest.pack.version}`,\n packId: preview.manifest.pack.packId,\n version: preview.manifest.pack.version,\n manifestDigest: preview.manifestDigest,\n manifest: preview.manifest,\n lineageEdge: buildLineageEdge(preview.manifest),\n canonicalJson: preview.canonicalJson!,\n canonicalYaml: preview.canonicalYaml!,\n },\n };\n}\n\nexport function publishDomainPackAuthoringManifestSource(\n source: string,\n format?: DomainPackManifestFormat\n): DomainPackPublishResult {\n const preview = previewDomainPackAuthoringManifestSource(source, format);\n if (!preview.readyToPublish || !preview.manifest || !preview.manifestDigest) {\n return {\n published: false,\n preview,\n publication: null,\n };\n }\n\n return {\n published: true,\n preview,\n publication: {\n publicationId: `${preview.manifest.pack.packId}@${preview.manifest.pack.version}`,\n packId: preview.manifest.pack.packId,\n version: preview.manifest.pack.version,\n manifestDigest: preview.manifestDigest,\n manifest: preview.manifest,\n lineageEdge: buildLineageEdge(preview.manifest),\n canonicalJson: preview.canonicalJson!,\n canonicalYaml: preview.canonicalYaml!,\n },\n };\n}\n\nexport function createDomainPackAuthoringTools(): DomainPackAuthoringToolset {\n const inputSchema = {\n type: \"object\",\n properties: {\n manifestText: {\n type: \"string\",\n description: \"Domain pack manifest text in JSON or YAML form.\",\n },\n format: {\n type: \"string\",\n enum: [\"json\", \"yaml\"],\n description: \"Optional manifest format override.\",\n },\n },\n required: [\"manifestText\"],\n additionalProperties: false,\n } satisfies Record<string, unknown>;\n\n return {\n validate: {\n name: AUTHORING_TOOL_NAMES.validate,\n description:\n \"Validate a domain pack authoring manifest and return structural, lineage, terminology, and extension issues.\",\n inputSchema,\n execute: (args) =>\n validateDomainPackAuthoringManifestSource(args.manifestText, args.format),\n },\n preview: {\n name: AUTHORING_TOOL_NAMES.preview,\n description:\n \"Preview a domain pack manifest with canonical JSON/YAML renderings, runtime targets, and publication readiness.\",\n inputSchema,\n execute: (args) =>\n previewDomainPackAuthoringManifestSource(args.manifestText, args.format),\n },\n publish: {\n name: AUTHORING_TOOL_NAMES.publish,\n description:\n \"Build a publication-ready domain pack artifact when validation passes, including remix/fork lineage metadata.\",\n inputSchema,\n execute: (args) =>\n publishDomainPackAuthoringManifestSource(args.manifestText, args.format),\n },\n };\n}\n"]}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Domain Pack Contracts
|
|
3
|
+
*
|
|
4
|
+
* A DomainPack is a self-contained reasoning context bundle that defines
|
|
5
|
+
* how reasoning works in a specific domain. It binds ontology versions,
|
|
6
|
+
* defines topic structure, declares workflow templates, gate schemas,
|
|
7
|
+
* artifact schemas, and reasoning roles.
|
|
8
|
+
*
|
|
9
|
+
* This is the THIRD pack type in Lucern's architecture:
|
|
10
|
+
* - AppPackManifest: UI routes, surfaces, policy profiles (app-level)
|
|
11
|
+
* - MethodologyPack: Agent workflow phases, gates, enforcement (process-level)
|
|
12
|
+
* - DomainPack: Reasoning domain context (domain-level)
|
|
13
|
+
*
|
|
14
|
+
* All fields are internal until RS-5+ external authoring certification.
|
|
15
|
+
*/
|
|
16
|
+
type OntologyProvisionMode = "bind" | "seed" | "extend";
|
|
17
|
+
type OntologyBinding = {
|
|
18
|
+
ontologyId: string;
|
|
19
|
+
versionConstraint: string;
|
|
20
|
+
required: boolean;
|
|
21
|
+
provisionMode?: OntologyProvisionMode;
|
|
22
|
+
seedRef?: string;
|
|
23
|
+
requiredEntityTypes?: string[];
|
|
24
|
+
requiredEdgeTypes?: string[];
|
|
25
|
+
};
|
|
26
|
+
type TopicRoot = {
|
|
27
|
+
slug: string;
|
|
28
|
+
name: string;
|
|
29
|
+
description: string;
|
|
30
|
+
ontologyId?: string;
|
|
31
|
+
};
|
|
32
|
+
type WorkflowStep = {
|
|
33
|
+
stepId: string;
|
|
34
|
+
name: string;
|
|
35
|
+
description: string;
|
|
36
|
+
requiredRoles: string[];
|
|
37
|
+
produces?: string[];
|
|
38
|
+
gateId?: string;
|
|
39
|
+
};
|
|
40
|
+
type WorkflowTemplate = {
|
|
41
|
+
workflowId: string;
|
|
42
|
+
name: string;
|
|
43
|
+
description: string;
|
|
44
|
+
steps: WorkflowStep[];
|
|
45
|
+
requiredArtifacts: string[];
|
|
46
|
+
gateCheckpoints: string[];
|
|
47
|
+
};
|
|
48
|
+
type GateCriterionOperator = "gte" | "lte" | "eq" | "gt" | "lt";
|
|
49
|
+
type GateCriterion = {
|
|
50
|
+
criterionId: string;
|
|
51
|
+
description: string;
|
|
52
|
+
metric: string;
|
|
53
|
+
threshold?: number;
|
|
54
|
+
operator?: GateCriterionOperator;
|
|
55
|
+
};
|
|
56
|
+
type GateSeverity = "blocking" | "warning" | "informational";
|
|
57
|
+
type GateSchema = {
|
|
58
|
+
gateId: string;
|
|
59
|
+
name: string;
|
|
60
|
+
description: string;
|
|
61
|
+
criteria: GateCriterion[];
|
|
62
|
+
severity: GateSeverity;
|
|
63
|
+
};
|
|
64
|
+
type ArtifactSchema = {
|
|
65
|
+
artifactId: string;
|
|
66
|
+
name: string;
|
|
67
|
+
description: string;
|
|
68
|
+
stage: string;
|
|
69
|
+
contentSchema: Record<string, unknown>;
|
|
70
|
+
requiredFields: string[];
|
|
71
|
+
};
|
|
72
|
+
type ReasoningRole = {
|
|
73
|
+
roleId: string;
|
|
74
|
+
name: string;
|
|
75
|
+
description: string;
|
|
76
|
+
perspective: string;
|
|
77
|
+
optimizesFor: string;
|
|
78
|
+
mayBlock: boolean;
|
|
79
|
+
};
|
|
80
|
+
type InquiryShapingQuestionTemplate = {
|
|
81
|
+
templateId: string;
|
|
82
|
+
questionType: "validation" | "falsification" | "assumption_probe" | "counterfactual" | "scope" | "comparison" | "mechanism" | "general";
|
|
83
|
+
priority?: "critical" | "high" | "medium" | "low";
|
|
84
|
+
template: string;
|
|
85
|
+
whenObjectiveIncludes?: string[];
|
|
86
|
+
};
|
|
87
|
+
type InquiryShapingTaskTemplate = {
|
|
88
|
+
templateId: string;
|
|
89
|
+
title: string;
|
|
90
|
+
description?: string;
|
|
91
|
+
taskType?: "general" | "find_evidence" | "verify_claim" | "research" | "review" | "interview" | "analysis" | "track_metrics";
|
|
92
|
+
priority?: "urgent" | "high" | "medium" | "low";
|
|
93
|
+
whenObjectiveIncludes?: string[];
|
|
94
|
+
whenQuestionTypes?: string[];
|
|
95
|
+
};
|
|
96
|
+
type InquiryShapingFrameworkHint = {
|
|
97
|
+
frameworkName: string;
|
|
98
|
+
whenObjectiveIncludes?: string[];
|
|
99
|
+
whenQuestionTypes?: string[];
|
|
100
|
+
boost?: number;
|
|
101
|
+
reason?: string;
|
|
102
|
+
};
|
|
103
|
+
type InquiryShapingConfig = {
|
|
104
|
+
questionTemplates?: InquiryShapingQuestionTemplate[];
|
|
105
|
+
taskTemplates?: InquiryShapingTaskTemplate[];
|
|
106
|
+
frameworkHints?: InquiryShapingFrameworkHint[];
|
|
107
|
+
};
|
|
108
|
+
type RuntimeTarget = "claude-code" | "codex" | "hybrid" | "portable";
|
|
109
|
+
type PromptSource = "langfuse" | "file";
|
|
110
|
+
type PromptChannel = "bootstrap" | "workflow" | "analysis" | "review" | "tool";
|
|
111
|
+
type PromptBinding = {
|
|
112
|
+
promptId: string;
|
|
113
|
+
description: string;
|
|
114
|
+
source: PromptSource;
|
|
115
|
+
ref: string;
|
|
116
|
+
fallbackRef?: string;
|
|
117
|
+
channel: PromptChannel;
|
|
118
|
+
required: boolean;
|
|
119
|
+
runtimeTargets?: RuntimeTarget[];
|
|
120
|
+
};
|
|
121
|
+
type ToolKind = "mcp" | "cli" | "script" | "hook" | "ai-tool";
|
|
122
|
+
type ToolBinding = {
|
|
123
|
+
toolId: string;
|
|
124
|
+
description: string;
|
|
125
|
+
kind: ToolKind;
|
|
126
|
+
entrypoint: string;
|
|
127
|
+
required: boolean;
|
|
128
|
+
runtimeTargets?: RuntimeTarget[];
|
|
129
|
+
};
|
|
130
|
+
type SetupAssetKind = "instruction" | "settings" | "hook" | "skill" | "agent" | "manifest" | "template" | "inbox" | "script" | "ui";
|
|
131
|
+
type SetupAsset = {
|
|
132
|
+
assetId: string;
|
|
133
|
+
kind: SetupAssetKind;
|
|
134
|
+
description: string;
|
|
135
|
+
path: string;
|
|
136
|
+
required: boolean;
|
|
137
|
+
runtimeTargets?: RuntimeTarget[];
|
|
138
|
+
};
|
|
139
|
+
type TopicTemplate = {
|
|
140
|
+
slug: string;
|
|
141
|
+
name: string;
|
|
142
|
+
description: string;
|
|
143
|
+
parentSlug?: string;
|
|
144
|
+
ontologyId?: string;
|
|
145
|
+
};
|
|
146
|
+
type InstallProfile = {
|
|
147
|
+
profileId: string;
|
|
148
|
+
name: string;
|
|
149
|
+
description: string;
|
|
150
|
+
runtimeTarget: RuntimeTarget;
|
|
151
|
+
promptIds: string[];
|
|
152
|
+
toolIds: string[];
|
|
153
|
+
assetIds: string[];
|
|
154
|
+
defaultTopicSlugs: string[];
|
|
155
|
+
};
|
|
156
|
+
type OperatingSystemLayer = {
|
|
157
|
+
prompts?: PromptBinding[];
|
|
158
|
+
tools?: ToolBinding[];
|
|
159
|
+
setupAssets?: SetupAsset[];
|
|
160
|
+
topicTemplates?: TopicTemplate[];
|
|
161
|
+
installProfiles?: InstallProfile[];
|
|
162
|
+
};
|
|
163
|
+
type DomainPack = {
|
|
164
|
+
packId: string;
|
|
165
|
+
name: string;
|
|
166
|
+
version: string;
|
|
167
|
+
ontologyBindings: OntologyBinding[];
|
|
168
|
+
topicRoots: TopicRoot[];
|
|
169
|
+
workflows: WorkflowTemplate[];
|
|
170
|
+
gates: GateSchema[];
|
|
171
|
+
artifacts: ArtifactSchema[];
|
|
172
|
+
roles: ReasoningRole[];
|
|
173
|
+
inquiryShaping?: InquiryShapingConfig;
|
|
174
|
+
operatingSystem?: OperatingSystemLayer;
|
|
175
|
+
appPackKeys?: string[];
|
|
176
|
+
methodologyPackId?: string;
|
|
177
|
+
};
|
|
178
|
+
type DomainPackInput = Omit<DomainPack, "appPackKeys"> & {
|
|
179
|
+
appPackKeys?: string[];
|
|
180
|
+
};
|
|
181
|
+
declare function defineDomainPack(input: DomainPackInput): DomainPack;
|
|
182
|
+
|
|
183
|
+
export { type ArtifactSchema, type DomainPack, type DomainPackInput, type GateCriterion, type GateCriterionOperator, type GateSchema, type GateSeverity, type InquiryShapingConfig, type InquiryShapingFrameworkHint, type InquiryShapingQuestionTemplate, type InquiryShapingTaskTemplate, type InstallProfile, type OntologyBinding, type OntologyProvisionMode, type OperatingSystemLayer, type PromptBinding, type PromptChannel, type PromptSource, type ReasoningRole, type RuntimeTarget, type SetupAsset, type SetupAssetKind, type ToolBinding, type ToolKind, type TopicRoot, type TopicTemplate, type WorkflowStep, type WorkflowTemplate, defineDomainPack };
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
// src/domain-pack/contracts.ts
|
|
2
|
+
function dedupeStrings(values) {
|
|
3
|
+
return Array.from(
|
|
4
|
+
new Set(values.map((v) => v.trim()).filter((v) => v.length > 0))
|
|
5
|
+
);
|
|
6
|
+
}
|
|
7
|
+
function normalizeRuntimeTargets(values) {
|
|
8
|
+
return values ? dedupeStrings(values) : void 0;
|
|
9
|
+
}
|
|
10
|
+
function normalizeOntologyBinding(binding) {
|
|
11
|
+
return {
|
|
12
|
+
...binding,
|
|
13
|
+
requiredEntityTypes: binding.requiredEntityTypes ? dedupeStrings(binding.requiredEntityTypes) : void 0,
|
|
14
|
+
requiredEdgeTypes: binding.requiredEdgeTypes ? dedupeStrings(binding.requiredEdgeTypes) : void 0
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
function normalizeOperatingSystem(layer) {
|
|
18
|
+
if (!layer) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
prompts: layer.prompts?.map((prompt) => ({
|
|
23
|
+
...prompt,
|
|
24
|
+
runtimeTargets: normalizeRuntimeTargets(prompt.runtimeTargets)
|
|
25
|
+
})),
|
|
26
|
+
tools: layer.tools?.map((tool) => ({
|
|
27
|
+
...tool,
|
|
28
|
+
runtimeTargets: normalizeRuntimeTargets(tool.runtimeTargets)
|
|
29
|
+
})),
|
|
30
|
+
setupAssets: layer.setupAssets?.map((asset) => ({
|
|
31
|
+
...asset,
|
|
32
|
+
runtimeTargets: normalizeRuntimeTargets(asset.runtimeTargets)
|
|
33
|
+
})),
|
|
34
|
+
topicTemplates: layer.topicTemplates,
|
|
35
|
+
installProfiles: layer.installProfiles?.map((profile) => ({
|
|
36
|
+
...profile,
|
|
37
|
+
promptIds: dedupeStrings(profile.promptIds),
|
|
38
|
+
toolIds: dedupeStrings(profile.toolIds),
|
|
39
|
+
assetIds: dedupeStrings(profile.assetIds),
|
|
40
|
+
defaultTopicSlugs: dedupeStrings(profile.defaultTopicSlugs)
|
|
41
|
+
}))
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
function defineDomainPack(input) {
|
|
45
|
+
return {
|
|
46
|
+
...input,
|
|
47
|
+
ontologyBindings: input.ontologyBindings.map(normalizeOntologyBinding),
|
|
48
|
+
appPackKeys: input.appPackKeys ? dedupeStrings(input.appPackKeys) : void 0,
|
|
49
|
+
operatingSystem: normalizeOperatingSystem(input.operatingSystem),
|
|
50
|
+
workflows: input.workflows.map((w) => ({
|
|
51
|
+
...w,
|
|
52
|
+
requiredArtifacts: dedupeStrings(w.requiredArtifacts),
|
|
53
|
+
gateCheckpoints: dedupeStrings(w.gateCheckpoints),
|
|
54
|
+
steps: w.steps.map((s) => ({
|
|
55
|
+
...s,
|
|
56
|
+
requiredRoles: dedupeStrings(s.requiredRoles),
|
|
57
|
+
produces: s.produces ? dedupeStrings(s.produces) : void 0
|
|
58
|
+
}))
|
|
59
|
+
}))
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export { defineDomainPack };
|
|
64
|
+
//# sourceMappingURL=contracts.js.map
|
|
65
|
+
//# sourceMappingURL=contracts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/domain-pack/contracts.ts"],"names":[],"mappings":"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","file":"contracts.js","sourcesContent":["/**\n * Domain Pack Contracts\n *\n * A DomainPack is a self-contained reasoning context bundle that defines\n * how reasoning works in a specific domain. It binds ontology versions,\n * defines topic structure, declares workflow templates, gate schemas,\n * artifact schemas, and reasoning roles.\n *\n * This is the THIRD pack type in Lucern's architecture:\n * - AppPackManifest: UI routes, surfaces, policy profiles (app-level)\n * - MethodologyPack: Agent workflow phases, gates, enforcement (process-level)\n * - DomainPack: Reasoning domain context (domain-level)\n *\n * All fields are internal until RS-5+ external authoring certification.\n */\n\n// ---------------------------------------------------------------------------\n// Ontology Binding — ties a pack to specific ontology versions\n// ---------------------------------------------------------------------------\n\nexport type OntologyProvisionMode = \"bind\" | \"seed\" | \"extend\";\n\nexport type OntologyBinding = {\n ontologyId: string;\n versionConstraint: string; // semver range, e.g., \"^1.0.0\"\n required: boolean;\n provisionMode?: OntologyProvisionMode;\n seedRef?: string;\n requiredEntityTypes?: string[];\n requiredEdgeTypes?: string[];\n};\n\n// ---------------------------------------------------------------------------\n// Topic Root — defines the domain's top-level topic tree structure\n// ---------------------------------------------------------------------------\n\nexport type TopicRoot = {\n slug: string;\n name: string;\n description: string;\n ontologyId?: string; // which ontology governs this root\n};\n\n// ---------------------------------------------------------------------------\n// Workflow Template — shape of a workflow (not execution logic)\n// ---------------------------------------------------------------------------\n\nexport type WorkflowStep = {\n stepId: string;\n name: string;\n description: string;\n requiredRoles: string[]; // roleId references\n produces?: string[]; // artifactId references\n gateId?: string; // gate checked after this step\n};\n\nexport type WorkflowTemplate = {\n workflowId: string;\n name: string;\n description: string;\n steps: WorkflowStep[];\n requiredArtifacts: string[]; // artifactId references\n gateCheckpoints: string[]; // gateId references\n};\n\n// ---------------------------------------------------------------------------\n// Gate Schema — declarative description of what must be true\n// ---------------------------------------------------------------------------\n\nexport type GateCriterionOperator = \"gte\" | \"lte\" | \"eq\" | \"gt\" | \"lt\";\n\nexport type GateCriterion = {\n criterionId: string;\n description: string;\n metric: string;\n threshold?: number;\n operator?: GateCriterionOperator;\n};\n\nexport type GateSeverity = \"blocking\" | \"warning\" | \"informational\";\n\nexport type GateSchema = {\n gateId: string;\n name: string;\n description: string;\n criteria: GateCriterion[];\n severity: GateSeverity;\n};\n\n// ---------------------------------------------------------------------------\n// Artifact Schema — what artifacts workflows produce\n// ---------------------------------------------------------------------------\n\nexport type ArtifactSchema = {\n artifactId: string;\n name: string;\n description: string;\n stage: string; // workflow step that produces this\n contentSchema: Record<string, unknown>; // JSON Schema for content\n requiredFields: string[];\n};\n\n// ---------------------------------------------------------------------------\n// Reasoning Role — epistemic actors in the domain\n// ---------------------------------------------------------------------------\n\nexport type ReasoningRole = {\n roleId: string;\n name: string;\n description: string;\n perspective: string;\n optimizesFor: string;\n mayBlock: boolean; // Epistemic Invariant #13: agents may block progress\n};\n\n// ---------------------------------------------------------------------------\n// Inquiry Shaping — pack-level hooks for RS-3 auto-shaping\n// ---------------------------------------------------------------------------\n\nexport type InquiryShapingQuestionTemplate = {\n templateId: string;\n questionType:\n | \"validation\"\n | \"falsification\"\n | \"assumption_probe\"\n | \"counterfactual\"\n | \"scope\"\n | \"comparison\"\n | \"mechanism\"\n | \"general\";\n priority?: \"critical\" | \"high\" | \"medium\" | \"low\";\n template: string; // Supports {{objective}} and {{hypothesis}}\n whenObjectiveIncludes?: string[];\n};\n\nexport type InquiryShapingTaskTemplate = {\n templateId: string;\n title: string; // Supports {{objective}} and {{hypothesis}}\n description?: string; // Supports {{objective}} and {{hypothesis}}\n taskType?:\n | \"general\"\n | \"find_evidence\"\n | \"verify_claim\"\n | \"research\"\n | \"review\"\n | \"interview\"\n | \"analysis\"\n | \"track_metrics\";\n priority?: \"urgent\" | \"high\" | \"medium\" | \"low\";\n whenObjectiveIncludes?: string[];\n whenQuestionTypes?: string[];\n};\n\nexport type InquiryShapingFrameworkHint = {\n frameworkName: string;\n whenObjectiveIncludes?: string[];\n whenQuestionTypes?: string[];\n boost?: number;\n reason?: string;\n};\n\nexport type InquiryShapingConfig = {\n questionTemplates?: InquiryShapingQuestionTemplate[];\n taskTemplates?: InquiryShapingTaskTemplate[];\n frameworkHints?: InquiryShapingFrameworkHint[];\n};\n\n// ---------------------------------------------------------------------------\n// Operating System Layer — prompts, tools, topic bootstrap, install surfaces\n// ---------------------------------------------------------------------------\n\nexport type RuntimeTarget = \"claude-code\" | \"codex\" | \"hybrid\" | \"portable\";\n\nexport type PromptSource = \"langfuse\" | \"file\";\nexport type PromptChannel =\n | \"bootstrap\"\n | \"workflow\"\n | \"analysis\"\n | \"review\"\n | \"tool\";\n\nexport type PromptBinding = {\n promptId: string;\n description: string;\n source: PromptSource;\n ref: string;\n fallbackRef?: string;\n channel: PromptChannel;\n required: boolean;\n runtimeTargets?: RuntimeTarget[];\n};\n\nexport type ToolKind = \"mcp\" | \"cli\" | \"script\" | \"hook\" | \"ai-tool\";\n\nexport type ToolBinding = {\n toolId: string;\n description: string;\n kind: ToolKind;\n entrypoint: string;\n required: boolean;\n runtimeTargets?: RuntimeTarget[];\n};\n\nexport type SetupAssetKind =\n | \"instruction\"\n | \"settings\"\n | \"hook\"\n | \"skill\"\n | \"agent\"\n | \"manifest\"\n | \"template\"\n | \"inbox\"\n | \"script\"\n | \"ui\";\n\nexport type SetupAsset = {\n assetId: string;\n kind: SetupAssetKind;\n description: string;\n path: string;\n required: boolean;\n runtimeTargets?: RuntimeTarget[];\n};\n\nexport type TopicTemplate = {\n slug: string;\n name: string;\n description: string;\n parentSlug?: string;\n ontologyId?: string;\n};\n\nexport type InstallProfile = {\n profileId: string;\n name: string;\n description: string;\n runtimeTarget: RuntimeTarget;\n promptIds: string[];\n toolIds: string[];\n assetIds: string[];\n defaultTopicSlugs: string[];\n};\n\nexport type OperatingSystemLayer = {\n prompts?: PromptBinding[];\n tools?: ToolBinding[];\n setupAssets?: SetupAsset[];\n topicTemplates?: TopicTemplate[];\n installProfiles?: InstallProfile[];\n};\n\n// ---------------------------------------------------------------------------\n// Domain Pack — the top-level contract\n// ---------------------------------------------------------------------------\n\nexport type DomainPack = {\n // Identity\n packId: string;\n name: string;\n version: string; // semver\n\n // Scope\n ontologyBindings: OntologyBinding[];\n topicRoots: TopicRoot[];\n\n // Workflow Templates\n workflows: WorkflowTemplate[];\n\n // Gate Schemas\n gates: GateSchema[];\n\n // Artifact Schemas\n artifacts: ArtifactSchema[];\n\n // Reasoning Roles\n roles: ReasoningRole[];\n\n // Inquiry shaping hooks\n inquiryShaping?: InquiryShapingConfig;\n\n // Runtime/install packaging layer\n operatingSystem?: OperatingSystemLayer;\n\n // Composition — optional references to other pack types\n appPackKeys?: string[]; // AppPackManifest keys this domain uses\n methodologyPackId?: string; // MethodologyPack for agent behavior\n};\n\n// ---------------------------------------------------------------------------\n// Builder helper — normalizes arrays and validates basic structure\n// ---------------------------------------------------------------------------\n\nfunction dedupeStrings(values: string[]): string[] {\n return Array.from(\n new Set(values.map((v) => v.trim()).filter((v) => v.length > 0))\n );\n}\n\nexport type DomainPackInput = Omit<DomainPack, \"appPackKeys\"> & {\n appPackKeys?: string[];\n};\n\nfunction normalizeRuntimeTargets(\n values: RuntimeTarget[] | undefined\n): RuntimeTarget[] | undefined {\n return values ? (dedupeStrings(values) as RuntimeTarget[]) : undefined;\n}\n\nfunction normalizeOntologyBinding(binding: OntologyBinding): OntologyBinding {\n return {\n ...binding,\n requiredEntityTypes: binding.requiredEntityTypes\n ? dedupeStrings(binding.requiredEntityTypes)\n : undefined,\n requiredEdgeTypes: binding.requiredEdgeTypes\n ? dedupeStrings(binding.requiredEdgeTypes)\n : undefined,\n };\n}\n\nfunction normalizeOperatingSystem(\n layer: OperatingSystemLayer | undefined\n): OperatingSystemLayer | undefined {\n if (!layer) {\n return;\n }\n\n return {\n prompts: layer.prompts?.map((prompt) => ({\n ...prompt,\n runtimeTargets: normalizeRuntimeTargets(prompt.runtimeTargets),\n })),\n tools: layer.tools?.map((tool) => ({\n ...tool,\n runtimeTargets: normalizeRuntimeTargets(tool.runtimeTargets),\n })),\n setupAssets: layer.setupAssets?.map((asset) => ({\n ...asset,\n runtimeTargets: normalizeRuntimeTargets(asset.runtimeTargets),\n })),\n topicTemplates: layer.topicTemplates,\n installProfiles: layer.installProfiles?.map((profile) => ({\n ...profile,\n promptIds: dedupeStrings(profile.promptIds),\n toolIds: dedupeStrings(profile.toolIds),\n assetIds: dedupeStrings(profile.assetIds),\n defaultTopicSlugs: dedupeStrings(profile.defaultTopicSlugs),\n })),\n };\n}\n\nexport function defineDomainPack(input: DomainPackInput): DomainPack {\n return {\n ...input,\n ontologyBindings: input.ontologyBindings.map(normalizeOntologyBinding),\n appPackKeys: input.appPackKeys\n ? dedupeStrings(input.appPackKeys)\n : undefined,\n operatingSystem: normalizeOperatingSystem(input.operatingSystem),\n workflows: input.workflows.map((w) => ({\n ...w,\n requiredArtifacts: dedupeStrings(w.requiredArtifacts),\n gateCheckpoints: dedupeStrings(w.gateCheckpoints),\n steps: w.steps.map((s) => ({\n ...s,\n requiredRoles: dedupeStrings(s.requiredRoles),\n produces: s.produces ? dedupeStrings(s.produces) : undefined,\n })),\n })),\n };\n}\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { DomainPackAuthoringManifest, DomainPackAuthoringManifestInput, DomainPackAuthoringMetadata, DomainPackAuthoringPreview, DomainPackAuthoringToolDefinition, DomainPackAuthoringToolInput, DomainPackAuthoringToolset, DomainPackAuthoringValidationIssue, DomainPackAuthoringValidationResult, DomainPackFrameworkContract, DomainPackLineage, DomainPackLineageMode, DomainPackManifestCounts, DomainPackManifestFormat, DomainPackOntologyEdgeExtension, DomainPackOntologyEntityExtension, DomainPackOntologyExtension, DomainPackPublication, DomainPackPublicationLineageEdge, DomainPackPublishResult, DomainPackSchemaExtension, DomainPackSchemaExtensionTarget, createDomainPackAuthoringTools, defineDomainPackAuthoringManifest, parseDomainPackAuthoringManifest, previewDomainPackAuthoringManifest, previewDomainPackAuthoringManifestSource, publishDomainPackAuthoringManifest, publishDomainPackAuthoringManifestSource, serializeDomainPackAuthoringManifest, validateDomainPackAuthoringManifest, validateDomainPackAuthoringManifestSource } from './authoring.js';
|
|
2
|
+
export { ArtifactSchema, DomainPack, DomainPackInput, GateCriterion, GateCriterionOperator, GateSchema, GateSeverity, InquiryShapingConfig, InquiryShapingFrameworkHint, InquiryShapingQuestionTemplate, InquiryShapingTaskTemplate, InstallProfile, OntologyBinding, OntologyProvisionMode, OperatingSystemLayer, PromptBinding, PromptChannel, PromptSource, ReasoningRole, RuntimeTarget, SetupAsset, SetupAssetKind, ToolBinding, ToolKind, TopicRoot, TopicTemplate, WorkflowStep, WorkflowTemplate, defineDomainPack } from './contracts.js';
|
|
3
|
+
export { OntologyEdgeTypeSnapshot, OntologyEntityTypeSnapshot, SOFTWARE_ENTITIES_V1 } from './ontology/software-entities-v1.js';
|
|
4
|
+
export { getDomainPack, getShapingContribution, listDomainPacks, listShapingContributions } from './packs/index.js';
|
|
5
|
+
export { FrameworkHook, QuestionTemplate, ShapingCondition, ShapingContribution, ShapingContributionRegistry, ShapingContributionValidationIssue, ShapingContributionValidationResult, TaskGenerator, buildShapingContribution, createShapingContributionRegistry, validateShapingContribution } from './shaping.js';
|
|
6
|
+
export { DomainPackValidationIssue, DomainPackValidationResult, validateDomainPack } from './validation.js';
|
|
7
|
+
export { DEVELOPER_REASONING_PACK } from './packs/developer-reasoning.js';
|
|
8
|
+
export { ENGINEERING_ACCELERATOR_PACK } from './packs/engineering-accelerator.js';
|