@red-hat-developer-hub/backstage-plugin-ai-skills-common 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +31 -0
- package/README.md +77 -4
- package/dist/catalog-helpers.cjs.js +7 -8
- package/dist/catalog-helpers.cjs.js.map +1 -1
- package/dist/catalog-helpers.esm.js +6 -7
- package/dist/catalog-helpers.esm.js.map +1 -1
- package/dist/fixtures.cjs.js +130 -4
- package/dist/fixtures.cjs.js.map +1 -1
- package/dist/fixtures.esm.js +114 -5
- package/dist/fixtures.esm.js.map +1 -1
- package/dist/index.cjs.js +23 -0
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +457 -8
- package/dist/index.esm.js +3 -1
- package/dist/index.esm.js.map +1 -1
- package/dist/normalizer.cjs.js +344 -0
- package/dist/normalizer.cjs.js.map +1 -0
- package/dist/normalizer.esm.js +341 -0
- package/dist/normalizer.esm.js.map +1 -0
- package/dist/tag-constants.cjs.js +8 -0
- package/dist/tag-constants.cjs.js.map +1 -0
- package/dist/tag-constants.esm.js +5 -0
- package/dist/tag-constants.esm.js.map +1 -0
- package/package.json +2 -1
package/dist/fixtures.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixtures.cjs.js","sources":["../src/fixtures.ts"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Reusable OCI and npx contract fixtures for connector and provider tests.\n *\n * @packageDocumentation\n */\n\nimport type {\n NpxSkillRecord,\n OciSkillRecord,\n SkillSnapshot,\n SnapshotSource,\n} from './types';\n\n// ─── Sources ──────────────────────────────────────────────────────────\n\n/**\n * OCI source fixture for contract tests.\n *\n * @public\n */\nexport const ociSource: SnapshotSource = {\n id: 'quay-public',\n type: 'oci',\n};\n\n/**\n * npx source fixture for contract tests.\n *\n * @public\n */\nexport const npxSource: SnapshotSource = {\n id: 'rhess-index',\n type: 'npx',\n};\n\n// ─── Valid OCI records ────────────────────────────────────────────────\n\n/**\n * A valid OCI skill record with full metadata.\n *\n * @public\n */\nexport const validOciRecordFull: OciSkillRecord = {\n key: 'quay.io/octo/hello-world-skill',\n name: 'Hello World Skill',\n description: 'A demo OCI skill image',\n version: '1.0.0',\n license: 'Apache-2.0',\n authors: [{ name: 'OCTO Team', email: 'octo@example.com' }],\n tags: ['demo', 'hello-world'],\n compatibility: 'rhdh-2.2',\n owner: 'team-octo',\n lifecycle: 'production',\n sourceUri:\n 'oci://quay.io/octo/hello-world-skill@sha256:abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789',\n digest:\n 'sha256:abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789',\n extensions: {\n oci: {\n namespace: 'octo-skills',\n prompt: 'You are a helpful assistant.',\n },\n },\n};\n\n/**\n * A valid OCI record with only required fields.\n *\n * @public\n */\nexport const validOciRecordMinimal: OciSkillRecord = {\n key: 'quay.io/octo/minimal-skill',\n name: 'Minimal Skill',\n sourceUri:\n 'oci://quay.io/octo/minimal-skill@sha256:1111111111111111111111111111111111111111111111111111111111111111',\n digest:\n 'sha256:1111111111111111111111111111111111111111111111111111111111111111',\n};\n\n/**\n * A valid OCI record with empty extensions object.\n *\n * @public\n */\nexport const validOciRecordEmptyExtensions: OciSkillRecord = {\n key: 'quay.io/octo/no-ext-skill',\n name: 'No Extensions Skill',\n sourceUri:\n 'oci://quay.io/octo/no-ext-skill@sha256:2222222222222222222222222222222222222222222222222222222222222222',\n digest:\n 'sha256:2222222222222222222222222222222222222222222222222222222222222222',\n extensions: {},\n};\n\n// ─── Valid npx records ────────────────────────────────────────────────\n\n/**\n * A valid npx skill record with full metadata.\n *\n * @public\n */\nexport const validNpxRecordFull: NpxSkillRecord = {\n key: 'summarize-text',\n name: 'Summarize Text',\n description: 'Summarizes input text using an LLM',\n version: '0.2.0',\n license: 'MIT',\n authors: [{ name: 'Agent Team' }],\n tags: ['summarization', 'text'],\n compatibility: 'agent-skills-v0.2',\n sourceUri: 'https://registry.example.com/skills/summarize-text/SKILL.md',\n digest:\n 'sha256:fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210',\n extensions: {\n npx: {\n type: 'skill-md',\n },\n },\n};\n\n/**\n * A valid npx record with only required fields.\n *\n * @public\n */\nexport const validNpxRecordMinimal: NpxSkillRecord = {\n key: 'basic-skill',\n name: 'Basic Skill',\n sourceUri: 'https://registry.example.com/skills/basic-skill/SKILL.md',\n digest:\n 'sha256:3333333333333333333333333333333333333333333333333333333333333333',\n};\n\n/**\n * A valid npx record with a query-string-bearing source URI.\n *\n * @public\n */\nexport const validNpxRecordWithQuery: NpxSkillRecord = {\n key: 'query-skill',\n name: 'Query Skill',\n sourceUri:\n 'https://registry.example.com/skills/query-skill/SKILL.md?version=2&format=raw',\n digest:\n 'sha256:4444444444444444444444444444444444444444444444444444444444444444',\n extensions: {\n npx: {\n type: 'skill-md',\n },\n },\n};\n\n// ─── Valid snapshots ──────────────────────────────────────────────────\n\n/**\n * A valid ready OCI snapshot.\n *\n * @public\n */\nexport const validOciSnapshotReady: SkillSnapshot = {\n schemaVersion: '1',\n source: ociSource,\n status: 'ready',\n observedAt: '2026-09-01T12:00:00Z',\n skills: [validOciRecordMinimal, validOciRecordFull],\n failedSkillKeys: [],\n};\n\n/**\n * A valid ready npx snapshot.\n *\n * @public\n */\nexport const validNpxSnapshotReady: SkillSnapshot = {\n schemaVersion: '1',\n source: npxSource,\n status: 'ready',\n observedAt: '2026-09-01T12:00:00Z',\n skills: [validNpxRecordMinimal, validNpxRecordFull],\n failedSkillKeys: [],\n};\n\n/**\n * A valid loading snapshot.\n *\n * @public\n */\nexport const validLoadingSnapshot: SkillSnapshot = {\n schemaVersion: '1',\n source: ociSource,\n status: 'loading',\n observedAt: null,\n skills: [],\n failedSkillKeys: [],\n};\n\n/**\n * A valid partial snapshot with failed keys.\n *\n * @public\n */\nexport const validPartialSnapshot: SkillSnapshot = {\n schemaVersion: '1',\n source: ociSource,\n status: 'partial',\n observedAt: '2026-09-01T12:05:00Z',\n skills: [validOciRecordMinimal],\n failedSkillKeys: ['quay.io/octo/broken-skill'],\n};\n\n/**\n * A valid failed snapshot.\n *\n * @public\n */\nexport const validFailedSnapshot: SkillSnapshot = {\n schemaVersion: '1',\n source: ociSource,\n status: 'failed',\n observedAt: '2026-09-01T12:10:00Z',\n skills: [],\n failedSkillKeys: [],\n};\n\n/**\n * A valid partial snapshot with no records and no failed keys.\n *\n * @public\n */\nexport const validPartialEmptySnapshot: SkillSnapshot = {\n schemaVersion: '1',\n source: npxSource,\n status: 'partial',\n observedAt: '2026-09-01T12:15:00Z',\n skills: [],\n failedSkillKeys: [],\n};\n\n/**\n * A valid ready snapshot with zero records (successful empty discovery).\n *\n * @public\n */\nexport const validReadyEmptySnapshot: SkillSnapshot = {\n schemaVersion: '1',\n source: ociSource,\n status: 'ready',\n observedAt: '2026-09-01T12:20:00Z',\n skills: [],\n failedSkillKeys: [],\n};\n\n// ─── Invalid records ──────────────────────────────────────────────────\n\n/**\n * Record with empty key.\n *\n * @public\n */\nexport const invalidRecordEmptyKey: OciSkillRecord = {\n key: '',\n name: 'Bad Skill',\n sourceUri:\n 'oci://quay.io/octo/bad@sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',\n digest:\n 'sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',\n};\n\n/**\n * Record with malformed digest (uppercase).\n *\n * @public\n */\nexport const invalidRecordBadDigest: OciSkillRecord = {\n key: 'quay.io/octo/bad-digest',\n name: 'Bad Digest Skill',\n sourceUri:\n 'oci://quay.io/octo/bad-digest@sha256:ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789',\n digest:\n 'sha256:ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789',\n};\n\n/**\n * Record with truncated digest.\n *\n * @public\n */\nexport const invalidRecordShortDigest: OciSkillRecord = {\n key: 'quay.io/octo/short-digest',\n name: 'Short Digest Skill',\n sourceUri: 'oci://quay.io/octo/short-digest@sha256:abcdef',\n digest: 'sha256:abcdef',\n};\n\n/**\n * npx record with OCI extension (source mismatch).\n *\n * @public\n */\nexport const invalidNpxRecordWithOciExtension: NpxSkillRecord = {\n key: 'mismatched-skill',\n name: 'Mismatched Skill',\n sourceUri: 'https://registry.example.com/skills/mismatch/SKILL.md',\n digest:\n 'sha256:5555555555555555555555555555555555555555555555555555555555555555',\n extensions: { oci: { namespace: 'bad' } } as unknown as {\n npx?: { type?: 'skill-md' };\n },\n};\n\n/**\n * OCI record with npx extension (source mismatch).\n *\n * @public\n */\nexport const invalidOciRecordWithNpxExtension: OciSkillRecord = {\n key: 'quay.io/octo/npx-ext-mismatch',\n name: 'Mismatch Skill',\n sourceUri:\n 'oci://quay.io/octo/mismatch@sha256:6666666666666666666666666666666666666666666666666666666666666666',\n digest:\n 'sha256:6666666666666666666666666666666666666666666666666666666666666666',\n extensions: { npx: { type: 'skill-md' } } as unknown as {\n oci?: { namespace?: string; prompt?: string };\n },\n};\n\n/**\n * OCI record with unknown extension key.\n *\n * @public\n */\nexport const invalidOciRecordUnknownExtKey: OciSkillRecord = {\n key: 'quay.io/octo/unknown-ext',\n name: 'Unknown Ext Skill',\n sourceUri:\n 'oci://quay.io/octo/unknown-ext@sha256:7777777777777777777777777777777777777777777777777777777777777777',\n digest:\n 'sha256:7777777777777777777777777777777777777777777777777777777777777777',\n extensions: {\n oci: { namespace: 'ok', secretKey: 'bad' } as unknown as {\n namespace?: string;\n prompt?: string;\n },\n },\n};\n\n// ─── Invalid snapshots ────────────────────────────────────────────────\n\n/**\n * Snapshot with unsupported schema version.\n *\n * @public\n */\nexport const invalidSnapshotBadVersion: unknown = {\n schemaVersion: '2',\n source: ociSource,\n status: 'ready',\n observedAt: '2026-09-01T12:00:00Z',\n skills: [],\n failedSkillKeys: [],\n};\n\n/**\n * Snapshot claiming ready with failed keys.\n *\n * @public\n */\nexport const invalidSnapshotReadyWithFailedKeys: unknown = {\n schemaVersion: '1',\n source: ociSource,\n status: 'ready',\n observedAt: '2026-09-01T12:00:00Z',\n skills: [validOciRecordMinimal],\n failedSkillKeys: ['quay.io/octo/failed-one'],\n};\n\n/**\n * Snapshot with duplicate skill keys.\n *\n * @public\n */\nexport const invalidSnapshotDuplicateKeys: unknown = {\n schemaVersion: '1',\n source: ociSource,\n status: 'ready',\n observedAt: '2026-09-01T12:00:00Z',\n skills: [validOciRecordMinimal, { ...validOciRecordMinimal }],\n failedSkillKeys: [],\n};\n\n/**\n * Snapshot with overlapping skill and failed keys.\n *\n * @public\n */\nexport const invalidSnapshotOverlappingKeys: unknown = {\n schemaVersion: '1',\n source: ociSource,\n status: 'partial',\n observedAt: '2026-09-01T12:00:00Z',\n skills: [validOciRecordMinimal],\n failedSkillKeys: [validOciRecordMinimal.key],\n};\n\n/**\n * Loading snapshot with non-null observedAt.\n *\n * @public\n */\nexport const invalidLoadingWithObservedAt: unknown = {\n schemaVersion: '1',\n source: ociSource,\n status: 'loading',\n observedAt: '2026-09-01T12:00:00Z',\n skills: [],\n failedSkillKeys: [],\n};\n\n/**\n * Loading snapshot with skills.\n *\n * @public\n */\nexport const invalidLoadingWithSkills: unknown = {\n schemaVersion: '1',\n source: ociSource,\n status: 'loading',\n observedAt: null,\n skills: [validOciRecordMinimal],\n failedSkillKeys: [],\n};\n\n/**\n * Failed snapshot with skills.\n *\n * @public\n */\nexport const invalidFailedWithSkills: unknown = {\n schemaVersion: '1',\n source: ociSource,\n status: 'failed',\n observedAt: '2026-09-01T12:00:00Z',\n skills: [validOciRecordMinimal],\n failedSkillKeys: [],\n};\n\n/**\n * Snapshot with non-UTC timestamp.\n *\n * @public\n */\nexport const invalidSnapshotNonUtcTimestamp: unknown = {\n schemaVersion: '1',\n source: ociSource,\n status: 'ready',\n observedAt: '2026-09-01T12:00:00-05:00',\n skills: [],\n failedSkillKeys: [],\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fixtures.cjs.js","sources":["../src/fixtures.ts"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Reusable OCI and npx contract fixtures for connector and provider tests.\n *\n * @packageDocumentation\n */\n\nimport type {\n NpxSkillRecord,\n OciSkillRecord,\n SkillSnapshot,\n SnapshotSource,\n} from './types';\n\nimport type {\n NpxDiscoveryEntry,\n NpxFrontmatter,\n NpxNativeInput,\n OciMarkdownFrontmatter,\n OciNativeInput,\n OciSkillCard,\n TrustedSourceInput,\n} from './normalizer';\n\n// ─── Sources ──────────────────────────────────────────────────────────\n\n/**\n * OCI source fixture for contract tests.\n *\n * @public\n */\nexport const ociSource: SnapshotSource = {\n id: 'quay-public',\n type: 'oci',\n};\n\n/**\n * npx source fixture for contract tests.\n *\n * @public\n */\nexport const npxSource: SnapshotSource = {\n id: 'rhess-index',\n type: 'npx',\n};\n\n// ─── Valid OCI records ────────────────────────────────────────────────\n\n/**\n * A valid OCI skill record with full metadata.\n *\n * @public\n */\nexport const validOciRecordFull: OciSkillRecord = {\n key: 'quay.io/octo/hello-world-skill:1.0.0-draft',\n name: 'Hello World Skill',\n description: 'A demo OCI skill image',\n version: '1.0.0',\n license: 'Apache-2.0',\n authors: [{ name: 'OCTO Team', email: 'octo@example.com' }],\n tags: ['demo', 'hello-world'],\n compatibility: 'rhdh-2.2',\n owner: 'team-octo',\n lifecycle: 'production',\n sourceUri:\n 'oci://quay.io/octo/hello-world-skill@sha256:abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789',\n digest:\n 'sha256:abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789',\n extensions: {\n oci: {\n namespace: 'octo-skills',\n prompt: 'You are a helpful assistant.',\n },\n },\n};\n\n/**\n * A valid OCI record with only required fields.\n *\n * @public\n */\nexport const validOciRecordMinimal: OciSkillRecord = {\n key: 'quay.io/octo/minimal-skill:latest',\n name: 'Minimal Skill',\n sourceUri:\n 'oci://quay.io/octo/minimal-skill@sha256:1111111111111111111111111111111111111111111111111111111111111111',\n digest:\n 'sha256:1111111111111111111111111111111111111111111111111111111111111111',\n};\n\n/**\n * A valid OCI record with empty extensions object.\n *\n * @public\n */\nexport const validOciRecordEmptyExtensions: OciSkillRecord = {\n key: 'quay.io/octo/no-ext-skill:v1',\n name: 'No Extensions Skill',\n sourceUri:\n 'oci://quay.io/octo/no-ext-skill@sha256:2222222222222222222222222222222222222222222222222222222222222222',\n digest:\n 'sha256:2222222222222222222222222222222222222222222222222222222222222222',\n extensions: {},\n};\n\n// ─── Valid npx records ────────────────────────────────────────────────\n\n/**\n * A valid npx skill record with full metadata.\n *\n * @public\n */\nexport const validNpxRecordFull: NpxSkillRecord = {\n key: 'summarize-text',\n name: 'Summarize Text',\n description: 'Summarizes input text using an LLM',\n version: '0.2.0',\n license: 'MIT',\n authors: [{ name: 'Agent Team' }],\n tags: ['summarization', 'text'],\n compatibility: 'agent-skills-v0.2',\n sourceUri: 'https://registry.example.com/skills/summarize-text/SKILL.md',\n digest:\n 'sha256:fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210',\n extensions: {\n npx: {\n type: 'skill-md',\n },\n },\n};\n\n/**\n * A valid npx record with only required fields.\n *\n * @public\n */\nexport const validNpxRecordMinimal: NpxSkillRecord = {\n key: 'basic-skill',\n name: 'Basic Skill',\n sourceUri: 'https://registry.example.com/skills/basic-skill/SKILL.md',\n digest:\n 'sha256:3333333333333333333333333333333333333333333333333333333333333333',\n};\n\n/**\n * A valid npx record with a query-string-bearing source URI.\n *\n * @public\n */\nexport const validNpxRecordWithQuery: NpxSkillRecord = {\n key: 'query-skill',\n name: 'Query Skill',\n sourceUri:\n 'https://registry.example.com/skills/query-skill/SKILL.md?version=2&format=raw',\n digest:\n 'sha256:4444444444444444444444444444444444444444444444444444444444444444',\n extensions: {\n npx: {\n type: 'skill-md',\n },\n },\n};\n\n// ─── Valid snapshots ──────────────────────────────────────────────────\n\n/**\n * A valid ready OCI snapshot.\n *\n * @public\n */\nexport const validOciSnapshotReady: SkillSnapshot = {\n schemaVersion: '1',\n source: ociSource,\n status: 'ready',\n observedAt: '2026-09-01T12:00:00Z',\n skills: [validOciRecordMinimal, validOciRecordFull],\n failedSkillKeys: [],\n};\n\n/**\n * A valid ready npx snapshot.\n *\n * @public\n */\nexport const validNpxSnapshotReady: SkillSnapshot = {\n schemaVersion: '1',\n source: npxSource,\n status: 'ready',\n observedAt: '2026-09-01T12:00:00Z',\n skills: [validNpxRecordMinimal, validNpxRecordFull],\n failedSkillKeys: [],\n};\n\n/**\n * A valid loading snapshot.\n *\n * @public\n */\nexport const validLoadingSnapshot: SkillSnapshot = {\n schemaVersion: '1',\n source: ociSource,\n status: 'loading',\n observedAt: null,\n skills: [],\n failedSkillKeys: [],\n};\n\n/**\n * A valid partial snapshot with failed keys.\n *\n * @public\n */\nexport const validPartialSnapshot: SkillSnapshot = {\n schemaVersion: '1',\n source: ociSource,\n status: 'partial',\n observedAt: '2026-09-01T12:05:00Z',\n skills: [validOciRecordMinimal],\n failedSkillKeys: ['quay.io/octo/broken-skill:v1'],\n};\n\n/**\n * A valid failed snapshot.\n *\n * @public\n */\nexport const validFailedSnapshot: SkillSnapshot = {\n schemaVersion: '1',\n source: ociSource,\n status: 'failed',\n observedAt: '2026-09-01T12:10:00Z',\n skills: [],\n failedSkillKeys: [],\n};\n\n/**\n * A valid partial snapshot with no records and no failed keys.\n *\n * @public\n */\nexport const validPartialEmptySnapshot: SkillSnapshot = {\n schemaVersion: '1',\n source: npxSource,\n status: 'partial',\n observedAt: '2026-09-01T12:15:00Z',\n skills: [],\n failedSkillKeys: [],\n};\n\n/**\n * A valid ready snapshot with zero records (successful empty discovery).\n *\n * @public\n */\nexport const validReadyEmptySnapshot: SkillSnapshot = {\n schemaVersion: '1',\n source: ociSource,\n status: 'ready',\n observedAt: '2026-09-01T12:20:00Z',\n skills: [],\n failedSkillKeys: [],\n};\n\n// ─── Invalid records ──────────────────────────────────────────────────\n\n/**\n * Record with empty key.\n *\n * @public\n */\nexport const invalidRecordEmptyKey: OciSkillRecord = {\n key: '',\n name: 'Bad Skill',\n sourceUri:\n 'oci://quay.io/octo/bad@sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',\n digest:\n 'sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',\n};\n\n/**\n * Record with malformed digest (uppercase).\n *\n * @public\n */\nexport const invalidRecordBadDigest: OciSkillRecord = {\n key: 'quay.io/octo/bad-digest',\n name: 'Bad Digest Skill',\n sourceUri:\n 'oci://quay.io/octo/bad-digest@sha256:ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789',\n digest:\n 'sha256:ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789',\n};\n\n/**\n * Record with truncated digest.\n *\n * @public\n */\nexport const invalidRecordShortDigest: OciSkillRecord = {\n key: 'quay.io/octo/short-digest',\n name: 'Short Digest Skill',\n sourceUri: 'oci://quay.io/octo/short-digest@sha256:abcdef',\n digest: 'sha256:abcdef',\n};\n\n/**\n * npx record with OCI extension (source mismatch).\n *\n * @public\n */\nexport const invalidNpxRecordWithOciExtension: NpxSkillRecord = {\n key: 'mismatched-skill',\n name: 'Mismatched Skill',\n sourceUri: 'https://registry.example.com/skills/mismatch/SKILL.md',\n digest:\n 'sha256:5555555555555555555555555555555555555555555555555555555555555555',\n extensions: { oci: { namespace: 'bad' } } as unknown as {\n npx?: { type?: 'skill-md' };\n },\n};\n\n/**\n * OCI record with npx extension (source mismatch).\n *\n * @public\n */\nexport const invalidOciRecordWithNpxExtension: OciSkillRecord = {\n key: 'quay.io/octo/npx-ext-mismatch',\n name: 'Mismatch Skill',\n sourceUri:\n 'oci://quay.io/octo/mismatch@sha256:6666666666666666666666666666666666666666666666666666666666666666',\n digest:\n 'sha256:6666666666666666666666666666666666666666666666666666666666666666',\n extensions: { npx: { type: 'skill-md' } } as unknown as {\n oci?: { namespace?: string; prompt?: string };\n },\n};\n\n/**\n * OCI record with unknown extension key.\n *\n * @public\n */\nexport const invalidOciRecordUnknownExtKey: OciSkillRecord = {\n key: 'quay.io/octo/unknown-ext',\n name: 'Unknown Ext Skill',\n sourceUri:\n 'oci://quay.io/octo/unknown-ext@sha256:7777777777777777777777777777777777777777777777777777777777777777',\n digest:\n 'sha256:7777777777777777777777777777777777777777777777777777777777777777',\n extensions: {\n oci: { namespace: 'ok', secretKey: 'bad' } as unknown as {\n namespace?: string;\n prompt?: string;\n },\n },\n};\n\n// ─── Invalid snapshots ────────────────────────────────────────────────\n\n/**\n * Snapshot with unsupported schema version.\n *\n * @public\n */\nexport const invalidSnapshotBadVersion: unknown = {\n schemaVersion: '2',\n source: ociSource,\n status: 'ready',\n observedAt: '2026-09-01T12:00:00Z',\n skills: [],\n failedSkillKeys: [],\n};\n\n/**\n * Snapshot claiming ready with failed keys.\n *\n * @public\n */\nexport const invalidSnapshotReadyWithFailedKeys: unknown = {\n schemaVersion: '1',\n source: ociSource,\n status: 'ready',\n observedAt: '2026-09-01T12:00:00Z',\n skills: [validOciRecordMinimal],\n failedSkillKeys: ['quay.io/octo/failed-one'],\n};\n\n/**\n * Snapshot with duplicate skill keys.\n *\n * @public\n */\nexport const invalidSnapshotDuplicateKeys: unknown = {\n schemaVersion: '1',\n source: ociSource,\n status: 'ready',\n observedAt: '2026-09-01T12:00:00Z',\n skills: [validOciRecordMinimal, { ...validOciRecordMinimal }],\n failedSkillKeys: [],\n};\n\n/**\n * Snapshot with overlapping skill and failed keys.\n *\n * @public\n */\nexport const invalidSnapshotOverlappingKeys: unknown = {\n schemaVersion: '1',\n source: ociSource,\n status: 'partial',\n observedAt: '2026-09-01T12:00:00Z',\n skills: [validOciRecordMinimal],\n failedSkillKeys: [validOciRecordMinimal.key],\n};\n\n/**\n * Loading snapshot with non-null observedAt.\n *\n * @public\n */\nexport const invalidLoadingWithObservedAt: unknown = {\n schemaVersion: '1',\n source: ociSource,\n status: 'loading',\n observedAt: '2026-09-01T12:00:00Z',\n skills: [],\n failedSkillKeys: [],\n};\n\n/**\n * Loading snapshot with skills.\n *\n * @public\n */\nexport const invalidLoadingWithSkills: unknown = {\n schemaVersion: '1',\n source: ociSource,\n status: 'loading',\n observedAt: null,\n skills: [validOciRecordMinimal],\n failedSkillKeys: [],\n};\n\n/**\n * Failed snapshot with skills.\n *\n * @public\n */\nexport const invalidFailedWithSkills: unknown = {\n schemaVersion: '1',\n source: ociSource,\n status: 'failed',\n observedAt: '2026-09-01T12:00:00Z',\n skills: [validOciRecordMinimal],\n failedSkillKeys: [],\n};\n\n/**\n * Snapshot with non-UTC timestamp.\n *\n * @public\n */\nexport const invalidSnapshotNonUtcTimestamp: unknown = {\n schemaVersion: '1',\n source: ociSource,\n status: 'ready',\n observedAt: '2026-09-01T12:00:00-05:00',\n skills: [],\n failedSkillKeys: [],\n};\n\n// ─── OCI native metadata fixtures ───────────────────────────────────\n\n/**\n * OCI SkillCard with full metadata including namespace and prompt.\n *\n * @public\n */\nexport const ociSkillCardFull: OciSkillCard = {\n metadata: {\n 'display-name': 'Hello World Skill',\n name: 'hello-world-skill',\n description: 'A demo OCI skill image',\n version: '1.0.0',\n license: 'Apache-2.0',\n authors: [{ name: 'OCTO Team', email: 'octo@example.com' }],\n tags: ['Demo', 'hello-world'],\n compatibility: 'rhdh-2.2',\n namespace: 'octo-skills',\n },\n spec: {\n prompt: 'You are a helpful assistant.',\n },\n};\n\n/**\n * OCI Markdown frontmatter with full metadata.\n *\n * The `metadata.version` here intentionally conflicts with the SkillCard\n * version to verify D3 precedence: SkillCard `metadata.version` (1.0.0)\n * wins over frontmatter `metadata.version` (1.0).\n *\n * @public\n */\nexport const ociMarkdownFrontmatterFull: OciMarkdownFrontmatter = {\n name: 'Hello World (Markdown)',\n description: 'A demo OCI skill from Markdown',\n version: '0.9.0',\n license: 'MIT',\n compatibility: 'rhdh-2.1',\n metadata: {\n version: '1.0',\n author: 'Markdown Author',\n tags: ['markdown-tag'],\n owner: 'team-octo',\n lifecycle: 'production',\n },\n};\n\n/**\n * OCI SkillCard with conflicting version.\n *\n * SkillCard `metadata.version` is 1.0.0 while the paired frontmatter\n * declares `metadata.version: \"1.0\"` and `version: \"0.9.0\"`. D3\n * precedence selects 1.0.0 as the declared version.\n *\n * @public\n */\nexport const ociSkillCardConflictingVersion: OciSkillCard = {\n metadata: {\n name: 'version-test-skill',\n version: '1.0.0',\n },\n};\n\n/**\n * OCI Markdown frontmatter with conflicting version values.\n *\n * Paired with {@link ociSkillCardConflictingVersion} to test D3\n * version precedence. The SkillCard version (1.0.0) wins.\n *\n * @public\n */\nexport const ociMarkdownFrontmatterConflictingVersion: OciMarkdownFrontmatter =\n {\n name: 'Version Test (Markdown)',\n metadata: {\n version: '1.0',\n },\n version: '0.9.0',\n };\n\n/**\n * OCI SkillCard with only a name — no optional metadata.\n *\n * @public\n */\nexport const ociSkillCardMinimal: OciSkillCard = {\n metadata: {\n name: 'Minimal Skill',\n },\n};\n\n/**\n * Combined OCI native input with full metadata.\n *\n * @public\n */\nexport const ociNativeInputFull: OciNativeInput = {\n skillCard: ociSkillCardFull,\n frontmatter: ociMarkdownFrontmatterFull,\n};\n\n/**\n * Combined OCI native input with conflicting versions.\n *\n * @public\n */\nexport const ociNativeInputConflictingVersion: OciNativeInput = {\n skillCard: ociSkillCardConflictingVersion,\n frontmatter: ociMarkdownFrontmatterConflictingVersion,\n};\n\n/**\n * Combined OCI native input with only a minimal SkillCard.\n *\n * @public\n */\nexport const ociNativeInputMinimal: OciNativeInput = {\n skillCard: ociSkillCardMinimal,\n};\n\n/**\n * Trusted source input for OCI fixtures.\n *\n * @public\n */\nexport const ociTrustedInput: TrustedSourceInput = {\n key: 'quay.io/octo/hello-world-skill:1.0.0-draft',\n sourceUri:\n 'oci://quay.io/octo/hello-world-skill@sha256:abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789',\n digest:\n 'sha256:abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789',\n};\n\n// ─── npx native metadata fixtures ───────────────────────────────────\n\n/**\n * npx discovery entry with full metadata.\n *\n * @public\n */\nexport const npxDiscoveryEntryFull: NpxDiscoveryEntry = {\n name: 'summarize-text',\n description: 'Summarizes input text using an LLM',\n type: 'skill-md',\n};\n\n/**\n * npx Markdown frontmatter with full metadata.\n *\n * @public\n */\nexport const npxFrontmatterFull: NpxFrontmatter = {\n name: 'Summarize Text',\n description: 'A skill for summarizing text content',\n version: '0.2.0',\n license: 'MIT',\n compatibility: 'agent-skills-v0.2',\n metadata: {\n version: '0.2.0',\n author: 'Agent Team',\n tags: ['summarization', 'text'],\n owner: 'team-agents',\n lifecycle: 'experimental',\n },\n};\n\n/**\n * npx discovery entry with only a name (minimal).\n *\n * @public\n */\nexport const npxDiscoveryEntryMinimal: NpxDiscoveryEntry = {\n name: 'basic-skill',\n};\n\n/**\n * npx Markdown frontmatter with conflicting version values.\n *\n * `metadata.version` (2.0.0) has higher precedence than top-level\n * `version` (1.5.0) per D3.\n *\n * @public\n */\nexport const npxFrontmatterConflictingVersion: NpxFrontmatter = {\n name: 'Version Conflict Skill',\n metadata: {\n version: '2.0.0',\n },\n version: '1.5.0',\n};\n\n/**\n * Combined npx native input with full metadata.\n *\n * @public\n */\nexport const npxNativeInputFull: NpxNativeInput = {\n entry: npxDiscoveryEntryFull,\n frontmatter: npxFrontmatterFull,\n};\n\n/**\n * Combined npx native input with conflicting versions.\n *\n * @public\n */\nexport const npxNativeInputConflictingVersion: NpxNativeInput = {\n entry: npxDiscoveryEntryMinimal,\n frontmatter: npxFrontmatterConflictingVersion,\n};\n\n/**\n * Combined npx native input with minimal data.\n *\n * @public\n */\nexport const npxNativeInputMinimal: NpxNativeInput = {\n entry: npxDiscoveryEntryMinimal,\n};\n\n/**\n * Trusted source input for npx fixtures.\n *\n * @public\n */\nexport const npxTrustedInput: TrustedSourceInput = {\n key: 'summarize-text',\n sourceUri: 'https://registry.example.com/skills/summarize-text/SKILL.md',\n digest:\n 'sha256:fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210',\n};\n"],"names":[],"mappings":"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"}
|
package/dist/fixtures.esm.js
CHANGED
|
@@ -7,7 +7,7 @@ const npxSource = {
|
|
|
7
7
|
type: "npx"
|
|
8
8
|
};
|
|
9
9
|
const validOciRecordFull = {
|
|
10
|
-
key: "quay.io/octo/hello-world-skill",
|
|
10
|
+
key: "quay.io/octo/hello-world-skill:1.0.0-draft",
|
|
11
11
|
name: "Hello World Skill",
|
|
12
12
|
description: "A demo OCI skill image",
|
|
13
13
|
version: "1.0.0",
|
|
@@ -27,13 +27,13 @@ const validOciRecordFull = {
|
|
|
27
27
|
}
|
|
28
28
|
};
|
|
29
29
|
const validOciRecordMinimal = {
|
|
30
|
-
key: "quay.io/octo/minimal-skill",
|
|
30
|
+
key: "quay.io/octo/minimal-skill:latest",
|
|
31
31
|
name: "Minimal Skill",
|
|
32
32
|
sourceUri: "oci://quay.io/octo/minimal-skill@sha256:1111111111111111111111111111111111111111111111111111111111111111",
|
|
33
33
|
digest: "sha256:1111111111111111111111111111111111111111111111111111111111111111"
|
|
34
34
|
};
|
|
35
35
|
const validOciRecordEmptyExtensions = {
|
|
36
|
-
key: "quay.io/octo/no-ext-skill",
|
|
36
|
+
key: "quay.io/octo/no-ext-skill:v1",
|
|
37
37
|
name: "No Extensions Skill",
|
|
38
38
|
sourceUri: "oci://quay.io/octo/no-ext-skill@sha256:2222222222222222222222222222222222222222222222222222222222222222",
|
|
39
39
|
digest: "sha256:2222222222222222222222222222222222222222222222222222222222222222",
|
|
@@ -103,7 +103,7 @@ const validPartialSnapshot = {
|
|
|
103
103
|
status: "partial",
|
|
104
104
|
observedAt: "2026-09-01T12:05:00Z",
|
|
105
105
|
skills: [validOciRecordMinimal],
|
|
106
|
-
failedSkillKeys: ["quay.io/octo/broken-skill"]
|
|
106
|
+
failedSkillKeys: ["quay.io/octo/broken-skill:v1"]
|
|
107
107
|
};
|
|
108
108
|
const validFailedSnapshot = {
|
|
109
109
|
schemaVersion: "1",
|
|
@@ -234,6 +234,115 @@ const invalidSnapshotNonUtcTimestamp = {
|
|
|
234
234
|
skills: [],
|
|
235
235
|
failedSkillKeys: []
|
|
236
236
|
};
|
|
237
|
+
const ociSkillCardFull = {
|
|
238
|
+
metadata: {
|
|
239
|
+
"display-name": "Hello World Skill",
|
|
240
|
+
name: "hello-world-skill",
|
|
241
|
+
description: "A demo OCI skill image",
|
|
242
|
+
version: "1.0.0",
|
|
243
|
+
license: "Apache-2.0",
|
|
244
|
+
authors: [{ name: "OCTO Team", email: "octo@example.com" }],
|
|
245
|
+
tags: ["Demo", "hello-world"],
|
|
246
|
+
compatibility: "rhdh-2.2",
|
|
247
|
+
namespace: "octo-skills"
|
|
248
|
+
},
|
|
249
|
+
spec: {
|
|
250
|
+
prompt: "You are a helpful assistant."
|
|
251
|
+
}
|
|
252
|
+
};
|
|
253
|
+
const ociMarkdownFrontmatterFull = {
|
|
254
|
+
name: "Hello World (Markdown)",
|
|
255
|
+
description: "A demo OCI skill from Markdown",
|
|
256
|
+
version: "0.9.0",
|
|
257
|
+
license: "MIT",
|
|
258
|
+
compatibility: "rhdh-2.1",
|
|
259
|
+
metadata: {
|
|
260
|
+
version: "1.0",
|
|
261
|
+
author: "Markdown Author",
|
|
262
|
+
tags: ["markdown-tag"],
|
|
263
|
+
owner: "team-octo",
|
|
264
|
+
lifecycle: "production"
|
|
265
|
+
}
|
|
266
|
+
};
|
|
267
|
+
const ociSkillCardConflictingVersion = {
|
|
268
|
+
metadata: {
|
|
269
|
+
name: "version-test-skill",
|
|
270
|
+
version: "1.0.0"
|
|
271
|
+
}
|
|
272
|
+
};
|
|
273
|
+
const ociMarkdownFrontmatterConflictingVersion = {
|
|
274
|
+
name: "Version Test (Markdown)",
|
|
275
|
+
metadata: {
|
|
276
|
+
version: "1.0"
|
|
277
|
+
},
|
|
278
|
+
version: "0.9.0"
|
|
279
|
+
};
|
|
280
|
+
const ociSkillCardMinimal = {
|
|
281
|
+
metadata: {
|
|
282
|
+
name: "Minimal Skill"
|
|
283
|
+
}
|
|
284
|
+
};
|
|
285
|
+
const ociNativeInputFull = {
|
|
286
|
+
skillCard: ociSkillCardFull,
|
|
287
|
+
frontmatter: ociMarkdownFrontmatterFull
|
|
288
|
+
};
|
|
289
|
+
const ociNativeInputConflictingVersion = {
|
|
290
|
+
skillCard: ociSkillCardConflictingVersion,
|
|
291
|
+
frontmatter: ociMarkdownFrontmatterConflictingVersion
|
|
292
|
+
};
|
|
293
|
+
const ociNativeInputMinimal = {
|
|
294
|
+
skillCard: ociSkillCardMinimal
|
|
295
|
+
};
|
|
296
|
+
const ociTrustedInput = {
|
|
297
|
+
key: "quay.io/octo/hello-world-skill:1.0.0-draft",
|
|
298
|
+
sourceUri: "oci://quay.io/octo/hello-world-skill@sha256:abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789",
|
|
299
|
+
digest: "sha256:abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789"
|
|
300
|
+
};
|
|
301
|
+
const npxDiscoveryEntryFull = {
|
|
302
|
+
name: "summarize-text",
|
|
303
|
+
description: "Summarizes input text using an LLM",
|
|
304
|
+
type: "skill-md"
|
|
305
|
+
};
|
|
306
|
+
const npxFrontmatterFull = {
|
|
307
|
+
name: "Summarize Text",
|
|
308
|
+
description: "A skill for summarizing text content",
|
|
309
|
+
version: "0.2.0",
|
|
310
|
+
license: "MIT",
|
|
311
|
+
compatibility: "agent-skills-v0.2",
|
|
312
|
+
metadata: {
|
|
313
|
+
version: "0.2.0",
|
|
314
|
+
author: "Agent Team",
|
|
315
|
+
tags: ["summarization", "text"],
|
|
316
|
+
owner: "team-agents",
|
|
317
|
+
lifecycle: "experimental"
|
|
318
|
+
}
|
|
319
|
+
};
|
|
320
|
+
const npxDiscoveryEntryMinimal = {
|
|
321
|
+
name: "basic-skill"
|
|
322
|
+
};
|
|
323
|
+
const npxFrontmatterConflictingVersion = {
|
|
324
|
+
name: "Version Conflict Skill",
|
|
325
|
+
metadata: {
|
|
326
|
+
version: "2.0.0"
|
|
327
|
+
},
|
|
328
|
+
version: "1.5.0"
|
|
329
|
+
};
|
|
330
|
+
const npxNativeInputFull = {
|
|
331
|
+
entry: npxDiscoveryEntryFull,
|
|
332
|
+
frontmatter: npxFrontmatterFull
|
|
333
|
+
};
|
|
334
|
+
const npxNativeInputConflictingVersion = {
|
|
335
|
+
entry: npxDiscoveryEntryMinimal,
|
|
336
|
+
frontmatter: npxFrontmatterConflictingVersion
|
|
337
|
+
};
|
|
338
|
+
const npxNativeInputMinimal = {
|
|
339
|
+
entry: npxDiscoveryEntryMinimal
|
|
340
|
+
};
|
|
341
|
+
const npxTrustedInput = {
|
|
342
|
+
key: "summarize-text",
|
|
343
|
+
sourceUri: "https://registry.example.com/skills/summarize-text/SKILL.md",
|
|
344
|
+
digest: "sha256:fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210"
|
|
345
|
+
};
|
|
237
346
|
|
|
238
|
-
export { invalidFailedWithSkills, invalidLoadingWithObservedAt, invalidLoadingWithSkills, invalidNpxRecordWithOciExtension, invalidOciRecordUnknownExtKey, invalidOciRecordWithNpxExtension, invalidRecordBadDigest, invalidRecordEmptyKey, invalidRecordShortDigest, invalidSnapshotBadVersion, invalidSnapshotDuplicateKeys, invalidSnapshotNonUtcTimestamp, invalidSnapshotOverlappingKeys, invalidSnapshotReadyWithFailedKeys, npxSource, ociSource, validFailedSnapshot, validLoadingSnapshot, validNpxRecordFull, validNpxRecordMinimal, validNpxRecordWithQuery, validNpxSnapshotReady, validOciRecordEmptyExtensions, validOciRecordFull, validOciRecordMinimal, validOciSnapshotReady, validPartialEmptySnapshot, validPartialSnapshot, validReadyEmptySnapshot };
|
|
347
|
+
export { invalidFailedWithSkills, invalidLoadingWithObservedAt, invalidLoadingWithSkills, invalidNpxRecordWithOciExtension, invalidOciRecordUnknownExtKey, invalidOciRecordWithNpxExtension, invalidRecordBadDigest, invalidRecordEmptyKey, invalidRecordShortDigest, invalidSnapshotBadVersion, invalidSnapshotDuplicateKeys, invalidSnapshotNonUtcTimestamp, invalidSnapshotOverlappingKeys, invalidSnapshotReadyWithFailedKeys, npxDiscoveryEntryFull, npxDiscoveryEntryMinimal, npxFrontmatterConflictingVersion, npxFrontmatterFull, npxNativeInputConflictingVersion, npxNativeInputFull, npxNativeInputMinimal, npxSource, npxTrustedInput, ociMarkdownFrontmatterConflictingVersion, ociMarkdownFrontmatterFull, ociNativeInputConflictingVersion, ociNativeInputFull, ociNativeInputMinimal, ociSkillCardConflictingVersion, ociSkillCardFull, ociSkillCardMinimal, ociSource, ociTrustedInput, validFailedSnapshot, validLoadingSnapshot, validNpxRecordFull, validNpxRecordMinimal, validNpxRecordWithQuery, validNpxSnapshotReady, validOciRecordEmptyExtensions, validOciRecordFull, validOciRecordMinimal, validOciSnapshotReady, validPartialEmptySnapshot, validPartialSnapshot, validReadyEmptySnapshot };
|
|
239
348
|
//# sourceMappingURL=fixtures.esm.js.map
|
package/dist/fixtures.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixtures.esm.js","sources":["../src/fixtures.ts"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Reusable OCI and npx contract fixtures for connector and provider tests.\n *\n * @packageDocumentation\n */\n\nimport type {\n NpxSkillRecord,\n OciSkillRecord,\n SkillSnapshot,\n SnapshotSource,\n} from './types';\n\n// ─── Sources ──────────────────────────────────────────────────────────\n\n/**\n * OCI source fixture for contract tests.\n *\n * @public\n */\nexport const ociSource: SnapshotSource = {\n id: 'quay-public',\n type: 'oci',\n};\n\n/**\n * npx source fixture for contract tests.\n *\n * @public\n */\nexport const npxSource: SnapshotSource = {\n id: 'rhess-index',\n type: 'npx',\n};\n\n// ─── Valid OCI records ────────────────────────────────────────────────\n\n/**\n * A valid OCI skill record with full metadata.\n *\n * @public\n */\nexport const validOciRecordFull: OciSkillRecord = {\n key: 'quay.io/octo/hello-world-skill',\n name: 'Hello World Skill',\n description: 'A demo OCI skill image',\n version: '1.0.0',\n license: 'Apache-2.0',\n authors: [{ name: 'OCTO Team', email: 'octo@example.com' }],\n tags: ['demo', 'hello-world'],\n compatibility: 'rhdh-2.2',\n owner: 'team-octo',\n lifecycle: 'production',\n sourceUri:\n 'oci://quay.io/octo/hello-world-skill@sha256:abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789',\n digest:\n 'sha256:abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789',\n extensions: {\n oci: {\n namespace: 'octo-skills',\n prompt: 'You are a helpful assistant.',\n },\n },\n};\n\n/**\n * A valid OCI record with only required fields.\n *\n * @public\n */\nexport const validOciRecordMinimal: OciSkillRecord = {\n key: 'quay.io/octo/minimal-skill',\n name: 'Minimal Skill',\n sourceUri:\n 'oci://quay.io/octo/minimal-skill@sha256:1111111111111111111111111111111111111111111111111111111111111111',\n digest:\n 'sha256:1111111111111111111111111111111111111111111111111111111111111111',\n};\n\n/**\n * A valid OCI record with empty extensions object.\n *\n * @public\n */\nexport const validOciRecordEmptyExtensions: OciSkillRecord = {\n key: 'quay.io/octo/no-ext-skill',\n name: 'No Extensions Skill',\n sourceUri:\n 'oci://quay.io/octo/no-ext-skill@sha256:2222222222222222222222222222222222222222222222222222222222222222',\n digest:\n 'sha256:2222222222222222222222222222222222222222222222222222222222222222',\n extensions: {},\n};\n\n// ─── Valid npx records ────────────────────────────────────────────────\n\n/**\n * A valid npx skill record with full metadata.\n *\n * @public\n */\nexport const validNpxRecordFull: NpxSkillRecord = {\n key: 'summarize-text',\n name: 'Summarize Text',\n description: 'Summarizes input text using an LLM',\n version: '0.2.0',\n license: 'MIT',\n authors: [{ name: 'Agent Team' }],\n tags: ['summarization', 'text'],\n compatibility: 'agent-skills-v0.2',\n sourceUri: 'https://registry.example.com/skills/summarize-text/SKILL.md',\n digest:\n 'sha256:fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210',\n extensions: {\n npx: {\n type: 'skill-md',\n },\n },\n};\n\n/**\n * A valid npx record with only required fields.\n *\n * @public\n */\nexport const validNpxRecordMinimal: NpxSkillRecord = {\n key: 'basic-skill',\n name: 'Basic Skill',\n sourceUri: 'https://registry.example.com/skills/basic-skill/SKILL.md',\n digest:\n 'sha256:3333333333333333333333333333333333333333333333333333333333333333',\n};\n\n/**\n * A valid npx record with a query-string-bearing source URI.\n *\n * @public\n */\nexport const validNpxRecordWithQuery: NpxSkillRecord = {\n key: 'query-skill',\n name: 'Query Skill',\n sourceUri:\n 'https://registry.example.com/skills/query-skill/SKILL.md?version=2&format=raw',\n digest:\n 'sha256:4444444444444444444444444444444444444444444444444444444444444444',\n extensions: {\n npx: {\n type: 'skill-md',\n },\n },\n};\n\n// ─── Valid snapshots ──────────────────────────────────────────────────\n\n/**\n * A valid ready OCI snapshot.\n *\n * @public\n */\nexport const validOciSnapshotReady: SkillSnapshot = {\n schemaVersion: '1',\n source: ociSource,\n status: 'ready',\n observedAt: '2026-09-01T12:00:00Z',\n skills: [validOciRecordMinimal, validOciRecordFull],\n failedSkillKeys: [],\n};\n\n/**\n * A valid ready npx snapshot.\n *\n * @public\n */\nexport const validNpxSnapshotReady: SkillSnapshot = {\n schemaVersion: '1',\n source: npxSource,\n status: 'ready',\n observedAt: '2026-09-01T12:00:00Z',\n skills: [validNpxRecordMinimal, validNpxRecordFull],\n failedSkillKeys: [],\n};\n\n/**\n * A valid loading snapshot.\n *\n * @public\n */\nexport const validLoadingSnapshot: SkillSnapshot = {\n schemaVersion: '1',\n source: ociSource,\n status: 'loading',\n observedAt: null,\n skills: [],\n failedSkillKeys: [],\n};\n\n/**\n * A valid partial snapshot with failed keys.\n *\n * @public\n */\nexport const validPartialSnapshot: SkillSnapshot = {\n schemaVersion: '1',\n source: ociSource,\n status: 'partial',\n observedAt: '2026-09-01T12:05:00Z',\n skills: [validOciRecordMinimal],\n failedSkillKeys: ['quay.io/octo/broken-skill'],\n};\n\n/**\n * A valid failed snapshot.\n *\n * @public\n */\nexport const validFailedSnapshot: SkillSnapshot = {\n schemaVersion: '1',\n source: ociSource,\n status: 'failed',\n observedAt: '2026-09-01T12:10:00Z',\n skills: [],\n failedSkillKeys: [],\n};\n\n/**\n * A valid partial snapshot with no records and no failed keys.\n *\n * @public\n */\nexport const validPartialEmptySnapshot: SkillSnapshot = {\n schemaVersion: '1',\n source: npxSource,\n status: 'partial',\n observedAt: '2026-09-01T12:15:00Z',\n skills: [],\n failedSkillKeys: [],\n};\n\n/**\n * A valid ready snapshot with zero records (successful empty discovery).\n *\n * @public\n */\nexport const validReadyEmptySnapshot: SkillSnapshot = {\n schemaVersion: '1',\n source: ociSource,\n status: 'ready',\n observedAt: '2026-09-01T12:20:00Z',\n skills: [],\n failedSkillKeys: [],\n};\n\n// ─── Invalid records ──────────────────────────────────────────────────\n\n/**\n * Record with empty key.\n *\n * @public\n */\nexport const invalidRecordEmptyKey: OciSkillRecord = {\n key: '',\n name: 'Bad Skill',\n sourceUri:\n 'oci://quay.io/octo/bad@sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',\n digest:\n 'sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',\n};\n\n/**\n * Record with malformed digest (uppercase).\n *\n * @public\n */\nexport const invalidRecordBadDigest: OciSkillRecord = {\n key: 'quay.io/octo/bad-digest',\n name: 'Bad Digest Skill',\n sourceUri:\n 'oci://quay.io/octo/bad-digest@sha256:ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789',\n digest:\n 'sha256:ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789',\n};\n\n/**\n * Record with truncated digest.\n *\n * @public\n */\nexport const invalidRecordShortDigest: OciSkillRecord = {\n key: 'quay.io/octo/short-digest',\n name: 'Short Digest Skill',\n sourceUri: 'oci://quay.io/octo/short-digest@sha256:abcdef',\n digest: 'sha256:abcdef',\n};\n\n/**\n * npx record with OCI extension (source mismatch).\n *\n * @public\n */\nexport const invalidNpxRecordWithOciExtension: NpxSkillRecord = {\n key: 'mismatched-skill',\n name: 'Mismatched Skill',\n sourceUri: 'https://registry.example.com/skills/mismatch/SKILL.md',\n digest:\n 'sha256:5555555555555555555555555555555555555555555555555555555555555555',\n extensions: { oci: { namespace: 'bad' } } as unknown as {\n npx?: { type?: 'skill-md' };\n },\n};\n\n/**\n * OCI record with npx extension (source mismatch).\n *\n * @public\n */\nexport const invalidOciRecordWithNpxExtension: OciSkillRecord = {\n key: 'quay.io/octo/npx-ext-mismatch',\n name: 'Mismatch Skill',\n sourceUri:\n 'oci://quay.io/octo/mismatch@sha256:6666666666666666666666666666666666666666666666666666666666666666',\n digest:\n 'sha256:6666666666666666666666666666666666666666666666666666666666666666',\n extensions: { npx: { type: 'skill-md' } } as unknown as {\n oci?: { namespace?: string; prompt?: string };\n },\n};\n\n/**\n * OCI record with unknown extension key.\n *\n * @public\n */\nexport const invalidOciRecordUnknownExtKey: OciSkillRecord = {\n key: 'quay.io/octo/unknown-ext',\n name: 'Unknown Ext Skill',\n sourceUri:\n 'oci://quay.io/octo/unknown-ext@sha256:7777777777777777777777777777777777777777777777777777777777777777',\n digest:\n 'sha256:7777777777777777777777777777777777777777777777777777777777777777',\n extensions: {\n oci: { namespace: 'ok', secretKey: 'bad' } as unknown as {\n namespace?: string;\n prompt?: string;\n },\n },\n};\n\n// ─── Invalid snapshots ────────────────────────────────────────────────\n\n/**\n * Snapshot with unsupported schema version.\n *\n * @public\n */\nexport const invalidSnapshotBadVersion: unknown = {\n schemaVersion: '2',\n source: ociSource,\n status: 'ready',\n observedAt: '2026-09-01T12:00:00Z',\n skills: [],\n failedSkillKeys: [],\n};\n\n/**\n * Snapshot claiming ready with failed keys.\n *\n * @public\n */\nexport const invalidSnapshotReadyWithFailedKeys: unknown = {\n schemaVersion: '1',\n source: ociSource,\n status: 'ready',\n observedAt: '2026-09-01T12:00:00Z',\n skills: [validOciRecordMinimal],\n failedSkillKeys: ['quay.io/octo/failed-one'],\n};\n\n/**\n * Snapshot with duplicate skill keys.\n *\n * @public\n */\nexport const invalidSnapshotDuplicateKeys: unknown = {\n schemaVersion: '1',\n source: ociSource,\n status: 'ready',\n observedAt: '2026-09-01T12:00:00Z',\n skills: [validOciRecordMinimal, { ...validOciRecordMinimal }],\n failedSkillKeys: [],\n};\n\n/**\n * Snapshot with overlapping skill and failed keys.\n *\n * @public\n */\nexport const invalidSnapshotOverlappingKeys: unknown = {\n schemaVersion: '1',\n source: ociSource,\n status: 'partial',\n observedAt: '2026-09-01T12:00:00Z',\n skills: [validOciRecordMinimal],\n failedSkillKeys: [validOciRecordMinimal.key],\n};\n\n/**\n * Loading snapshot with non-null observedAt.\n *\n * @public\n */\nexport const invalidLoadingWithObservedAt: unknown = {\n schemaVersion: '1',\n source: ociSource,\n status: 'loading',\n observedAt: '2026-09-01T12:00:00Z',\n skills: [],\n failedSkillKeys: [],\n};\n\n/**\n * Loading snapshot with skills.\n *\n * @public\n */\nexport const invalidLoadingWithSkills: unknown = {\n schemaVersion: '1',\n source: ociSource,\n status: 'loading',\n observedAt: null,\n skills: [validOciRecordMinimal],\n failedSkillKeys: [],\n};\n\n/**\n * Failed snapshot with skills.\n *\n * @public\n */\nexport const invalidFailedWithSkills: unknown = {\n schemaVersion: '1',\n source: ociSource,\n status: 'failed',\n observedAt: '2026-09-01T12:00:00Z',\n skills: [validOciRecordMinimal],\n failedSkillKeys: [],\n};\n\n/**\n * Snapshot with non-UTC timestamp.\n *\n * @public\n */\nexport const invalidSnapshotNonUtcTimestamp: unknown = {\n schemaVersion: '1',\n source: ociSource,\n status: 'ready',\n observedAt: '2026-09-01T12:00:00-05:00',\n skills: [],\n failedSkillKeys: [],\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fixtures.esm.js","sources":["../src/fixtures.ts"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Reusable OCI and npx contract fixtures for connector and provider tests.\n *\n * @packageDocumentation\n */\n\nimport type {\n NpxSkillRecord,\n OciSkillRecord,\n SkillSnapshot,\n SnapshotSource,\n} from './types';\n\nimport type {\n NpxDiscoveryEntry,\n NpxFrontmatter,\n NpxNativeInput,\n OciMarkdownFrontmatter,\n OciNativeInput,\n OciSkillCard,\n TrustedSourceInput,\n} from './normalizer';\n\n// ─── Sources ──────────────────────────────────────────────────────────\n\n/**\n * OCI source fixture for contract tests.\n *\n * @public\n */\nexport const ociSource: SnapshotSource = {\n id: 'quay-public',\n type: 'oci',\n};\n\n/**\n * npx source fixture for contract tests.\n *\n * @public\n */\nexport const npxSource: SnapshotSource = {\n id: 'rhess-index',\n type: 'npx',\n};\n\n// ─── Valid OCI records ────────────────────────────────────────────────\n\n/**\n * A valid OCI skill record with full metadata.\n *\n * @public\n */\nexport const validOciRecordFull: OciSkillRecord = {\n key: 'quay.io/octo/hello-world-skill:1.0.0-draft',\n name: 'Hello World Skill',\n description: 'A demo OCI skill image',\n version: '1.0.0',\n license: 'Apache-2.0',\n authors: [{ name: 'OCTO Team', email: 'octo@example.com' }],\n tags: ['demo', 'hello-world'],\n compatibility: 'rhdh-2.2',\n owner: 'team-octo',\n lifecycle: 'production',\n sourceUri:\n 'oci://quay.io/octo/hello-world-skill@sha256:abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789',\n digest:\n 'sha256:abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789',\n extensions: {\n oci: {\n namespace: 'octo-skills',\n prompt: 'You are a helpful assistant.',\n },\n },\n};\n\n/**\n * A valid OCI record with only required fields.\n *\n * @public\n */\nexport const validOciRecordMinimal: OciSkillRecord = {\n key: 'quay.io/octo/minimal-skill:latest',\n name: 'Minimal Skill',\n sourceUri:\n 'oci://quay.io/octo/minimal-skill@sha256:1111111111111111111111111111111111111111111111111111111111111111',\n digest:\n 'sha256:1111111111111111111111111111111111111111111111111111111111111111',\n};\n\n/**\n * A valid OCI record with empty extensions object.\n *\n * @public\n */\nexport const validOciRecordEmptyExtensions: OciSkillRecord = {\n key: 'quay.io/octo/no-ext-skill:v1',\n name: 'No Extensions Skill',\n sourceUri:\n 'oci://quay.io/octo/no-ext-skill@sha256:2222222222222222222222222222222222222222222222222222222222222222',\n digest:\n 'sha256:2222222222222222222222222222222222222222222222222222222222222222',\n extensions: {},\n};\n\n// ─── Valid npx records ────────────────────────────────────────────────\n\n/**\n * A valid npx skill record with full metadata.\n *\n * @public\n */\nexport const validNpxRecordFull: NpxSkillRecord = {\n key: 'summarize-text',\n name: 'Summarize Text',\n description: 'Summarizes input text using an LLM',\n version: '0.2.0',\n license: 'MIT',\n authors: [{ name: 'Agent Team' }],\n tags: ['summarization', 'text'],\n compatibility: 'agent-skills-v0.2',\n sourceUri: 'https://registry.example.com/skills/summarize-text/SKILL.md',\n digest:\n 'sha256:fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210',\n extensions: {\n npx: {\n type: 'skill-md',\n },\n },\n};\n\n/**\n * A valid npx record with only required fields.\n *\n * @public\n */\nexport const validNpxRecordMinimal: NpxSkillRecord = {\n key: 'basic-skill',\n name: 'Basic Skill',\n sourceUri: 'https://registry.example.com/skills/basic-skill/SKILL.md',\n digest:\n 'sha256:3333333333333333333333333333333333333333333333333333333333333333',\n};\n\n/**\n * A valid npx record with a query-string-bearing source URI.\n *\n * @public\n */\nexport const validNpxRecordWithQuery: NpxSkillRecord = {\n key: 'query-skill',\n name: 'Query Skill',\n sourceUri:\n 'https://registry.example.com/skills/query-skill/SKILL.md?version=2&format=raw',\n digest:\n 'sha256:4444444444444444444444444444444444444444444444444444444444444444',\n extensions: {\n npx: {\n type: 'skill-md',\n },\n },\n};\n\n// ─── Valid snapshots ──────────────────────────────────────────────────\n\n/**\n * A valid ready OCI snapshot.\n *\n * @public\n */\nexport const validOciSnapshotReady: SkillSnapshot = {\n schemaVersion: '1',\n source: ociSource,\n status: 'ready',\n observedAt: '2026-09-01T12:00:00Z',\n skills: [validOciRecordMinimal, validOciRecordFull],\n failedSkillKeys: [],\n};\n\n/**\n * A valid ready npx snapshot.\n *\n * @public\n */\nexport const validNpxSnapshotReady: SkillSnapshot = {\n schemaVersion: '1',\n source: npxSource,\n status: 'ready',\n observedAt: '2026-09-01T12:00:00Z',\n skills: [validNpxRecordMinimal, validNpxRecordFull],\n failedSkillKeys: [],\n};\n\n/**\n * A valid loading snapshot.\n *\n * @public\n */\nexport const validLoadingSnapshot: SkillSnapshot = {\n schemaVersion: '1',\n source: ociSource,\n status: 'loading',\n observedAt: null,\n skills: [],\n failedSkillKeys: [],\n};\n\n/**\n * A valid partial snapshot with failed keys.\n *\n * @public\n */\nexport const validPartialSnapshot: SkillSnapshot = {\n schemaVersion: '1',\n source: ociSource,\n status: 'partial',\n observedAt: '2026-09-01T12:05:00Z',\n skills: [validOciRecordMinimal],\n failedSkillKeys: ['quay.io/octo/broken-skill:v1'],\n};\n\n/**\n * A valid failed snapshot.\n *\n * @public\n */\nexport const validFailedSnapshot: SkillSnapshot = {\n schemaVersion: '1',\n source: ociSource,\n status: 'failed',\n observedAt: '2026-09-01T12:10:00Z',\n skills: [],\n failedSkillKeys: [],\n};\n\n/**\n * A valid partial snapshot with no records and no failed keys.\n *\n * @public\n */\nexport const validPartialEmptySnapshot: SkillSnapshot = {\n schemaVersion: '1',\n source: npxSource,\n status: 'partial',\n observedAt: '2026-09-01T12:15:00Z',\n skills: [],\n failedSkillKeys: [],\n};\n\n/**\n * A valid ready snapshot with zero records (successful empty discovery).\n *\n * @public\n */\nexport const validReadyEmptySnapshot: SkillSnapshot = {\n schemaVersion: '1',\n source: ociSource,\n status: 'ready',\n observedAt: '2026-09-01T12:20:00Z',\n skills: [],\n failedSkillKeys: [],\n};\n\n// ─── Invalid records ──────────────────────────────────────────────────\n\n/**\n * Record with empty key.\n *\n * @public\n */\nexport const invalidRecordEmptyKey: OciSkillRecord = {\n key: '',\n name: 'Bad Skill',\n sourceUri:\n 'oci://quay.io/octo/bad@sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',\n digest:\n 'sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',\n};\n\n/**\n * Record with malformed digest (uppercase).\n *\n * @public\n */\nexport const invalidRecordBadDigest: OciSkillRecord = {\n key: 'quay.io/octo/bad-digest',\n name: 'Bad Digest Skill',\n sourceUri:\n 'oci://quay.io/octo/bad-digest@sha256:ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789',\n digest:\n 'sha256:ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789',\n};\n\n/**\n * Record with truncated digest.\n *\n * @public\n */\nexport const invalidRecordShortDigest: OciSkillRecord = {\n key: 'quay.io/octo/short-digest',\n name: 'Short Digest Skill',\n sourceUri: 'oci://quay.io/octo/short-digest@sha256:abcdef',\n digest: 'sha256:abcdef',\n};\n\n/**\n * npx record with OCI extension (source mismatch).\n *\n * @public\n */\nexport const invalidNpxRecordWithOciExtension: NpxSkillRecord = {\n key: 'mismatched-skill',\n name: 'Mismatched Skill',\n sourceUri: 'https://registry.example.com/skills/mismatch/SKILL.md',\n digest:\n 'sha256:5555555555555555555555555555555555555555555555555555555555555555',\n extensions: { oci: { namespace: 'bad' } } as unknown as {\n npx?: { type?: 'skill-md' };\n },\n};\n\n/**\n * OCI record with npx extension (source mismatch).\n *\n * @public\n */\nexport const invalidOciRecordWithNpxExtension: OciSkillRecord = {\n key: 'quay.io/octo/npx-ext-mismatch',\n name: 'Mismatch Skill',\n sourceUri:\n 'oci://quay.io/octo/mismatch@sha256:6666666666666666666666666666666666666666666666666666666666666666',\n digest:\n 'sha256:6666666666666666666666666666666666666666666666666666666666666666',\n extensions: { npx: { type: 'skill-md' } } as unknown as {\n oci?: { namespace?: string; prompt?: string };\n },\n};\n\n/**\n * OCI record with unknown extension key.\n *\n * @public\n */\nexport const invalidOciRecordUnknownExtKey: OciSkillRecord = {\n key: 'quay.io/octo/unknown-ext',\n name: 'Unknown Ext Skill',\n sourceUri:\n 'oci://quay.io/octo/unknown-ext@sha256:7777777777777777777777777777777777777777777777777777777777777777',\n digest:\n 'sha256:7777777777777777777777777777777777777777777777777777777777777777',\n extensions: {\n oci: { namespace: 'ok', secretKey: 'bad' } as unknown as {\n namespace?: string;\n prompt?: string;\n },\n },\n};\n\n// ─── Invalid snapshots ────────────────────────────────────────────────\n\n/**\n * Snapshot with unsupported schema version.\n *\n * @public\n */\nexport const invalidSnapshotBadVersion: unknown = {\n schemaVersion: '2',\n source: ociSource,\n status: 'ready',\n observedAt: '2026-09-01T12:00:00Z',\n skills: [],\n failedSkillKeys: [],\n};\n\n/**\n * Snapshot claiming ready with failed keys.\n *\n * @public\n */\nexport const invalidSnapshotReadyWithFailedKeys: unknown = {\n schemaVersion: '1',\n source: ociSource,\n status: 'ready',\n observedAt: '2026-09-01T12:00:00Z',\n skills: [validOciRecordMinimal],\n failedSkillKeys: ['quay.io/octo/failed-one'],\n};\n\n/**\n * Snapshot with duplicate skill keys.\n *\n * @public\n */\nexport const invalidSnapshotDuplicateKeys: unknown = {\n schemaVersion: '1',\n source: ociSource,\n status: 'ready',\n observedAt: '2026-09-01T12:00:00Z',\n skills: [validOciRecordMinimal, { ...validOciRecordMinimal }],\n failedSkillKeys: [],\n};\n\n/**\n * Snapshot with overlapping skill and failed keys.\n *\n * @public\n */\nexport const invalidSnapshotOverlappingKeys: unknown = {\n schemaVersion: '1',\n source: ociSource,\n status: 'partial',\n observedAt: '2026-09-01T12:00:00Z',\n skills: [validOciRecordMinimal],\n failedSkillKeys: [validOciRecordMinimal.key],\n};\n\n/**\n * Loading snapshot with non-null observedAt.\n *\n * @public\n */\nexport const invalidLoadingWithObservedAt: unknown = {\n schemaVersion: '1',\n source: ociSource,\n status: 'loading',\n observedAt: '2026-09-01T12:00:00Z',\n skills: [],\n failedSkillKeys: [],\n};\n\n/**\n * Loading snapshot with skills.\n *\n * @public\n */\nexport const invalidLoadingWithSkills: unknown = {\n schemaVersion: '1',\n source: ociSource,\n status: 'loading',\n observedAt: null,\n skills: [validOciRecordMinimal],\n failedSkillKeys: [],\n};\n\n/**\n * Failed snapshot with skills.\n *\n * @public\n */\nexport const invalidFailedWithSkills: unknown = {\n schemaVersion: '1',\n source: ociSource,\n status: 'failed',\n observedAt: '2026-09-01T12:00:00Z',\n skills: [validOciRecordMinimal],\n failedSkillKeys: [],\n};\n\n/**\n * Snapshot with non-UTC timestamp.\n *\n * @public\n */\nexport const invalidSnapshotNonUtcTimestamp: unknown = {\n schemaVersion: '1',\n source: ociSource,\n status: 'ready',\n observedAt: '2026-09-01T12:00:00-05:00',\n skills: [],\n failedSkillKeys: [],\n};\n\n// ─── OCI native metadata fixtures ───────────────────────────────────\n\n/**\n * OCI SkillCard with full metadata including namespace and prompt.\n *\n * @public\n */\nexport const ociSkillCardFull: OciSkillCard = {\n metadata: {\n 'display-name': 'Hello World Skill',\n name: 'hello-world-skill',\n description: 'A demo OCI skill image',\n version: '1.0.0',\n license: 'Apache-2.0',\n authors: [{ name: 'OCTO Team', email: 'octo@example.com' }],\n tags: ['Demo', 'hello-world'],\n compatibility: 'rhdh-2.2',\n namespace: 'octo-skills',\n },\n spec: {\n prompt: 'You are a helpful assistant.',\n },\n};\n\n/**\n * OCI Markdown frontmatter with full metadata.\n *\n * The `metadata.version` here intentionally conflicts with the SkillCard\n * version to verify D3 precedence: SkillCard `metadata.version` (1.0.0)\n * wins over frontmatter `metadata.version` (1.0).\n *\n * @public\n */\nexport const ociMarkdownFrontmatterFull: OciMarkdownFrontmatter = {\n name: 'Hello World (Markdown)',\n description: 'A demo OCI skill from Markdown',\n version: '0.9.0',\n license: 'MIT',\n compatibility: 'rhdh-2.1',\n metadata: {\n version: '1.0',\n author: 'Markdown Author',\n tags: ['markdown-tag'],\n owner: 'team-octo',\n lifecycle: 'production',\n },\n};\n\n/**\n * OCI SkillCard with conflicting version.\n *\n * SkillCard `metadata.version` is 1.0.0 while the paired frontmatter\n * declares `metadata.version: \"1.0\"` and `version: \"0.9.0\"`. D3\n * precedence selects 1.0.0 as the declared version.\n *\n * @public\n */\nexport const ociSkillCardConflictingVersion: OciSkillCard = {\n metadata: {\n name: 'version-test-skill',\n version: '1.0.0',\n },\n};\n\n/**\n * OCI Markdown frontmatter with conflicting version values.\n *\n * Paired with {@link ociSkillCardConflictingVersion} to test D3\n * version precedence. The SkillCard version (1.0.0) wins.\n *\n * @public\n */\nexport const ociMarkdownFrontmatterConflictingVersion: OciMarkdownFrontmatter =\n {\n name: 'Version Test (Markdown)',\n metadata: {\n version: '1.0',\n },\n version: '0.9.0',\n };\n\n/**\n * OCI SkillCard with only a name — no optional metadata.\n *\n * @public\n */\nexport const ociSkillCardMinimal: OciSkillCard = {\n metadata: {\n name: 'Minimal Skill',\n },\n};\n\n/**\n * Combined OCI native input with full metadata.\n *\n * @public\n */\nexport const ociNativeInputFull: OciNativeInput = {\n skillCard: ociSkillCardFull,\n frontmatter: ociMarkdownFrontmatterFull,\n};\n\n/**\n * Combined OCI native input with conflicting versions.\n *\n * @public\n */\nexport const ociNativeInputConflictingVersion: OciNativeInput = {\n skillCard: ociSkillCardConflictingVersion,\n frontmatter: ociMarkdownFrontmatterConflictingVersion,\n};\n\n/**\n * Combined OCI native input with only a minimal SkillCard.\n *\n * @public\n */\nexport const ociNativeInputMinimal: OciNativeInput = {\n skillCard: ociSkillCardMinimal,\n};\n\n/**\n * Trusted source input for OCI fixtures.\n *\n * @public\n */\nexport const ociTrustedInput: TrustedSourceInput = {\n key: 'quay.io/octo/hello-world-skill:1.0.0-draft',\n sourceUri:\n 'oci://quay.io/octo/hello-world-skill@sha256:abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789',\n digest:\n 'sha256:abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789',\n};\n\n// ─── npx native metadata fixtures ───────────────────────────────────\n\n/**\n * npx discovery entry with full metadata.\n *\n * @public\n */\nexport const npxDiscoveryEntryFull: NpxDiscoveryEntry = {\n name: 'summarize-text',\n description: 'Summarizes input text using an LLM',\n type: 'skill-md',\n};\n\n/**\n * npx Markdown frontmatter with full metadata.\n *\n * @public\n */\nexport const npxFrontmatterFull: NpxFrontmatter = {\n name: 'Summarize Text',\n description: 'A skill for summarizing text content',\n version: '0.2.0',\n license: 'MIT',\n compatibility: 'agent-skills-v0.2',\n metadata: {\n version: '0.2.0',\n author: 'Agent Team',\n tags: ['summarization', 'text'],\n owner: 'team-agents',\n lifecycle: 'experimental',\n },\n};\n\n/**\n * npx discovery entry with only a name (minimal).\n *\n * @public\n */\nexport const npxDiscoveryEntryMinimal: NpxDiscoveryEntry = {\n name: 'basic-skill',\n};\n\n/**\n * npx Markdown frontmatter with conflicting version values.\n *\n * `metadata.version` (2.0.0) has higher precedence than top-level\n * `version` (1.5.0) per D3.\n *\n * @public\n */\nexport const npxFrontmatterConflictingVersion: NpxFrontmatter = {\n name: 'Version Conflict Skill',\n metadata: {\n version: '2.0.0',\n },\n version: '1.5.0',\n};\n\n/**\n * Combined npx native input with full metadata.\n *\n * @public\n */\nexport const npxNativeInputFull: NpxNativeInput = {\n entry: npxDiscoveryEntryFull,\n frontmatter: npxFrontmatterFull,\n};\n\n/**\n * Combined npx native input with conflicting versions.\n *\n * @public\n */\nexport const npxNativeInputConflictingVersion: NpxNativeInput = {\n entry: npxDiscoveryEntryMinimal,\n frontmatter: npxFrontmatterConflictingVersion,\n};\n\n/**\n * Combined npx native input with minimal data.\n *\n * @public\n */\nexport const npxNativeInputMinimal: NpxNativeInput = {\n entry: npxDiscoveryEntryMinimal,\n};\n\n/**\n * Trusted source input for npx fixtures.\n *\n * @public\n */\nexport const npxTrustedInput: TrustedSourceInput = {\n key: 'summarize-text',\n sourceUri: 'https://registry.example.com/skills/summarize-text/SKILL.md',\n digest:\n 'sha256:fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210',\n};\n"],"names":[],"mappings":"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"}
|
package/dist/index.cjs.js
CHANGED
|
@@ -4,6 +4,8 @@ var validation = require('./validation.cjs.js');
|
|
|
4
4
|
var catalogHelpers = require('./catalog-helpers.cjs.js');
|
|
5
5
|
var snapshot = require('./snapshot.cjs.js');
|
|
6
6
|
var restContract = require('./rest-contract.cjs.js');
|
|
7
|
+
var normalizer = require('./normalizer.cjs.js');
|
|
8
|
+
var tagConstants = require('./tag-constants.cjs.js');
|
|
7
9
|
var fixtures = require('./fixtures.cjs.js');
|
|
8
10
|
|
|
9
11
|
|
|
@@ -30,6 +32,10 @@ exports.createLoadingSnapshot = snapshot.createLoadingSnapshot;
|
|
|
30
32
|
exports.sortRecordsByKey = snapshot.sortRecordsByKey;
|
|
31
33
|
exports.MAX_RESPONSE_BYTES = restContract.MAX_RESPONSE_BYTES;
|
|
32
34
|
exports.SKILLS_ENDPOINT_BASE = restContract.SKILLS_ENDPOINT_BASE;
|
|
35
|
+
exports.normalizeNpxMetadata = normalizer.normalizeNpxMetadata;
|
|
36
|
+
exports.normalizeOciMetadata = normalizer.normalizeOciMetadata;
|
|
37
|
+
exports.CATALOG_TAG_PATTERN = tagConstants.CATALOG_TAG_PATTERN;
|
|
38
|
+
exports.MAX_TAG_LENGTH = tagConstants.MAX_TAG_LENGTH;
|
|
33
39
|
exports.invalidFailedWithSkills = fixtures.invalidFailedWithSkills;
|
|
34
40
|
exports.invalidLoadingWithObservedAt = fixtures.invalidLoadingWithObservedAt;
|
|
35
41
|
exports.invalidLoadingWithSkills = fixtures.invalidLoadingWithSkills;
|
|
@@ -44,8 +50,25 @@ exports.invalidSnapshotDuplicateKeys = fixtures.invalidSnapshotDuplicateKeys;
|
|
|
44
50
|
exports.invalidSnapshotNonUtcTimestamp = fixtures.invalidSnapshotNonUtcTimestamp;
|
|
45
51
|
exports.invalidSnapshotOverlappingKeys = fixtures.invalidSnapshotOverlappingKeys;
|
|
46
52
|
exports.invalidSnapshotReadyWithFailedKeys = fixtures.invalidSnapshotReadyWithFailedKeys;
|
|
53
|
+
exports.npxDiscoveryEntryFull = fixtures.npxDiscoveryEntryFull;
|
|
54
|
+
exports.npxDiscoveryEntryMinimal = fixtures.npxDiscoveryEntryMinimal;
|
|
55
|
+
exports.npxFrontmatterConflictingVersion = fixtures.npxFrontmatterConflictingVersion;
|
|
56
|
+
exports.npxFrontmatterFull = fixtures.npxFrontmatterFull;
|
|
57
|
+
exports.npxNativeInputConflictingVersion = fixtures.npxNativeInputConflictingVersion;
|
|
58
|
+
exports.npxNativeInputFull = fixtures.npxNativeInputFull;
|
|
59
|
+
exports.npxNativeInputMinimal = fixtures.npxNativeInputMinimal;
|
|
47
60
|
exports.npxSource = fixtures.npxSource;
|
|
61
|
+
exports.npxTrustedInput = fixtures.npxTrustedInput;
|
|
62
|
+
exports.ociMarkdownFrontmatterConflictingVersion = fixtures.ociMarkdownFrontmatterConflictingVersion;
|
|
63
|
+
exports.ociMarkdownFrontmatterFull = fixtures.ociMarkdownFrontmatterFull;
|
|
64
|
+
exports.ociNativeInputConflictingVersion = fixtures.ociNativeInputConflictingVersion;
|
|
65
|
+
exports.ociNativeInputFull = fixtures.ociNativeInputFull;
|
|
66
|
+
exports.ociNativeInputMinimal = fixtures.ociNativeInputMinimal;
|
|
67
|
+
exports.ociSkillCardConflictingVersion = fixtures.ociSkillCardConflictingVersion;
|
|
68
|
+
exports.ociSkillCardFull = fixtures.ociSkillCardFull;
|
|
69
|
+
exports.ociSkillCardMinimal = fixtures.ociSkillCardMinimal;
|
|
48
70
|
exports.ociSource = fixtures.ociSource;
|
|
71
|
+
exports.ociTrustedInput = fixtures.ociTrustedInput;
|
|
49
72
|
exports.validFailedSnapshot = fixtures.validFailedSnapshot;
|
|
50
73
|
exports.validLoadingSnapshot = fixtures.validLoadingSnapshot;
|
|
51
74
|
exports.validNpxRecordFull = fixtures.validNpxRecordFull;
|
package/dist/index.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|