interscript 3.3.0 → 4.0.0

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.
@@ -17,25 +17,6 @@
17
17
  export type { Model, ModelArtifacts, ModelFactory, ModelKind, ModelLoadParams, ModelRef, InferenceInputs, InferenceOutputs, InferenceSession, Tensor, } from "./types.js";
18
18
  export { registerModel, loadModel, registeredKinds, resetModels } from "./registry.js";
19
19
  export { createSession, detectBackend } from "./session/index.js";
20
- /**
21
- * @deprecated CDN-base override for the deprecated manifest-based
22
- * provisioner. IMF models resolve through the GitHub Releases
23
- * index instead.
24
- */
25
- export { setModelBase, getModelBase } from "./provision/base.js";
26
- /**
27
- * @deprecated The manifest-based provisioner (loose .onnx + sidecars
28
- * behind a version→URL manifest) is superseded by the IMF registry:
29
- * `import { imf } from "interscript/ml"` → `imf.resolve("<model-id>")`
30
- * (GitHub Releases index, sha256-verified zips). Kept for explicit-URL
31
- * provisioning and inline-manifest (test/air-gapped) use; no manifest
32
- * is published anymore.
33
- */
34
- export { loadManifest, resolveManifestEntry, artifactUrls, sidecarFilenames, setInlineManifest, setManifestUrl, type AssetVariant,
35
- /** @deprecated — see the block comment above */
36
- type Manifest,
37
- /** @deprecated — see the block comment above */
38
- type ManifestModelEntry, } from "./provision/manifest.js";
39
20
  /**
40
21
  * The IMF v1 registry — models.yaml resolution over GitHub Releases
41
22
  * (sha256-sidecar-verified). This is the canonical way to load models
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ml/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,YAAY,EACV,KAAK,EACL,cAAc,EACd,YAAY,EACZ,SAAS,EACT,eAAe,EACf,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,MAAM,GACP,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEtF,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEjE;;;;GAIG;AACH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEhE;;;;;;;GAOG;AACH,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,KAAK,YAAY;AACjB,gDAAgD;AAChD,KAAK,QAAQ;AACb,gDAAgD;AAChD,KAAK,kBAAkB,GACxB,MAAM,yBAAyB,CAAA;AAEhC;;;;GAIG;AACH,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AAIrC,OAAO,0BAA0B,CAAA;AACjC,OAAO,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ml/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,YAAY,EACV,KAAK,EACL,cAAc,EACd,YAAY,EACZ,SAAS,EACT,eAAe,EACf,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,MAAM,GACP,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEtF,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEjE;;;;GAIG;AACH,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AAIrC,OAAO,0BAA0B,CAAA;AACjC,OAAO,2BAA2B,CAAA"}
package/dist/ml/index.js CHANGED
@@ -16,21 +16,6 @@
16
16
  */
17
17
  export { registerModel, loadModel, registeredKinds, resetModels } from "./registry.js";
18
18
  export { createSession, detectBackend } from "./session/index.js";
