Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions crates/renderflow-core/data/ai/fixtures/synthetic-layout.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
140 changes: 140 additions & 0 deletions crates/renderflow-core/data/ai/model-catalog-v1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
{
"schema_version": "renderflow.ai-model-catalog/v1",
"revision": "2026-09-11.1",
"providers": [
{
"id": "provider.ollama",
"adapter": "ollama",
"display_name": "Ollama local runtime",
"locality": "local",
"requires_network_permission": false,
"runtime": {
"id": "runtime.ollama",
"source": "https://github.com/ollama/ollama",
"license": "MIT",
"hardware_requirements": ["Model-specific RAM or accelerator capacity"],
"availability_probe": {
"kind": "http",
"bounded_timeout_ms": 1500,
"endpoint": "http://localhost:11434/api/tags"
}
},
"models": [
{
"id": "llama3.2",
"family": "llama3.2",
"input_modalities": ["text", "structured_json", "artifact_dna"],
"output_modalities": ["text", "structured_json", "metadata"],
"operations": ["generation", "extraction", "classification", "schema_constrained_output"],
"limits": {"context_tokens": 131072},
"features": {
"native_json": true,
"json_schema": true,
"seed": true,
"sampler_controls": true,
"streaming": true,
"batch": false,
"tool_use": true,
"multi_input": false
},
"determinism": "probabilistic",
"license": {
"model": "Llama 3.2 Community License",
"weights": "Llama 3.2 Community License",
"code": "Runtime-specific",
"commercial_use": "conditional",
"human_review_required": true
},
"commercial_constraints": ["Verify the selected model revision and license before redistribution or commercial use"],
"advisory": {"cost_tier": 1, "quality_tier": 2, "latency_tier": 2, "observed_at": "2026-09-11"},
"maturity": "experimental",
"conformance": "contract_fixture",
"availability": "unverified",
"availability_reason": "Catalog entry does not imply that model weights are installed locally",
"required_provenance_fields": ["runtime_revision", "runtime_digest", "model_revision", "weights_digest", "settings", "skill_version", "input_digest", "output_digest"]
},
{
"id": "llava",
"family": "llava",
"input_modalities": ["text", "image", "structured_json", "artifact_dna"],
"output_modalities": ["text", "structured_json", "artifact_dna", "metadata"],
"operations": ["generation", "extraction", "classification", "multimodal_reasoning"],
"limits": {"max_images": 1},
"features": {
"native_json": true,
"json_schema": false,
"seed": true,
"sampler_controls": true,
"streaming": true,
"batch": false,
"tool_use": false,
"multi_input": true
},
"determinism": "probabilistic",
"license": {
"model": "Unknown until runtime discovery",
"commercial_use": "unknown",
"human_review_required": true
},
"commercial_constraints": ["Resolve the exact model revision and upstream licenses before use"],
"advisory": {"cost_tier": 1, "quality_tier": 1, "latency_tier": 3, "observed_at": "2026-09-11"},
"maturity": "experimental",
"conformance": "declared_only",
"availability": "unverified",
"availability_reason": "Catalog entry does not imply that model weights are installed locally",
"required_provenance_fields": ["runtime_revision", "model_revision", "weights_digest", "settings", "skill_version", "input_digest", "output_digest"]
}
]
},
{
"id": "provider.openai-compatible",
"adapter": "openai",
"display_name": "Explicit OpenAI-compatible endpoint",
"locality": "remote",
"requires_network_permission": true,
"runtime": {
"id": "runtime.openai-compatible",
"source": "Configured endpoint",
"license": "Provider-specific terms",
"availability_probe": {
"kind": "credential_and_endpoint",
"bounded_timeout_ms": 1500
}
},
"models": [
{
"id": "gpt-4o-mini",
"family": "gpt-4o-mini",
"input_modalities": ["text", "image", "structured_json"],
"output_modalities": ["text", "structured_json", "artifact_dna", "metadata"],
"operations": ["generation", "editing", "extraction", "classification", "multimodal_reasoning", "schema_constrained_output"],
"limits": {"context_tokens": 128000, "output_tokens": 16384, "max_images": 20},
"features": {
"native_json": true,
"json_schema": true,
"seed": true,
"sampler_controls": true,
"streaming": true,
"batch": true,
"tool_use": true,
"multi_input": true
},
"determinism": "probabilistic",
"license": {
"model": "Hosted service; no model-weight license",
"provider_terms": "Endpoint-specific terms",
"commercial_use": "provider_terms_apply",
"human_review_required": true
},
"commercial_constraints": ["Remote use requires explicit network, privacy, budget, and provider-terms approval"],
"advisory": {"cost_tier": 2, "quality_tier": 3, "latency_tier": 2, "observed_at": "2026-09-11"},
"maturity": "experimental",
"conformance": "declared_only",
"availability": "unverified",
"availability_reason": "Availability depends on the configured endpoint, credentials, and provider terms",
"required_provenance_fields": ["endpoint_identity", "provider_terms_revision", "model_revision", "settings", "skill_version", "input_digest", "output_digest", "usage", "cost"]
}
]
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"schema_version": "renderflow.ai-skill/v1",
"id": "skill.accessibility.describe-candidate",
"version": "1.0.0",
"purpose": "Draft a concise accessibility description from approved visual evidence for human review.",
"artifact_families": ["image", "publication", "accessibility"],
"operations": ["generation", "multimodal_reasoning"],
"input_modalities": ["text", "image", "structured_json"],
"output_modalities": ["structured_json", "metadata"],
"requires_json_schema": false,
"input_schema": {"$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "required": ["image_digest", "context"], "properties": {"image_digest": {"type": "string", "minLength": 8, "maxLength": 160}, "context": {"type": "string", "maxLength": 2000}}, "additionalProperties": false},
"output_schema": {"$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "required": ["short_description", "long_description", "uncertainties", "review_required"], "properties": {"short_description": {"type": "string", "minLength": 1, "maxLength": 300}, "long_description": {"type": "string", "minLength": 1, "maxLength": 3000}, "uncertainties": {"type": "array", "maxItems": 16, "items": {"type": "string", "maxLength": 240}}, "review_required": {"const": true}}, "additionalProperties": false},
"templates": {"system": "You draft factual accessibility descriptions. Do not identify people, infer sensitive traits, or claim certainty about ambiguous content.", "instruction": "Return strict JSON, list uncertainties, and require human review before publication.", "prompt": "Describe the separately supplied approved image {{image_digest}} using this context: {{context}}"},
"variables": [{"name": "image_digest", "required": true, "sensitive": false, "max_bytes": 160}, {"name": "context", "required": true, "sensitive": false, "max_bytes": 2000}],
"max_rendered_prompt_bytes": 5000,
"generation": {"temperature": 0.1, "max_tokens": 1500, "seed": 42, "top_p": 0.9},
"budgets": {"network": false, "remote_execution": false, "max_input_bytes": 25000000, "max_output_bytes": 16384, "max_tokens": 1800, "max_duration_ms": 120000, "max_retries": 1},
"hygiene": {"policy_id": "policy.ai.accessibility-safe/v1", "scan_secrets": true, "pii_action": "block", "protected_reference_action": "review", "protected_references": [{"term": "Example Franchise"}], "allow_private_remote_input": false, "retain_raw_prompts": false, "post_output_review": true},
"approval": {"initial_state": "candidate", "human_review_required": true, "validators": ["validator.json-contract/v1", "validator.ai-hygiene/v1", "validator.accessibility-human-review/v1"]},
"provenance": {"cache_identity_fields": ["skill", "model", "runtime", "input_artifacts", "schemas", "settings", "hygiene"], "evidence_fields": ["provider", "runtime", "model", "skill", "input_artifacts", "digests", "usage", "candidate_state", "approvals"], "redact_raw_inputs": true, "redact_raw_prompts": true},
"redistribution_notes": "The bundled fixture is synthetic and does not require a paid API or model download.",
"license_notes": "Accessibility drafts are candidates; factual accuracy and publication rights require human review.",
"fixture": {"image_digest": "sha256:d1c1808924bc17331ac936d83c918e3ee978c2baf0b708aa3cd883743768032f", "context": "The bundled redistribution-safe synthetic-layout.svg fixture."}
}
47 changes: 47 additions & 0 deletions crates/renderflow-core/data/ai/skills/metadata-extraction-v1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
{
"schema_version": "renderflow.ai-skill/v1",
"id": "skill.metadata.extract",
"version": "1.0.0",
"purpose": "Extract conservative publication metadata from approved text into a strict candidate record.",
"artifact_families": ["document", "publication", "metadata"],
"operations": ["extraction", "schema_constrained_output"],
"input_modalities": ["text", "structured_json"],
"output_modalities": ["structured_json", "metadata"],
"requires_json_schema": true,
"input_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": ["source_text"],
"properties": {
"source_text": {"type": "string", "minLength": 1, "maxLength": 65536}
},
"additionalProperties": false
},
"output_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": ["title", "summary", "keywords", "review_required"],
"properties": {
"title": {"type": "string", "minLength": 1, "maxLength": 240},
"summary": {"type": "string", "minLength": 1, "maxLength": 2000},
"keywords": {"type": "array", "maxItems": 20, "items": {"type": "string", "maxLength": 80}},
"review_required": {"const": true}
},
"additionalProperties": false
},
"templates": {
"system": "You are a conservative publication metadata extractor. Return only JSON matching the supplied output contract.",
"instruction": "Describe only evidence present in the approved source. Do not infer ownership, rights clearance, or legal conclusions.",
"prompt": "Extract a title, summary, and keywords from this approved source. Mark review_required true.\n\n{{source_text}}"
},
"variables": [{"name": "source_text", "required": true, "sensitive": false, "max_bytes": 65536}],
"max_rendered_prompt_bytes": 70000,
"generation": {"temperature": 0.1, "max_tokens": 1200, "seed": 42, "top_p": 0.9},
"budgets": {"network": true, "remote_execution": true, "max_input_bytes": 65536, "max_output_bytes": 16384, "max_tokens": 1400, "max_duration_ms": 60000, "max_retries": 1, "max_cost_microunits": 50000},
"hygiene": {"policy_id": "policy.ai.publication-safe/v1", "scan_secrets": true, "pii_action": "review", "protected_reference_action": "rewrite", "protected_references": [{"term": "Example Franchise", "descriptive_replacement": "genre-specific visual characteristics"}], "allow_private_remote_input": false, "retain_raw_prompts": false, "post_output_review": true},
"approval": {"initial_state": "candidate", "human_review_required": true, "validators": ["validator.json-contract/v1", "validator.ai-hygiene/v1"]},
"provenance": {"cache_identity_fields": ["skill", "model", "runtime", "input", "schemas", "settings", "hygiene"], "evidence_fields": ["provider", "runtime", "model", "skill", "digests", "usage", "candidate_state", "approvals"], "redact_raw_inputs": true, "redact_raw_prompts": true},
"redistribution_notes": "The specification and synthetic fixture contain no third-party source material.",
"license_notes": "Model and provider licenses remain independent evidence and require review.",
"fixture": {"source_text": "A small synthetic booklet explains mindful pauses through geometric shapes."}
}
24 changes: 24 additions & 0 deletions crates/renderflow-core/data/ai/skills/prompt-from-dna-v1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"schema_version": "renderflow.ai-skill/v1",
"id": "skill.prompt.from-sanitized-dna",
"version": "1.0.0",
"purpose": "Construct provider-independent prompt guidance from sanitized Artifact DNA.",
"artifact_families": ["artifact_dna", "prompt", "publication"],
"operations": ["generation", "schema_constrained_output"],
"input_modalities": ["artifact_dna", "structured_json"],
"output_modalities": ["structured_json", "metadata"],
"requires_json_schema": true,
"input_schema": {"$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "required": ["dna", "intent"], "properties": {"dna": {"type": "string", "minLength": 1, "maxLength": 32000}, "intent": {"type": "string", "minLength": 1, "maxLength": 2000}}, "additionalProperties": false},
"output_schema": {"$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "required": ["prompt", "negative_guidance", "review_required"], "properties": {"prompt": {"type": "string", "minLength": 1, "maxLength": 8000}, "negative_guidance": {"type": "array", "maxItems": 24, "items": {"type": "string", "maxLength": 200}}, "review_required": {"const": true}}, "additionalProperties": false},
"templates": {"system": "You construct provider-neutral generation guidance from sanitized descriptive properties. Never request imitation of a named creator, artist, brand, or franchise.", "instruction": "Use only the supplied DNA and intent. Return strict JSON and mark review_required true.", "prompt": "Intent: {{intent}}\n\nSanitized Artifact DNA:\n{{dna}}"},
"variables": [{"name": "dna", "required": true, "sensitive": false, "max_bytes": 32000}, {"name": "intent", "required": true, "sensitive": false, "max_bytes": 2000}],
"max_rendered_prompt_bytes": 38000,
"generation": {"temperature": 0.2, "max_tokens": 1800, "seed": 42, "top_p": 0.9},
"budgets": {"network": false, "remote_execution": false, "max_input_bytes": 34000, "max_output_bytes": 16384, "max_tokens": 2000, "max_duration_ms": 60000, "max_retries": 1},
"hygiene": {"policy_id": "policy.ai.protected-reference-safe/v1", "scan_secrets": true, "pii_action": "block", "protected_reference_action": "rewrite", "protected_references": [{"term": "Example Franchise", "descriptive_replacement": "weathered post-industrial design characteristics"}], "allow_private_remote_input": false, "retain_raw_prompts": false, "post_output_review": true},
"approval": {"initial_state": "candidate", "human_review_required": true, "validators": ["validator.json-contract/v1", "validator.ai-hygiene/v1", "validator.prompt-hygiene/v1"]},
"provenance": {"cache_identity_fields": ["skill", "model", "runtime", "input", "schemas", "settings", "hygiene"], "evidence_fields": ["provider", "runtime", "model", "skill", "digests", "usage", "candidate_state", "approvals"], "redact_raw_inputs": true, "redact_raw_prompts": true},
"redistribution_notes": "The fixture is synthetic and provider independent.",
"license_notes": "Prompt sanitization reduces leakage risk but is not a legal determination.",
"fixture": {"dna": "Asymmetrical modular panels; muted mineral palette; worn metal texture; condensed geometric headings.", "intent": "Create an original editorial divider page."}
}
Loading
Loading