ConusAI vendor v0.1.0-beta.114
ci / gate (push) Waiting to run

This commit is contained in:
ConusAI vendor v0.1.0-beta.114
2026-11-14 09:56:45 +00:00
commit 1ce8d23c35
867 changed files with 122104 additions and 0 deletions
+48
View File
@@ -0,0 +1,48 @@
// SPDX-License-Identifier: LicenseRef-ConusAI-Template-1.0
// Public, bounded source contract. Selection is admission; adoption is retained custody.
export const OPTIONAL_MODULE_IDS = [
"activities",
"archive",
"catalog",
"crm",
"inventory",
"invoicing",
"ledger",
"documents",
"knowledge",
"agent",
"guides",
"support",
] as const
export type OptionalModuleId = (typeof OPTIONAL_MODULE_IDS)[number]
export interface ModuleInclusion {
readonly schemaVersion: 1
readonly selected: readonly OptionalModuleId[]
readonly everAdopted: readonly OptionalModuleId[]
}
export function validateInclusion(value: unknown): ModuleInclusion {
if (!value || typeof value !== "object" || Array.isArray(value)) throw new Error("Invalid module inclusion record")
const record = value as Record<string, unknown>
if (Object.keys(record).sort().join(",") !== "everAdopted,schemaVersion,selected" || record.schemaVersion !== 1) {
throw new Error("Unsupported module inclusion record; explicit reviewed adoption required")
}
for (const key of ["selected", "everAdopted"] as const) {
const ids = record[key]
if (
!Array.isArray(ids) ||
ids.length > OPTIONAL_MODULE_IDS.length ||
new Set(ids).size !== ids.length ||
ids.some((id) => !OPTIONAL_MODULE_IDS.includes(id))
)
throw new Error("Invalid module inclusion IDs")
}
const result = value as ModuleInclusion
if (result.selected.some((id) => !result.everAdopted.includes(id)))
throw new Error("Selected module lacks custody record")
return result
}
import record from "./inclusion.json" with { type: "json" }
export const moduleInclusion = validateInclusion(record)
export const moduleSelected = (id: OptionalModuleId): boolean => moduleInclusion.selected.includes(id)
export const moduleAdopted = (id: OptionalModuleId): boolean => moduleInclusion.everAdopted.includes(id)