mirror of
https://github.com/profullstack/logicsrc.git
synced 2026-08-13 22:37:29 +00:00
* Add AgentAd ad schemas as a LogicSRC primitive
AgentAd is a disclosed, agent-readable advertising contract for CLI tools
and AI agents. LogicSRC owns the canonical schemas; cl1s.tech is the
reference network built on them.
- packages/schemas: agentad-{ad,placement,ad-request,ad-response,
impression,click,campaign} schemas (id under schemas.logicsrc.com) +
ad/placement fixtures, exported from @logicsrc/schemas
- packages/validators: register the 7 agentad kinds, wire fixture
validation, add tests (disclosure.sponsored must be true)
- docs/agentad.md: the AgentAd spec
- README: list AgentAd under v1 priorities
Validators build clean; all fixtures validate; vitest 4/4 green.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* Prepare @logicsrc/schemas for npm publish
Add license, repository, homepage, keywords, publishConfig (public),
and a package README covering both the logicsrc-* core schemas and the
agentad-* family.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
46 lines
1.9 KiB
JSON
46 lines
1.9 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://schemas.logicsrc.com/agentad-placement.schema.json",
|
|
"title": "AgentAd Placement",
|
|
"description": "A slot registered by a publisher (a CLI tool or agent) where AgentAd units may be rendered.",
|
|
"type": "object",
|
|
"required": ["type", "version", "id", "publisher_did", "surface", "accepted_formats"],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"type": { "const": "agentad.placement" },
|
|
"version": { "type": "string", "pattern": "^\\d+\\.\\d+(\\.\\d+)?$" },
|
|
"id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9_-]*$", "minLength": 1, "maxLength": 64 },
|
|
"publisher_did": { "type": "string", "pattern": "^[a-z0-9][a-z0-9._-]*\\.[a-z0-9][a-z0-9._-]*$" },
|
|
"surface": { "type": "string", "enum": ["cli", "tui", "agent", "ci"] },
|
|
"accepted_formats": {
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"items": { "type": "string", "enum": ["text", "markdown", "ansi", "banner", "json"] },
|
|
"uniqueItems": true
|
|
},
|
|
"dimensions": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"max_width": { "type": "integer", "minimum": 1, "description": "Max columns for text/ansi rendering." },
|
|
"max_lines": { "type": "integer", "minimum": 1 }
|
|
}
|
|
},
|
|
"context_tags": {
|
|
"type": "array",
|
|
"items": { "type": "string", "minLength": 1 },
|
|
"uniqueItems": true,
|
|
"description": "Keywords describing the host context, used for relevance matching."
|
|
},
|
|
"frequency_cap": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"max_per_session": { "type": "integer", "minimum": 0 },
|
|
"max_per_day": { "type": "integer", "minimum": 0 }
|
|
}
|
|
},
|
|
"allow_categories": { "type": "array", "items": { "type": "string" }, "uniqueItems": true },
|
|
"block_categories": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }
|
|
}
|
|
}
|