@lucern/pack-host 1.0.28 → 1.0.30
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/dist/contracts.d.ts +35 -35
- package/dist/contracts.js.map +1 -1
- package/dist/dependencyResolution.d.ts +3 -3
- package/dist/dependencyResolution.js +83 -59
- package/dist/dependencyResolution.js.map +1 -1
- package/dist/domain-pack/authoring.core.d.ts +82 -82
- package/dist/domain-pack/authoring.core.js +7 -6
- package/dist/domain-pack/authoring.core.js.map +1 -1
- package/dist/domain-pack/authoring.js +400 -281
- package/dist/domain-pack/authoring.js.map +1 -1
- package/dist/domain-pack/authoring.validation.js +400 -281
- package/dist/domain-pack/authoring.validation.js.map +1 -1
- package/dist/domain-pack/contracts.d.ts +95 -95
- package/dist/domain-pack/contracts.js.map +1 -1
- package/dist/domain-pack/index.js +416 -285
- package/dist/domain-pack/index.js.map +1 -1
- package/dist/domain-pack/ontology/software-entities-v1.d.ts +7 -7
- package/dist/domain-pack/ontology/software-entities-v1.js.map +1 -1
- package/dist/domain-pack/packs/developer-reasoning.js +7 -1
- package/dist/domain-pack/packs/developer-reasoning.js.map +1 -1
- package/dist/domain-pack/packs/engineering-accelerator.js.map +1 -1
- package/dist/domain-pack/packs/index.js +333 -239
- package/dist/domain-pack/packs/index.js.map +1 -1
- package/dist/domain-pack/shaping.d.ts +15 -15
- package/dist/domain-pack/shaping.js +326 -238
- package/dist/domain-pack/shaping.js.map +1 -1
- package/dist/domain-pack/validation.d.ts +6 -6
- package/dist/domain-pack/validation.js +318 -236
- package/dist/domain-pack/validation.js.map +1 -1
- package/dist/domain-pack.js +416 -285
- package/dist/domain-pack.js.map +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.js +3793 -3643
- package/dist/index.js.map +1 -1
- package/dist/lifecycle.d.ts +9 -9
- package/dist/lifecycle.js.map +1 -1
- package/dist/manifestValidation.d.ts +9 -9
- package/dist/manifestValidation.js.map +1 -1
- package/dist/manifests/chat-v1.js.map +1 -1
- package/dist/manifests/deals-v1.js +1 -6
- package/dist/manifests/deals-v1.js.map +1 -1
- package/dist/manifests/decisions-v1.js.map +1 -1
- package/dist/manifests/documents-v1.js.map +1 -1
- package/dist/manifests/epistemic-algorithms-v1.js.map +1 -1
- package/dist/manifests/graph-visualization-v1.js.map +1 -1
- package/dist/manifests/index.js +1 -6
- package/dist/manifests/index.js.map +1 -1
- package/dist/manifests/news-v1.js.map +1 -1
- package/dist/manifests/philosophy-mode-v1.js.map +1 -1
- package/dist/manifests/sprints-v1.js.map +1 -1
- package/dist/manifests/task-management-v1.js.map +1 -1
- package/dist/manifests/team-analysis-v1.js.map +1 -1
- package/dist/manifests/themes-v1.js.map +1 -1
- package/dist/manifests/user-profiles-v1.js.map +1 -1
- package/dist/manifests.js +1 -6
- package/dist/manifests.js.map +1 -1
- package/dist/namespacePolicy.d.ts +6 -6
- package/dist/namespacePolicy.js.map +1 -1
- package/dist/proof-attestation.json +1 -1
- package/dist/registry.js +84 -65
- package/dist/registry.js.map +1 -1
- package/dist/runtime.d.ts +6 -6
- package/dist/runtime.js +83 -59
- package/dist/runtime.js.map +1 -1
- package/dist/serviceContracts.d.ts +4 -4
- package/dist/serviceContracts.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/domain-pack/validation.ts","../../src/domain-pack/shaping.ts"],"names":["issue","checkDuplicateIds"],"mappings":"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","file":"shaping.js","sourcesContent":["/**\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","/** Domain-pack inquiry shaping helpers for questions, tasks, and prompts. */\nimport type {\n DomainPack,\n InquiryShapingFrameworkHint,\n InquiryShapingQuestionTemplate,\n InquiryShapingTaskTemplate,\n} from \"./contracts\";\nimport {\n validateDomainPack,\n type DomainPackValidationIssue,\n} from \"./validation\";\n\nexport type ShapingCondition = {\n objectiveIncludes?: string[];\n questionTypes?: string[];\n};\n\ntype BaseContributionItem = {\n sourcePackId: string;\n priorityWeight: number;\n condition: ShapingCondition;\n};\n\nexport type QuestionTemplate = BaseContributionItem & {\n templateId: string;\n questionType:\n | \"validation\"\n | \"falsification\"\n | \"assumption_probe\"\n | \"counterfactual\"\n | \"clarification\"\n | \"comparison\"\n | \"mechanism\"\n | \"general\";\n priority?: \"critical\" | \"high\" | \"medium\" | \"low\";\n template: string;\n};\n\nexport type TaskGenerator = BaseContributionItem & {\n generatorId: string;\n title: string;\n description?: string;\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};\n\nexport type FrameworkHook = BaseContributionItem & {\n hookId: string;\n frameworkName: string;\n boost: number;\n reason?: string;\n};\n\nexport type ShapingContribution = {\n packId: string;\n questionTemplates: QuestionTemplate[];\n taskGenerators: TaskGenerator[];\n frameworkHooks: FrameworkHook[];\n};\n\nexport type ShapingContributionValidationIssue = DomainPackValidationIssue;\nexport type ShapingContributionValidationResult = {\n valid: boolean;\n issues: ShapingContributionValidationIssue[];\n};\n\nexport type ShapingContributionRegistry = {\n register(pack: DomainPack): ShapingContribution;\n get(packId: string): ShapingContribution | null;\n list(): string[];\n};\n\nconst QUESTION_PRIORITY_WEIGHT: Record<\n NonNullable<QuestionTemplate[\"priority\"]>,\n number\n> = {\n critical: 0.12,\n high: 0.08,\n medium: 0.04,\n low: 0.01,\n};\n\nconst TASK_PRIORITY_WEIGHT: Record<\n NonNullable<TaskGenerator[\"priority\"]>,\n number\n> = {\n urgent: 0.12,\n high: 0.08,\n medium: 0.04,\n low: 0.01,\n};\n\nfunction dedupeStrings(values: string[] | undefined): string[] | undefined {\n if (!values || values.length === 0) {\n return undefined;\n }\n const normalized = values.map((value) => value.trim()).filter(Boolean);\n return normalized.length > 0 ? Array.from(new Set(normalized)) : undefined;\n}\n\nfunction toKebabCase(value: string): string {\n return value\n .trim()\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\");\n}\n\nfunction normalizeCondition(args: {\n objectiveIncludes?: string[];\n questionTypes?: string[];\n}): ShapingCondition {\n return {\n ...(dedupeStrings(args.objectiveIncludes)\n ? { objectiveIncludes: dedupeStrings(args.objectiveIncludes) }\n : {}),\n ...(dedupeStrings(args.questionTypes)\n ? { questionTypes: dedupeStrings(args.questionTypes) }\n : {}),\n };\n}\n\nfunction normalizeQuestionType(\n questionType: InquiryShapingQuestionTemplate[\"questionType\"]\n): QuestionTemplate[\"questionType\"] {\n return questionType === \"scope\" ? \"clarification\" : questionType;\n}\n\nfunction questionTemplateToContribution(\n packId: string,\n template: InquiryShapingQuestionTemplate\n): QuestionTemplate {\n return {\n sourcePackId: packId,\n templateId: template.templateId,\n questionType: normalizeQuestionType(template.questionType),\n priority: template.priority,\n priorityWeight: QUESTION_PRIORITY_WEIGHT[template.priority || \"medium\"],\n template: template.template,\n condition: normalizeCondition({\n objectiveIncludes: template.whenObjectiveIncludes,\n }),\n };\n}\n\nfunction taskTemplateToContribution(\n packId: string,\n template: InquiryShapingTaskTemplate\n): TaskGenerator {\n return {\n sourcePackId: packId,\n generatorId: template.templateId,\n title: template.title,\n description: template.description,\n taskType: template.taskType,\n priority: template.priority,\n priorityWeight: TASK_PRIORITY_WEIGHT[template.priority || \"medium\"],\n condition: normalizeCondition({\n objectiveIncludes: template.whenObjectiveIncludes,\n questionTypes: template.whenQuestionTypes,\n }),\n };\n}\n\nfunction frameworkHintToContribution(\n packId: string,\n hint: InquiryShapingFrameworkHint\n): FrameworkHook {\n const hookId = `${packId}:${toKebabCase(hint.frameworkName || \"framework\")}`;\n return {\n sourcePackId: packId,\n hookId,\n frameworkName: hint.frameworkName,\n boost: hint.boost || 0,\n reason: hint.reason,\n priorityWeight: Math.max(0.02, hint.boost || 0),\n condition: normalizeCondition({\n objectiveIncludes: hint.whenObjectiveIncludes,\n questionTypes: hint.whenQuestionTypes,\n }),\n };\n}\n\nfunction issue(\n code: string,\n message: string,\n path: string,\n severity: \"error\" | \"warning\" = \"error\"\n): ShapingContributionValidationIssue {\n return { code, message, path, severity };\n}\n\nfunction checkDuplicateIds(\n items: Array<Record<string, string>>,\n idField: string,\n path: string\n): ShapingContributionValidationIssue[] {\n const issues: ShapingContributionValidationIssue[] = [];\n const seen = new Set<string>();\n for (const item of items) {\n const id = item[idField];\n if (!id) {\n continue;\n }\n if (seen.has(id)) {\n issues.push(\n issue(\"DUPLICATE_ID\", `Duplicate ${idField} \"${id}\"`, `${path}.${idField}`)\n );\n }\n seen.add(id);\n }\n return issues;\n}\n\nfunction formatRegistrationIssues(\n packId: string,\n issues: ShapingContributionValidationIssue[]\n): string {\n return `Invalid shaping contribution registration for ${packId}: ${issues\n .map((item) => `${item.code} at ${item.path}`)\n .join(\"; \")}`;\n}\n\nexport function buildShapingContribution(pack: DomainPack): ShapingContribution {\n const inquiryShaping = pack.inquiryShaping || {};\n\n return {\n packId: pack.packId,\n questionTemplates: (inquiryShaping.questionTemplates || []).map((template) =>\n questionTemplateToContribution(pack.packId, template)\n ),\n taskGenerators: (inquiryShaping.taskTemplates || []).map((template) =>\n taskTemplateToContribution(pack.packId, template)\n ),\n frameworkHooks: (inquiryShaping.frameworkHints || []).map((hint) =>\n frameworkHintToContribution(pack.packId, hint)\n ),\n };\n}\n\nexport function validateShapingContribution(\n contribution: ShapingContribution\n): ShapingContributionValidationResult {\n const issues: ShapingContributionValidationIssue[] = [];\n\n if (!contribution.packId?.trim()) {\n issues.push(issue(\"MISSING_PACK_ID\", \"packId is required\", \"packId\"));\n }\n\n issues.push(\n ...checkDuplicateIds(\n contribution.questionTemplates as unknown as Array<Record<string, string>>,\n \"templateId\",\n \"questionTemplates\"\n )\n );\n issues.push(\n ...checkDuplicateIds(\n contribution.taskGenerators as unknown as Array<Record<string, string>>,\n \"generatorId\",\n \"taskGenerators\"\n )\n );\n issues.push(\n ...checkDuplicateIds(\n contribution.frameworkHooks as unknown as Array<Record<string, string>>,\n \"hookId\",\n \"frameworkHooks\"\n )\n );\n\n contribution.questionTemplates.forEach((template, index) => {\n if (!template.templateId?.trim()) {\n issues.push(\n issue(\n \"MISSING_TEMPLATE_ID\",\n \"Question template requires templateId\",\n `questionTemplates[${index}].templateId`\n )\n );\n }\n if (!template.template?.trim()) {\n issues.push(\n issue(\n \"MISSING_TEMPLATE\",\n \"Question template requires template text\",\n `questionTemplates[${index}].template`\n )\n );\n }\n });\n\n contribution.taskGenerators.forEach((generator, index) => {\n if (!generator.generatorId?.trim()) {\n issues.push(\n issue(\n \"MISSING_GENERATOR_ID\",\n \"Task generator requires generatorId\",\n `taskGenerators[${index}].generatorId`\n )\n );\n }\n if (!generator.title?.trim()) {\n issues.push(\n issue(\n \"MISSING_TASK_TITLE\",\n \"Task generator requires title\",\n `taskGenerators[${index}].title`\n )\n );\n }\n });\n\n contribution.frameworkHooks.forEach((hook, index) => {\n if (!hook.frameworkName?.trim()) {\n issues.push(\n issue(\n \"MISSING_FRAMEWORK_NAME\",\n \"Framework hook requires frameworkName\",\n `frameworkHooks[${index}].frameworkName`\n )\n );\n }\n if (!Number.isFinite(hook.boost) || hook.boost < 0) {\n issues.push(\n issue(\n \"INVALID_FRAMEWORK_BOOST\",\n \"Framework hook boost must be a non-negative number\",\n `frameworkHooks[${index}].boost`\n )\n );\n }\n });\n\n return {\n valid: issues.every((item) => item.severity !== \"error\"),\n issues,\n };\n}\n\nexport function createShapingContributionRegistry(\n packs: DomainPack[] = []\n): ShapingContributionRegistry {\n const registry = new Map<string, ShapingContribution>();\n\n const register = (pack: DomainPack): ShapingContribution => {\n if (registry.has(pack.packId)) {\n throw new Error(\n `Duplicate shaping contribution registration for ${pack.packId}`\n );\n }\n\n const packValidation = validateDomainPack(pack);\n if (!packValidation.valid) {\n throw new Error(formatRegistrationIssues(pack.packId, packValidation.issues));\n }\n\n const contribution = buildShapingContribution(pack);\n const contributionValidation = validateShapingContribution(contribution);\n if (!contributionValidation.valid) {\n throw new Error(\n formatRegistrationIssues(pack.packId, contributionValidation.issues)\n );\n }\n\n registry.set(pack.packId, contribution);\n return contribution;\n };\n\n packs.forEach(register);\n\n return {\n register,\n get(packId: string) {\n return registry.get(packId) ?? null;\n },\n list() {\n return Array.from(registry.keys());\n },\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/domain-pack/validation.ts","../../src/domain-pack/shaping.ts"],"names":["issue","checkDuplicateIds"],"mappings":"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","file":"shaping.js","sourcesContent":["/**\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 interface DomainPackValidationIssue {\n code: string;\n message: string;\n path: string;\n severity: \"error\" | \"warning\";\n}\n\nexport interface DomainPackValidationResult {\n issues: DomainPackValidationIssue[];\n valid: boolean;\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\nfunction checkOptionalDuplicateIds(\n items: unknown[] | undefined,\n idField: string,\n path: string\n): DomainPackValidationIssue[] {\n if (!items) {\n return [];\n }\n return checkDuplicateIds(items as { [key: string]: string }[], idField, path);\n}\n\nfunction validatePackIdentity(\n pack: DomainPack,\n issues: DomainPackValidationIssue[]\n): void {\n if (typeof pack.packId !== \"string\" || pack.packId.trim().length === 0) {\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 (typeof pack.name !== \"string\" || pack.name.trim().length === 0) {\n issues.push(issue(\"MISSING_NAME\", \"name is required\", \"name\"));\n }\n\n if (typeof pack.version !== \"string\" || pack.version.trim().length === 0) {\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\nfunction validateOntologyBindings(\n pack: DomainPack,\n issues: DomainPackValidationIssue[]\n): void {\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\nfunction validateTopicRoots(\n pack: DomainPack,\n issues: DomainPackValidationIssue[]\n): void {\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 return;\n }\n\n issues.push(\n ...checkOptionalDuplicateIds(pack.topicRoots, \"slug\", \"topicRoots\")\n );\n}\n\ntype DomainPackOperatingSystem = NonNullable<DomainPack[\"operatingSystem\"]>;\n\nfunction validateOperatingSystemPrompts(\n operatingSystem: DomainPackOperatingSystem,\n issues: DomainPackValidationIssue[]\n): void {\n if (!operatingSystem.prompts) {\n return;\n }\n issues.push(\n ...checkOptionalDuplicateIds(\n operatingSystem.prompts,\n \"promptId\",\n \"operatingSystem.prompts\"\n )\n );\n for (const [index, prompt] of operatingSystem.prompts.entries()) {\n issues.push(...validatePromptBinding(prompt, index));\n }\n}\n\nfunction validateOperatingSystemTools(\n operatingSystem: DomainPackOperatingSystem,\n issues: DomainPackValidationIssue[]\n): void {\n if (!operatingSystem.tools) {\n return;\n }\n issues.push(\n ...checkOptionalDuplicateIds(\n operatingSystem.tools,\n \"toolId\",\n \"operatingSystem.tools\"\n )\n );\n for (const [index, tool] of operatingSystem.tools.entries()) {\n issues.push(...validateToolBinding(tool, index));\n }\n}\n\nfunction validateOperatingSystemSetupAssets(\n operatingSystem: DomainPackOperatingSystem,\n issues: DomainPackValidationIssue[]\n): void {\n if (!operatingSystem.setupAssets) {\n return;\n }\n issues.push(\n ...checkOptionalDuplicateIds(\n operatingSystem.setupAssets,\n \"assetId\",\n \"operatingSystem.setupAssets\"\n )\n );\n for (const [index, asset] of operatingSystem.setupAssets.entries()) {\n issues.push(...validateSetupAsset(asset, index));\n }\n}\n\nfunction validateOperatingSystemTopicTemplates(\n operatingSystem: DomainPackOperatingSystem,\n knownRootSlugs: Set<string>,\n issues: DomainPackValidationIssue[]\n): Set<string> {\n const templateSlugs = new Set<string>();\n if (!operatingSystem.topicTemplates) {\n return templateSlugs;\n }\n\n issues.push(\n ...checkOptionalDuplicateIds(\n operatingSystem.topicTemplates,\n \"slug\",\n \"operatingSystem.topicTemplates\"\n )\n );\n for (const template of operatingSystem.topicTemplates) {\n if (template.slug) {\n templateSlugs.add(template.slug);\n }\n }\n const knownTopicSlugs = new Set([...knownRootSlugs, ...templateSlugs]);\n for (const [index, template] of operatingSystem.topicTemplates.entries()) {\n issues.push(...validateTopicTemplate(template, index, knownTopicSlugs));\n }\n return templateSlugs;\n}\n\nfunction validateOperatingSystemInstallProfiles(\n operatingSystem: DomainPackOperatingSystem,\n knownRootSlugs: Set<string>,\n templateSlugs: Set<string>,\n issues: DomainPackValidationIssue[]\n): void {\n if (!operatingSystem.installProfiles) {\n return;\n }\n\n issues.push(\n ...checkOptionalDuplicateIds(\n operatingSystem.installProfiles,\n \"profileId\",\n \"operatingSystem.installProfiles\"\n )\n );\n\n const knownPromptIds = new Set(\n operatingSystem.prompts?.map((prompt) => prompt.promptId) ?? []\n );\n const knownToolIds = new Set(\n operatingSystem.tools?.map((tool) => tool.toolId) ?? []\n );\n const knownAssetIds = new Set(\n operatingSystem.setupAssets?.map((asset) => asset.assetId) ?? []\n );\n const knownTopicSlugs = new Set([...knownRootSlugs, ...templateSlugs]);\n\n for (const [index, profile] of operatingSystem.installProfiles.entries()) {\n issues.push(\n ...validateInstallProfile(\n profile,\n index,\n knownPromptIds,\n knownToolIds,\n knownAssetIds,\n knownTopicSlugs\n )\n );\n }\n}\n\nfunction validateOperatingSystem(\n pack: DomainPack,\n issues: DomainPackValidationIssue[]\n): void {\n if (!pack.operatingSystem) {\n return;\n }\n\n const knownRootSlugs = new Set(\n pack.topicRoots?.map((topic) => topic.slug) ?? []\n );\n validateOperatingSystemPrompts(pack.operatingSystem, issues);\n validateOperatingSystemTools(pack.operatingSystem, issues);\n validateOperatingSystemSetupAssets(pack.operatingSystem, issues);\n const templateSlugs = validateOperatingSystemTopicTemplates(\n pack.operatingSystem,\n knownRootSlugs,\n issues\n );\n validateOperatingSystemInstallProfiles(\n pack.operatingSystem,\n knownRootSlugs,\n templateSlugs,\n issues\n );\n}\n\nfunction validateRoles(\n pack: DomainPack,\n issues: DomainPackValidationIssue[]\n): void {\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(...checkOptionalDuplicateIds(pack.roles, \"roleId\", \"roles\"));\n }\n}\n\nfunction validateGates(\n pack: DomainPack,\n issues: DomainPackValidationIssue[]\n): void {\n if (!pack.gates) {\n return;\n }\n\n issues.push(...checkOptionalDuplicateIds(pack.gates, \"gateId\", \"gates\"));\n for (const [index, 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[${index}].criteria`,\n \"warning\"\n )\n );\n continue;\n }\n issues.push(\n ...checkOptionalDuplicateIds(\n gate.criteria,\n \"criterionId\",\n `gates[${index}].criteria`\n )\n );\n }\n}\n\nfunction validateArtifacts(\n pack: DomainPack,\n issues: DomainPackValidationIssue[]\n): void {\n if (pack.artifacts) {\n issues.push(\n ...checkOptionalDuplicateIds(pack.artifacts, \"artifactId\", \"artifacts\")\n );\n }\n}\n\ninterface DomainPackReferenceSets {\n knownArtifactIds: Set<string>;\n knownGateIds: Set<string>;\n knownRoleIds: Set<string>;\n}\n\nfunction domainPackReferenceSets(pack: DomainPack): DomainPackReferenceSets {\n return {\n knownGateIds: new Set(pack.gates?.map((gate) => gate.gateId) ?? []),\n knownArtifactIds: new Set(\n pack.artifacts?.map((artifact) => artifact.artifactId) ?? []\n ),\n knownRoleIds: new Set(pack.roles?.map((role) => role.roleId) ?? []),\n };\n}\n\nfunction validateWorkflowGateReferences(\n workflow: NonNullable<DomainPack[\"workflows\"]>[number],\n workflowIndex: number,\n knownGateIds: Set<string>,\n issues: DomainPackValidationIssue[]\n): void {\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[${workflowIndex}].gateCheckpoints`\n )\n );\n }\n }\n}\n\nfunction validateWorkflowArtifactReferences(\n workflow: NonNullable<DomainPack[\"workflows\"]>[number],\n workflowIndex: number,\n knownArtifactIds: Set<string>,\n issues: DomainPackValidationIssue[]\n): void {\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[${workflowIndex}].requiredArtifacts`\n )\n );\n }\n }\n}\n\nfunction validateWorkflowStepReferences(\n step: NonNullable<DomainPack[\"workflows\"]>[number][\"steps\"][number],\n workflowIndex: number,\n stepIndex: number,\n refs: DomainPackReferenceSets,\n issues: DomainPackValidationIssue[]\n): void {\n for (const roleId of step.requiredRoles) {\n if (!refs.knownRoleIds.has(roleId)) {\n issues.push(\n issue(\n \"UNKNOWN_ROLE_REF\",\n `Step \"${step.stepId}\" references unknown role \"${roleId}\"`,\n `workflows[${workflowIndex}].steps[${stepIndex}].requiredRoles`\n )\n );\n }\n }\n\n if (step.gateId && !refs.knownGateIds.has(step.gateId)) {\n issues.push(\n issue(\n \"UNKNOWN_GATE_REF\",\n `Step \"${step.stepId}\" references unknown gate \"${step.gateId}\"`,\n `workflows[${workflowIndex}].steps[${stepIndex}].gateId`\n )\n );\n }\n\n for (const artifactId of step.produces ?? []) {\n if (!refs.knownArtifactIds.has(artifactId)) {\n issues.push(\n issue(\n \"UNKNOWN_ARTIFACT_REF\",\n `Step \"${step.stepId}\" references unknown artifact \"${artifactId}\"`,\n `workflows[${workflowIndex}].steps[${stepIndex}].produces`\n )\n );\n }\n }\n}\n\nfunction validateWorkflows(\n pack: DomainPack,\n refs: DomainPackReferenceSets,\n issues: DomainPackValidationIssue[]\n): void {\n if (!pack.workflows) {\n return;\n }\n\n issues.push(\n ...checkOptionalDuplicateIds(pack.workflows, \"workflowId\", \"workflows\")\n );\n\n for (const [workflowIndex, workflow] of pack.workflows.entries()) {\n validateWorkflowGateReferences(\n workflow,\n workflowIndex,\n refs.knownGateIds,\n issues\n );\n validateWorkflowArtifactReferences(\n workflow,\n workflowIndex,\n refs.knownArtifactIds,\n issues\n );\n for (const [stepIndex, step] of workflow.steps.entries()) {\n validateWorkflowStepReferences(\n step,\n workflowIndex,\n stepIndex,\n refs,\n issues\n );\n }\n }\n}\n\nfunction validateInquiryQuestionTemplates(\n pack: DomainPack,\n issues: DomainPackValidationIssue[]\n): void {\n if (!pack.inquiryShaping?.questionTemplates) {\n return;\n }\n issues.push(\n ...checkOptionalDuplicateIds(\n pack.inquiryShaping.questionTemplates,\n \"templateId\",\n \"inquiryShaping.questionTemplates\"\n )\n );\n for (const [\n index,\n template,\n ] of pack.inquiryShaping.questionTemplates.entries()) {\n issues.push(...validateQuestionTemplate(template, index));\n }\n}\n\nfunction validateInquiryTaskTemplates(\n pack: DomainPack,\n issues: DomainPackValidationIssue[]\n): void {\n if (!pack.inquiryShaping?.taskTemplates) {\n return;\n }\n issues.push(\n ...checkOptionalDuplicateIds(\n pack.inquiryShaping.taskTemplates,\n \"templateId\",\n \"inquiryShaping.taskTemplates\"\n )\n );\n for (const [index, template] of pack.inquiryShaping.taskTemplates.entries()) {\n issues.push(...validateTaskTemplate(template, index));\n }\n}\n\nfunction validateInquiryFrameworkHints(\n pack: DomainPack,\n issues: DomainPackValidationIssue[]\n): void {\n if (!pack.inquiryShaping?.frameworkHints) {\n return;\n }\n issues.push(\n ...checkDuplicateIds(\n pack.inquiryShaping.frameworkHints.map((hint) => ({\n frameworkName: hint.frameworkName,\n })),\n \"frameworkName\",\n \"inquiryShaping.frameworkHints\"\n )\n );\n for (const [index, hint] of pack.inquiryShaping.frameworkHints.entries()) {\n issues.push(...validateFrameworkHint(hint, index));\n }\n}\n\nfunction validateInquiryShaping(\n pack: DomainPack,\n issues: DomainPackValidationIssue[]\n): void {\n validateInquiryQuestionTemplates(pack, issues);\n validateInquiryTaskTemplates(pack, issues);\n validateInquiryFrameworkHints(pack, issues);\n}\n\nexport function validateDomainPack(\n pack: DomainPack\n): DomainPackValidationResult {\n const issues: DomainPackValidationIssue[] = [];\n validatePackIdentity(pack, issues);\n validateOntologyBindings(pack, issues);\n validateTopicRoots(pack, issues);\n validateOperatingSystem(pack, issues);\n validateRoles(pack, issues);\n validateGates(pack, issues);\n validateArtifacts(pack, issues);\n validateWorkflows(pack, domainPackReferenceSets(pack), issues);\n validateInquiryShaping(pack, issues);\n\n return {\n valid: issues.filter((i) => i.severity === \"error\").length === 0,\n issues,\n };\n}\n","/** Domain-pack inquiry shaping helpers for questions, tasks, and prompts. */\nimport type {\n DomainPack,\n InquiryShapingFrameworkHint,\n InquiryShapingQuestionTemplate,\n InquiryShapingTaskTemplate,\n} from \"./contracts\";\nimport {\n type DomainPackValidationIssue,\n validateDomainPack,\n} from \"./validation\";\n\nexport interface ShapingCondition {\n objectiveIncludes?: string[];\n questionTypes?: string[];\n}\n\ninterface BaseContributionItem {\n condition: ShapingCondition;\n priorityWeight: number;\n sourcePackId: string;\n}\n\nexport type QuestionTemplate = BaseContributionItem & {\n templateId: string;\n questionType:\n | \"validation\"\n | \"falsification\"\n | \"assumption_probe\"\n | \"counterfactual\"\n | \"clarification\"\n | \"comparison\"\n | \"mechanism\"\n | \"general\";\n priority?: \"critical\" | \"high\" | \"medium\" | \"low\";\n template: string;\n};\n\nexport type TaskGenerator = BaseContributionItem & {\n generatorId: string;\n title: string;\n description?: string;\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};\n\nexport type FrameworkHook = BaseContributionItem & {\n hookId: string;\n frameworkName: string;\n boost: number;\n reason?: string;\n};\n\nexport interface ShapingContribution {\n frameworkHooks: FrameworkHook[];\n packId: string;\n questionTemplates: QuestionTemplate[];\n taskGenerators: TaskGenerator[];\n}\n\nexport type ShapingContributionValidationIssue = DomainPackValidationIssue;\nexport interface ShapingContributionValidationResult {\n issues: ShapingContributionValidationIssue[];\n valid: boolean;\n}\n\nexport interface ShapingContributionRegistry {\n get(packId: string): ShapingContribution | null;\n list(): string[];\n register(pack: DomainPack): ShapingContribution;\n}\n\nconst QUESTION_PRIORITY_WEIGHT: Record<\n NonNullable<QuestionTemplate[\"priority\"]>,\n number\n> = {\n critical: 0.12,\n high: 0.08,\n medium: 0.04,\n low: 0.01,\n};\n\nconst TASK_PRIORITY_WEIGHT: Record<\n NonNullable<TaskGenerator[\"priority\"]>,\n number\n> = {\n urgent: 0.12,\n high: 0.08,\n medium: 0.04,\n low: 0.01,\n};\n\nfunction dedupeStrings(values: string[] | undefined): string[] | undefined {\n if (!values || values.length === 0) {\n return;\n }\n const normalized = values.map((value) => value.trim()).filter(Boolean);\n return normalized.length > 0 ? Array.from(new Set(normalized)) : undefined;\n}\n\nfunction toKebabCase(value: string): string {\n return value\n .trim()\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\");\n}\n\nfunction normalizeCondition(args: {\n objectiveIncludes?: string[];\n questionTypes?: string[];\n}): ShapingCondition {\n return {\n ...(dedupeStrings(args.objectiveIncludes)\n ? { objectiveIncludes: dedupeStrings(args.objectiveIncludes) }\n : {}),\n ...(dedupeStrings(args.questionTypes)\n ? { questionTypes: dedupeStrings(args.questionTypes) }\n : {}),\n };\n}\n\nfunction normalizeQuestionType(\n questionType: InquiryShapingQuestionTemplate[\"questionType\"]\n): QuestionTemplate[\"questionType\"] {\n return questionType === \"scope\" ? \"clarification\" : questionType;\n}\n\nfunction questionTemplateToContribution(\n packId: string,\n template: InquiryShapingQuestionTemplate\n): QuestionTemplate {\n return {\n sourcePackId: packId,\n templateId: template.templateId,\n questionType: normalizeQuestionType(template.questionType),\n priority: template.priority,\n priorityWeight: QUESTION_PRIORITY_WEIGHT[template.priority || \"medium\"],\n template: template.template,\n condition: normalizeCondition({\n objectiveIncludes: template.whenObjectiveIncludes,\n }),\n };\n}\n\nfunction taskTemplateToContribution(\n packId: string,\n template: InquiryShapingTaskTemplate\n): TaskGenerator {\n return {\n sourcePackId: packId,\n generatorId: template.templateId,\n title: template.title,\n description: template.description,\n taskType: template.taskType,\n priority: template.priority,\n priorityWeight: TASK_PRIORITY_WEIGHT[template.priority || \"medium\"],\n condition: normalizeCondition({\n objectiveIncludes: template.whenObjectiveIncludes,\n questionTypes: template.whenQuestionTypes,\n }),\n };\n}\n\nfunction frameworkHintToContribution(\n packId: string,\n hint: InquiryShapingFrameworkHint\n): FrameworkHook {\n const hookId = `${packId}:${toKebabCase(hint.frameworkName || \"framework\")}`;\n return {\n sourcePackId: packId,\n hookId,\n frameworkName: hint.frameworkName,\n boost: hint.boost || 0,\n reason: hint.reason,\n priorityWeight: Math.max(0.02, hint.boost || 0),\n condition: normalizeCondition({\n objectiveIncludes: hint.whenObjectiveIncludes,\n questionTypes: hint.whenQuestionTypes,\n }),\n };\n}\n\nfunction issue(\n code: string,\n message: string,\n path: string,\n severity: \"error\" | \"warning\" = \"error\"\n): ShapingContributionValidationIssue {\n return { code, message, path, severity };\n}\n\nfunction checkDuplicateIds(\n items: Record<string, string>[],\n idField: string,\n path: string\n): ShapingContributionValidationIssue[] {\n const issues: ShapingContributionValidationIssue[] = [];\n const seen = new Set<string>();\n for (const item of items) {\n const id = item[idField];\n if (!id) {\n continue;\n }\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\nfunction formatRegistrationIssues(\n packId: string,\n issues: ShapingContributionValidationIssue[]\n): string {\n return `Invalid shaping contribution registration for ${packId}: ${issues\n .map((item) => `${item.code} at ${item.path}`)\n .join(\"; \")}`;\n}\n\nexport function buildShapingContribution(\n pack: DomainPack\n): ShapingContribution {\n const inquiryShaping = pack.inquiryShaping || {};\n\n return {\n packId: pack.packId,\n questionTemplates: (inquiryShaping.questionTemplates || []).map(\n (template) => questionTemplateToContribution(pack.packId, template)\n ),\n taskGenerators: (inquiryShaping.taskTemplates || []).map((template) =>\n taskTemplateToContribution(pack.packId, template)\n ),\n frameworkHooks: (inquiryShaping.frameworkHints || []).map((hint) =>\n frameworkHintToContribution(pack.packId, hint)\n ),\n };\n}\n\nexport function validateShapingContribution(\n contribution: ShapingContribution\n): ShapingContributionValidationResult {\n const issues: ShapingContributionValidationIssue[] = [];\n\n if (!contribution.packId?.trim()) {\n issues.push(issue(\"MISSING_PACK_ID\", \"packId is required\", \"packId\"));\n }\n\n issues.push(\n ...checkDuplicateIds(\n contribution.questionTemplates as unknown as Record<string, string>[],\n \"templateId\",\n \"questionTemplates\"\n )\n );\n issues.push(\n ...checkDuplicateIds(\n contribution.taskGenerators as unknown as Record<string, string>[],\n \"generatorId\",\n \"taskGenerators\"\n )\n );\n issues.push(\n ...checkDuplicateIds(\n contribution.frameworkHooks as unknown as Record<string, string>[],\n \"hookId\",\n \"frameworkHooks\"\n )\n );\n\n contribution.questionTemplates.forEach((template, index) => {\n if (!template.templateId?.trim()) {\n issues.push(\n issue(\n \"MISSING_TEMPLATE_ID\",\n \"Question template requires templateId\",\n `questionTemplates[${index}].templateId`\n )\n );\n }\n if (!template.template?.trim()) {\n issues.push(\n issue(\n \"MISSING_TEMPLATE\",\n \"Question template requires template text\",\n `questionTemplates[${index}].template`\n )\n );\n }\n });\n\n contribution.taskGenerators.forEach((generator, index) => {\n if (!generator.generatorId?.trim()) {\n issues.push(\n issue(\n \"MISSING_GENERATOR_ID\",\n \"Task generator requires generatorId\",\n `taskGenerators[${index}].generatorId`\n )\n );\n }\n if (!generator.title?.trim()) {\n issues.push(\n issue(\n \"MISSING_TASK_TITLE\",\n \"Task generator requires title\",\n `taskGenerators[${index}].title`\n )\n );\n }\n });\n\n contribution.frameworkHooks.forEach((hook, index) => {\n if (!hook.frameworkName?.trim()) {\n issues.push(\n issue(\n \"MISSING_FRAMEWORK_NAME\",\n \"Framework hook requires frameworkName\",\n `frameworkHooks[${index}].frameworkName`\n )\n );\n }\n if (!Number.isFinite(hook.boost) || hook.boost < 0) {\n issues.push(\n issue(\n \"INVALID_FRAMEWORK_BOOST\",\n \"Framework hook boost must be a non-negative number\",\n `frameworkHooks[${index}].boost`\n )\n );\n }\n });\n\n return {\n valid: issues.every((item) => item.severity !== \"error\"),\n issues,\n };\n}\n\nexport function createShapingContributionRegistry(\n packs: DomainPack[] = []\n): ShapingContributionRegistry {\n const registry = new Map<string, ShapingContribution>();\n\n const register = (pack: DomainPack): ShapingContribution => {\n if (registry.has(pack.packId)) {\n throw new Error(\n `Duplicate shaping contribution registration for ${pack.packId}`\n );\n }\n\n const packValidation = validateDomainPack(pack);\n if (!packValidation.valid) {\n throw new Error(\n formatRegistrationIssues(pack.packId, packValidation.issues)\n );\n }\n\n const contribution = buildShapingContribution(pack);\n const contributionValidation = validateShapingContribution(contribution);\n if (!contributionValidation.valid) {\n throw new Error(\n formatRegistrationIssues(pack.packId, contributionValidation.issues)\n );\n }\n\n registry.set(pack.packId, contribution);\n return contribution;\n };\n\n packs.forEach(register);\n\n return {\n register,\n get(packId: string) {\n return registry.get(packId) ?? null;\n },\n list() {\n return Array.from(registry.keys());\n },\n };\n}\n"]}
|
|
@@ -11,16 +11,16 @@ import { DomainPack } from './contracts.js';
|
|
|
11
11
|
* - packId is kebab-case
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
interface DomainPackValidationIssue {
|
|
15
15
|
code: string;
|
|
16
|
-
severity: "error" | "warning";
|
|
17
16
|
message: string;
|
|
18
17
|
path: string;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
severity: "error" | "warning";
|
|
19
|
+
}
|
|
20
|
+
interface DomainPackValidationResult {
|
|
22
21
|
issues: DomainPackValidationIssue[];
|
|
23
|
-
|
|
22
|
+
valid: boolean;
|
|
23
|
+
}
|
|
24
24
|
declare function validateDomainPack(pack: DomainPack): DomainPackValidationResult;
|
|
25
25
|
|
|
26
26
|
export { type DomainPackValidationIssue, type DomainPackValidationResult, validateDomainPack };
|