Skip to content

Commit 7ba3a5e

Browse files
authored
Merge pull request #48 from interscript/feat/ml-imf-export
feat: expose the IMF registry from interscript/ml
2 parents ff16c0d + d92e92b commit 7ba3a5e

3 files changed

Lines changed: 18 additions & 1 deletion

File tree

‎package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "interscript",
3-
"version": "3.1.0",
3+
"version": "3.2.0",
44
"description": "Interscript TypeScript runtime — interoperable script conversion",
55
"type": "module",
66
"main": "./dist/index.js",

‎src/ml/index.ts‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,13 @@ export {
4646
type ManifestModelEntry,
4747
} from "./provision/manifest.js"
4848

49+
/**
50+
* The IMF v1 registry — models.yaml resolution over GitHub Releases
51+
* (sha256-sidecar-verified). This is the canonical way to load models
52+
* by id; `import { imf } from "interscript/ml"`.
53+
*/
54+
export * as imf from "./imf/index.js"
55+
4956
// Side-effect: register built-in model kinds. Adding a new model kind
5057
// = adding a new import here. Order doesn't matter.
5158
import "./models/rababa/index.js"

‎test/imf.test.ts‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,16 @@ describe("registry", () => {
212212
await expect(resolve("nope", url)).rejects.toThrow(/index sha256/)
213213
})
214214
})
215+
it("the public ./ml surface re-exports the IMF registry", async () => {
216+
const ml = await import("../src/ml/index.js")
217+
const imf = (ml as { imf?: Record<string, unknown> }).imf
218+
expect(imf).toBeDefined()
219+
expect(typeof imf!["resolve"]).toBe("function")
220+
expect(typeof imf!["IMFModel"]).toBe("function")
221+
expect(imf!["DEFAULT_INDEX_URL"]).toMatch(
222+
/github\.com\/interscript\/interscript-ml\/releases\/download\/index-v\d+\/models-index\.yaml/,
223+
)
224+
})
215225
})
216226

217227
const e2eZip = process.env["SECRYST_E2E_ZIP"]

0 commit comments

Comments
 (0)