63 lines
2.1 KiB
TypeScript
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),
|
|
}
|
|
}
|