@tpmjs/tools-recipe-publish-manifest
Create a publish manifest for a recipe with author metadata, versioning, and cryptographic hash for verification. The manifest includes the recipe, publication metadata, and a SHA-256 hash for integrity verification.
Recipe must have a name string
Last checked: 1/1/2026, 8:18:02 AM
Test @tpmjs/tools-recipe-publish-manifest (recipePublishManifestTool) with AI-powered execution
0/2000 characters
Install this tool and use it with the AI SDK
npm install @tpmjs/tools-recipe-publish-manifestpnpm add @tpmjs/tools-recipe-publish-manifestyarn add @tpmjs/tools-recipe-publish-manifestbun add @tpmjs/tools-recipe-publish-manifestdeno add npm:@tpmjs/tools-recipe-publish-manifestimport { recipePublishManifestTool } from '@tpmjs/tools-recipe-publish-manifest';import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { recipePublishManifestTool } from '@tpmjs/tools-recipe-publish-manifest';
const result = await generateText({
model: openai('gpt-4o'),
tools: { recipePublishManifestTool },
prompt: 'Your prompt here...',
});
console.log(result.text);Available configuration options
recipeobjectRecipe object to publish (must include a name)
metadataobjectPublication metadata
Schema extracted: 1/1/2026, 8:18:01 AM
Create a publish manifest for recipes with metadata, versioning, and cryptographic verification.
npm install @tpmjs/tools-recipe-publish-manifest
import { recipePublishManifestTool } from '@tpmjs/tools-recipe-publish-manifest'; const result = await recipePublishManifestTool.execute({ recipe: { name: 'Deploy to Production', description: 'Automated production deployment workflow', steps: [ { action: 'run-tests', details: 'Execute full test suite' }, { action: 'build', details: 'Build production bundle' }, { action: 'deploy', details: 'Deploy to production servers' } ] }, metadata: { author: 'DevOps Team', version: '1.2.0', description: 'Production deployment recipe with comprehensive testing', license: 'MIT', tags: ['deployment', 'production', 'ci-cd'], repository: 'https://github.com/example/recipes' } }); console.log(result.manifest); // { // recipe: { name: 'Deploy to Production', ... }, // metadata: { // author: 'DevOps Team', // version: '1.2.0', // description: '...', // publishedAt: '2025-01-01T00:00:00.000Z', // hash: 'abc123...', // manifestVersion: '1.0.0' // }, // verification: { // recipeHash: 'abc123...', // algorithm: 'sha256' // } // } console.log(result.hash); // Full manifest hash for storage/lookup
author (string) - Author name or identifierversion (string) - Semver version (e.g., "1.0.0", "2.1.3-beta.1")description (string) - Publication descriptionlicense (string) - License identifier (e.g., "MIT", "Apache-2.0")tags (string[]) - Array of tags for categorizationrepository (string) - Repository URLVersions must follow semantic versioning:
1.0.0 - Valid2.1.3 - Valid3.0.0-beta.1 - Valid (pre-release)1.0 - Invalid (missing patch version)v1.0.0 - Invalid (no 'v' prefix)The tool provides a verifyManifest function to check manifest integrity:
import { recipePublishManifestTool, verifyManifest } from '@tpmjs/tools-recipe-publish-manifest'; const result = await recipePublishManifestTool.execute({ recipe, metadata }); // Later, verify the manifest hasn't been tampered with const isValid = verifyManifest(result.manifest); console.log(isValid); // true if recipe hash matches
The tool automatically removes internal fields before publishing:
_internal - Internal state_temp - Temporary data_cache - Cached valuesconst recipe = { name: 'My Recipe', steps: [...], _internal: { debug: true }, // Will be removed _temp: { workingData: {} } // Will be removed }; const result = await recipePublishManifestTool.execute({ recipe, metadata }); // result.manifest.recipe will NOT include _internal or _temp
const result = await recipePublishManifestTool.execute({ recipe: { name: 'Simple Backup' }, metadata: { author: 'admin', version: '1.0.0', description: 'Basic backup procedure' } });
const result = await recipePublishManifestTool.execute({ recipe: { name: 'ML Model Training', description: 'Train and evaluate ML model', steps: [ { action: 'load-data', details: 'Load training dataset' }, { action: 'train', details: 'Train model', duration: 3600 }, { action: 'evaluate', details: 'Evaluate on test set' }, { action: 'save', details: 'Save model checkpoint' } ], metadata: { framework: 'pytorch', gpuRequired: true } }, metadata: { author: 'ML Team', version: '2.0.0', description: 'PyTorch model training pipeline', license: 'Apache-2.0', tags: ['ml', 'training', 'pytorch'], repository: 'https://github.com/example/ml-recipes' } });
const result = await recipePublishManifestTool.execute({ recipe: { name: 'Experimental Feature' }, metadata: { author: 'research-team', version: '3.0.0-alpha.1', description: 'Experimental feature in alpha testing' } });
{ manifest: { recipe: { name: 'Recipe Name', // ... other recipe fields (sanitized) }, metadata: { author: 'Author Name', version: '1.0.0', description: 'Description', publishedAt: '2025-01-01T00:00:00.000Z', hash: 'abc123...', // Recipe hash manifestVersion: '1.0.0' // Manifest schema version }, verification: { recipeHash: 'abc123...', // SHA-256 of recipe algorithm: 'sha256' } }, hash: 'def456...', // SHA-256 of entire manifest publishedAt: '2025-01-01T00:00:00.000Z' }
The SHA-256 hash provides:
Note: This is not a digital signature. For authentication, combine with signing mechanisms.
MIT
Downloads/month
0
Quality Score