19
- /**
20
- * @deprecated CDN-base override for the deprecated manifest-based
21
- * provisioner. IMF models resolve through the GitHub Releases
22
- * index instead.
23
- */
24
- export { setModelBase, getModelBase } from "./provision/base.js";
25
- /**
26
- * @deprecated The manifest-based provisioner (loose .onnx + sidecars
27
- * behind a version→URL manifest) is superseded by the IMF registry:
28
- * `import { imf } from "interscript/ml"` → `imf.resolve("<model-id>")`
29
- * (GitHub Releases index, sha256-verified zips). Kept for explicit-URL
30
- * provisioning and inline-manifest (test/air-gapped) use; no manifest
31
- * is published anymore.
32
- */
33
- export { loadManifest, resolveManifestEntry, artifactUrls, sidecarFilenames, setInlineManifest, setManifestUrl, } from "./provision/manifest.js";
34
19
  /**
35
20
  * The IMF v1 registry — models.yaml resolution over GitHub Releases
36
21
  * (sha256-sidecar-verified). This is the canonical way to load models
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ml/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAeH,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEtF,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEjE;;;;GAIG;AACH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEhE;;;;;;;GAOG;AACH,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,GAMf,MAAM,yBAAyB,CAAA;AAEhC;;;;GAIG;AACH,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AAErC,sEAAsE;AACtE,oDAAoD;AACpD,OAAO,0BAA0B,CAAA;AACjC,OAAO,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ml/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAeH,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEtF,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEjE;;;;GAIG;AACH,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AAErC,sEAAsE;AACtE,oDAAoD;AACpD,OAAO,0BAA0B,CAAA;AACjC,OAAO,2BAA2B,CAAA"}
@@ -6,15 +6,13 @@
6
6
  * browsers); falls back to filesystem reads in Node when given a
7
7
  * `file:` or relative URL.
8
8
  *
9
- * The manifest (version URL mapping) lives in `./manifest.ts`.
10
- * The base URL (CDN mirror override) lives in `./base.ts`.
11
- *
12
- * Adding a new provision source (e.g. IPFS, BitTorrent) = adding a
13
- * new provisioner file. Existing code never changes (OCP).
9
+ * The manifest-based resolution layer was removed in 4.0.0: models
10
+ * resolve through the IMF registry (`imf`, GitHub Releases index,
11
+ * sha256-verified) or an explicit `url` on the ModelRef.
14
12
  */
15
13
  import type { ModelArtifacts, ModelRef } from "../types.js";
16
14
  import type { InferenceSession } from "../session/index.js";
