From 6e8707b262664d942348556fa623f9dc8e80d2ff Mon Sep 17 00:00:00 2001 From: mborodii-prog Date: Wed, 23 Sep 2026 19:26:27 +0300 Subject: [PATCH] Support many-to-one catalog bindings in Registry 0.3.1 --- README.md | 5 +- registry/CONTRACT.md | 36 +- registry/README.md | 12 + registry/catalog/api-core.json | 28 +- registry/reports/catalog-reconciliation.json | 51 +- registry/reports/catalog-reconciliation.md | 24 +- registry/reports/runtime-reconciliation.json | 2 +- registry/reports/runtime-reconciliation.md | 2 +- registry/schema/catalog-snapshot.schema.json | 1 + wrangles-docs/scripts/compile-registry.cjs | 118 +- .../scripts/compile-registry.test.cjs | 128 +- .../generate-playground-registry.test.cjs | 4 +- .../registryCatalog.generated.js | 2 +- .../static/registry/catalog/api-core.json | 28 +- .../static/registry/catalog/bindings.json | 1108 +++++++++++++++++ .../registry/catalog/reconciliation.json | 51 +- .../static/registry/contracts/accordion.json | 2 +- .../static/registry/contracts/batch.json | 2 +- .../static/registry/contracts/classify.json | 2 +- .../registry/contracts/clean-whitespaces.json | 2 +- .../registry/contracts/compare/lists.json | 2 +- .../registry/contracts/compare/text.json | 2 +- .../registry/contracts/compute/case-when.json | 2 +- .../compute/score-search-results.json | 2 +- .../static/registry/contracts/concurrent.json | 2 +- .../registry/contracts/convert/case.json | 2 +- .../registry/contracts/convert/data-type.json | 2 +- .../convert/fraction-to-decimal.json | 2 +- .../registry/contracts/convert/from-json.json | 2 +- .../registry/contracts/convert/from-yaml.json | 2 +- .../registry/contracts/convert/to-json.json | 2 +- .../registry/contracts/convert/to-yaml.json | 2 +- .../static/registry/contracts/copy.json | 2 +- .../registry/contracts/create/bins.json | 2 +- .../registry/contracts/create/column.json | 2 +- .../registry/contracts/create/embeddings.json | 2 +- .../registry/contracts/create/guid.json | 2 +- .../registry/contracts/create/hash.json | 2 +- .../registry/contracts/create/index.json | 2 +- .../registry/contracts/create/jinja.json | 2 +- .../registry/contracts/create/uuid.json | 2 +- .../registry/contracts/date-calculator.json | 2 +- .../static/registry/contracts/drop.json | 2 +- .../static/registry/contracts/explode.json | 2 +- .../registry/contracts/extract/address.json | 2 +- .../static/registry/contracts/extract/ai.json | 2 +- .../contracts/extract/attributes.json | 2 +- .../registry/contracts/extract/brackets.json | 2 +- .../registry/contracts/extract/codes.json | 2 +- .../registry/contracts/extract/custom.json | 2 +- .../contracts/extract/date-properties.json | 2 +- .../contracts/extract/date-range.json | 2 +- .../registry/contracts/extract/html.json | 2 +- .../contracts/extract/properties.json | 2 +- .../registry/contracts/extract/regex.json | 2 +- .../static/registry/contracts/filter.json | 2 +- .../registry/contracts/format/dates.json | 2 +- .../static/registry/contracts/format/pad.json | 2 +- .../registry/contracts/format/prefix.json | 2 +- .../contracts/format/price-breaks.json | 2 +- .../contracts/format/remove-duplicates.json | 2 +- .../contracts/format/significant-figures.json | 2 +- .../registry/contracts/format/suffix.json | 2 +- .../registry/contracts/format/trim.json | 2 +- .../registry/contracts/generate/ai.json | 2 +- .../registry/contracts/huggingface.json | 2 +- .../static/registry/contracts/log.json | 2 +- .../static/registry/contracts/lookup.json | 2 +- .../static/registry/contracts/math.json | 2 +- .../static/registry/contracts/maths.json | 2 +- .../static/registry/contracts/matrix.json | 2 +- .../registry/contracts/merge/coalesce.json | 2 +- .../registry/contracts/merge/concatenate.json | 2 +- .../contracts/merge/dictionaries.json | 2 +- .../contracts/merge/key-value-pairs.json | 2 +- .../registry/contracts/merge/lists.json | 2 +- .../registry/contracts/merge/to-dict.json | 2 +- .../registry/contracts/merge/to-list.json | 2 +- .../static/registry/contracts/python.json | 2 +- .../static/registry/contracts/recipe.json | 2 +- .../static/registry/contracts/reindex.json | 2 +- .../registry/contracts/remove-words.json | 2 +- .../static/registry/contracts/rename.json | 2 +- .../static/registry/contracts/replace.json | 2 +- .../static/registry/contracts/round.json | 2 +- .../registry/contracts/search/find-links.json | 2 +- .../search/retrieve-link-content.json | 2 +- .../registry/contracts/select/columns.json | 2 +- .../contracts/select/dictionary-element.json | 2 +- .../registry/contracts/select/element.json | 2 +- .../registry/contracts/select/group-by.json | 2 +- .../registry/contracts/select/head.json | 2 +- .../contracts/select/highest-confidence.json | 2 +- .../registry/contracts/select/left.json | 2 +- .../registry/contracts/select/length.json | 2 +- .../contracts/select/list-element.json | 2 +- .../registry/contracts/select/right.json | 2 +- .../registry/contracts/select/sample.json | 2 +- .../registry/contracts/select/substring.json | 2 +- .../registry/contracts/select/tail.json | 2 +- .../registry/contracts/select/threshold.json | 2 +- .../static/registry/contracts/similarity.json | 2 +- .../static/registry/contracts/sort.json | 2 +- .../registry/contracts/split/dictionary.json | 2 +- .../static/registry/contracts/split/list.json | 2 +- .../static/registry/contracts/split/text.json | 2 +- .../registry/contracts/split/tokenize.json | 2 +- .../static/registry/contracts/sql.json | 2 +- .../registry/contracts/standardize.json | 2 +- .../registry/contracts/standardize/clean.json | 2 +- .../contracts/standardize/custom.json | 2 +- .../static/registry/contracts/translate.json | 2 +- .../static/registry/contracts/transpose.json | 2 +- .../static/registry/contracts/try.json | 2 +- wrangles-docs/static/registry/index.md | 2 +- wrangles-docs/static/registry/manifest.json | 219 ++-- .../registry/runtime/reconciliation.json | 2 +- .../schema/catalog-snapshot.schema.json | 1 + .../schema/wrangle-contract.schema.json | 2 +- 119 files changed, 1760 insertions(+), 262 deletions(-) create mode 100644 wrangles-docs/static/registry/catalog/bindings.json diff --git a/README.md b/README.md index 1dd91bc..0d7c2d6 100644 --- a/README.md +++ b/README.md @@ -82,8 +82,9 @@ ownership details are design decisions tracked in #32. ### One catalog, explicit kinds and bindings API Core now uses `wrangles_catalog` as the central identity table and links -saved rows through `models.catalog_id`. The current public snapshot contains 99 -wrangle rows: 98 map to callable Registry entries, while `map` remains a +saved rows through `models.catalog_id`. The current public snapshot contains 101 +wrangle rows: 100 bind to 98 callable Registry entries (the three lookup catalog +keys share one `lookup` contract), while `map` remains a catalog-only row until it has an explicit executable or concept classification. Connectors, run capabilities, typed relationships and selected reusable concepts remain later additions to the same catalog design. diff --git a/registry/CONTRACT.md b/registry/CONTRACT.md index bc9a6e2..d130669 100644 --- a/registry/CONTRACT.md +++ b/registry/CONTRACT.md @@ -52,9 +52,33 @@ and additional guidance. API Core allocates `catalog_id` as a positive PostgreSQL `BIGINT`. Every JSON artifact represents it as a decimal string so JavaScript consumers cannot lose integer precision. The compiler joins catalog rows to callable entries by exact -`wrangle_key`; missing rows, duplicate identities, key conflicts, kind -conflicts, and title conflicts fail the build. The compiler never allocates or -changes catalog IDs. +`wrangle_key`. Each callable requires one canonical row whose `catalog_key` +equals that callable key. Its ID remains the contract/page identity, independent +of snapshot order. Additional catalog keys may share the same `wrangle_key`: +for example, `lookup.key` and `lookup.semantic` both bind to the `lookup` contract. +Catalog IDs and catalog keys remain unique; duplicate identities/keys, missing +canonical rows and incompatible kinds fail the build. Canonical titles must +match Docs; additional bindings retain their own catalog titles and statuses. +The compiler never allocates or changes catalog IDs. + +Registry 0.3.1 exposes these mappings through `manifest.artifacts.catalog_bindings`, +the checksummed `/registry/catalog/bindings.json` artifact. Its versioned envelope +contains `format: wrangles-catalog-bindings`, `format_version: 0.1`, +`registry_version`, `entry_count`, and `entries`. Each binding preserves +`catalog_id`, `catalog_key`, `catalog_status`, `kind`, and `title`, and provides +`wrangle_key`, `canonical_catalog_id`, `contract_json`, and `route`. +Only bindings to public documented callables enter this artifact; catalog-only +entries remain in the reconciliation report. The pinned snapshot must already +be approved for public export, as before; this change adds no publication policy. + +A consumer preserves the selected binding's catalog ID/key while fetching its +shared contract. It uses `wrangle_key` in recipe syntax and obtains the saved +`model_id` separately from authorized model metadata. Bindings contain no model +ID and do not grant execution or Recipe Writer eligibility. They create neither +new callable keys nor duplicate contracts/pages. `manifest.entry_count` and +`catalog.callable_entry_count` count callables; `catalog.binding_count` counts +published bindings. Existing contract 0.3 readers can still use canonical entries; +selection by subtype catalog ID requires the new bindings artifact. The source Markdown's `id` field is the previous documentation UUID. Contract 0.3 publishes it as nullable `legacy_id` for migration tracing only. It is not a @@ -326,7 +350,7 @@ terminated by one newline (`utf8-newline-separated-sorted-v1`). ## Versioning and lifecycle -The pre-production Registry version is `0.3.0`. Version `0.2.0` makes the +The pre-production Registry version is `0.3.1`. Version `0.2.0` makes the fail-closed Recipe Writer eligibility decision required for every entry and adds the compiled-contract and integrity metadata consumed by Registry clients. Version `0.2.1` introduces optional column-role and cardinality metadata plus @@ -337,6 +361,10 @@ contract's canonical UUID field with string-valued `catalog_id` and `catalog_key`, and retains old UUIDs only as `legacy_id`. It also publishes catalog reconciliation as a checksummed bundle artifact. Source Markdown stays on schema 0.2 during this migration; generated contracts use contract 0.3. +Version `0.3.1` adds the checksummed many-to-one catalog bindings artifact while +preserving canonical contract identities, recipe keys and the 88-key Recipe +Writer baseline. Catalog reconciliation records additional bindings separately +from its existing canonical matches, including their status/path differences. A production release will contain: diff --git a/registry/README.md b/registry/README.md index e3b23eb..8865e1a 100644 --- a/registry/README.md +++ b/registry/README.md @@ -65,6 +65,18 @@ npm run build and replaces the sanitized snapshot deterministically. It does not read or publish the `models` table. +Multiple catalog rows may point to one `wrangle_key`. Keep a canonical row with +`catalog_key = wrangle_key` (for example `81 / lookup / lookup`) and add subtype +rows separately (`101 / lookup.key / lookup`, `102 / lookup.semantic / lookup`). +The compiler retains one callable contract/page and publishes all corresponding +IDs and keys in the checksummed `catalog/bindings.json` artifact, linked from +the manifest. These are catalog selections, not additional executable aliases. +Refresh the snapshot from authorized catalog metadata; do not invent missing +titles, statuses or timestamps from a partial query result. The checked-in +snapshot contains the original 99-row export plus the two complete lookup +rows supplied by the catalog owner, updated on 2026-09-21. This is not evidence +that every newer row in the live catalog has been exported. + `compile:registry` produces the Docusaurus pages and public raw artifacts. `check:registry` fails when the source is invalid or the committed generated files are stale. diff --git a/registry/catalog/api-core.json b/registry/catalog/api-core.json index 5294766..6dde7eb 100644 --- a/registry/catalog/api-core.json +++ b/registry/catalog/api-core.json @@ -6,9 +6,9 @@ "system": "API Core", "repository": "https://github.com/wrangleworks/API-Core", "table": "public.wrangles_catalog", - "data_updated_through": "2026-09-16T08:44:50.975472Z" + "data_updated_through": "2026-09-21T09:29:40.543681Z" }, - "entry_count": 99, + "entry_count": 101, "entries": [ { "catalog_id": "1", @@ -1197,6 +1197,30 @@ "source": "registry-docs", "created_at": "2026-09-16T08:44:50.975472Z", "updated_at": "2026-09-16T08:44:50.975472Z" + }, + { + "catalog_id": "101", + "catalog_key": "lookup.key", + "kind": "wrangle", + "wrangle_key": "lookup", + "title": "Lookup Key", + "registry_path": null, + "status": "active", + "source": "registry-docs", + "created_at": "2026-09-21T09:29:40.543681Z", + "updated_at": "2026-09-21T09:29:40.543681Z" + }, + { + "catalog_id": "102", + "catalog_key": "lookup.semantic", + "kind": "wrangle", + "wrangle_key": "lookup", + "title": "Lookup Semantic", + "registry_path": null, + "status": "active", + "source": "registry-docs", + "created_at": "2026-09-21T09:29:40.543681Z", + "updated_at": "2026-09-21T09:29:40.543681Z" } ] } diff --git a/registry/reports/catalog-reconciliation.json b/registry/reports/catalog-reconciliation.json index 00ed66d..105c0cf 100644 --- a/registry/reports/catalog-reconciliation.json +++ b/registry/reports/catalog-reconciliation.json @@ -1,18 +1,21 @@ { "format": "wrangles-catalog-reconciliation", "format_version": "0.1", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "catalog_source": { "system": "API Core", "repository": "https://github.com/wrangleworks/API-Core", "table": "public.wrangles_catalog", - "data_updated_through": "2026-09-16T08:44:50.975472Z" + "data_updated_through": "2026-09-21T09:29:40.543681Z" }, "summary": { - "catalog_entries": 99, + "catalog_entries": 101, "registry_entries": 98, "matched_entries": 98, "conflicting_entries": 0, + "additional_binding_count": 2, + "conflicting_bindings": 0, + "additional_bindings_with_status_differences": 0, "entries_with_status_differences": 2, "entries_without_catalog_registry_path": 98, "catalog_only_entries": 1 @@ -1891,6 +1894,48 @@ ] } ], + "additional_bindings": [ + { + "catalog_id": "101", + "catalog_key": "lookup.key", + "wrangle_key": "lookup", + "canonical_catalog_id": "81", + "title": "Lookup Key", + "catalog_status": "active", + "registry_status": "active", + "expected_registry_path": "registry/wrangles/_root/lookup.md", + "catalog_registry_path": null, + "status": "matched", + "conflicts": [], + "differences": [ + { + "code": "registry_path_missing", + "expected": "registry/wrangles/_root/lookup.md", + "catalog": null + } + ] + }, + { + "catalog_id": "102", + "catalog_key": "lookup.semantic", + "wrangle_key": "lookup", + "canonical_catalog_id": "81", + "title": "Lookup Semantic", + "catalog_status": "active", + "registry_status": "active", + "expected_registry_path": "registry/wrangles/_root/lookup.md", + "catalog_registry_path": null, + "status": "matched", + "conflicts": [], + "differences": [ + { + "code": "registry_path_missing", + "expected": "registry/wrangles/_root/lookup.md", + "catalog": null + } + ] + } + ], "catalog_only_entries": [ { "catalog_id": "99", diff --git a/registry/reports/catalog-reconciliation.md b/registry/reports/catalog-reconciliation.md index f448320..8c00d8d 100644 --- a/registry/reports/catalog-reconciliation.md +++ b/registry/reports/catalog-reconciliation.md @@ -3,20 +3,32 @@ Generated file. Do not edit directly. - Catalog source: `public.wrangles_catalog` -- Catalog data updated through: `2026-09-16T08:44:50.975472Z` -- Catalog rows: 99 +- Catalog data updated through: `2026-09-21T09:29:40.543681Z` +- Catalog rows: 101 - Callable Registry entries: 98 - Identity matches: 98 - Identity conflicts: 0 -- Lifecycle/status differences: 2 -- Missing catalog registry paths: 98 +- Additional catalog bindings: 2 +- Additional binding conflicts: 0 +- Canonical lifecycle/status differences: 2 +- Additional binding lifecycle/status differences: 0 +- Missing canonical catalog registry paths: 98 - Catalog-only rows: 1 -The compiler joins callable entries to API Core by `wrangle_key`. A missing row, -duplicate identity, key mismatch, kind mismatch, or title mismatch fails the build. +The canonical row has `catalog_key = wrangle_key`; additional catalog keys may +share its callable. Canonical identity never depends on snapshot order. A missing +canonical row, duplicate identity/key, or incompatible kind fails the build. +Canonical titles must match Docs; additional bindings retain their own titles. Status and path differences remain visible migration work and do not silently change the executable contract. +## Additional bindings + +| Catalog ID | Catalog key | Wrangle key | Canonical catalog ID | +| --- | --- | --- | --- | +| `101` | `lookup.key` | `lookup` | `81` | +| `102` | `lookup.semantic` | `lookup` | `81` | + ## Status differences | Catalog ID | Wrangle key | API Core status | Registry lifecycle | diff --git a/registry/reports/runtime-reconciliation.json b/registry/reports/runtime-reconciliation.json index bf96a15..d3c5c13 100644 --- a/registry/reports/runtime-reconciliation.json +++ b/registry/reports/runtime-reconciliation.json @@ -1,7 +1,7 @@ { "format": "wrangles-registry-reconciliation", "format_version": "0.3", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "runtime_source": { "repository": "https://github.com/wrangleworks/WranglesPY", "version": "1.20.2", diff --git a/registry/reports/runtime-reconciliation.md b/registry/reports/runtime-reconciliation.md index 3bff5a4..20e5e58 100644 --- a/registry/reports/runtime-reconciliation.md +++ b/registry/reports/runtime-reconciliation.md @@ -4,7 +4,7 @@ Generated file. Do not edit directly. - Runtime version: `1.20.2` - Runtime source: [`7916bf158e8b7e561270a1bea7b808f88956edc4`](https://github.com/wrangleworks/WranglesPY/commit/7916bf158e8b7e561270a1bea7b808f88956edc4) -- Registry version: `0.3.0` +- Registry version: `0.3.1` - Runtime entries: 98 - Embedded Python schema docstrings: 96 - Registry entries: 98 diff --git a/registry/schema/catalog-snapshot.schema.json b/registry/schema/catalog-snapshot.schema.json index 9970083..880c43c 100644 --- a/registry/schema/catalog-snapshot.schema.json +++ b/registry/schema/catalog-snapshot.schema.json @@ -63,6 +63,7 @@ }, "kind": {"type": "string", "minLength": 1}, "wrangle_key": { + "description": "Callable contract key; multiple distinct catalog IDs/keys may share it. The canonical row has catalog_key equal to wrangle_key.", "type": ["string", "null"], "pattern": "^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$" }, diff --git a/wrangles-docs/scripts/compile-registry.cjs b/wrangles-docs/scripts/compile-registry.cjs index 367a0f4..a656c31 100644 --- a/wrangles-docs/scripts/compile-registry.cjs +++ b/wrangles-docs/scripts/compile-registry.cjs @@ -5,7 +5,7 @@ const path = require('node:path'); const crypto = require('node:crypto'); const yaml = require('js-yaml'); -const REGISTRY_VERSION = '0.3.0'; +const REGISTRY_VERSION = '0.3.1'; const SOURCE_ENTRY_SCHEMA_VERSION = '0.2'; const CONTRACT_VERSION = '0.3'; const PUBLIC_ORIGIN = 'https://docs.wrangles.com'; @@ -276,7 +276,6 @@ function validateCatalogSnapshot(snapshot, schema) { const ids = new Set(); const catalogKeys = new Set(); - const wrangleKeys = new Set(); const entryFields = new Set([ 'catalog_id', 'catalog_key', 'kind', 'wrangle_key', 'title', 'registry_path', 'status', 'source', 'created_at', 'updated_at', @@ -311,10 +310,7 @@ function validateCatalogSnapshot(snapshot, schema) { if (entry.wrangle_key !== null) { if (!/^[a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*)*$/.test(entry.wrangle_key || '')) { fail(catalogSnapshotPath, `${label}.wrangle_key is invalid`); - } else if (wrangleKeys.has(entry.wrangle_key)) { - fail(catalogSnapshotPath, `duplicate wrangle_key ${entry.wrangle_key}`); } - wrangleKeys.add(entry.wrangle_key); } for (const field of ['kind', 'status', 'source', 'created_at', 'updated_at']) { if (typeof entry[field] !== 'string' || !entry[field]) { @@ -1857,32 +1853,29 @@ function reconcileRegistry(entries, runtimeManifest) { } function reconcileCatalog(entries, catalogSnapshot) { - const catalogByWrangleKey = new Map( - catalogSnapshot.entries - .filter((entry) => entry.wrangle_key !== null) - .map((entry) => [entry.wrangle_key, entry]), + // The exact key owns the canonical contract identity. Never let input order + // or a subtype row replace that identity when several rows share a callable. + const catalogByKey = new Map( + catalogSnapshot.entries.map((entry) => [entry.catalog_key, entry]), ); const registryKeys = new Set(entries.map((entry) => entry.metadata.wrangle_key)); const matchedEntries = []; + const additionalBindings = []; for (const entry of [...entries].sort((left, right) => left.metadata.wrangle_key.localeCompare(right.metadata.wrangle_key))) { const key = entry.metadata.wrangle_key; - const catalog = catalogByWrangleKey.get(key); - if (!catalog) { - fail(entry.sourceFile, `API Core catalog has no row for wrangle_key ${key}`); + const catalog = catalogByKey.get(key); + if (!catalog || catalog.wrangle_key !== key) { + fail(entry.sourceFile, `API Core catalog requires a canonical row with catalog_key and wrangle_key ${key}`); continue; } entry.catalog = catalog; + entry.catalogBindings = catalogSnapshot.entries + .filter((binding) => binding.wrangle_key === key) + .sort((left, right) => left.catalog_key.localeCompare(right.catalog_key)); const conflicts = []; - if (catalog.catalog_key !== key) { - conflicts.push({ - code: 'catalog_key_mismatch', - registry: key, - catalog: catalog.catalog_key, - }); - } if (catalog.kind !== entry.metadata.type) { conflicts.push({ code: 'kind_mismatch', @@ -1931,6 +1924,39 @@ function reconcileCatalog(entries, catalogSnapshot) { conflicts, differences, }); + + for (const binding of entry.catalogBindings) { + if (binding.catalog_id === catalog.catalog_id) continue; + const bindingConflicts = []; + if (binding.kind !== entry.metadata.type) { + bindingConflicts.push({ + code: 'kind_mismatch', registry: entry.metadata.type, catalog: binding.kind, + }); + fail(catalogSnapshotPath, `catalog binding ${binding.catalog_key} has incompatible kind ${binding.kind} for ${key}`); + } + additionalBindings.push({ + catalog_id: binding.catalog_id, + catalog_key: binding.catalog_key, + wrangle_key: key, + canonical_catalog_id: catalog.catalog_id, + title: binding.title, + catalog_status: binding.status, + registry_status: entry.metadata.status, + expected_registry_path: expectedRegistryPath, + catalog_registry_path: binding.registry_path, + status: bindingConflicts.length ? 'conflict' : 'matched', + conflicts: bindingConflicts, + differences: [ + ...(binding.status === entry.metadata.status ? [] : [{ + code: 'status_difference', registry: entry.metadata.status, catalog: binding.status, + }]), + ...(binding.registry_path === expectedRegistryPath ? [] : [{ + code: binding.registry_path === null ? 'registry_path_missing' : 'registry_path_difference', + expected: expectedRegistryPath, catalog: binding.registry_path, + }]), + ], + }); + } } const catalogOnlyEntries = catalogSnapshot.entries @@ -1955,6 +1981,10 @@ function reconcileCatalog(entries, catalogSnapshot) { registry_entries: entries.length, matched_entries: matchedEntries.filter((entry) => entry.status === 'matched').length, conflicting_entries: matchedEntries.filter((entry) => entry.status === 'conflict').length, + additional_binding_count: additionalBindings.length, + conflicting_bindings: additionalBindings.filter((entry) => entry.status === 'conflict').length, + additional_bindings_with_status_differences: additionalBindings.filter((entry) => + entry.differences.some((difference) => difference.code === 'status_difference')).length, entries_with_status_differences: matchedEntries.filter((entry) => entry.differences.some((difference) => difference.code === 'status_difference')).length, entries_without_catalog_registry_path: matchedEntries.filter((entry) => @@ -1962,6 +1992,7 @@ function reconcileCatalog(entries, catalogSnapshot) { catalog_only_entries: catalogOnlyEntries.length, }, matched_entries: matchedEntries, + additional_bindings: additionalBindings, catalog_only_entries: catalogOnlyEntries, }; } @@ -2020,7 +2051,7 @@ ${embeddedRows || '| — | none | — | — |'} } function renderCatalogReconciliationReport(report) { - const statusDifferenceRows = report.matched_entries.flatMap((entry) => + const statusDifferenceRows = [...report.matched_entries, ...report.additional_bindings].flatMap((entry) => entry.differences .filter((difference) => difference.code === 'status_difference') .map((difference) => @@ -2041,15 +2072,26 @@ Generated file. Do not edit directly. - Callable Registry entries: ${report.summary.registry_entries} - Identity matches: ${report.summary.matched_entries} - Identity conflicts: ${report.summary.conflicting_entries} -- Lifecycle/status differences: ${report.summary.entries_with_status_differences} -- Missing catalog registry paths: ${report.summary.entries_without_catalog_registry_path} +- Additional catalog bindings: ${report.summary.additional_binding_count} +- Additional binding conflicts: ${report.summary.conflicting_bindings} +- Canonical lifecycle/status differences: ${report.summary.entries_with_status_differences} +- Additional binding lifecycle/status differences: ${report.summary.additional_bindings_with_status_differences} +- Missing canonical catalog registry paths: ${report.summary.entries_without_catalog_registry_path} - Catalog-only rows: ${report.summary.catalog_only_entries} -The compiler joins callable entries to API Core by \`wrangle_key\`. A missing row, -duplicate identity, key mismatch, kind mismatch, or title mismatch fails the build. +The canonical row has \`catalog_key = wrangle_key\`; additional catalog keys may +share its callable. Canonical identity never depends on snapshot order. A missing +canonical row, duplicate identity/key, or incompatible kind fails the build. +Canonical titles must match Docs; additional bindings retain their own titles. Status and path differences remain visible migration work and do not silently change the executable contract. +## Additional bindings + +| Catalog ID | Catalog key | Wrangle key | Canonical catalog ID | +| --- | --- | --- | --- | +${report.additional_bindings.map((binding) => `| \`${binding.catalog_id}\` | \`${binding.catalog_key}\` | \`${binding.wrangle_key}\` | \`${binding.canonical_catalog_id}\` |`).join('\n') || '| — | none | — | — |'} + ## Status differences | Catalog ID | Wrangle key | API Core status | Registry lifecycle | @@ -2344,6 +2386,32 @@ function buildOutputs( JSON.stringify(reconciliationSummary, null, 2), ); + const catalogBindings = publicEntries.flatMap((entry) => + entry.catalogBindings.map((binding) => ({ + catalog_id: binding.catalog_id, + catalog_key: binding.catalog_key, + catalog_status: binding.status, + kind: binding.kind, + title: binding.title, + wrangle_key: entry.metadata.wrangle_key, + canonical_catalog_id: entry.catalog.catalog_id, + contract_json: `/registry/${posixPath(entryContractRelativePath(entry))}`, + route: entryRoute(entry), + })), + ).sort((left, right) => left.catalog_key.localeCompare(right.catalog_key)); + addBundleArtifact( + bundleMembers, + '/registry/catalog/bindings.json', + path.join(rawOutputRoot, 'catalog', 'bindings.json'), + JSON.stringify({ + format: 'wrangles-catalog-bindings', + format_version: '0.1', + registry_version: REGISTRY_VERSION, + entry_count: catalogBindings.length, + entries: catalogBindings, + }, null, 2), + ); + const integrity = buildBundleIntegrity(bundleMembers); const manifest = { format: 'wrangles-registry', @@ -2365,6 +2433,7 @@ function buildOutputs( source: catalogSnapshot.source, entry_count: catalogSnapshot.entry_count, callable_entry_count: catalogReconciliation.summary.matched_entries, + binding_count: catalogBindings.length, catalog_only_entry_count: catalogReconciliation.summary.catalog_only_entries, entries_with_status_differences: catalogReconciliation.summary.entries_with_status_differences, @@ -2400,6 +2469,7 @@ function buildOutputs( recipe_writer_schema: '/schemas/recipes/registry/recipe-writer.schema.json', entry_schema: '/registry/schema/wrangle-entry.schema.json', catalog_snapshot: '/registry/catalog/api-core.json', + catalog_bindings: '/registry/catalog/bindings.json', catalog_snapshot_schema: '/registry/schema/catalog-snapshot.schema.json', catalog_reconciliation: '/registry/catalog/reconciliation.json', compiled_contract_schema: '/registry/schema/wrangle-contract.schema.json', diff --git a/wrangles-docs/scripts/compile-registry.test.cjs b/wrangles-docs/scripts/compile-registry.test.cjs index e555273..f41d45f 100644 --- a/wrangles-docs/scripts/compile-registry.test.cjs +++ b/wrangles-docs/scripts/compile-registry.test.cjs @@ -2,6 +2,9 @@ const assert = require('node:assert/strict'); const fs = require('node:fs'); const path = require('node:path'); const test = require('node:test'); +const os = require('node:os'); +const crypto = require('node:crypto'); +const {spawnSync} = require('node:child_process'); const {validateColumnSemantics} = require('./compile-registry.cjs'); @@ -230,7 +233,7 @@ test('compiled Registry publishes API Core catalog identities as strings', () => const catalogIds = manifest.entries.map((entry) => entry.catalog_id); const convertCase = manifest.entries.find((entry) => entry.wrangle_key === 'convert.case'); - assert.equal(manifest.registry_version, '0.3.0'); + assert.equal(manifest.registry_version, '0.3.1'); assert.equal(manifest.contract_version, '0.3'); assert.equal(manifest.entry_count, 98); assert.equal(new Set(catalogIds).size, manifest.entry_count); @@ -260,7 +263,7 @@ test('catalog-only records and source differences remain explicit', () => { const reconciliation = JSON.parse(fs.readFileSync(catalogReconciliationPath, 'utf8')); const map = snapshot.entries.find((entry) => entry.catalog_key === 'map'); - assert.equal(snapshot.entry_count, 99); + assert.equal(snapshot.entry_count, 101); assert.equal(map.catalog_id, '99'); assert.equal(typeof map.catalog_id, 'string'); assert.deepEqual( @@ -276,3 +279,124 @@ test('catalog-only records and source differences remain explicit', () => { assert.equal(reconciliation.summary.conflicting_entries, 0); assert.equal(reconciliation.summary.entries_without_catalog_registry_path, 98); }); + +// Synthetic metadata: actual IDs/keys reported by the catalog owner, with +// fixture-only titles and timestamps. Do not use these rows as a DB export. +function catalogCompilerFixture(t) { + const root = fs.mkdtempSync(path.join(os.tmpdir(), 'wrangles-catalog-test-')); + t.after(() => { + const resolved = path.resolve(root); + const tempRoot = path.resolve(os.tmpdir()) + path.sep; + assert.ok(resolved.startsWith(tempRoot)); + assert.ok(path.basename(resolved).startsWith('wrangles-catalog-test-')); + fs.rmSync(resolved, {recursive: true, force: true}); + }); + fs.cpSync(path.join(repositoryRoot, 'registry'), path.join(root, 'registry'), {recursive: true}); + const site = path.join(root, 'wrangles-docs'); + fs.mkdirSync(path.join(site, 'scripts'), {recursive: true}); + fs.copyFileSync(__dirname + '/compile-registry.cjs', path.join(site, 'scripts', 'compile-registry.cjs')); + const snapshotPath = path.join(root, 'registry', 'catalog', 'api-core.json'); + const snapshot = JSON.parse(fs.readFileSync(snapshotPath, 'utf8')); + const lookup = snapshot.entries.find((entry) => entry.catalog_key === 'lookup'); + snapshot.entries = snapshot.entries.filter((entry) => !['lookup.key', 'lookup.semantic'].includes(entry.catalog_key)); + snapshot.entries.push( + {...lookup, catalog_id: '101', catalog_key: 'lookup.key', title: 'Key lookup fixture'}, + {...lookup, catalog_id: '102', catalog_key: 'lookup.semantic', title: 'Semantic lookup fixture', status: 'deprecated'}, + ); + return { + snapshot, + read: (relative) => JSON.parse(fs.readFileSync(path.join(site, relative), 'utf8')), + exists: (relative) => fs.existsSync(path.join(site, relative)), + compile() { + snapshot.entry_count = snapshot.entries.length; + fs.writeFileSync(snapshotPath, JSON.stringify(snapshot)); + return spawnSync(process.execPath, [path.join(site, 'scripts', 'compile-registry.cjs')], { + cwd: site, + encoding: 'utf8', + timeout: 30000, + maxBuffer: 4 * 1024 * 1024, + env: { + ...process.env, + NODE_PATH: [path.dirname(path.dirname(require.resolve('js-yaml/package.json'))), process.env.NODE_PATH] + .filter(Boolean).join(path.delimiter), + }, + }); + }, + }; +} + +test('catalog variants share one contract and preserve selection identities', (t) => { + const fixture = catalogCompilerFixture(t); + const result = fixture.compile(); + assert.equal(result.status, 0, result.stderr || result.error?.message); + const manifest = fixture.read('static/registry/manifest.json'); + const bindingPath = manifest.artifacts.catalog_bindings; + const bindings = fixture.read(`static${bindingPath}`); + const lookupBindings = bindings.entries.filter((entry) => entry.wrangle_key === 'lookup'); + assert.deepEqual(lookupBindings.map((entry) => [entry.catalog_id, entry.catalog_key, entry.canonical_catalog_id]), [ + ['81', 'lookup', '81'], ['101', 'lookup.key', '81'], ['102', 'lookup.semantic', '81'], + ]); + assert.deepEqual(lookupBindings.map((entry) => entry.contract_json), Array(3).fill('/registry/contracts/lookup.json')); + assert.equal(lookupBindings[1].title, 'Key lookup fixture'); + assert.equal(lookupBindings[2].catalog_status, 'deprecated'); + assert.ok(lookupBindings.every((entry) => !('model_id' in entry))); + assert.equal(bindings.entry_count, 100); + assert.equal(manifest.catalog.binding_count, 100); + assert.equal(manifest.entry_count, 98); + assert.equal(manifest.catalog.callable_entry_count, 98); + assert.deepEqual(manifest.entries.filter((entry) => entry.wrangle_key === 'lookup').map((entry) => entry.catalog_id), ['81']); + assert.equal(fixture.read('static/registry/contracts/lookup.json').catalog_id, '81'); + assert.equal(fixture.exists('static/registry/contracts/lookup/key.json'), false); + assert.equal(fixture.exists('registry-docs/lookup/key.md'), false); + for (const schemaName of ['schema.json', 'recipe-writer.schema.json']) { + const properties = fixture.read(`static/schemas/recipes/registry/${schemaName}`).$defs.wrangles.items.properties; + assert.equal('lookup' in properties, true); + assert.equal('lookup.key' in properties, false); + assert.equal('lookup.semantic' in properties, false); + assert.equal(properties.lookup.properties.model_id.type.includes('string'), true); + } + assert.equal(bindings.entries.some((entry) => entry.catalog_key === 'map'), false); + assert.equal(manifest.artifact_checksums.files[bindingPath], crypto.createHash('sha256') + .update(`${JSON.stringify(bindings, null, 2)}\n`).digest('hex')); + const report = fixture.read('static/registry/catalog/reconciliation.json'); + assert.deepEqual(report.additional_bindings.map((entry) => [entry.catalog_id, entry.wrangle_key]), [ + ['101', 'lookup'], ['102', 'lookup'], + ]); + assert.deepEqual(report.additional_bindings[1].differences[0], { + code: 'status_difference', registry: 'active', catalog: 'deprecated', + }); + + fixture.snapshot.entries.reverse(); + const reversed = fixture.compile(); + assert.equal(reversed.status, 0, reversed.stderr); + assert.deepEqual(fixture.read(`static${bindingPath}`), bindings); + assert.equal(fixture.read('static/registry/contracts/lookup.json').catalog_id, '81'); +}); + +test('catalog binding IDs above the JavaScript safe integer range remain exact', (t) => { + const fixture = catalogCompilerFixture(t); + fixture.snapshot.entries.find((entry) => entry.catalog_key === 'lookup.semantic').catalog_id = '9007199254740993'; + const result = fixture.compile(); + assert.equal(result.status, 0, result.stderr); + const bindings = fixture.read('static/registry/catalog/bindings.json').entries; + assert.equal(bindings.find((entry) => entry.catalog_key === 'lookup.semantic').catalog_id, '9007199254740993'); +}); + +for (const [label, mutate, expected] of [ + ['duplicate IDs', (s) => { s.entries.at(-1).catalog_id = '101'; }, /duplicate catalog_id 101/], + ['duplicate keys', (s) => { s.entries.at(-1).catalog_key = 'lookup.key'; }, /duplicate catalog_key lookup.key/], + ['missing canonical row', (s) => { s.entries = s.entries.filter((e) => e.catalog_key !== 'lookup'); }, /requires a canonical row.*lookup/], + ['wrong canonical target', (s) => { s.entries.find((e) => e.catalog_key === 'lookup').wrangle_key = 'classify'; }, /requires a canonical row.*lookup/], + ['incompatible variant kind', (s) => { s.entries.at(-1).kind = 'connector'; }, /lookup.semantic has incompatible kind connector/], + ['canonical title drift', (s) => { s.entries.find((e) => e.catalog_key === 'lookup').title = 'Wrong'; }, /title_mismatch/], +]) { + test(`catalog bindings reject ${label} before publishing`, (t) => { + const fixture = catalogCompilerFixture(t); + mutate(fixture.snapshot); + const result = fixture.compile(); + assert.equal(result.status, 1, result.stderr || result.error?.message); + assert.match(result.stderr, expected); + assert.equal(fixture.exists('static/registry/manifest.json'), false); + assert.equal(fixture.exists('static/registry/catalog/bindings.json'), false); + }); +} diff --git a/wrangles-docs/scripts/generate-playground-registry.test.cjs b/wrangles-docs/scripts/generate-playground-registry.test.cjs index 6728458..6402d97 100644 --- a/wrangles-docs/scripts/generate-playground-registry.test.cjs +++ b/wrangles-docs/scripts/generate-playground-registry.test.cjs @@ -13,7 +13,7 @@ const MANIFEST_PATH = path.join(SITE_ROOT, 'static', 'registry', 'manifest.json' test('generates every Playground entry from the compiled Registry', () => { const result = generateRegistryCatalog(MANIFEST_PATH); - assert.equal(result.registryVersion, '0.3.0'); + assert.equal(result.registryVersion, '0.3.1'); assert.equal(result.contractVersion, '0.3'); assert.equal(result.catalog.length, 98); assert.equal(new Set(result.catalog.map((entry) => entry.catalogId)).size, 98); @@ -56,7 +56,7 @@ test('renders a deterministic generated module with Registry provenance', () => const rendered = renderRegistryCatalog(result, 'static/registry/manifest.json'); assert.match(rendered, /generated by scripts\/generate-playground-registry\.cjs/); - assert.match(rendered, /PLAYGROUND_REGISTRY_VERSION = "0\.3\.0"/); + assert.match(rendered, /PLAYGROUND_REGISTRY_VERSION = "0\.3\.1"/); assert.match(rendered, /"catalogKey": "convert\.case"/); assert.match(rendered, /"catalogId": "5"/); }); diff --git a/wrangles-docs/src/components/WrangleFlowPlayground/registryCatalog.generated.js b/wrangles-docs/src/components/WrangleFlowPlayground/registryCatalog.generated.js index 5944e82..772f368 100644 --- a/wrangles-docs/src/components/WrangleFlowPlayground/registryCatalog.generated.js +++ b/wrangles-docs/src/components/WrangleFlowPlayground/registryCatalog.generated.js @@ -2,7 +2,7 @@ // Source: static/registry/manifest.json and its referenced contracts. // Do not edit by hand. Put UI-specific tweaks in registryCatalog.overrides.js. -export const PLAYGROUND_REGISTRY_VERSION = "0.3.0"; +export const PLAYGROUND_REGISTRY_VERSION = "0.3.1"; export const PLAYGROUND_CONTRACT_VERSION = "0.3"; const GENERATED_REGISTRY_CATALOG = [ diff --git a/wrangles-docs/static/registry/catalog/api-core.json b/wrangles-docs/static/registry/catalog/api-core.json index 5294766..6dde7eb 100644 --- a/wrangles-docs/static/registry/catalog/api-core.json +++ b/wrangles-docs/static/registry/catalog/api-core.json @@ -6,9 +6,9 @@ "system": "API Core", "repository": "https://github.com/wrangleworks/API-Core", "table": "public.wrangles_catalog", - "data_updated_through": "2026-09-16T08:44:50.975472Z" + "data_updated_through": "2026-09-21T09:29:40.543681Z" }, - "entry_count": 99, + "entry_count": 101, "entries": [ { "catalog_id": "1", @@ -1197,6 +1197,30 @@ "source": "registry-docs", "created_at": "2026-09-16T08:44:50.975472Z", "updated_at": "2026-09-16T08:44:50.975472Z" + }, + { + "catalog_id": "101", + "catalog_key": "lookup.key", + "kind": "wrangle", + "wrangle_key": "lookup", + "title": "Lookup Key", + "registry_path": null, + "status": "active", + "source": "registry-docs", + "created_at": "2026-09-21T09:29:40.543681Z", + "updated_at": "2026-09-21T09:29:40.543681Z" + }, + { + "catalog_id": "102", + "catalog_key": "lookup.semantic", + "kind": "wrangle", + "wrangle_key": "lookup", + "title": "Lookup Semantic", + "registry_path": null, + "status": "active", + "source": "registry-docs", + "created_at": "2026-09-21T09:29:40.543681Z", + "updated_at": "2026-09-21T09:29:40.543681Z" } ] } diff --git a/wrangles-docs/static/registry/catalog/bindings.json b/wrangles-docs/static/registry/catalog/bindings.json new file mode 100644 index 0000000..cbaf030 --- /dev/null +++ b/wrangles-docs/static/registry/catalog/bindings.json @@ -0,0 +1,1108 @@ +{ + "format": "wrangles-catalog-bindings", + "format_version": "0.1", + "registry_version": "0.3.1", + "entry_count": 100, + "entries": [ + { + "catalog_id": "69", + "catalog_key": "accordion", + "catalog_status": "active", + "kind": "wrangle", + "title": "Accordion", + "wrangle_key": "accordion", + "canonical_catalog_id": "69", + "contract_json": "/registry/contracts/accordion.json", + "route": "/wrangles/namespaces/utility#accordion" + }, + { + "catalog_id": "70", + "catalog_key": "batch", + "catalog_status": "active", + "kind": "wrangle", + "title": "Batch", + "wrangle_key": "batch", + "canonical_catalog_id": "70", + "contract_json": "/registry/contracts/batch.json", + "route": "/wrangles/namespaces/utility#batch" + }, + { + "catalog_id": "71", + "catalog_key": "classify", + "catalog_status": "active", + "kind": "wrangle", + "title": "Classify", + "wrangle_key": "classify", + "canonical_catalog_id": "71", + "contract_json": "/registry/contracts/classify.json", + "route": "/wrangles/namespaces/ai#classify" + }, + { + "catalog_id": "72", + "catalog_key": "clean_whitespaces", + "catalog_status": "active", + "kind": "wrangle", + "title": "Clean Whitespaces", + "wrangle_key": "clean_whitespaces", + "canonical_catalog_id": "72", + "contract_json": "/registry/contracts/clean-whitespaces.json", + "route": "/wrangles/namespaces/format#clean-whitespaces" + }, + { + "catalog_id": "1", + "catalog_key": "compare.lists", + "catalog_status": "active", + "kind": "wrangle", + "title": "Lists", + "wrangle_key": "compare.lists", + "canonical_catalog_id": "1", + "contract_json": "/registry/contracts/compare/lists.json", + "route": "/wrangles/namespaces/compare#lists" + }, + { + "catalog_id": "2", + "catalog_key": "compare.text", + "catalog_status": "active", + "kind": "wrangle", + "title": "Text", + "wrangle_key": "compare.text", + "canonical_catalog_id": "2", + "contract_json": "/registry/contracts/compare/text.json", + "route": "/wrangles/namespaces/compare#text" + }, + { + "catalog_id": "3", + "catalog_key": "compute.case_when", + "catalog_status": "active", + "kind": "wrangle", + "title": "Case When", + "wrangle_key": "compute.case_when", + "canonical_catalog_id": "3", + "contract_json": "/registry/contracts/compute/case-when.json", + "route": "/wrangles/namespaces/compute#case-when" + }, + { + "catalog_id": "4", + "catalog_key": "compute.score_search_results", + "catalog_status": "active", + "kind": "wrangle", + "title": "Score Search Results", + "wrangle_key": "compute.score_search_results", + "canonical_catalog_id": "4", + "contract_json": "/registry/contracts/compute/score-search-results.json", + "route": "/wrangles/namespaces/compute#score-search-results" + }, + { + "catalog_id": "73", + "catalog_key": "concurrent", + "catalog_status": "active", + "kind": "wrangle", + "title": "Concurrent", + "wrangle_key": "concurrent", + "canonical_catalog_id": "73", + "contract_json": "/registry/contracts/concurrent.json", + "route": "/wrangles/namespaces/utility#concurrent" + }, + { + "catalog_id": "5", + "catalog_key": "convert.case", + "catalog_status": "active", + "kind": "wrangle", + "title": "Convert Case", + "wrangle_key": "convert.case", + "canonical_catalog_id": "5", + "contract_json": "/registry/contracts/convert/case.json", + "route": "/wrangles/namespaces/convert#case" + }, + { + "catalog_id": "6", + "catalog_key": "convert.data_type", + "catalog_status": "active", + "kind": "wrangle", + "title": "Convert Data Type", + "wrangle_key": "convert.data_type", + "canonical_catalog_id": "6", + "contract_json": "/registry/contracts/convert/data-type.json", + "route": "/wrangles/namespaces/convert#data-type" + }, + { + "catalog_id": "7", + "catalog_key": "convert.fraction_to_decimal", + "catalog_status": "active", + "kind": "wrangle", + "title": "Fraction to Decimal", + "wrangle_key": "convert.fraction_to_decimal", + "canonical_catalog_id": "7", + "contract_json": "/registry/contracts/convert/fraction-to-decimal.json", + "route": "/wrangles/namespaces/convert#fraction-to-decimal" + }, + { + "catalog_id": "8", + "catalog_key": "convert.from_json", + "catalog_status": "active", + "kind": "wrangle", + "title": "Convert From JSON", + "wrangle_key": "convert.from_json", + "canonical_catalog_id": "8", + "contract_json": "/registry/contracts/convert/from-json.json", + "route": "/wrangles/namespaces/convert#from-json" + }, + { + "catalog_id": "9", + "catalog_key": "convert.from_yaml", + "catalog_status": "active", + "kind": "wrangle", + "title": "From YAML", + "wrangle_key": "convert.from_yaml", + "canonical_catalog_id": "9", + "contract_json": "/registry/contracts/convert/from-yaml.json", + "route": "/wrangles/namespaces/convert#from-yaml" + }, + { + "catalog_id": "10", + "catalog_key": "convert.to_json", + "catalog_status": "active", + "kind": "wrangle", + "title": "To JSON", + "wrangle_key": "convert.to_json", + "canonical_catalog_id": "10", + "contract_json": "/registry/contracts/convert/to-json.json", + "route": "/wrangles/namespaces/convert#to-json" + }, + { + "catalog_id": "11", + "catalog_key": "convert.to_yaml", + "catalog_status": "active", + "kind": "wrangle", + "title": "To YAML", + "wrangle_key": "convert.to_yaml", + "canonical_catalog_id": "11", + "contract_json": "/registry/contracts/convert/to-yaml.json", + "route": "/wrangles/namespaces/convert#to-yaml" + }, + { + "catalog_id": "74", + "catalog_key": "copy", + "catalog_status": "active", + "kind": "wrangle", + "title": "Copy", + "wrangle_key": "copy", + "canonical_catalog_id": "74", + "contract_json": "/registry/contracts/copy.json", + "route": "/wrangles/namespaces/transform#copy" + }, + { + "catalog_id": "12", + "catalog_key": "create.bins", + "catalog_status": "active", + "kind": "wrangle", + "title": "Bins", + "wrangle_key": "create.bins", + "canonical_catalog_id": "12", + "contract_json": "/registry/contracts/create/bins.json", + "route": "/wrangles/namespaces/create#bins" + }, + { + "catalog_id": "13", + "catalog_key": "create.column", + "catalog_status": "active", + "kind": "wrangle", + "title": "Column", + "wrangle_key": "create.column", + "canonical_catalog_id": "13", + "contract_json": "/registry/contracts/create/column.json", + "route": "/wrangles/namespaces/create#column" + }, + { + "catalog_id": "14", + "catalog_key": "create.embeddings", + "catalog_status": "active", + "kind": "wrangle", + "title": "Embeddings", + "wrangle_key": "create.embeddings", + "canonical_catalog_id": "14", + "contract_json": "/registry/contracts/create/embeddings.json", + "route": "/wrangles/namespaces/create#embeddings" + }, + { + "catalog_id": "15", + "catalog_key": "create.guid", + "catalog_status": "active", + "kind": "wrangle", + "title": "GUID", + "wrangle_key": "create.guid", + "canonical_catalog_id": "15", + "contract_json": "/registry/contracts/create/guid.json", + "route": "/wrangles/namespaces/create#guid" + }, + { + "catalog_id": "16", + "catalog_key": "create.hash", + "catalog_status": "active", + "kind": "wrangle", + "title": "Hash", + "wrangle_key": "create.hash", + "canonical_catalog_id": "16", + "contract_json": "/registry/contracts/create/hash.json", + "route": "/wrangles/namespaces/create#hash" + }, + { + "catalog_id": "17", + "catalog_key": "create.index", + "catalog_status": "active", + "kind": "wrangle", + "title": "Index", + "wrangle_key": "create.index", + "canonical_catalog_id": "17", + "contract_json": "/registry/contracts/create/index.json", + "route": "/wrangles/namespaces/create#index" + }, + { + "catalog_id": "18", + "catalog_key": "create.jinja", + "catalog_status": "active", + "kind": "wrangle", + "title": "Jinja", + "wrangle_key": "create.jinja", + "canonical_catalog_id": "18", + "contract_json": "/registry/contracts/create/jinja.json", + "route": "/wrangles/namespaces/create#jinja" + }, + { + "catalog_id": "19", + "catalog_key": "create.uuid", + "catalog_status": "active", + "kind": "wrangle", + "title": "UUID", + "wrangle_key": "create.uuid", + "canonical_catalog_id": "19", + "contract_json": "/registry/contracts/create/uuid.json", + "route": "/wrangles/namespaces/create#uuid" + }, + { + "catalog_id": "75", + "catalog_key": "date_calculator", + "catalog_status": "active", + "kind": "wrangle", + "title": "Date Calculator", + "wrangle_key": "date_calculator", + "canonical_catalog_id": "75", + "contract_json": "/registry/contracts/date-calculator.json", + "route": "/wrangles/namespaces/date#date-calculator" + }, + { + "catalog_id": "76", + "catalog_key": "drop", + "catalog_status": "active", + "kind": "wrangle", + "title": "Drop", + "wrangle_key": "drop", + "canonical_catalog_id": "76", + "contract_json": "/registry/contracts/drop.json", + "route": "/wrangles/namespaces/select#drop" + }, + { + "catalog_id": "77", + "catalog_key": "explode", + "catalog_status": "active", + "kind": "wrangle", + "title": "Explode", + "wrangle_key": "explode", + "canonical_catalog_id": "77", + "contract_json": "/registry/contracts/explode.json", + "route": "/wrangles/namespaces/split#explode" + }, + { + "catalog_id": "20", + "catalog_key": "extract.address", + "catalog_status": "active", + "kind": "wrangle", + "title": "Address", + "wrangle_key": "extract.address", + "canonical_catalog_id": "20", + "contract_json": "/registry/contracts/extract/address.json", + "route": "/wrangles/namespaces/extract#address" + }, + { + "catalog_id": "21", + "catalog_key": "extract.ai", + "catalog_status": "active", + "kind": "wrangle", + "title": "AI", + "wrangle_key": "extract.ai", + "canonical_catalog_id": "21", + "contract_json": "/registry/contracts/extract/ai.json", + "route": "/wrangles/namespaces/extract#ai" + }, + { + "catalog_id": "22", + "catalog_key": "extract.attributes", + "catalog_status": "active", + "kind": "wrangle", + "title": "Attributes", + "wrangle_key": "extract.attributes", + "canonical_catalog_id": "22", + "contract_json": "/registry/contracts/extract/attributes.json", + "route": "/wrangles/namespaces/extract#attributes" + }, + { + "catalog_id": "23", + "catalog_key": "extract.brackets", + "catalog_status": "active", + "kind": "wrangle", + "title": "Brackets", + "wrangle_key": "extract.brackets", + "canonical_catalog_id": "23", + "contract_json": "/registry/contracts/extract/brackets.json", + "route": "/wrangles/namespaces/extract#brackets" + }, + { + "catalog_id": "24", + "catalog_key": "extract.codes", + "catalog_status": "active", + "kind": "wrangle", + "title": "Codes", + "wrangle_key": "extract.codes", + "canonical_catalog_id": "24", + "contract_json": "/registry/contracts/extract/codes.json", + "route": "/wrangles/namespaces/extract#codes" + }, + { + "catalog_id": "25", + "catalog_key": "extract.custom", + "catalog_status": "active", + "kind": "wrangle", + "title": "Custom", + "wrangle_key": "extract.custom", + "canonical_catalog_id": "25", + "contract_json": "/registry/contracts/extract/custom.json", + "route": "/wrangles/namespaces/extract#custom" + }, + { + "catalog_id": "26", + "catalog_key": "extract.date_properties", + "catalog_status": "active", + "kind": "wrangle", + "title": "Date Properties", + "wrangle_key": "extract.date_properties", + "canonical_catalog_id": "26", + "contract_json": "/registry/contracts/extract/date-properties.json", + "route": "/wrangles/namespaces/extract#date-properties" + }, + { + "catalog_id": "27", + "catalog_key": "extract.date_range", + "catalog_status": "active", + "kind": "wrangle", + "title": "Date Range", + "wrangle_key": "extract.date_range", + "canonical_catalog_id": "27", + "contract_json": "/registry/contracts/extract/date-range.json", + "route": "/wrangles/namespaces/extract#date-range" + }, + { + "catalog_id": "28", + "catalog_key": "extract.html", + "catalog_status": "active", + "kind": "wrangle", + "title": "HTML", + "wrangle_key": "extract.html", + "canonical_catalog_id": "28", + "contract_json": "/registry/contracts/extract/html.json", + "route": "/wrangles/namespaces/extract#html" + }, + { + "catalog_id": "29", + "catalog_key": "extract.properties", + "catalog_status": "active", + "kind": "wrangle", + "title": "Properties", + "wrangle_key": "extract.properties", + "canonical_catalog_id": "29", + "contract_json": "/registry/contracts/extract/properties.json", + "route": "/wrangles/namespaces/extract#properties" + }, + { + "catalog_id": "30", + "catalog_key": "extract.regex", + "catalog_status": "active", + "kind": "wrangle", + "title": "Regex", + "wrangle_key": "extract.regex", + "canonical_catalog_id": "30", + "contract_json": "/registry/contracts/extract/regex.json", + "route": "/wrangles/namespaces/extract#regex" + }, + { + "catalog_id": "78", + "catalog_key": "filter", + "catalog_status": "active", + "kind": "wrangle", + "title": "Filter", + "wrangle_key": "filter", + "canonical_catalog_id": "78", + "contract_json": "/registry/contracts/filter.json", + "route": "/wrangles/namespaces/select#filter" + }, + { + "catalog_id": "31", + "catalog_key": "format.dates", + "catalog_status": "active", + "kind": "wrangle", + "title": "Dates", + "wrangle_key": "format.dates", + "canonical_catalog_id": "31", + "contract_json": "/registry/contracts/format/dates.json", + "route": "/wrangles/namespaces/format#dates" + }, + { + "catalog_id": "32", + "catalog_key": "format.pad", + "catalog_status": "active", + "kind": "wrangle", + "title": "Pad", + "wrangle_key": "format.pad", + "canonical_catalog_id": "32", + "contract_json": "/registry/contracts/format/pad.json", + "route": "/wrangles/namespaces/format#pad" + }, + { + "catalog_id": "33", + "catalog_key": "format.prefix", + "catalog_status": "active", + "kind": "wrangle", + "title": "Prefix", + "wrangle_key": "format.prefix", + "canonical_catalog_id": "33", + "contract_json": "/registry/contracts/format/prefix.json", + "route": "/wrangles/namespaces/format#prefix" + }, + { + "catalog_id": "34", + "catalog_key": "format.price_breaks", + "catalog_status": "active", + "kind": "wrangle", + "title": "Format Price Breaks", + "wrangle_key": "format.price_breaks", + "canonical_catalog_id": "34", + "contract_json": "/registry/contracts/format/price-breaks.json", + "route": "/wrangles/namespaces/format#price-breaks" + }, + { + "catalog_id": "35", + "catalog_key": "format.remove_duplicates", + "catalog_status": "active", + "kind": "wrangle", + "title": "Remove Duplicates", + "wrangle_key": "format.remove_duplicates", + "canonical_catalog_id": "35", + "contract_json": "/registry/contracts/format/remove-duplicates.json", + "route": "/wrangles/namespaces/format#remove-duplicates" + }, + { + "catalog_id": "36", + "catalog_key": "format.significant_figures", + "catalog_status": "active", + "kind": "wrangle", + "title": "Significant Figures", + "wrangle_key": "format.significant_figures", + "canonical_catalog_id": "36", + "contract_json": "/registry/contracts/format/significant-figures.json", + "route": "/wrangles/namespaces/format#significant-figures" + }, + { + "catalog_id": "37", + "catalog_key": "format.suffix", + "catalog_status": "active", + "kind": "wrangle", + "title": "Suffix", + "wrangle_key": "format.suffix", + "canonical_catalog_id": "37", + "contract_json": "/registry/contracts/format/suffix.json", + "route": "/wrangles/namespaces/format#suffix" + }, + { + "catalog_id": "38", + "catalog_key": "format.trim", + "catalog_status": "active", + "kind": "wrangle", + "title": "Trim", + "wrangle_key": "format.trim", + "canonical_catalog_id": "38", + "contract_json": "/registry/contracts/format/trim.json", + "route": "/wrangles/namespaces/format#trim" + }, + { + "catalog_id": "39", + "catalog_key": "generate.ai", + "catalog_status": "active", + "kind": "wrangle", + "title": "Ai", + "wrangle_key": "generate.ai", + "canonical_catalog_id": "39", + "contract_json": "/registry/contracts/generate/ai.json", + "route": "/wrangles/namespaces/generate#ai" + }, + { + "catalog_id": "79", + "catalog_key": "huggingface", + "catalog_status": "active", + "kind": "wrangle", + "title": "Huggingface", + "wrangle_key": "huggingface", + "canonical_catalog_id": "79", + "contract_json": "/registry/contracts/huggingface.json", + "route": "/wrangles/namespaces/ai#huggingface" + }, + { + "catalog_id": "80", + "catalog_key": "log", + "catalog_status": "active", + "kind": "wrangle", + "title": "Log", + "wrangle_key": "log", + "canonical_catalog_id": "80", + "contract_json": "/registry/contracts/log.json", + "route": "/wrangles/namespaces/utility#log" + }, + { + "catalog_id": "81", + "catalog_key": "lookup", + "catalog_status": "active", + "kind": "wrangle", + "title": "Lookup", + "wrangle_key": "lookup", + "canonical_catalog_id": "81", + "contract_json": "/registry/contracts/lookup.json", + "route": "/wrangles/namespaces/lookup#lookup" + }, + { + "catalog_id": "101", + "catalog_key": "lookup.key", + "catalog_status": "active", + "kind": "wrangle", + "title": "Lookup Key", + "wrangle_key": "lookup", + "canonical_catalog_id": "81", + "contract_json": "/registry/contracts/lookup.json", + "route": "/wrangles/namespaces/lookup#lookup" + }, + { + "catalog_id": "102", + "catalog_key": "lookup.semantic", + "catalog_status": "active", + "kind": "wrangle", + "title": "Lookup Semantic", + "wrangle_key": "lookup", + "canonical_catalog_id": "81", + "contract_json": "/registry/contracts/lookup.json", + "route": "/wrangles/namespaces/lookup#lookup" + }, + { + "catalog_id": "82", + "catalog_key": "math", + "catalog_status": "active", + "kind": "wrangle", + "title": "Math", + "wrangle_key": "math", + "canonical_catalog_id": "82", + "contract_json": "/registry/contracts/math.json", + "route": "/wrangles/namespaces/compute#math" + }, + { + "catalog_id": "83", + "catalog_key": "maths", + "catalog_status": "active", + "kind": "wrangle", + "title": "Maths", + "wrangle_key": "maths", + "canonical_catalog_id": "83", + "contract_json": "/registry/contracts/maths.json", + "route": "/wrangles/namespaces/compute#maths" + }, + { + "catalog_id": "84", + "catalog_key": "matrix", + "catalog_status": "active", + "kind": "wrangle", + "title": "Matrix", + "wrangle_key": "matrix", + "canonical_catalog_id": "84", + "contract_json": "/registry/contracts/matrix.json", + "route": "/wrangles/namespaces/utility#matrix" + }, + { + "catalog_id": "40", + "catalog_key": "merge.coalesce", + "catalog_status": "active", + "kind": "wrangle", + "title": "Coalesce", + "wrangle_key": "merge.coalesce", + "canonical_catalog_id": "40", + "contract_json": "/registry/contracts/merge/coalesce.json", + "route": "/wrangles/namespaces/merge#coalesce" + }, + { + "catalog_id": "41", + "catalog_key": "merge.concatenate", + "catalog_status": "active", + "kind": "wrangle", + "title": "Concatenate", + "wrangle_key": "merge.concatenate", + "canonical_catalog_id": "41", + "contract_json": "/registry/contracts/merge/concatenate.json", + "route": "/wrangles/namespaces/merge#concatenate" + }, + { + "catalog_id": "42", + "catalog_key": "merge.dictionaries", + "catalog_status": "active", + "kind": "wrangle", + "title": "Dictionaries", + "wrangle_key": "merge.dictionaries", + "canonical_catalog_id": "42", + "contract_json": "/registry/contracts/merge/dictionaries.json", + "route": "/wrangles/namespaces/merge#dictionaries" + }, + { + "catalog_id": "43", + "catalog_key": "merge.key_value_pairs", + "catalog_status": "active", + "kind": "wrangle", + "title": "Key Value Pairs", + "wrangle_key": "merge.key_value_pairs", + "canonical_catalog_id": "43", + "contract_json": "/registry/contracts/merge/key-value-pairs.json", + "route": "/wrangles/namespaces/merge#key-value-pairs" + }, + { + "catalog_id": "44", + "catalog_key": "merge.lists", + "catalog_status": "active", + "kind": "wrangle", + "title": "Lists", + "wrangle_key": "merge.lists", + "canonical_catalog_id": "44", + "contract_json": "/registry/contracts/merge/lists.json", + "route": "/wrangles/namespaces/merge#lists" + }, + { + "catalog_id": "45", + "catalog_key": "merge.to_dict", + "catalog_status": "active", + "kind": "wrangle", + "title": "To Dict", + "wrangle_key": "merge.to_dict", + "canonical_catalog_id": "45", + "contract_json": "/registry/contracts/merge/to-dict.json", + "route": "/wrangles/namespaces/merge#to-dict" + }, + { + "catalog_id": "46", + "catalog_key": "merge.to_list", + "catalog_status": "active", + "kind": "wrangle", + "title": "To List", + "wrangle_key": "merge.to_list", + "canonical_catalog_id": "46", + "contract_json": "/registry/contracts/merge/to-list.json", + "route": "/wrangles/namespaces/merge#to-list" + }, + { + "catalog_id": "85", + "catalog_key": "python", + "catalog_status": "active", + "kind": "wrangle", + "title": "Python", + "wrangle_key": "python", + "canonical_catalog_id": "85", + "contract_json": "/registry/contracts/python.json", + "route": "/wrangles/namespaces/compute#python" + }, + { + "catalog_id": "86", + "catalog_key": "recipe", + "catalog_status": "active", + "kind": "wrangle", + "title": "Recipe", + "wrangle_key": "recipe", + "canonical_catalog_id": "86", + "contract_json": "/registry/contracts/recipe.json", + "route": "/wrangles/namespaces/utility#recipe" + }, + { + "catalog_id": "87", + "catalog_key": "reindex", + "catalog_status": "active", + "kind": "wrangle", + "title": "Reindex", + "wrangle_key": "reindex", + "canonical_catalog_id": "87", + "contract_json": "/registry/contracts/reindex.json", + "route": "/wrangles/namespaces/transform#reindex" + }, + { + "catalog_id": "88", + "catalog_key": "remove_words", + "catalog_status": "active", + "kind": "wrangle", + "title": "Remove Words", + "wrangle_key": "remove_words", + "canonical_catalog_id": "88", + "contract_json": "/registry/contracts/remove-words.json", + "route": "/wrangles/namespaces/format#remove-words" + }, + { + "catalog_id": "89", + "catalog_key": "rename", + "catalog_status": "active", + "kind": "wrangle", + "title": "Rename", + "wrangle_key": "rename", + "canonical_catalog_id": "89", + "contract_json": "/registry/contracts/rename.json", + "route": "/wrangles/namespaces/transform#rename" + }, + { + "catalog_id": "90", + "catalog_key": "replace", + "catalog_status": "active", + "kind": "wrangle", + "title": "Replace", + "wrangle_key": "replace", + "canonical_catalog_id": "90", + "contract_json": "/registry/contracts/replace.json", + "route": "/wrangles/namespaces/format#replace" + }, + { + "catalog_id": "91", + "catalog_key": "round", + "catalog_status": "active", + "kind": "wrangle", + "title": "Round", + "wrangle_key": "round", + "canonical_catalog_id": "91", + "contract_json": "/registry/contracts/round.json", + "route": "/wrangles/namespaces/format#round" + }, + { + "catalog_id": "47", + "catalog_key": "search.find_links", + "catalog_status": "active", + "kind": "wrangle", + "title": "Find Links", + "wrangle_key": "search.find_links", + "canonical_catalog_id": "47", + "contract_json": "/registry/contracts/search/find-links.json", + "route": "/wrangles/namespaces/search#find-links" + }, + { + "catalog_id": "48", + "catalog_key": "search.retrieve_link_content", + "catalog_status": "active", + "kind": "wrangle", + "title": "Retrieve Link Content", + "wrangle_key": "search.retrieve_link_content", + "canonical_catalog_id": "48", + "contract_json": "/registry/contracts/search/retrieve-link-content.json", + "route": "/wrangles/namespaces/search#retrieve-link-content" + }, + { + "catalog_id": "49", + "catalog_key": "select.columns", + "catalog_status": "active", + "kind": "wrangle", + "title": "Columns", + "wrangle_key": "select.columns", + "canonical_catalog_id": "49", + "contract_json": "/registry/contracts/select/columns.json", + "route": "/wrangles/namespaces/select#columns" + }, + { + "catalog_id": "50", + "catalog_key": "select.dictionary_element", + "catalog_status": "active", + "kind": "wrangle", + "title": "Dictionary Element", + "wrangle_key": "select.dictionary_element", + "canonical_catalog_id": "50", + "contract_json": "/registry/contracts/select/dictionary-element.json", + "route": "/wrangles/namespaces/select#dictionary-element" + }, + { + "catalog_id": "51", + "catalog_key": "select.element", + "catalog_status": "active", + "kind": "wrangle", + "title": "Element", + "wrangle_key": "select.element", + "canonical_catalog_id": "51", + "contract_json": "/registry/contracts/select/element.json", + "route": "/wrangles/namespaces/select#element" + }, + { + "catalog_id": "52", + "catalog_key": "select.group_by", + "catalog_status": "active", + "kind": "wrangle", + "title": "Group By", + "wrangle_key": "select.group_by", + "canonical_catalog_id": "52", + "contract_json": "/registry/contracts/select/group-by.json", + "route": "/wrangles/namespaces/select#group-by" + }, + { + "catalog_id": "53", + "catalog_key": "select.head", + "catalog_status": "active", + "kind": "wrangle", + "title": "Head", + "wrangle_key": "select.head", + "canonical_catalog_id": "53", + "contract_json": "/registry/contracts/select/head.json", + "route": "/wrangles/namespaces/select#head" + }, + { + "catalog_id": "54", + "catalog_key": "select.highest_confidence", + "catalog_status": "active", + "kind": "wrangle", + "title": "Highest Confidence", + "wrangle_key": "select.highest_confidence", + "canonical_catalog_id": "54", + "contract_json": "/registry/contracts/select/highest-confidence.json", + "route": "/wrangles/namespaces/select#highest-confidence" + }, + { + "catalog_id": "55", + "catalog_key": "select.left", + "catalog_status": "active", + "kind": "wrangle", + "title": "Left", + "wrangle_key": "select.left", + "canonical_catalog_id": "55", + "contract_json": "/registry/contracts/select/left.json", + "route": "/wrangles/namespaces/select#left" + }, + { + "catalog_id": "56", + "catalog_key": "select.length", + "catalog_status": "active", + "kind": "wrangle", + "title": "Length", + "wrangle_key": "select.length", + "canonical_catalog_id": "56", + "contract_json": "/registry/contracts/select/length.json", + "route": "/wrangles/namespaces/select#length" + }, + { + "catalog_id": "57", + "catalog_key": "select.list_element", + "catalog_status": "active", + "kind": "wrangle", + "title": "List Element", + "wrangle_key": "select.list_element", + "canonical_catalog_id": "57", + "contract_json": "/registry/contracts/select/list-element.json", + "route": "/wrangles/namespaces/select#list-element" + }, + { + "catalog_id": "58", + "catalog_key": "select.right", + "catalog_status": "active", + "kind": "wrangle", + "title": "Right", + "wrangle_key": "select.right", + "canonical_catalog_id": "58", + "contract_json": "/registry/contracts/select/right.json", + "route": "/wrangles/namespaces/select#right" + }, + { + "catalog_id": "59", + "catalog_key": "select.sample", + "catalog_status": "active", + "kind": "wrangle", + "title": "Sample", + "wrangle_key": "select.sample", + "canonical_catalog_id": "59", + "contract_json": "/registry/contracts/select/sample.json", + "route": "/wrangles/namespaces/select#sample" + }, + { + "catalog_id": "60", + "catalog_key": "select.substring", + "catalog_status": "active", + "kind": "wrangle", + "title": "Substring", + "wrangle_key": "select.substring", + "canonical_catalog_id": "60", + "contract_json": "/registry/contracts/select/substring.json", + "route": "/wrangles/namespaces/select#substring" + }, + { + "catalog_id": "61", + "catalog_key": "select.tail", + "catalog_status": "active", + "kind": "wrangle", + "title": "Tail", + "wrangle_key": "select.tail", + "canonical_catalog_id": "61", + "contract_json": "/registry/contracts/select/tail.json", + "route": "/wrangles/namespaces/select#tail" + }, + { + "catalog_id": "62", + "catalog_key": "select.threshold", + "catalog_status": "active", + "kind": "wrangle", + "title": "Threshold", + "wrangle_key": "select.threshold", + "canonical_catalog_id": "62", + "contract_json": "/registry/contracts/select/threshold.json", + "route": "/wrangles/namespaces/select#threshold" + }, + { + "catalog_id": "92", + "catalog_key": "similarity", + "catalog_status": "active", + "kind": "wrangle", + "title": "Similarity", + "wrangle_key": "similarity", + "canonical_catalog_id": "92", + "contract_json": "/registry/contracts/similarity.json", + "route": "/wrangles/namespaces/compare#similarity" + }, + { + "catalog_id": "93", + "catalog_key": "sort", + "catalog_status": "active", + "kind": "wrangle", + "title": "Sort", + "wrangle_key": "sort", + "canonical_catalog_id": "93", + "contract_json": "/registry/contracts/sort.json", + "route": "/wrangles/namespaces/select#sort" + }, + { + "catalog_id": "63", + "catalog_key": "split.dictionary", + "catalog_status": "active", + "kind": "wrangle", + "title": "Dictionary", + "wrangle_key": "split.dictionary", + "canonical_catalog_id": "63", + "contract_json": "/registry/contracts/split/dictionary.json", + "route": "/wrangles/namespaces/split#dictionary" + }, + { + "catalog_id": "64", + "catalog_key": "split.list", + "catalog_status": "active", + "kind": "wrangle", + "title": "List", + "wrangle_key": "split.list", + "canonical_catalog_id": "64", + "contract_json": "/registry/contracts/split/list.json", + "route": "/wrangles/namespaces/split#list" + }, + { + "catalog_id": "65", + "catalog_key": "split.text", + "catalog_status": "active", + "kind": "wrangle", + "title": "Text", + "wrangle_key": "split.text", + "canonical_catalog_id": "65", + "contract_json": "/registry/contracts/split/text.json", + "route": "/wrangles/namespaces/split#text" + }, + { + "catalog_id": "66", + "catalog_key": "split.tokenize", + "catalog_status": "active", + "kind": "wrangle", + "title": "Tokenize", + "wrangle_key": "split.tokenize", + "canonical_catalog_id": "66", + "contract_json": "/registry/contracts/split/tokenize.json", + "route": "/wrangles/namespaces/split#tokenize" + }, + { + "catalog_id": "94", + "catalog_key": "sql", + "catalog_status": "active", + "kind": "wrangle", + "title": "SQL", + "wrangle_key": "sql", + "canonical_catalog_id": "94", + "contract_json": "/registry/contracts/sql.json", + "route": "/wrangles/namespaces/compute#sql" + }, + { + "catalog_id": "95", + "catalog_key": "standardize", + "catalog_status": "active", + "kind": "wrangle", + "title": "Standardize", + "wrangle_key": "standardize", + "canonical_catalog_id": "95", + "contract_json": "/registry/contracts/standardize.json", + "route": "/wrangles/namespaces/format#standardize" + }, + { + "catalog_id": "67", + "catalog_key": "standardize.clean", + "catalog_status": "active", + "kind": "wrangle", + "title": "Standardize Clean", + "wrangle_key": "standardize.clean", + "canonical_catalog_id": "67", + "contract_json": "/registry/contracts/standardize/clean.json", + "route": "/wrangles/namespaces/standardize#clean" + }, + { + "catalog_id": "68", + "catalog_key": "standardize.custom", + "catalog_status": "active", + "kind": "wrangle", + "title": "Standardize Custom", + "wrangle_key": "standardize.custom", + "canonical_catalog_id": "68", + "contract_json": "/registry/contracts/standardize/custom.json", + "route": "/wrangles/namespaces/standardize#custom" + }, + { + "catalog_id": "96", + "catalog_key": "translate", + "catalog_status": "active", + "kind": "wrangle", + "title": "Translate", + "wrangle_key": "translate", + "canonical_catalog_id": "96", + "contract_json": "/registry/contracts/translate.json", + "route": "/wrangles/namespaces/format#translate" + }, + { + "catalog_id": "97", + "catalog_key": "transpose", + "catalog_status": "active", + "kind": "wrangle", + "title": "Transpose", + "wrangle_key": "transpose", + "canonical_catalog_id": "97", + "contract_json": "/registry/contracts/transpose.json", + "route": "/wrangles/namespaces/transform#transpose" + }, + { + "catalog_id": "98", + "catalog_key": "try", + "catalog_status": "active", + "kind": "wrangle", + "title": "Try", + "wrangle_key": "try", + "canonical_catalog_id": "98", + "contract_json": "/registry/contracts/try.json", + "route": "/wrangles/namespaces/utility#try" + } + ] +} diff --git a/wrangles-docs/static/registry/catalog/reconciliation.json b/wrangles-docs/static/registry/catalog/reconciliation.json index 00ed66d..105c0cf 100644 --- a/wrangles-docs/static/registry/catalog/reconciliation.json +++ b/wrangles-docs/static/registry/catalog/reconciliation.json @@ -1,18 +1,21 @@ { "format": "wrangles-catalog-reconciliation", "format_version": "0.1", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "catalog_source": { "system": "API Core", "repository": "https://github.com/wrangleworks/API-Core", "table": "public.wrangles_catalog", - "data_updated_through": "2026-09-16T08:44:50.975472Z" + "data_updated_through": "2026-09-21T09:29:40.543681Z" }, "summary": { - "catalog_entries": 99, + "catalog_entries": 101, "registry_entries": 98, "matched_entries": 98, "conflicting_entries": 0, + "additional_binding_count": 2, + "conflicting_bindings": 0, + "additional_bindings_with_status_differences": 0, "entries_with_status_differences": 2, "entries_without_catalog_registry_path": 98, "catalog_only_entries": 1 @@ -1891,6 +1894,48 @@ ] } ], + "additional_bindings": [ + { + "catalog_id": "101", + "catalog_key": "lookup.key", + "wrangle_key": "lookup", + "canonical_catalog_id": "81", + "title": "Lookup Key", + "catalog_status": "active", + "registry_status": "active", + "expected_registry_path": "registry/wrangles/_root/lookup.md", + "catalog_registry_path": null, + "status": "matched", + "conflicts": [], + "differences": [ + { + "code": "registry_path_missing", + "expected": "registry/wrangles/_root/lookup.md", + "catalog": null + } + ] + }, + { + "catalog_id": "102", + "catalog_key": "lookup.semantic", + "wrangle_key": "lookup", + "canonical_catalog_id": "81", + "title": "Lookup Semantic", + "catalog_status": "active", + "registry_status": "active", + "expected_registry_path": "registry/wrangles/_root/lookup.md", + "catalog_registry_path": null, + "status": "matched", + "conflicts": [], + "differences": [ + { + "code": "registry_path_missing", + "expected": "registry/wrangles/_root/lookup.md", + "catalog": null + } + ] + } + ], "catalog_only_entries": [ { "catalog_id": "99", diff --git a/wrangles-docs/static/registry/contracts/accordion.json b/wrangles-docs/static/registry/contracts/accordion.json index 512ebce..87761be 100644 --- a/wrangles-docs/static/registry/contracts/accordion.json +++ b/wrangles-docs/static/registry/contracts/accordion.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "69", diff --git a/wrangles-docs/static/registry/contracts/batch.json b/wrangles-docs/static/registry/contracts/batch.json index c8366a3..d8b98ee 100644 --- a/wrangles-docs/static/registry/contracts/batch.json +++ b/wrangles-docs/static/registry/contracts/batch.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "70", diff --git a/wrangles-docs/static/registry/contracts/classify.json b/wrangles-docs/static/registry/contracts/classify.json index c2cc2e2..77d1bd9 100644 --- a/wrangles-docs/static/registry/contracts/classify.json +++ b/wrangles-docs/static/registry/contracts/classify.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "71", diff --git a/wrangles-docs/static/registry/contracts/clean-whitespaces.json b/wrangles-docs/static/registry/contracts/clean-whitespaces.json index 1c67193..2269af3 100644 --- a/wrangles-docs/static/registry/contracts/clean-whitespaces.json +++ b/wrangles-docs/static/registry/contracts/clean-whitespaces.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "72", diff --git a/wrangles-docs/static/registry/contracts/compare/lists.json b/wrangles-docs/static/registry/contracts/compare/lists.json index d47128d..e063e13 100644 --- a/wrangles-docs/static/registry/contracts/compare/lists.json +++ b/wrangles-docs/static/registry/contracts/compare/lists.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "1", diff --git a/wrangles-docs/static/registry/contracts/compare/text.json b/wrangles-docs/static/registry/contracts/compare/text.json index e443af5..ec23259 100644 --- a/wrangles-docs/static/registry/contracts/compare/text.json +++ b/wrangles-docs/static/registry/contracts/compare/text.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "2", diff --git a/wrangles-docs/static/registry/contracts/compute/case-when.json b/wrangles-docs/static/registry/contracts/compute/case-when.json index d43de83..36779c6 100644 --- a/wrangles-docs/static/registry/contracts/compute/case-when.json +++ b/wrangles-docs/static/registry/contracts/compute/case-when.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "3", diff --git a/wrangles-docs/static/registry/contracts/compute/score-search-results.json b/wrangles-docs/static/registry/contracts/compute/score-search-results.json index 22a6772..8e1fa57 100644 --- a/wrangles-docs/static/registry/contracts/compute/score-search-results.json +++ b/wrangles-docs/static/registry/contracts/compute/score-search-results.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "4", diff --git a/wrangles-docs/static/registry/contracts/concurrent.json b/wrangles-docs/static/registry/contracts/concurrent.json index c5b14be..e6daa9e 100644 --- a/wrangles-docs/static/registry/contracts/concurrent.json +++ b/wrangles-docs/static/registry/contracts/concurrent.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "73", diff --git a/wrangles-docs/static/registry/contracts/convert/case.json b/wrangles-docs/static/registry/contracts/convert/case.json index 54af403..0088369 100644 --- a/wrangles-docs/static/registry/contracts/convert/case.json +++ b/wrangles-docs/static/registry/contracts/convert/case.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "5", diff --git a/wrangles-docs/static/registry/contracts/convert/data-type.json b/wrangles-docs/static/registry/contracts/convert/data-type.json index 522e235..f41ef91 100644 --- a/wrangles-docs/static/registry/contracts/convert/data-type.json +++ b/wrangles-docs/static/registry/contracts/convert/data-type.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "6", diff --git a/wrangles-docs/static/registry/contracts/convert/fraction-to-decimal.json b/wrangles-docs/static/registry/contracts/convert/fraction-to-decimal.json index 1e024ec..98cdd1b 100644 --- a/wrangles-docs/static/registry/contracts/convert/fraction-to-decimal.json +++ b/wrangles-docs/static/registry/contracts/convert/fraction-to-decimal.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "7", diff --git a/wrangles-docs/static/registry/contracts/convert/from-json.json b/wrangles-docs/static/registry/contracts/convert/from-json.json index 7d265a2..05d7b56 100644 --- a/wrangles-docs/static/registry/contracts/convert/from-json.json +++ b/wrangles-docs/static/registry/contracts/convert/from-json.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "8", diff --git a/wrangles-docs/static/registry/contracts/convert/from-yaml.json b/wrangles-docs/static/registry/contracts/convert/from-yaml.json index ff03600..945405f 100644 --- a/wrangles-docs/static/registry/contracts/convert/from-yaml.json +++ b/wrangles-docs/static/registry/contracts/convert/from-yaml.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "9", diff --git a/wrangles-docs/static/registry/contracts/convert/to-json.json b/wrangles-docs/static/registry/contracts/convert/to-json.json index 123a1c8..9aa4490 100644 --- a/wrangles-docs/static/registry/contracts/convert/to-json.json +++ b/wrangles-docs/static/registry/contracts/convert/to-json.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "10", diff --git a/wrangles-docs/static/registry/contracts/convert/to-yaml.json b/wrangles-docs/static/registry/contracts/convert/to-yaml.json index e4e4e34..9de9f63 100644 --- a/wrangles-docs/static/registry/contracts/convert/to-yaml.json +++ b/wrangles-docs/static/registry/contracts/convert/to-yaml.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "11", diff --git a/wrangles-docs/static/registry/contracts/copy.json b/wrangles-docs/static/registry/contracts/copy.json index f2da09a..080800f 100644 --- a/wrangles-docs/static/registry/contracts/copy.json +++ b/wrangles-docs/static/registry/contracts/copy.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "74", diff --git a/wrangles-docs/static/registry/contracts/create/bins.json b/wrangles-docs/static/registry/contracts/create/bins.json index e589310..5f56af5 100644 --- a/wrangles-docs/static/registry/contracts/create/bins.json +++ b/wrangles-docs/static/registry/contracts/create/bins.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "12", diff --git a/wrangles-docs/static/registry/contracts/create/column.json b/wrangles-docs/static/registry/contracts/create/column.json index b9bb405..7b0bdff 100644 --- a/wrangles-docs/static/registry/contracts/create/column.json +++ b/wrangles-docs/static/registry/contracts/create/column.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "13", diff --git a/wrangles-docs/static/registry/contracts/create/embeddings.json b/wrangles-docs/static/registry/contracts/create/embeddings.json index a5fc604..9a37537 100644 --- a/wrangles-docs/static/registry/contracts/create/embeddings.json +++ b/wrangles-docs/static/registry/contracts/create/embeddings.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "14", diff --git a/wrangles-docs/static/registry/contracts/create/guid.json b/wrangles-docs/static/registry/contracts/create/guid.json index 081d4dd..f5b8979 100644 --- a/wrangles-docs/static/registry/contracts/create/guid.json +++ b/wrangles-docs/static/registry/contracts/create/guid.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "15", diff --git a/wrangles-docs/static/registry/contracts/create/hash.json b/wrangles-docs/static/registry/contracts/create/hash.json index e7cf6ac..5d0d48f 100644 --- a/wrangles-docs/static/registry/contracts/create/hash.json +++ b/wrangles-docs/static/registry/contracts/create/hash.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "16", diff --git a/wrangles-docs/static/registry/contracts/create/index.json b/wrangles-docs/static/registry/contracts/create/index.json index d5a6de3..9f0b225 100644 --- a/wrangles-docs/static/registry/contracts/create/index.json +++ b/wrangles-docs/static/registry/contracts/create/index.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "17", diff --git a/wrangles-docs/static/registry/contracts/create/jinja.json b/wrangles-docs/static/registry/contracts/create/jinja.json index 82c2cc2..e50b3c0 100644 --- a/wrangles-docs/static/registry/contracts/create/jinja.json +++ b/wrangles-docs/static/registry/contracts/create/jinja.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "18", diff --git a/wrangles-docs/static/registry/contracts/create/uuid.json b/wrangles-docs/static/registry/contracts/create/uuid.json index 4648d3a..f5b38c6 100644 --- a/wrangles-docs/static/registry/contracts/create/uuid.json +++ b/wrangles-docs/static/registry/contracts/create/uuid.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "19", diff --git a/wrangles-docs/static/registry/contracts/date-calculator.json b/wrangles-docs/static/registry/contracts/date-calculator.json index 2d5e576..d6b37d0 100644 --- a/wrangles-docs/static/registry/contracts/date-calculator.json +++ b/wrangles-docs/static/registry/contracts/date-calculator.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "75", diff --git a/wrangles-docs/static/registry/contracts/drop.json b/wrangles-docs/static/registry/contracts/drop.json index ff8d614..2fc8288 100644 --- a/wrangles-docs/static/registry/contracts/drop.json +++ b/wrangles-docs/static/registry/contracts/drop.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "76", diff --git a/wrangles-docs/static/registry/contracts/explode.json b/wrangles-docs/static/registry/contracts/explode.json index 35fa4a3..1d63582 100644 --- a/wrangles-docs/static/registry/contracts/explode.json +++ b/wrangles-docs/static/registry/contracts/explode.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "77", diff --git a/wrangles-docs/static/registry/contracts/extract/address.json b/wrangles-docs/static/registry/contracts/extract/address.json index cff9d8b..9fefe7e 100644 --- a/wrangles-docs/static/registry/contracts/extract/address.json +++ b/wrangles-docs/static/registry/contracts/extract/address.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "20", diff --git a/wrangles-docs/static/registry/contracts/extract/ai.json b/wrangles-docs/static/registry/contracts/extract/ai.json index 3af9f0a..8add9d7 100644 --- a/wrangles-docs/static/registry/contracts/extract/ai.json +++ b/wrangles-docs/static/registry/contracts/extract/ai.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "21", diff --git a/wrangles-docs/static/registry/contracts/extract/attributes.json b/wrangles-docs/static/registry/contracts/extract/attributes.json index 609ef38..15e9f01 100644 --- a/wrangles-docs/static/registry/contracts/extract/attributes.json +++ b/wrangles-docs/static/registry/contracts/extract/attributes.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "22", diff --git a/wrangles-docs/static/registry/contracts/extract/brackets.json b/wrangles-docs/static/registry/contracts/extract/brackets.json index 5a21c63..a9dd1c2 100644 --- a/wrangles-docs/static/registry/contracts/extract/brackets.json +++ b/wrangles-docs/static/registry/contracts/extract/brackets.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "23", diff --git a/wrangles-docs/static/registry/contracts/extract/codes.json b/wrangles-docs/static/registry/contracts/extract/codes.json index 9cef462..8fbbd58 100644 --- a/wrangles-docs/static/registry/contracts/extract/codes.json +++ b/wrangles-docs/static/registry/contracts/extract/codes.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "24", diff --git a/wrangles-docs/static/registry/contracts/extract/custom.json b/wrangles-docs/static/registry/contracts/extract/custom.json index d1a76a7..9230901 100644 --- a/wrangles-docs/static/registry/contracts/extract/custom.json +++ b/wrangles-docs/static/registry/contracts/extract/custom.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "25", diff --git a/wrangles-docs/static/registry/contracts/extract/date-properties.json b/wrangles-docs/static/registry/contracts/extract/date-properties.json index 3f73091..b426d02 100644 --- a/wrangles-docs/static/registry/contracts/extract/date-properties.json +++ b/wrangles-docs/static/registry/contracts/extract/date-properties.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "26", diff --git a/wrangles-docs/static/registry/contracts/extract/date-range.json b/wrangles-docs/static/registry/contracts/extract/date-range.json index 92ad3d5..9e429be 100644 --- a/wrangles-docs/static/registry/contracts/extract/date-range.json +++ b/wrangles-docs/static/registry/contracts/extract/date-range.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "27", diff --git a/wrangles-docs/static/registry/contracts/extract/html.json b/wrangles-docs/static/registry/contracts/extract/html.json index 761ce54..ea3dd5a 100644 --- a/wrangles-docs/static/registry/contracts/extract/html.json +++ b/wrangles-docs/static/registry/contracts/extract/html.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "28", diff --git a/wrangles-docs/static/registry/contracts/extract/properties.json b/wrangles-docs/static/registry/contracts/extract/properties.json index a3a10bf..90b9371 100644 --- a/wrangles-docs/static/registry/contracts/extract/properties.json +++ b/wrangles-docs/static/registry/contracts/extract/properties.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "29", diff --git a/wrangles-docs/static/registry/contracts/extract/regex.json b/wrangles-docs/static/registry/contracts/extract/regex.json index b43db90..b58ed3d 100644 --- a/wrangles-docs/static/registry/contracts/extract/regex.json +++ b/wrangles-docs/static/registry/contracts/extract/regex.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "30", diff --git a/wrangles-docs/static/registry/contracts/filter.json b/wrangles-docs/static/registry/contracts/filter.json index 9cbbf6d..44bfcc3 100644 --- a/wrangles-docs/static/registry/contracts/filter.json +++ b/wrangles-docs/static/registry/contracts/filter.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "78", diff --git a/wrangles-docs/static/registry/contracts/format/dates.json b/wrangles-docs/static/registry/contracts/format/dates.json index 7b353fe..4b4c57e 100644 --- a/wrangles-docs/static/registry/contracts/format/dates.json +++ b/wrangles-docs/static/registry/contracts/format/dates.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "31", diff --git a/wrangles-docs/static/registry/contracts/format/pad.json b/wrangles-docs/static/registry/contracts/format/pad.json index 5df725c..d229beb 100644 --- a/wrangles-docs/static/registry/contracts/format/pad.json +++ b/wrangles-docs/static/registry/contracts/format/pad.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "32", diff --git a/wrangles-docs/static/registry/contracts/format/prefix.json b/wrangles-docs/static/registry/contracts/format/prefix.json index 363361b..81a1330 100644 --- a/wrangles-docs/static/registry/contracts/format/prefix.json +++ b/wrangles-docs/static/registry/contracts/format/prefix.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "33", diff --git a/wrangles-docs/static/registry/contracts/format/price-breaks.json b/wrangles-docs/static/registry/contracts/format/price-breaks.json index 80ea9fe..3fef118 100644 --- a/wrangles-docs/static/registry/contracts/format/price-breaks.json +++ b/wrangles-docs/static/registry/contracts/format/price-breaks.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "34", diff --git a/wrangles-docs/static/registry/contracts/format/remove-duplicates.json b/wrangles-docs/static/registry/contracts/format/remove-duplicates.json index 0e9df9b..b0ed80e 100644 --- a/wrangles-docs/static/registry/contracts/format/remove-duplicates.json +++ b/wrangles-docs/static/registry/contracts/format/remove-duplicates.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "35", diff --git a/wrangles-docs/static/registry/contracts/format/significant-figures.json b/wrangles-docs/static/registry/contracts/format/significant-figures.json index f712bb4..7be174c 100644 --- a/wrangles-docs/static/registry/contracts/format/significant-figures.json +++ b/wrangles-docs/static/registry/contracts/format/significant-figures.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "36", diff --git a/wrangles-docs/static/registry/contracts/format/suffix.json b/wrangles-docs/static/registry/contracts/format/suffix.json index 8fce003..a7fca03 100644 --- a/wrangles-docs/static/registry/contracts/format/suffix.json +++ b/wrangles-docs/static/registry/contracts/format/suffix.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "37", diff --git a/wrangles-docs/static/registry/contracts/format/trim.json b/wrangles-docs/static/registry/contracts/format/trim.json index 47aacdc..facec00 100644 --- a/wrangles-docs/static/registry/contracts/format/trim.json +++ b/wrangles-docs/static/registry/contracts/format/trim.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "38", diff --git a/wrangles-docs/static/registry/contracts/generate/ai.json b/wrangles-docs/static/registry/contracts/generate/ai.json index 15d66f8..e17b1ce 100644 --- a/wrangles-docs/static/registry/contracts/generate/ai.json +++ b/wrangles-docs/static/registry/contracts/generate/ai.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "39", diff --git a/wrangles-docs/static/registry/contracts/huggingface.json b/wrangles-docs/static/registry/contracts/huggingface.json index f396047..c8f1614 100644 --- a/wrangles-docs/static/registry/contracts/huggingface.json +++ b/wrangles-docs/static/registry/contracts/huggingface.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "79", diff --git a/wrangles-docs/static/registry/contracts/log.json b/wrangles-docs/static/registry/contracts/log.json index f5d362b..07cb905 100644 --- a/wrangles-docs/static/registry/contracts/log.json +++ b/wrangles-docs/static/registry/contracts/log.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "80", diff --git a/wrangles-docs/static/registry/contracts/lookup.json b/wrangles-docs/static/registry/contracts/lookup.json index b666150..a8ad1ff 100644 --- a/wrangles-docs/static/registry/contracts/lookup.json +++ b/wrangles-docs/static/registry/contracts/lookup.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "81", diff --git a/wrangles-docs/static/registry/contracts/math.json b/wrangles-docs/static/registry/contracts/math.json index 3587c20..726fdb0 100644 --- a/wrangles-docs/static/registry/contracts/math.json +++ b/wrangles-docs/static/registry/contracts/math.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "82", diff --git a/wrangles-docs/static/registry/contracts/maths.json b/wrangles-docs/static/registry/contracts/maths.json index fa17d43..d8c5641 100644 --- a/wrangles-docs/static/registry/contracts/maths.json +++ b/wrangles-docs/static/registry/contracts/maths.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "83", diff --git a/wrangles-docs/static/registry/contracts/matrix.json b/wrangles-docs/static/registry/contracts/matrix.json index 7a4e038..3407e22 100644 --- a/wrangles-docs/static/registry/contracts/matrix.json +++ b/wrangles-docs/static/registry/contracts/matrix.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "84", diff --git a/wrangles-docs/static/registry/contracts/merge/coalesce.json b/wrangles-docs/static/registry/contracts/merge/coalesce.json index bc8411b..e91ec87 100644 --- a/wrangles-docs/static/registry/contracts/merge/coalesce.json +++ b/wrangles-docs/static/registry/contracts/merge/coalesce.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "40", diff --git a/wrangles-docs/static/registry/contracts/merge/concatenate.json b/wrangles-docs/static/registry/contracts/merge/concatenate.json index 6147cd0..de0871e 100644 --- a/wrangles-docs/static/registry/contracts/merge/concatenate.json +++ b/wrangles-docs/static/registry/contracts/merge/concatenate.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "41", diff --git a/wrangles-docs/static/registry/contracts/merge/dictionaries.json b/wrangles-docs/static/registry/contracts/merge/dictionaries.json index 45a4e33..4c16cc2 100644 --- a/wrangles-docs/static/registry/contracts/merge/dictionaries.json +++ b/wrangles-docs/static/registry/contracts/merge/dictionaries.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "42", diff --git a/wrangles-docs/static/registry/contracts/merge/key-value-pairs.json b/wrangles-docs/static/registry/contracts/merge/key-value-pairs.json index f8cbadd..3496bc4 100644 --- a/wrangles-docs/static/registry/contracts/merge/key-value-pairs.json +++ b/wrangles-docs/static/registry/contracts/merge/key-value-pairs.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "43", diff --git a/wrangles-docs/static/registry/contracts/merge/lists.json b/wrangles-docs/static/registry/contracts/merge/lists.json index 70d993b..5d3688d 100644 --- a/wrangles-docs/static/registry/contracts/merge/lists.json +++ b/wrangles-docs/static/registry/contracts/merge/lists.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "44", diff --git a/wrangles-docs/static/registry/contracts/merge/to-dict.json b/wrangles-docs/static/registry/contracts/merge/to-dict.json index 479780b..1da9a65 100644 --- a/wrangles-docs/static/registry/contracts/merge/to-dict.json +++ b/wrangles-docs/static/registry/contracts/merge/to-dict.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "45", diff --git a/wrangles-docs/static/registry/contracts/merge/to-list.json b/wrangles-docs/static/registry/contracts/merge/to-list.json index ba9f827..04c0f48 100644 --- a/wrangles-docs/static/registry/contracts/merge/to-list.json +++ b/wrangles-docs/static/registry/contracts/merge/to-list.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "46", diff --git a/wrangles-docs/static/registry/contracts/python.json b/wrangles-docs/static/registry/contracts/python.json index 28ffeae..6e325fb 100644 --- a/wrangles-docs/static/registry/contracts/python.json +++ b/wrangles-docs/static/registry/contracts/python.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "85", diff --git a/wrangles-docs/static/registry/contracts/recipe.json b/wrangles-docs/static/registry/contracts/recipe.json index 8254300..f0d8922 100644 --- a/wrangles-docs/static/registry/contracts/recipe.json +++ b/wrangles-docs/static/registry/contracts/recipe.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "86", diff --git a/wrangles-docs/static/registry/contracts/reindex.json b/wrangles-docs/static/registry/contracts/reindex.json index 06b2207..12d9f98 100644 --- a/wrangles-docs/static/registry/contracts/reindex.json +++ b/wrangles-docs/static/registry/contracts/reindex.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "87", diff --git a/wrangles-docs/static/registry/contracts/remove-words.json b/wrangles-docs/static/registry/contracts/remove-words.json index 7955648..060806c 100644 --- a/wrangles-docs/static/registry/contracts/remove-words.json +++ b/wrangles-docs/static/registry/contracts/remove-words.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "88", diff --git a/wrangles-docs/static/registry/contracts/rename.json b/wrangles-docs/static/registry/contracts/rename.json index 49b99c1..630e58a 100644 --- a/wrangles-docs/static/registry/contracts/rename.json +++ b/wrangles-docs/static/registry/contracts/rename.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "89", diff --git a/wrangles-docs/static/registry/contracts/replace.json b/wrangles-docs/static/registry/contracts/replace.json index 53a1a65..ca639db 100644 --- a/wrangles-docs/static/registry/contracts/replace.json +++ b/wrangles-docs/static/registry/contracts/replace.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "90", diff --git a/wrangles-docs/static/registry/contracts/round.json b/wrangles-docs/static/registry/contracts/round.json index a2e21c8..3b5f0f7 100644 --- a/wrangles-docs/static/registry/contracts/round.json +++ b/wrangles-docs/static/registry/contracts/round.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "91", diff --git a/wrangles-docs/static/registry/contracts/search/find-links.json b/wrangles-docs/static/registry/contracts/search/find-links.json index feed296..c2b626a 100644 --- a/wrangles-docs/static/registry/contracts/search/find-links.json +++ b/wrangles-docs/static/registry/contracts/search/find-links.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "47", diff --git a/wrangles-docs/static/registry/contracts/search/retrieve-link-content.json b/wrangles-docs/static/registry/contracts/search/retrieve-link-content.json index ffeb332..9e02bc3 100644 --- a/wrangles-docs/static/registry/contracts/search/retrieve-link-content.json +++ b/wrangles-docs/static/registry/contracts/search/retrieve-link-content.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "48", diff --git a/wrangles-docs/static/registry/contracts/select/columns.json b/wrangles-docs/static/registry/contracts/select/columns.json index ca7cd15..7d1377e 100644 --- a/wrangles-docs/static/registry/contracts/select/columns.json +++ b/wrangles-docs/static/registry/contracts/select/columns.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "49", diff --git a/wrangles-docs/static/registry/contracts/select/dictionary-element.json b/wrangles-docs/static/registry/contracts/select/dictionary-element.json index de215f6..5eb8bf2 100644 --- a/wrangles-docs/static/registry/contracts/select/dictionary-element.json +++ b/wrangles-docs/static/registry/contracts/select/dictionary-element.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "50", diff --git a/wrangles-docs/static/registry/contracts/select/element.json b/wrangles-docs/static/registry/contracts/select/element.json index a9f07e9..9d1a513 100644 --- a/wrangles-docs/static/registry/contracts/select/element.json +++ b/wrangles-docs/static/registry/contracts/select/element.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "51", diff --git a/wrangles-docs/static/registry/contracts/select/group-by.json b/wrangles-docs/static/registry/contracts/select/group-by.json index 84f69ca..79a9275 100644 --- a/wrangles-docs/static/registry/contracts/select/group-by.json +++ b/wrangles-docs/static/registry/contracts/select/group-by.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "52", diff --git a/wrangles-docs/static/registry/contracts/select/head.json b/wrangles-docs/static/registry/contracts/select/head.json index 9c7ded7..1477136 100644 --- a/wrangles-docs/static/registry/contracts/select/head.json +++ b/wrangles-docs/static/registry/contracts/select/head.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "53", diff --git a/wrangles-docs/static/registry/contracts/select/highest-confidence.json b/wrangles-docs/static/registry/contracts/select/highest-confidence.json index f7529e5..a957197 100644 --- a/wrangles-docs/static/registry/contracts/select/highest-confidence.json +++ b/wrangles-docs/static/registry/contracts/select/highest-confidence.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "54", diff --git a/wrangles-docs/static/registry/contracts/select/left.json b/wrangles-docs/static/registry/contracts/select/left.json index 91ba800..e750a57 100644 --- a/wrangles-docs/static/registry/contracts/select/left.json +++ b/wrangles-docs/static/registry/contracts/select/left.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "55", diff --git a/wrangles-docs/static/registry/contracts/select/length.json b/wrangles-docs/static/registry/contracts/select/length.json index ae98ae1..a7e6a79 100644 --- a/wrangles-docs/static/registry/contracts/select/length.json +++ b/wrangles-docs/static/registry/contracts/select/length.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "56", diff --git a/wrangles-docs/static/registry/contracts/select/list-element.json b/wrangles-docs/static/registry/contracts/select/list-element.json index 0649427..7758ec5 100644 --- a/wrangles-docs/static/registry/contracts/select/list-element.json +++ b/wrangles-docs/static/registry/contracts/select/list-element.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "57", diff --git a/wrangles-docs/static/registry/contracts/select/right.json b/wrangles-docs/static/registry/contracts/select/right.json index 9cdd574..2d59271 100644 --- a/wrangles-docs/static/registry/contracts/select/right.json +++ b/wrangles-docs/static/registry/contracts/select/right.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "58", diff --git a/wrangles-docs/static/registry/contracts/select/sample.json b/wrangles-docs/static/registry/contracts/select/sample.json index 3e0e297..46536fd 100644 --- a/wrangles-docs/static/registry/contracts/select/sample.json +++ b/wrangles-docs/static/registry/contracts/select/sample.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "59", diff --git a/wrangles-docs/static/registry/contracts/select/substring.json b/wrangles-docs/static/registry/contracts/select/substring.json index 95175f8..6c3e345 100644 --- a/wrangles-docs/static/registry/contracts/select/substring.json +++ b/wrangles-docs/static/registry/contracts/select/substring.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "60", diff --git a/wrangles-docs/static/registry/contracts/select/tail.json b/wrangles-docs/static/registry/contracts/select/tail.json index 87c27cf..5b994df 100644 --- a/wrangles-docs/static/registry/contracts/select/tail.json +++ b/wrangles-docs/static/registry/contracts/select/tail.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "61", diff --git a/wrangles-docs/static/registry/contracts/select/threshold.json b/wrangles-docs/static/registry/contracts/select/threshold.json index 048c20f..bcb386e 100644 --- a/wrangles-docs/static/registry/contracts/select/threshold.json +++ b/wrangles-docs/static/registry/contracts/select/threshold.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "62", diff --git a/wrangles-docs/static/registry/contracts/similarity.json b/wrangles-docs/static/registry/contracts/similarity.json index 9c837fc..3f3433d 100644 --- a/wrangles-docs/static/registry/contracts/similarity.json +++ b/wrangles-docs/static/registry/contracts/similarity.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "92", diff --git a/wrangles-docs/static/registry/contracts/sort.json b/wrangles-docs/static/registry/contracts/sort.json index acf917b..5b2a775 100644 --- a/wrangles-docs/static/registry/contracts/sort.json +++ b/wrangles-docs/static/registry/contracts/sort.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "93", diff --git a/wrangles-docs/static/registry/contracts/split/dictionary.json b/wrangles-docs/static/registry/contracts/split/dictionary.json index 2ed44a5..813ea1d 100644 --- a/wrangles-docs/static/registry/contracts/split/dictionary.json +++ b/wrangles-docs/static/registry/contracts/split/dictionary.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "63", diff --git a/wrangles-docs/static/registry/contracts/split/list.json b/wrangles-docs/static/registry/contracts/split/list.json index b262e47..6164dea 100644 --- a/wrangles-docs/static/registry/contracts/split/list.json +++ b/wrangles-docs/static/registry/contracts/split/list.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "64", diff --git a/wrangles-docs/static/registry/contracts/split/text.json b/wrangles-docs/static/registry/contracts/split/text.json index 4aead79..acf875e 100644 --- a/wrangles-docs/static/registry/contracts/split/text.json +++ b/wrangles-docs/static/registry/contracts/split/text.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "65", diff --git a/wrangles-docs/static/registry/contracts/split/tokenize.json b/wrangles-docs/static/registry/contracts/split/tokenize.json index 48ccfeb..165e28d 100644 --- a/wrangles-docs/static/registry/contracts/split/tokenize.json +++ b/wrangles-docs/static/registry/contracts/split/tokenize.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "66", diff --git a/wrangles-docs/static/registry/contracts/sql.json b/wrangles-docs/static/registry/contracts/sql.json index 9a92462..43f25bd 100644 --- a/wrangles-docs/static/registry/contracts/sql.json +++ b/wrangles-docs/static/registry/contracts/sql.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "94", diff --git a/wrangles-docs/static/registry/contracts/standardize.json b/wrangles-docs/static/registry/contracts/standardize.json index 4cb4dd7..09b5653 100644 --- a/wrangles-docs/static/registry/contracts/standardize.json +++ b/wrangles-docs/static/registry/contracts/standardize.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "95", diff --git a/wrangles-docs/static/registry/contracts/standardize/clean.json b/wrangles-docs/static/registry/contracts/standardize/clean.json index 55ece0f..717b79f 100644 --- a/wrangles-docs/static/registry/contracts/standardize/clean.json +++ b/wrangles-docs/static/registry/contracts/standardize/clean.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "67", diff --git a/wrangles-docs/static/registry/contracts/standardize/custom.json b/wrangles-docs/static/registry/contracts/standardize/custom.json index a2dda93..fca5f70 100644 --- a/wrangles-docs/static/registry/contracts/standardize/custom.json +++ b/wrangles-docs/static/registry/contracts/standardize/custom.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "68", diff --git a/wrangles-docs/static/registry/contracts/translate.json b/wrangles-docs/static/registry/contracts/translate.json index 377f801..781d3af 100644 --- a/wrangles-docs/static/registry/contracts/translate.json +++ b/wrangles-docs/static/registry/contracts/translate.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "96", diff --git a/wrangles-docs/static/registry/contracts/transpose.json b/wrangles-docs/static/registry/contracts/transpose.json index 2a5d59d..ad45d82 100644 --- a/wrangles-docs/static/registry/contracts/transpose.json +++ b/wrangles-docs/static/registry/contracts/transpose.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "97", diff --git a/wrangles-docs/static/registry/contracts/try.json b/wrangles-docs/static/registry/contracts/try.json index e0411c5..6321ce7 100644 --- a/wrangles-docs/static/registry/contracts/try.json +++ b/wrangles-docs/static/registry/contracts/try.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.wrangles.com/registry/schema/wrangle-contract.schema.json", "format": "wrangles-registry-entry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "schema_version": "0.3", "type": "wrangle", "catalog_id": "98", diff --git a/wrangles-docs/static/registry/index.md b/wrangles-docs/static/registry/index.md index eb0bf81..f5965f7 100644 --- a/wrangles-docs/static/registry/index.md +++ b/wrangles-docs/static/registry/index.md @@ -4,7 +4,7 @@ type: collection title: Wrangles Registry description: Public pre-production bundle for Wrangles recipe primitives. status: pre-production -registry_version: 0.3.0 +registry_version: 0.3.1 --- # Wrangles Registry diff --git a/wrangles-docs/static/registry/manifest.json b/wrangles-docs/static/registry/manifest.json index 09c7a78..b0bd21a 100644 --- a/wrangles-docs/static/registry/manifest.json +++ b/wrangles-docs/static/registry/manifest.json @@ -1,6 +1,6 @@ { "format": "wrangles-registry", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "contract_version": "0.3", "source_entry_schema_version": "0.2", "status": "pre-production", @@ -19,10 +19,11 @@ "system": "API Core", "repository": "https://github.com/wrangleworks/API-Core", "table": "public.wrangles_catalog", - "data_updated_through": "2026-09-16T08:44:50.975472Z" + "data_updated_through": "2026-09-21T09:29:40.543681Z" }, - "entry_count": 99, + "entry_count": 101, "callable_entry_count": 98, + "binding_count": 100, "catalog_only_entry_count": 1, "entries_with_status_differences": 2 }, @@ -2791,6 +2792,7 @@ "recipe_writer_schema": "/schemas/recipes/registry/recipe-writer.schema.json", "entry_schema": "/registry/schema/wrangle-entry.schema.json", "catalog_snapshot": "/registry/catalog/api-core.json", + "catalog_bindings": "/registry/catalog/bindings.json", "catalog_snapshot_schema": "/registry/schema/catalog-snapshot.schema.json", "catalog_reconciliation": "/registry/catalog/reconciliation.json", "compiled_contract_schema": "/registry/schema/wrangle-contract.schema.json", @@ -2801,110 +2803,111 @@ "artifact_checksums": { "algorithm": "sha256", "files": { - "/registry/catalog/api-core.json": "c7e964f5d1ce824340c787e5e34791e82b82b71f8bc8a8a341543784f69be98a", - "/registry/catalog/reconciliation.json": "f7e43990af0f1694910bb4629970d8bfaa4cae6b9820fdb99a6aeeda05568922", - "/registry/contracts/accordion.json": "2c32e017771ad53da3159c95200d84b32e50b3bf9a74780ffdc684cf3171426d", - "/registry/contracts/batch.json": "0884911af6578a78f05948dc07144500659867bcdab407f5461a56a8e83e272b", - "/registry/contracts/classify.json": "4723df627c34090efd4e1d31a28bfb755e704b0c16b64359c00597079fd373c8", - "/registry/contracts/clean-whitespaces.json": "47aa7a06561527f32dca0bedf0e162b5ae22f8873faceae458a2825a4e9671af", - "/registry/contracts/compare/lists.json": "07e79896a5f94ba3d06d14a34c7a76b29c59c8a501a43231790c90fc7a8af149", - "/registry/contracts/compare/text.json": "34ed6238d1fc8297b63a8e144faad2eafe83bc9534aa2959d832d77a5d3a555c", - "/registry/contracts/compute/case-when.json": "e0826ebda20bf668e51d218e0383b79d0fd50b43c4ae3d409c0afa65cb4360e4", - "/registry/contracts/compute/score-search-results.json": "633d7671937a5f4060227a7e46e16fb9b0aab208a8ee81bf3225e9e67bd17cc4", - "/registry/contracts/concurrent.json": "e1af330f3a63a3b425d0f524aa7b6ff8744956306f97f734339a1df72778bae9", - "/registry/contracts/convert/case.json": "88498f5d8591f6d4f1ff3f019db74c215eee6cfd038d5cc50b632b9e09e754e6", - "/registry/contracts/convert/data-type.json": "b2a76ccf49341465101ac535d592a9c1b682594d92dc7ea9099eeed196c4c6c4", - "/registry/contracts/convert/fraction-to-decimal.json": "e7ccf538ef58766d88df700c8ca902a8ceb4f2cf73181b8df5bd0ab0e1eb1116", - "/registry/contracts/convert/from-json.json": "e719c3bc4970b8ee8d44c806c605bdcb17440632dde1558f8e7fb209be4922d8", - "/registry/contracts/convert/from-yaml.json": "8b40c63b5213a776b3ac3e7938fe8589164747edafee27c9b5836268cac02c53", - "/registry/contracts/convert/to-json.json": "f09c0fcb44b98f60ca4be0f2d53bb57a008acfc2f80d5e21d8e3928077e2064a", - "/registry/contracts/convert/to-yaml.json": "94114ed9f92a97207a13fc9691a1aa93db2a0b10158be9aa7b4f692ae03753d7", - "/registry/contracts/copy.json": "d1dba8b99d9bd9f56ad4077aa8d94adf85fffed067ecaed740686bb46fecd8ea", - "/registry/contracts/create/bins.json": "05f847a460b9d2fd61ad3288697e3c9d56b42184950168d99ead356cb9e5dc13", - "/registry/contracts/create/column.json": "d073fa8de6a5e70e19fad3aa978734adbbd513c795875895a1a406d601b37b61", - "/registry/contracts/create/embeddings.json": "331d504282fe59c38ce058306237f4500ecf2c5d14299ef1e28746ede3f6ffdc", - "/registry/contracts/create/guid.json": "8bbcac33196ce8f80f2dff5835e02eac32afd1970102e59caeb547374bc62258", - "/registry/contracts/create/hash.json": "9a7f9b5fb5b87ca8b7ede852da423304a0a4254c7f899344b8d976be83314408", - "/registry/contracts/create/index.json": "044e21501f22b03d676f2d91c2ebd868ff8d0a8e2b81f15136b8d18a4fcca32b", - "/registry/contracts/create/jinja.json": "f33dc99667bcb35d5361342205a10dd4341c64a4a29ea3da875534d462696a05", - "/registry/contracts/create/uuid.json": "834b964177251900f00027aa50cb09223fe09aa56e9605f58177ecb4de87a908", - "/registry/contracts/date-calculator.json": "4e0d713d44ef939d79cdb9b105bd5f6eb843a7d295e68e3f184f28d13efabd57", - "/registry/contracts/drop.json": "1ad8f6d3536144a0b3c3f893acf28aa0903b70be4093bf03e0767a9683d48f89", - "/registry/contracts/explode.json": "010650658dce574c4c6009f70c8f9b218f34843776033a74ee56fc742244ddb1", - "/registry/contracts/extract/address.json": "4c610ec6c8b1f1a04fd87af53f002e01654d9fe84785077312d933d6daf37ac7", - "/registry/contracts/extract/ai.json": "c804c4bab07499833b7eccb684a848f26c0f7ffb5b65d8d83ec721688f566d19", - "/registry/contracts/extract/attributes.json": "7324c4831e74f4035e678ba9a5a8901c3690649e0085d1b015736da93158f291", - "/registry/contracts/extract/brackets.json": "af722987f32c82ff5a693b9431bf3f600af97696c635c20d8e9f674f9f7efc66", - "/registry/contracts/extract/codes.json": "8c0d1699595752c7c24527af195cb61b9730962201f510875b9acba725cbaa1e", - "/registry/contracts/extract/custom.json": "de2cad96a479a58889a109c293314798a272db8b14a18876d8ca5d73a9147fa4", - "/registry/contracts/extract/date-properties.json": "1c6a23e834b7e58b014117654d4a0a4416d573a106fd469aa9ea3c2b6ed45e06", - "/registry/contracts/extract/date-range.json": "768ccf5b41a76b4e91bff484a63e14ba67633c1e29df882cdb366fdee8b4a155", - "/registry/contracts/extract/html.json": "68393a6e6fd595f955285cc996b947a7e88d8d07814e562ac4b3737854884327", - "/registry/contracts/extract/properties.json": "7124a9684af4b8a7eb3fb1cfd6e2c66cc3cde897f092a70c74f9a1490cd42e98", - "/registry/contracts/extract/regex.json": "94ca2420115e0f65df6c3e5795c911b7b4a6ca9b452982fd48e1b3a463930a90", - "/registry/contracts/filter.json": "d31afe4269ef010aa6174da501317242b0757ebaf2ef274de479e280a33a7d45", - "/registry/contracts/format/dates.json": "517d761305efd80e16ba54924806311810cb3512dda1ab860899d0083c520662", - "/registry/contracts/format/pad.json": "8fdcffb53a98804411fb90a929f8817390863550b39709ac163cfd68110b31aa", - "/registry/contracts/format/prefix.json": "96f60154301e75e3d738da761baf8f0732b7d0da542467815b2423b82eea3a2c", - "/registry/contracts/format/price-breaks.json": "5575afd8cec58179276eb0cf855e3334f5f30b4aa06ef7b985d70ffe3313895e", - "/registry/contracts/format/remove-duplicates.json": "217be899f54a7d12345e56d6e06a7eb5727207a940e498e001d28e4edd0f4cb3", - "/registry/contracts/format/significant-figures.json": "d9b1be3366f0ee0bd57efd5b720ed2e496d0b491f3a464681e3950a5206ac6c1", - "/registry/contracts/format/suffix.json": "9ade5eaec6a4abf0bcc7a68906cc028eb98c2964e77549629914db7f7c0df982", - "/registry/contracts/format/trim.json": "f2e0728a967982729dce5b9c2d9bc3db070fb9b1244aac3553eaeec615b1cb2e", - "/registry/contracts/generate/ai.json": "eb23a9a3a8552cefb8fca7e481665d163271fdfeb43e001985ef6484fd654adf", - "/registry/contracts/huggingface.json": "9be1e5569a4ea67f64457dd7f5e14534a58b1c0b7d6a2e0d2785d6acfccf9d49", - "/registry/contracts/log.json": "c2bc76e93040058090890b657b0c26d52b97b88e07d921dacd8a8503580f68b5", - "/registry/contracts/lookup.json": "139a2f4a039e3692e5e01f46f011043744c9b10b480d95bef3120108746f6f85", - "/registry/contracts/math.json": "e51b7d63b70855b9e0a7de4ddded098e613ca5fc8ce9bddce9f40c3aa25c1344", - "/registry/contracts/maths.json": "6bd1dbe8a3a862fd3f541fd6d0c23f8735cdbd9e61028cb59dc39bfc3617e31c", - "/registry/contracts/matrix.json": "f951fd8eeac5a760ccd00de94a54d86a3de1050b59fc42b02a218322639a7b0e", - "/registry/contracts/merge/coalesce.json": "b771d5dc5ca38171b659e42004c91092b05e392639c1ed36b4c89d70766a124c", - "/registry/contracts/merge/concatenate.json": "d1a3bcacc6e64ada759def225dcefd0e681fac08538527dcea44d0d78af0962f", - "/registry/contracts/merge/dictionaries.json": "a3cd5d02ab9fe00a4498dd98f762ab74a5a8f291988c6098e16e066b1727bcc9", - "/registry/contracts/merge/key-value-pairs.json": "bf7b094a53f1edadbea0011a8f59bf4c8994ebef00d9aca6666b176817fa06dc", - "/registry/contracts/merge/lists.json": "a99607c2ad1ccaaf4f8a3194c59f79102f7e0faf27e50ee2300fc865ee3ddca7", - "/registry/contracts/merge/to-dict.json": "6287902b382882113a7c06ee93fb150b55c863905b93350eba89b9c07832c6e6", - "/registry/contracts/merge/to-list.json": "8fce0d55383b9c2b5a7c332f6da0571538c9c16cb4db42cebe495e0c7ee4dded", - "/registry/contracts/python.json": "9c71254b2ac0bef88848df0a85a11168def40ba61eb58ebaff249dfb2a89a999", - "/registry/contracts/recipe.json": "dfa17c9068945760cd36299a6765704c1e74b49f871949b4a25d12f5bde9d033", - "/registry/contracts/reindex.json": "60a86c1422cfd22f5ec2303195a8b12dbb6b0c790eb007a3807d0369c55742ae", - "/registry/contracts/remove-words.json": "c98208dd85d459fb7df6f04e3189f7f3c542ddf88861774dd57258340392b329", - "/registry/contracts/rename.json": "a9682c3b2e8b388da3ff0dbcc0ab5410f4b583af4e966bbfa4f9a0e03d21d13d", - "/registry/contracts/replace.json": "dc29afdf3d0f951a66a3f65f51833989e2e9c77583fa464d7955a411c820a5f6", - "/registry/contracts/round.json": "787c6d8815ee9b19d0f75eae4e56da6dae23ab13dbbb7629058c22f8e8db449d", - "/registry/contracts/search/find-links.json": "5964a242c447a8a74cdc47a3c47e745b2e607a72ea30ce5e3631737baeebd853", - "/registry/contracts/search/retrieve-link-content.json": "82efa286bd7614eebaa9ba7063e91e269abe03262324a1a2b2442e2d13d23168", - "/registry/contracts/select/columns.json": "2fd04ba255c7ff4c3eb43b1340631b61d81f6e59820264683497205b84361257", - "/registry/contracts/select/dictionary-element.json": "c6e68af8f2c8ce84ef52d813e1b3ea75e1b78a35c75052a7b4886bb0e9bbe7c6", - "/registry/contracts/select/element.json": "048b7bd4557f22070b66c738a006053ff76249ef950200edb2d63e1cf902e38e", - "/registry/contracts/select/group-by.json": "a6b9d540a7a17b2e409d270425ff7b15ad06dc542416fae5960cff011832f27f", - "/registry/contracts/select/head.json": "5036edae245c2be8442bf97f4f8e424853e18da10a8516d3040d8fecac3b9483", - "/registry/contracts/select/highest-confidence.json": "686e0079c61e77499530f694a7042de34bfae02016009140d862bca54c0dec26", - "/registry/contracts/select/left.json": "b3694e6c617cd0b952ebe363f4a4164e2715a22108a99af7231329d11b39a730", - "/registry/contracts/select/length.json": "c0eeb00ff208960eeb64e22b1b1cd0900d40cba4d6723234d7f708f894fbe78e", - "/registry/contracts/select/list-element.json": "0476fea821311b2f97c54031a5ff34cb466bc30ac4288f7e4890e1c13e1212e4", - "/registry/contracts/select/right.json": "4164b0cae1780699fcd66286f321ad0233a42b2a381bf266a682d2c66c1b4d73", - "/registry/contracts/select/sample.json": "9cc3f7d86d737c7caa74447f2312305b712b85080cce7d626b8d2c924d4a3544", - "/registry/contracts/select/substring.json": "e6c41c5178a59babbffeb8e2fb0a1eb75e9d3f6d7d64792401bbf28836c13c93", - "/registry/contracts/select/tail.json": "62de8b8cf6ec8ce03c3b8010a38c1980f90e67e745c3db7c8697361b34554bfb", - "/registry/contracts/select/threshold.json": "9a402e8c9f020fe6f8003f28b629f1520cccf0bd0dfdd8e58be6053bbb0adc9d", - "/registry/contracts/similarity.json": "9d3f6898d3bd274fe348e87d3e1fca2bf059493190c7d1d9eb02328e5812b0b5", - "/registry/contracts/sort.json": "7a02a11d5f35484f944b0513b637730fffcfcfb05dfe6549e5de8ab68971ad13", - "/registry/contracts/split/dictionary.json": "fb578e49ff5310a53ba6339c5a4972ecd7f61450959ec15048638cf0d603ff73", - "/registry/contracts/split/list.json": "e8039e53ddeb49b4bc9535da6ba7a9f63ed1089a5be9ce33d90a201ee65c3ffb", - "/registry/contracts/split/text.json": "ec206d7f2ab8e965ad6eacc1e5352d00d294c90db4a3f027b84a7cb45ec1b4af", - "/registry/contracts/split/tokenize.json": "9079a9a1c792dbd2bf5a7a0d84e9d4c4f961aa23a3306df8da79e89e94b02290", - "/registry/contracts/sql.json": "a1934f389fb169ba8f2a12c04895a5d63f9c660abb78b3ebab236449fa4bf81d", - "/registry/contracts/standardize.json": "dc6cd501b1b58cdbbdfd3bf6f4395a2c50f43c447bd8e8e4439b8e98b6952af8", - "/registry/contracts/standardize/clean.json": "ab4c5506ece798521a2d573acb20e80239d98c40ff12f57a09a9701b16a49230", - "/registry/contracts/standardize/custom.json": "1743d3a78b0cb30f6a463d355cd3af0a886abd0d9ca5a02b45a494d3a4630439", - "/registry/contracts/translate.json": "1219be26353c2d5e1801581fc2f58e65050a9ff6e6a331e3c4e65358567801d2", - "/registry/contracts/transpose.json": "5a5d69383c3e42315542d32b9e518525a752b2989bd27cbc895a9353cf691478", - "/registry/contracts/try.json": "50f1b2120d0f31dce37ff5c54d52a8ed37039bec7841fbe61e0f9f69ca0edb82", - "/registry/runtime/reconciliation.json": "b5f5f1d8da9d338a8c0e58fe67337cd5122ac25b73b0f4ce6c161468c35ad80f", + "/registry/catalog/api-core.json": "2303c285a620a2ea9223f3b1addd7413cca75ee9a71ff60e1edb094b64ea9109", + "/registry/catalog/bindings.json": "c3f3fd06f758cd0c22c995e6251eb2b16627e71abb5d11a1dd18f041b3a55b43", + "/registry/catalog/reconciliation.json": "0d12ef86079d99c925fa6c1bc15be7b843a1807ed6e5da8b74c5a98783819e13", + "/registry/contracts/accordion.json": "de2db7d38c5950987395c90cec608b42a35da63c5e92e03540e5c995efdb32fd", + "/registry/contracts/batch.json": "895c18648beab47b4cada2c932fc2239f463e89cefe5d1e2c188c855138390eb", + "/registry/contracts/classify.json": "cd928891a96cb203f67572dd815176c9774950eba6bc15fc79646eca584bc35e", + "/registry/contracts/clean-whitespaces.json": "35dcaf1842d717e43417d0b42a79ccb7fd5a0aff955e9d948975dcd240b08c75", + "/registry/contracts/compare/lists.json": "76d28f35b68b79a216182f259119d9fb9518da822067e5cf711248d4a04a49de", + "/registry/contracts/compare/text.json": "463b7451a5f4b501cb1292c7701b0a1ab158ba41f390e78ad39fd1e0e5d84fed", + "/registry/contracts/compute/case-when.json": "e3f266bd0eae8ca001b83f5984475eea930ece70f452d683725215986c7106a5", + "/registry/contracts/compute/score-search-results.json": "6819a63c30786c4ab8dd586c6aa9965f90803eb547ca9f3a9855206520573d1b", + "/registry/contracts/concurrent.json": "539cd1c06481a0abf4d6a3ed196568ea06706c449fa3ef42e4694c0230b67e28", + "/registry/contracts/convert/case.json": "e441963f9d6afd5659356333ca5f03ae2153cfb2971381b0d6da9c6d74aa1787", + "/registry/contracts/convert/data-type.json": "7b0471ca803154331de8602d4154f03e612c44d6eb4fb14418787b284d925159", + "/registry/contracts/convert/fraction-to-decimal.json": "5e98fafd59ef807a8577bcf41d5cf15563fda17e86d50c4c0d5c1202da41cd21", + "/registry/contracts/convert/from-json.json": "ec7a9a00cee3e665905e4f221411abc8808fd0d7efa714348e66c26679a53750", + "/registry/contracts/convert/from-yaml.json": "9a2d3f9239f96340812ba030eb1f633d2bdae9e1fa083ad8bfe17261065abbaa", + "/registry/contracts/convert/to-json.json": "243192caa7dbc4693e9f6e26edfa2d5bd9647c332dd670ae8daeac304d18fbaa", + "/registry/contracts/convert/to-yaml.json": "53618cc58f64c7e1fabd549ef00a1061abfe9b48fcd2606fab99c7fb46eb17f2", + "/registry/contracts/copy.json": "87a1a90c2afdf192517a69cbff54a6eb1f13a625d29bb84f7e46476a9764a329", + "/registry/contracts/create/bins.json": "bd5f2b6dbe0c2ea50f5f910294843497b22383946357bd7842f807b9f68d5731", + "/registry/contracts/create/column.json": "c4a1107c980e10804be39fed986535630708f504279240f024cefc90b194e53c", + "/registry/contracts/create/embeddings.json": "703af56bfeeacc4978f2f00ea8f17706cc574011409dc7633dc48814a5579c3f", + "/registry/contracts/create/guid.json": "3dae644db6778b54d43b3a81c39634ce2e0833668040106ee9b2c5bccc3af276", + "/registry/contracts/create/hash.json": "aa6fac93d93ecb27f1a8d6b31e14c9aabdb0b45468d052bef215fcb4c02b0ce0", + "/registry/contracts/create/index.json": "ec75f3b04613dbcb83bb86be0946be40768576ea8872102d892195a4296b6839", + "/registry/contracts/create/jinja.json": "729bfd446cf682c5c44a40323997d69c8822b91a53643083ba968d3783319079", + "/registry/contracts/create/uuid.json": "d1baddc9b3d1e33ee6edc7c26f82b58c0afbcc13257965fedc52c4ee520181f5", + "/registry/contracts/date-calculator.json": "218131fc926118341fa557dd029b8b51a24b4ee2970140c807e58c0482817171", + "/registry/contracts/drop.json": "39ab7fa92c4d868bbafdf7843a911d40fedd566b38ed8f30ce3a2886557514d3", + "/registry/contracts/explode.json": "19c23d972bba4ac055add66d9a6909d2bbcce6980c2aea4793f279629b95d334", + "/registry/contracts/extract/address.json": "ca51d4711a8b4d0952f17fcc967d8a09c853ada48d67d85686c66a4a9b163ad9", + "/registry/contracts/extract/ai.json": "8772a2f7ded2f3c7e165178f179cc40e48ad2efa7f6a94c43d5a1275c41561d2", + "/registry/contracts/extract/attributes.json": "0409345df41bdff4799da01564419da33efbeaf550a4247c8732fd0e6c75ca3b", + "/registry/contracts/extract/brackets.json": "c4aeef31add7cb7e7fb5778854722852cbb456e436b88638a748d44c37791401", + "/registry/contracts/extract/codes.json": "f51a41a2e9ff2722e24302b7fa84a90c081ca4b5be91d0d69a1284425047ba60", + "/registry/contracts/extract/custom.json": "d388557976da1657999183b90a95115352b4e6d21246392d4fbabe1372ea28d2", + "/registry/contracts/extract/date-properties.json": "f035f3235a49ee2a493d0b0a7d918375e0fa368f6eeb58c96463a84e809ba35c", + "/registry/contracts/extract/date-range.json": "8fcbb9988d4a6cd2e9d495e55bb3dd39c215fee070fc03facf35fe8c4e62914f", + "/registry/contracts/extract/html.json": "4e84c330bbecdd79b80d110e65b20a63728426f7cc6abc77079c3a48a7f0c5d9", + "/registry/contracts/extract/properties.json": "8869ddf7c8057d7200b06d205a7f09479d2cf40ff9ef0ebd73cafee5006f31f3", + "/registry/contracts/extract/regex.json": "cad67c0274011491b955f9fcac9d207e076d99c7013a3abc0e91dc0017425430", + "/registry/contracts/filter.json": "c19678d06d7f07ff75b0c12979a57ce0bed052e1dfc5cba3d94e8a5d0160ba9a", + "/registry/contracts/format/dates.json": "ddb3074daace9a7f60ef1a57978b6f0ed4a0b4e202c5b8bc13359af6c43df5f1", + "/registry/contracts/format/pad.json": "3ce0bf48a172402f21d5f636f3c815f77e4957ba1ce42d59170e000650c72b54", + "/registry/contracts/format/prefix.json": "37b0caa78215583fa9d63ce280534e6f0ae4aca336adc2bdb998642fda058365", + "/registry/contracts/format/price-breaks.json": "7a8501eda0d4037f18014987c62ff27b3baec2b0312bbe05b3ad254fee608f34", + "/registry/contracts/format/remove-duplicates.json": "151053d91c516a64f6adec13a84b7b43250883a0171f568d66795ee021653ef7", + "/registry/contracts/format/significant-figures.json": "301881d67edaba94473abd7454c09499a8f83ace647f161dc4e45b52daafd548", + "/registry/contracts/format/suffix.json": "42f3db1696c7253ecdf7996dd653a26563aada900204652714d2c58c50c3e444", + "/registry/contracts/format/trim.json": "ca3dc5bf104a9ebbe63f42e9de1d90a186a4c01ae05d1139de0e79bea1273d06", + "/registry/contracts/generate/ai.json": "46167665ec89116643674541e9065dfc9907aa3296be719bc1ab87dfa3f4f5ac", + "/registry/contracts/huggingface.json": "49d8e68bed44857e87c3824cc8c0e6348a764e1a73eee5478227299ceca94e17", + "/registry/contracts/log.json": "a31b32d7da2420eafcf7546d6c83aadf3e7e8bdf5b38354ebac4a837e8a6eab6", + "/registry/contracts/lookup.json": "f938622d88b941a4755ff205b8c1f32a0b8079b4898a104df70403eb0b39cbea", + "/registry/contracts/math.json": "45d3f31155b0f3ba0627a973aa5d9228db5b0ef52d00539e3621f95b74419a59", + "/registry/contracts/maths.json": "ab8a73c1441eb78549919f3b66d7503b84f85be4c65895e4e61df8328d9d2e07", + "/registry/contracts/matrix.json": "301ca6f766974ca564e442fc5340c62e0ba4b5b0b33f6e54361e89661b7fae3f", + "/registry/contracts/merge/coalesce.json": "3f70424f0378fae407185d7ed1262057aca5db9f63d24f922daeff91d1c8f23d", + "/registry/contracts/merge/concatenate.json": "be18d64f1afe54a121f9f15c1d24f8dcbf1e47d6b0c3264c00b3e8bac08ed1d7", + "/registry/contracts/merge/dictionaries.json": "fc585da81fbd011adbda6e7bef5ae4e2137670e922322b97a25f16d21d44d4a9", + "/registry/contracts/merge/key-value-pairs.json": "efccee6b30496d8287d4d738df848a5931905a1591b7a00933936a07aa7fd201", + "/registry/contracts/merge/lists.json": "eeedaf673fa103177a015a4a5e4af5cd23fb0f25b866bebbdd2cb103212e6dab", + "/registry/contracts/merge/to-dict.json": "84563117039dbbb09f04c2778802b4c164bd390e2aa0d8528d92c8e144673444", + "/registry/contracts/merge/to-list.json": "ad81f927f269566372544b56c760273546304a4fbc875d07039716975c2c61e1", + "/registry/contracts/python.json": "0c68c5ae02ec96f2f0c17ddd38aeaca51124ac8b664d973fa1e94b535d47a90d", + "/registry/contracts/recipe.json": "7347ffffedadb22275790290dc5ed94028d026e13d90a65491eb498671bfacfc", + "/registry/contracts/reindex.json": "c3408d827ba330eb148c63954a8ceb9d92415675b5bfbb8e3afeda33199b961d", + "/registry/contracts/remove-words.json": "18b8263a8c73f700ea1d43e5458857bf917ba2a6aa77339da321ed7cf7a19408", + "/registry/contracts/rename.json": "f0f5401e250be7df79c7c81906d37f6344de58061fdbcc690de3067e382c03ca", + "/registry/contracts/replace.json": "50e5aee1b884081f4daab8fd3aa3454ab89436bff259532580d85289bd2124ea", + "/registry/contracts/round.json": "6b19eec22b0ffe89c80a51baf564452d37eb0a9427cde475afd2565c80c7482f", + "/registry/contracts/search/find-links.json": "3f315d6d52dfdc4d4beef02f2236c953a176de12b9fab34da56054365658960d", + "/registry/contracts/search/retrieve-link-content.json": "904c8808ae8f3802a68c1c071f101b59430677446f4b3da76505f67babae5c30", + "/registry/contracts/select/columns.json": "1c78550c4052a4a0ffeb87dd24602e18fc70f5850549dfafca73ac55fb3f7ecc", + "/registry/contracts/select/dictionary-element.json": "b089356ca0b15b38a0924d2e401f8985bde4a54e1e3a1c723ad239136d0eeb44", + "/registry/contracts/select/element.json": "adfff2efce91fc17b2700c3b5e764fb0fd483334913aef0f4f2e22232b7d98a9", + "/registry/contracts/select/group-by.json": "1c302296225170117ebbf021cd2076f691356d05d18076935466abe8c768395e", + "/registry/contracts/select/head.json": "b36b5de856c0c9d51a19dc9658fd605b50e81d21633b3a4a3e0a4abd742b3a73", + "/registry/contracts/select/highest-confidence.json": "3a9d46021b5260c80d640803a017c09020a6019036507027571f21add5a7f77b", + "/registry/contracts/select/left.json": "899a97395070627e76b101e6a274b4329bc8893694376000166daa0a0bf89b56", + "/registry/contracts/select/length.json": "f139dd5699e81cb0313b5d4dd87ec82ca689c403438674ef5261dd59c2c56bbc", + "/registry/contracts/select/list-element.json": "0c39147637235013dc63cf103cf0697f45c3a760dbb7fd6d4fde57f6c5040534", + "/registry/contracts/select/right.json": "e0ef35a9a6b58fb0d961a4e4e4142fdc1f3492b84ef927c50aefc8db67fdfdb0", + "/registry/contracts/select/sample.json": "96aeb94573715239833258daef5c9280f7a2ed55725e927d1d9a70d6089fa34e", + "/registry/contracts/select/substring.json": "d7e51f3caed99b8c8bd0d03358120c5809080a48556ab623314c550e81673ce7", + "/registry/contracts/select/tail.json": "baca099515bebf79deae3a60f451d71f2e36e49289cf0fe0e06b5f8e5caf8c52", + "/registry/contracts/select/threshold.json": "c79ece813e3da8f518da722447385d4cd81ab3bc92c3254990ec98b106676ff3", + "/registry/contracts/similarity.json": "1333c0b04db8bde0db55d9f82014393602ff5ba58ed73260f36d81441fa9e3c0", + "/registry/contracts/sort.json": "a8f769a20ba47cfb4c72732461bb58c0804d89fd517bf1e873de4b1e092e52f1", + "/registry/contracts/split/dictionary.json": "7bfaf49da0fbc51a92b36baaa536b934c18cf8b20a616275d22f8f354da60398", + "/registry/contracts/split/list.json": "d05d9c77ba483e08367743a2a90f80228fec08f736d35b105621b0112b04557e", + "/registry/contracts/split/text.json": "7649f7ce2e0db67a56481da3a1bc4e6e438de02a6125f6cbdb507365c401f185", + "/registry/contracts/split/tokenize.json": "c9aa241e5ffc554bf8b9dbbb85340cf0df97e926ee5d9e9f818b44b741bab554", + "/registry/contracts/sql.json": "601e9896c133ccdb0dacad928968c399f1fd76e343068709ef4c2572e00296f0", + "/registry/contracts/standardize.json": "fb8fd98a9b3730959e9e75ef720d2e7541ed460f59b0bb8b95004e34f59b1128", + "/registry/contracts/standardize/clean.json": "f716b944c73432108fa04e324d486b0bfd8a4d93fea2a20b08caf73646c7d96b", + "/registry/contracts/standardize/custom.json": "bd0c4abf4f1a2902e5738456d55c02b6b3a66f493b1c9ccfc5a60f4ed1e677b2", + "/registry/contracts/translate.json": "3fb4ba7f6ab68c483c1921a55ce8ecdc351b9c462fe7bd9a96c6fef4de4156d7", + "/registry/contracts/transpose.json": "fb7228f4cd2103e8a7924425a1dff5fd279d32f7083fcbdc58c58c72a18dda42", + "/registry/contracts/try.json": "f58089815cd8253e392f3a71e0a03f7bfc5a8264c2b07effc72f830d0761c914", + "/registry/runtime/reconciliation.json": "c50f76d511638b05441fbe686486a2eda93ab676e00ce85b3deaccef35fcb8d1", "/registry/runtime/wranglespy.json": "f06526b3823fb70f1bb28f4be242bf23621d1b5a544d1f42c04b7549fe1bbef0", - "/registry/schema/catalog-snapshot.schema.json": "08a563a348de58d7b0232856ce7b98f839def28f677119cbf3aaa3853b7f1125", - "/registry/schema/wrangle-contract.schema.json": "cfe4d4f555dc57a1d76b198653d0b2b8e4c289875df9ed4a9988250fac73fb88", + "/registry/schema/catalog-snapshot.schema.json": "7c59e7a363d347f401c5d8b4a6ef1faf6e2403ce878407c29348de9b6cc68ab4", + "/registry/schema/wrangle-contract.schema.json": "2b364868c78bd6cc668e5b7138c98c4241a30366d88538013e9f45e00d13c462", "/registry/schema/wrangle-entry.schema.json": "7839e5ba1d0086888afc3dc0f87102add3b1133bdf9574d8a288288b29f90f5f", "/registry/schema/wrangles-runtime-manifest.schema.json": "fc05d2e44272311d3875421c5ae9b978185fcc05770d330cc4cd5bd261ec7538", "/schemas/recipes/registry/recipe-writer.schema.json": "02de487d6e8eade0424b23a484bd0b1301871faf1974defae4b9970720e0eb74", @@ -2914,8 +2917,8 @@ "bundle_checksum": { "algorithm": "sha256", "framing": "utf8-path-null-content-null-v1", - "value": "803532339aab036517750157186b1744c6df912daa2d18c01b371d0fcb6177a2", - "member_count": 108, + "value": "9929c7c4ff56f0d9f0bb0fef00e6e67a6cc242f570deec420a905b076fc79308", + "member_count": 109, "manifest_included": false } } diff --git a/wrangles-docs/static/registry/runtime/reconciliation.json b/wrangles-docs/static/registry/runtime/reconciliation.json index 6cfe1b8..6747900 100644 --- a/wrangles-docs/static/registry/runtime/reconciliation.json +++ b/wrangles-docs/static/registry/runtime/reconciliation.json @@ -1,6 +1,6 @@ { "format": "wrangles-runtime-reconciliation-summary", - "registry_version": "0.3.0", + "registry_version": "0.3.1", "runtime_source": { "repository": "https://github.com/wrangleworks/WranglesPY", "version": "1.20.2", diff --git a/wrangles-docs/static/registry/schema/catalog-snapshot.schema.json b/wrangles-docs/static/registry/schema/catalog-snapshot.schema.json index 0d32036..36f2147 100644 --- a/wrangles-docs/static/registry/schema/catalog-snapshot.schema.json +++ b/wrangles-docs/static/registry/schema/catalog-snapshot.schema.json @@ -89,6 +89,7 @@ "minLength": 1 }, "wrangle_key": { + "description": "Callable contract key; multiple distinct catalog IDs/keys may share it. The canonical row has catalog_key equal to wrangle_key.", "type": [ "string", "null" diff --git a/wrangles-docs/static/registry/schema/wrangle-contract.schema.json b/wrangles-docs/static/registry/schema/wrangle-contract.schema.json index 4b22646..ca6edb0 100644 --- a/wrangles-docs/static/registry/schema/wrangle-contract.schema.json +++ b/wrangles-docs/static/registry/schema/wrangle-contract.schema.json @@ -42,7 +42,7 @@ "const": "wrangles-registry-entry" }, "registry_version": { - "const": "0.3.0" + "const": "0.3.1" }, "schema_version": { "const": "0.3"