Files
template-app/test/support/native-readiness.ts
T
2026-11-14 09:56:45 +00:00

63 lines
2.1 KiB
TypeScript

// SPDX-License-Identifier: LicenseRef-ConusAI-Template-1.0
// Explicit synthetic eligibility for local fake-provider fixtures only. No crypto/live proof.
import type { ServiceReadiness } from "@conusai-kit/core"
import type { OptionalModuleId } from "../../modules/inclusion.js"
export const syntheticNativeReadiness: ServiceReadiness = {
profile: "postgres",
async observe() {
return {
desiredGeneration: 1,
observedGeneration: 1,
observedAt: Date.now(),
installed: true,
enabled: true,
entitled: true,
authorized: true,
configured: true,
compatible: true,
dependenciesReady: true,
partitionBound: "unknown",
ready: true,
nativeAuthority: {
kind: "verified_release_set_v1",
policyEpoch: 1,
expectedDescriptorDigest: `sha256:${"a".repeat(64)}`,
observedDescriptorDigest: `sha256:${"a".repeat(64)}`,
expectedSourceCommit: "b".repeat(40),
observedSourceCommit: "b".repeat(40),
authorityCheckedAt: Date.now(),
},
}
},
}
/**
* The optional modules whose source this app holds, as `modules/index.ts` composes them. `kit template:prune
* --without` removes a line with its module, so a journey that asks for a pruned module runs without it.
*/
const WITH_SOURCE: readonly OptionalModuleId[] = [
"activities",
"archive",
"catalog",
"crm",
"inventory",
"invoicing",
"ledger",
"documents", // kit:documents
"knowledge", // kit:knowledge
"agent", // kit:agent
"guides", // kit:guides
"support", // kit:support
]
/** A journey opts in only to the modules it exercises, of those this app has; unknown IDs remain off. */
export function selectedModules(requested: readonly OptionalModuleId[]) {
const selected = requested.filter((id) => WITH_SOURCE.includes(id))
const record = { schemaVersion: 1 as const, selected, everAdopted: selected }
return {
moduleInclusion: record,
moduleSelected: (id: OptionalModuleId) => selected.includes(id),
moduleAdopted: (id: OptionalModuleId) => record.everAdopted.includes(id),
}
}