17
- import { type AssetFormat, type AssetVariant } from "./manifest.js";
15
+ import type { AssetFormat, AssetVariant } from "./types.js";
18
16
  export interface ProvisionedModel {
19
17
  readonly session: InferenceSession;
20
18
  readonly artifacts: ModelArtifacts;
@@ -50,10 +48,9 @@ export interface ProvisionOptions {
50
48
  readonly outputNames?: readonly string[];
51
49
  }
52
50
  /**
53
- * Provision a model from the manifest. Resolves the task version,
54
- * downloads the model file from the CDN (falls back to GitHub
55
- * Releases), opens an inference session, and fetches sidecar
56
- * artifacts (vocab, config, checksum) in parallel.
51
+ * Provision a model from an explicit URL. Downloads the model file,
52
+ * opens an inference session, and returns it with any artifacts the
53
+ * caller fetches separately.
57
54
  *
58
55
  * In Node, can read from the filesystem if `url` starts with `file:`
59
56
  * or is a relative path.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ml/provision/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAE3D,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,eAAe,CAAA;AAEtB,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAA;IAClC,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAA;CACnC;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAA;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;IAC7B,qEAAqE;IACrE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAA;IACxD;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACvC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACzC;AAED;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,QAAQ,EACb,IAAI,GAAE,gBAAqB,GAC1B,OAAO,CAAC,gBAAgB,CAAC,CAwC3B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ml/provision/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE3D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAA;IAClC,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAA;CACnC;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAA;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;IAC7B,qEAAqE;IACrE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAA;IACxD;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACvC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACzC;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,QAAQ,EACb,IAAI,GAAE,gBAAqB,GAC1B,OAAO,CAAC,gBAAgB,CAAC,CAwB3B"}
@@ -6,48 +6,29 @@
6
6
  * browsers); falls back to filesystem reads in Node when given a
7
7
  * `file:` or relative URL.
8
8
  *
9
- * The manifest (version URL mapping) lives in `./manifest.ts`.
10
- * The base URL (CDN mirror override) lives in `./base.ts`.
11
- *
12
- * Adding a new provision source (e.g. IPFS, BitTorrent) = adding a
13
- * new provisioner file. Existing code never changes (OCP).
9
+ * The manifest-based resolution layer was removed in 4.0.0: models
10
+ * resolve through the IMF registry (`imf`, GitHub Releases index,
11
+ * sha256-verified) or an explicit `url` on the ModelRef.
14
12
  */
15
13
  import { createSession } from "../session/index.js";
16
- import { artifactUrls, resolveManifestEntry, sidecarFilenames, } from "./manifest.js";
17
14
  /**
18
- * Provision a model from the manifest. Resolves the task version,
19
- * downloads the model file from the CDN (falls back to GitHub
20
- * Releases), opens an inference session, and fetches sidecar
21
- * artifacts (vocab, config, checksum) in parallel.
15
+ * Provision a model from an explicit URL. Downloads the model file,
16
+ * opens an inference session, and returns it with any artifacts the
17
+ * caller fetches separately.
22
18
  *
23
19
  * In Node, can read from the filesystem if `url` starts with `file:`
24
20
  * or is a relative path.
25
21
  */
26
22
  export async function provisionModel(ref, opts = {}) {
27
- const variant = opts.variant ?? "q8";
28
23
  const format = opts.format ?? "onnx";
29
24
  const webgpu = opts.webgpu ?? true;
30
- const modelUrl = ref.url ?? (await resolveModelUrl(ref, variant, format));
31
- const modelBuffer = await fetchBytesWithFallback(modelUrl);
32
- const sidecars = await resolveSidecarUrls(ref, variant, format);
25
+ if (!ref.url) {
26
+ throw new Error(`No url on ModelRef kind=${ref.kind} id=${ref.id}. Load models via ` +
27
+ `\`import { imf } from "interscript/ml"\` and \`imf.resolve("${ref.id}")\` ` +
28
+ `(GitHub Releases index, sha256-verified), or pass an explicit \`url\` on the ModelRef.`);
29
+ }
30
+ const modelBuffer = await fetchBytesWithFallback(ref.url);
33
31
  const artifacts = {};
34
- await Promise.all(sidecars.map(async ({ filename, url }) => {
35
- try {
36
- const bytes = await fetchBytesWithFallback(url);
37
- if (filename.endsWith(".json") ||
38
- filename.endsWith(".yaml") ||
39
- filename.endsWith(".yml") ||
40
- filename.endsWith(".sha256")) {
41
- artifacts[filename] = new TextDecoder().decode(bytes);
42
- }
43
- else {
44
- artifacts[filename] = bytes;
45
- }
46
- }
47
- catch {
48
- // Sidecars are optional; missing ones are skipped.
49
- }
50
- }));
51
32
  const sessionOpts = { webgpu };
52
33
  if (format === "tflite") {
53
34
  sessionOpts.runtime = "litert";
@@ -61,32 +42,6 @@ export async function provisionModel(ref, opts = {}) {
61
42
  const session = await createSession(modelBuffer, sessionOpts);
62
43
  return { session, artifacts };
63
44
  }
64
- async function resolveModelUrl(ref, variant, format) {
65
- const entry = await resolveManifestEntry(ref.kind, ref.id);
66
- if (!entry) {
67
- throw new Error(`No manifest entry for kind=${ref.kind} id=${ref.id}. The manifest-based ` +
68
- `provisioner is deprecated; load models via \`import { imf } from "interscript/ml"\` ` +
69
- `and \`imf.resolve("${ref.id}")\` (GitHub Releases index, sha256-verified), ` +
70
- `or pass an explicit \`url\` on the ModelRef.`);
71
- }
72
- const { primary } = artifactUrls(entry, variant, format);
73
- return primary;
74
- }
75
- async function resolveSidecarUrls(ref, variant, format) {
76
- // If the caller provided an explicit URL, skip manifest-based sidecar
77
- // resolution — they've taken control of provisioning.
78
- if (ref.url)
79
- return [];
80
- const entry = await resolveManifestEntry(ref.kind, ref.id);
81
- if (!entry)
82
- return [];
83
- const { primary, assetName } = artifactUrls(entry, variant, format);
84
- const base = primary.slice(0, primary.lastIndexOf("/") + 1);
85
- return sidecarFilenames(entry, variant, format).map((filename) => ({
86
- filename,
87
- url: `${base}${filename.startsWith(assetName) ? filename : filename}`,
88
- }));
89
- }
90
45
  /**
91
46
  * Fetch bytes from a URL. Tries the URL as-given; if it's the CDN
92
47
  * primary and fails, the caller can supply a fallback URL via the
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ml/provision/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ml/provision/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAuCnD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAa,EACb,OAAyB,EAAE;IAE3B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,MAAM,CAAA;IACpC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAA;IAElC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,2BAA2B,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE,oBAAoB;YAClE,+DAA+D,GAAG,CAAC,EAAE,OAAO;YAC5E,wFAAwF,CAC3F,CAAA;IACH,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACzD,MAAM,SAAS,GAAwC,EAAE,CAAA;IAEzD,MAAM,WAAW,GAA4B,EAAE,MAAM,EAAE,CAAA;IACvD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAA;QAC9B,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS;YAAE,WAAW,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAA;QAChG,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;YAAE,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAA;QAC3E,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;YAAE,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;IAChF,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;IAC7D,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAA;AAC/B,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,sBAAsB,CAAC,GAAW;IAC/C,uBAAuB;IACvB,IACE,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;QACvB,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,EACjF,CAAC;QACD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAA;QACrD,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;QACzD,OAAO,IAAI,UAAU,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;IAC7C,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;IAC5B,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,KAAK,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAA;IAC5E,CAAC;IACD,OAAO,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAA;AAChD,CAAC"}
@@ -0,0 +1,3 @@
1
+ export type AssetVariant = "fp32" | "q8" | "q4" | "fp16";
2
+ export type AssetFormat = "onnx" | "tflite";
3
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ml/provision/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAA;AACxD,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,QAAQ,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/ml/provision/types.ts"],"names":[],"mappings":""}
@@ -115,13 +115,18 @@ async function executeFuncallAsync(rule, ctx) {
115
115
  ctx.current = await rababa(ctx.current, rule.kwargs);
116
116
  return;
117
117
  }
118
- // Other ASYNC_FUNCTIONS (secryst, etc.) still go through the generic
119
- // ML registry.
118
+ // Other ASYNC_FUNCTIONS (secryst, etc.) resolve model ids through
119
+ // the IMF registry (GitHub Releases index, sha256-verified).
120
120
  if (ASYNC_FUNCTIONS.has(rule.name)) {
121
- const { loadModel } = await import("../ml/index.js");
121
+ const { imf } = await import("../ml/index.js");
122
122
  const modelId = (rule.kwargs?.config ?? rule.kwargs?.model ?? "default");
123
- const model = await loadModel({ kind: rule.name, id: modelId });
124
- ctx.current = await model.transform(ctx.current);
123
+ const model = await imf.IMFModel.load(modelId);
124
+ try {
125
+ ctx.current = await model.translate(ctx.current);
126
+ }
127
+ finally {
128
+ await model.dispose();
129
+ }
125
130
  return;
126
131
  }
127
132
  // Fall back to the sync funcall executor for all other functions.
@@ -1 +1 @@
1
- {"version":3,"file":"interpreter.js","sourceRoot":"","sources":["../../src/runtime/interpreter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interpreter.js","sourceRoot":"","sources":["../../src/runtime/interpreter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "interscript",
3
- "version": "3.3.0",
3
+ "version": "4.0.0",
4
4
  "description": "Interscript TypeScript runtime — interoperable script conversion",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,14 +0,0 @@
1
- /**
2
- * Base URL for model artifacts. Owned here so every provisioner
3
- * (HTTP fetcher, manifest loader, future IPFS/Bittorrent) reads
4
- * from the same source. No circular deps.
5
- *
6
- * Default points at the jsDelivr mirror of `interscript/ml-models`
7
- * — works without npm install, edge-cached globally.
8
- *
9
- * Override at runtime with `setModelBase()` for self-hosted mirrors,
10
- * air-gapped envs, or staging deployments.
11
- */
12
- export declare function setModelBase(url: string): void;
13
- export declare function getModelBase(): string;
14
- //# sourceMappingURL=base.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/ml/provision/base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC"}
@@ -1,19 +0,0 @@
1
- /**
2
- * Base URL for model artifacts. Owned here so every provisioner
3
- * (HTTP fetcher, manifest loader, future IPFS/Bittorrent) reads
4
- * from the same source. No circular deps.
5
- *
6
- * Default points at the jsDelivr mirror of `interscript/ml-models`
7
- * — works without npm install, edge-cached globally.
8
- *
9
- * Override at runtime with `setModelBase()` for self-hosted mirrors,
10
- * air-gapped envs, or staging deployments.
11
- */
12
- let modelBase = "https://cdn.jsdelivr.net/gh/interscript/ml-models@main/npm/models";
13
- export function setModelBase(url) {
14
- modelBase = url.replace(/\/$/, "");
15
- }
16
- export function getModelBase() {
17
- return modelBase;
18
- }
19
- //# sourceMappingURL=base.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/ml/provision/base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,IAAI,SAAS,GAAG,mEAAmE,CAAA;AAEnF,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AACpC,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,SAAS,CAAA;AAClB,CAAC"}
@@ -1,78 +0,0 @@
1
- /**
2
- * Manifest-driven model resolution. DEPRECATED — superseded by the IMF
3
- * registry (`src/ml/imf/`, published at `imf` from "interscript/ml"):
4
- * models.yaml on GitHub Releases with sha256 sidecar verification.
5
- *
6
- * No manifest is published anymore (the `@interscript/models` npm
7
- * package was never released; the CDN manifest.json URL is dead).
8
- * This module remains for explicit-URL provisioning and
9
- * inline-manifest (test / air-gapped) use.
10
- *
11
- * Resolution order for the manifest itself:
12
- * 1. Programmatically injected via `setManifestUrl()` or
13
- * `setInlineManifest()` (tests, air-gapped envs).
14
- * 2. A remote JSON URL on the CDN (`manifest.json` next to the
15
- * release assets).
16
- */
17
- /**
18
- * Per-task manifest entry. Matches `npm/models/manifest.json` shape.
19
- */
20
- export interface ManifestModelEntry {
21
- readonly status: "preview" | "stable" | "deprecated";
22
- readonly version: string;
23
- readonly note?: string;
24
- readonly cdn_base: string;
25
- readonly github_base: string;
26
- }
27
- export interface Manifest {
28
- readonly schema_version: number;
29
- readonly models: Readonly<Record<string, ManifestModelEntry>>;
30
- }
31
- /**
32
- * Asset variants a release may ship. `fp32` (no suffix) is the
33
- * default; q8 is the browser-optimized default.
34
- */
35
- export type AssetVariant = "fp32" | "q8" | "q4" | "fp16";
36
- /**
37
- * Serialization format. ONNX is the historical default; LiteRT (.tflite)
38
- * is the 2026 alternative backed by Google's LiteRT.js runtime.
39
- *
40
- * The two formats are orthogonal to `AssetVariant` — both can be
41
- * quantized to q8, both can be fp32. The runtime that loads the file
42
- * is what differs.
43
- */
44
- export type AssetFormat = "onnx" | "tflite";
45
- export declare function setInlineManifest(m: Manifest | null): void;
46
- export declare function setManifestUrl(url: string | null): void;
47
- /**
48
- * Load the manifest. Cached after first call; bust the cache with
49
- * `setInlineManifest()` or `setManifestUrl()`.
50
- */
51
- export declare function loadManifest(): Promise<Manifest>;
52
- /**
53
- * Resolve a `(kind, id)` ref to a manifest entry. The `id` field on
54
- * a ModelRef carries the task name (e.g. "rababa_arabic"); the kind
55
- * is redundant but kept for backwards compatibility.
56
- *
57
- * Returns `null` if the task isn't in the manifest. Callers decide
58
- * whether that's an error or a "use bundled fallback" signal.
59
- */
60
- export declare function resolveManifestEntry(kind: string, id: string): Promise<ManifestModelEntry | null>;
61
- /**
62
- * Build concrete artifact URLs for a model. Prefers the CDN base;
63
- * GitHub Releases base is the fallback (slower, but no CDN cache).
64
- *
65
- * Both URLs use the same asset naming convention so a downloader
66
- * can verify checksums identically against either source.
67
- */
68
- export declare function artifactUrls(entry: ManifestModelEntry, variant?: AssetVariant, format?: AssetFormat): {
69
- primary: string;
70
- fallback: string;
71
- assetName: string;
72
- };
73
- /**
74
- * Sidecar artifacts that ship with every release. These names match
75
- * the release pipeline in `ml-models/.github/workflows/release.yml`.
76
- */
77
- export declare function sidecarFilenames(entry: ManifestModelEntry, variant?: AssetVariant, format?: AssetFormat): readonly string[];
78
- //# sourceMappingURL=manifest.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../src/ml/provision/manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,YAAY,CAAA;IACpD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAA;CAC9D;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAA;AAExD;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,QAAQ,CAAA;AAkB3C,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI,CAG1D;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAGvD;AAWD;;;GAGG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,QAAQ,CAAC,CAoBtD;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAIpC;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,kBAAkB,EACzB,OAAO,GAAE,YAAmB,EAC5B,MAAM,GAAE,WAAoB,GAC3B;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAS1D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,kBAAkB,EACzB,OAAO,GAAE,YAAmB,EAC5B,MAAM,GAAE,WAAoB,GAC3B,SAAS,MAAM,EAAE,CAGnB"}
@@ -1,124 +0,0 @@
1
- /**
2
- * Manifest-driven model resolution. DEPRECATED — superseded by the IMF
3
- * registry (`src/ml/imf/`, published at `imf` from "interscript/ml"):
4
- * models.yaml on GitHub Releases with sha256 sidecar verification.
5
- *
6
- * No manifest is published anymore (the `@interscript/models` npm
7
- * package was never released; the CDN manifest.json URL is dead).
8
- * This module remains for explicit-URL provisioning and
9
- * inline-manifest (test / air-gapped) use.
10
- *
11
- * Resolution order for the manifest itself:
12
- * 1. Programmatically injected via `setManifestUrl()` or
13
- * `setInlineManifest()` (tests, air-gapped envs).
14
- * 2. A remote JSON URL on the CDN (`manifest.json` next to the
15
- * release assets).
16
- */
17
- import { getModelBase } from "./base.js";
18
- const VARIANT_SUFFIX = {
19
- fp32: "",
20
- q8: "-q8",
21
- q4: "-q4",
22
- fp16: "-fp16",
23
- };
24
- const FORMAT_EXTENSION = {
25
- onnx: ".onnx",
26
- tflite: ".tflite",
27
- };
28
- let cachedManifest = null;
29
- let inlineManifest = null;
30
- let manifestUrlOverride = null;
31
- export function setInlineManifest(m) {
32
- inlineManifest = m;
33
- cachedManifest = null;
34
- }
35
- export function setManifestUrl(url) {
36
- manifestUrlOverride = url;
37
- cachedManifest = null;
38
- }
39
- /**
40
- * Default manifest URL — sits next to release assets on the CDN.
41
- * Points at the jsDelivr mirror of the ml-models repo so it works
42
- * with zero npm install.
43
- */
44
- function defaultManifestUrl() {
45
- return `${getModelBase()}/npm/models/manifest.json`;
46
- }
47
- /**
48
- * Load the manifest. Cached after first call; bust the cache with
49
- * `setInlineManifest()` or `setManifestUrl()`.
50
- */
51
- export async function loadManifest() {
52
- if (cachedManifest)
53
- return cachedManifest;
54
- if (inlineManifest) {
55
- cachedManifest = inlineManifest;
56
- return cachedManifest;
57
- }
58
- const url = manifestUrlOverride ?? defaultManifestUrl();
59
- const res = await fetch(url);
60
- if (!res.ok) {
61
- throw new Error(`Failed to load model manifest from ${url}: ${res.status} ${res.statusText}. ` +
62
- `The manifest-based provisioner is deprecated and no manifest is published; ` +
63
- `load models via \`import { imf } from "interscript/ml"\` and \`imf.resolve("<model-id>")\` ` +
64
- `(GitHub Releases index, sha256-verified), or pass an explicit \`url\` on the ModelRef.`);
65
- }
66
- const json = (await res.json());
67
- cachedManifest = json;
68
- return json;
69
- }
70
- /**
71
- * Resolve a `(kind, id)` ref to a manifest entry. The `id` field on
72
- * a ModelRef carries the task name (e.g. "rababa_arabic"); the kind
73
- * is redundant but kept for backwards compatibility.
74
- *
75
- * Returns `null` if the task isn't in the manifest. Callers decide
76
- * whether that's an error or a "use bundled fallback" signal.
77
- */
78
- export async function resolveManifestEntry(kind, id) {
79
- const manifest = await loadManifest();
80
- const taskKey = id.startsWith(`${kind}_`) ? id : `${kind}_${id}`;
81
- return manifest.models[taskKey] ?? manifest.models[id] ?? null;
82
- }
83
- /**
84
- * Build concrete artifact URLs for a model. Prefers the CDN base;
85
- * GitHub Releases base is the fallback (slower, but no CDN cache).
86
- *
87
- * Both URLs use the same asset naming convention so a downloader
88
- * can verify checksums identically against either source.
89
- */
90
- export function artifactUrls(entry, variant = "q8", format = "onnx") {
91
- const assetName = assetNameFor(entry, variant, format);
92
- const versionedCdn = entry.cdn_base.replace("{version}", entry.version);
93
- const versionedGithub = entry.github_base.replace("{version}", entry.version);
94
- return {
95
- primary: `${versionedCdn}${assetName}`,
96
- fallback: `${versionedGithub}${assetName}`,
97
- assetName,
98
- };
99
- }
100
- /**
101
- * Sidecar artifacts that ship with every release. These names match
102
- * the release pipeline in `ml-models/.github/workflows/release.yml`.
103
- */
104
- export function sidecarFilenames(entry, variant = "q8", format = "onnx") {
105
- const asset = assetNameFor(entry, variant, format);
106
- return [`${asset}.sha256`, "vocab.json", "config.json"];
107
- }
108
- function assetNameFor(entry, variant, format = "onnx") {
109
- const task = taskNameFromBases(entry);
110
- return `${task}${VARIANT_SUFFIX[variant]}${FORMAT_EXTENSION[format]}`;
111
- }
112
- /**
113
- * Best-effort task name extraction from `cdn_base`/`github_base`.
114
- * Both bases end with `<task>-v{version}/`, so we slice off the
115
- * trailing version segment.
116
- */
117
- function taskNameFromBases(entry) {
118
- const lastSegment = entry.github_base.split("/").filter(Boolean).pop() ?? "";
119
- const suffix = "-v{version}";
120
- if (lastSegment.endsWith(suffix))
121
- return lastSegment.slice(0, -suffix.length);
122
- throw new Error(`Cannot extract task name from manifest entry. github_base=${entry.github_base}`);
123
- }
124
- //# sourceMappingURL=manifest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/ml/provision/manifest.ts"],"names":[],"mappings":"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"}