mirror of
https://github.com/profullstack/logicsrc.git
synced 2026-08-13 14:37:26 +00:00
Scaffold LogicSRC and CommandBoard plugins
This commit is contained in:
parent
59927e140c
commit
5c9ea821f6
67 changed files with 5958 additions and 0 deletions
20
packages/schemas/fixtures/agent.yaml
Normal file
20
packages/schemas/fixtures/agent.yaml
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
type: logicsrc.agent
|
||||
version: "0.1"
|
||||
name: Playwright QA Agent
|
||||
did: qa-agent-01.coinpay
|
||||
owner_did: anthony.coinpay
|
||||
description: Runs browser QA tasks and submits Markdown reports.
|
||||
skills:
|
||||
- qa
|
||||
- playwright
|
||||
- browser-testing
|
||||
pricing:
|
||||
model: per_task
|
||||
amount: 10
|
||||
currency: USDC
|
||||
permissions_requested:
|
||||
- task:read
|
||||
- task:claim
|
||||
- task:submit
|
||||
- browser:visit_url
|
||||
- files:write
|
||||
26
packages/schemas/fixtures/task.yaml
Normal file
26
packages/schemas/fixtures/task.yaml
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
type: logicsrc.task
|
||||
version: "0.1"
|
||||
title: Test checkout flow
|
||||
description: Verify the storefront checkout journey across desktop and mobile.
|
||||
board: /qa
|
||||
status: open
|
||||
budget:
|
||||
amount: 25
|
||||
currency: USDC
|
||||
creator_did: anthony.coinpay
|
||||
agent_allowed: true
|
||||
human_allowed: true
|
||||
target_url: https://example.com/checkout
|
||||
skills:
|
||||
- qa
|
||||
- playwright
|
||||
- nextjs
|
||||
acceptance_criteria:
|
||||
- User can add item to cart
|
||||
- User can reach payment page
|
||||
- Mobile layout works
|
||||
- Console has no critical errors
|
||||
permissions:
|
||||
browser.visit_url: true
|
||||
github.create_issue: true
|
||||
files.read_attached: true
|
||||
19
packages/schemas/package.json
Normal file
19
packages/schemas/package.json
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"name": "@logicsrc/schemas",
|
||||
"version": "0.1.0",
|
||||
"description": "LogicSRC JSON schemas for tasks, agents, runs, events, and plugins.",
|
||||
"type": "module",
|
||||
"exports": {
|
||||
"./task": "./schemas/logicsrc-task.schema.json",
|
||||
"./agent": "./schemas/logicsrc-agent.schema.json",
|
||||
"./run": "./schemas/logicsrc-run.schema.json",
|
||||
"./event": "./schemas/logicsrc-event.schema.json",
|
||||
"./plugin": "./schemas/logicsrc-plugin.schema.json"
|
||||
},
|
||||
"files": [
|
||||
"schemas"
|
||||
],
|
||||
"scripts": {
|
||||
"build": "node -e \"console.log('schemas: no build step')\""
|
||||
}
|
||||
}
|
||||
51
packages/schemas/schemas/logicsrc-agent.schema.json
Normal file
51
packages/schemas/schemas/logicsrc-agent.schema.json
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://schemas.logicsrc.com/logicsrc-agent.schema.json",
|
||||
"title": "LogicSRC Agent",
|
||||
"type": "object",
|
||||
"required": ["type", "version", "name", "did", "owner_did", "skills", "permissions_requested"],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"type": { "const": "logicsrc.agent" },
|
||||
"version": { "type": "string", "pattern": "^\\d+\\.\\d+(\\.\\d+)?$" },
|
||||
"name": { "type": "string", "minLength": 1, "maxLength": 120 },
|
||||
"did": { "$ref": "#/$defs/did" },
|
||||
"owner_did": { "$ref": "#/$defs/did" },
|
||||
"description": { "type": "string" },
|
||||
"skills": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"items": { "type": "string", "minLength": 1 },
|
||||
"uniqueItems": true
|
||||
},
|
||||
"supported_task_types": {
|
||||
"type": "array",
|
||||
"items": { "type": "string", "minLength": 1 },
|
||||
"uniqueItems": true
|
||||
},
|
||||
"pricing": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"model": { "type": "string", "enum": ["free", "per_task", "hourly", "subscription"] },
|
||||
"amount": { "type": "number", "minimum": 0 },
|
||||
"currency": { "type": "string", "minLength": 2, "maxLength": 12 }
|
||||
}
|
||||
},
|
||||
"permissions_requested": {
|
||||
"type": "array",
|
||||
"items": { "type": "string", "pattern": "^[a-z][a-z0-9._-]*(:[a-z][a-z0-9._-]*)?$" },
|
||||
"uniqueItems": true
|
||||
},
|
||||
"webhook_url": { "type": "string", "format": "uri" },
|
||||
"polling_mode": { "type": "boolean" },
|
||||
"public": { "type": "boolean", "default": true },
|
||||
"logicsrc_compatibility_version": { "type": "string" }
|
||||
},
|
||||
"$defs": {
|
||||
"did": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-z0-9][a-z0-9._-]*\\.[a-z0-9][a-z0-9._-]*$"
|
||||
}
|
||||
}
|
||||
}
|
||||
25
packages/schemas/schemas/logicsrc-event.schema.json
Normal file
25
packages/schemas/schemas/logicsrc-event.schema.json
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://schemas.logicsrc.com/logicsrc-event.schema.json",
|
||||
"title": "LogicSRC Event",
|
||||
"type": "object",
|
||||
"required": ["type", "version", "event", "id", "created_at", "actor_did", "resource_type", "resource_id", "data"],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"type": { "const": "logicsrc.event" },
|
||||
"version": { "type": "string", "pattern": "^\\d+\\.\\d+(\\.\\d+)?$" },
|
||||
"event": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-z][a-z0-9_]*\\.[a-z][a-z0-9_]*$"
|
||||
},
|
||||
"id": { "type": "string", "minLength": 1 },
|
||||
"created_at": { "type": "string", "format": "date-time" },
|
||||
"actor_did": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-z0-9][a-z0-9._-]*\\.[a-z0-9][a-z0-9._-]*$"
|
||||
},
|
||||
"resource_type": { "type": "string", "minLength": 1 },
|
||||
"resource_id": { "type": "string", "minLength": 1 },
|
||||
"data": { "type": "object" }
|
||||
}
|
||||
}
|
||||
35
packages/schemas/schemas/logicsrc-plugin.schema.json
Normal file
35
packages/schemas/schemas/logicsrc-plugin.schema.json
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://schemas.logicsrc.com/logicsrc-plugin.schema.json",
|
||||
"title": "LogicSRC Plugin Manifest",
|
||||
"type": "object",
|
||||
"required": ["id", "name", "version", "type", "default", "capabilities", "commands", "env"],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"id": { "type": "string", "pattern": "^[a-z][a-z0-9-]*$" },
|
||||
"name": { "type": "string", "minLength": 1 },
|
||||
"version": { "type": "string", "pattern": "^\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?$" },
|
||||
"type": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"items": { "type": "string", "minLength": 1 },
|
||||
"uniqueItems": true
|
||||
},
|
||||
"default": { "type": "boolean" },
|
||||
"capabilities": {
|
||||
"type": "array",
|
||||
"items": { "type": "string", "pattern": "^[a-z][a-z0-9_-]*(\\.[a-z][a-z0-9_-]*)+$" },
|
||||
"uniqueItems": true
|
||||
},
|
||||
"commands": {
|
||||
"type": "array",
|
||||
"items": { "type": "string", "pattern": "^[a-z][a-z0-9-]*$" },
|
||||
"uniqueItems": true
|
||||
},
|
||||
"env": {
|
||||
"type": "array",
|
||||
"items": { "type": "string", "pattern": "^[A-Z][A-Z0-9_]*$" },
|
||||
"uniqueItems": true
|
||||
}
|
||||
}
|
||||
}
|
||||
69
packages/schemas/schemas/logicsrc-run.schema.json
Normal file
69
packages/schemas/schemas/logicsrc-run.schema.json
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://schemas.logicsrc.com/logicsrc-run.schema.json",
|
||||
"title": "LogicSRC Agent Run",
|
||||
"type": "object",
|
||||
"required": ["type", "version", "run_id", "task_id", "agent_did", "status", "started_at"],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"type": { "const": "logicsrc.agent_run" },
|
||||
"version": { "type": "string", "pattern": "^\\d+\\.\\d+(\\.\\d+)?$" },
|
||||
"run_id": { "type": "string", "minLength": 1 },
|
||||
"task_id": { "type": "string", "minLength": 1 },
|
||||
"agent_did": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-z0-9][a-z0-9._-]*\\.[a-z0-9][a-z0-9._-]*$"
|
||||
},
|
||||
"status": {
|
||||
"type": "string",
|
||||
"enum": ["created", "authorized", "started", "running", "submitted", "completed", "failed", "cancelled", "disputed"]
|
||||
},
|
||||
"started_at": { "type": "string", "format": "date-time" },
|
||||
"completed_at": { "type": "string", "format": "date-time" },
|
||||
"logs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["timestamp", "action", "status"],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"timestamp": { "type": "string", "format": "date-time" },
|
||||
"action": { "type": "string" },
|
||||
"status": { "type": "string" },
|
||||
"resource": { "type": "string" },
|
||||
"message": { "type": "string" }
|
||||
}
|
||||
}
|
||||
},
|
||||
"files_accessed": {
|
||||
"type": "array",
|
||||
"items": { "type": "string" }
|
||||
},
|
||||
"tools_used": {
|
||||
"type": "array",
|
||||
"items": { "type": "string" }
|
||||
},
|
||||
"deliverables": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["type", "url"],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"type": { "type": "string" },
|
||||
"url": { "type": "string", "format": "uri" }
|
||||
}
|
||||
}
|
||||
},
|
||||
"cost": {
|
||||
"type": "object",
|
||||
"required": ["amount", "currency"],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"amount": { "type": "number", "minimum": 0 },
|
||||
"currency": { "type": "string", "minLength": 2, "maxLength": 12 }
|
||||
}
|
||||
},
|
||||
"payment_status": { "type": "string" }
|
||||
}
|
||||
}
|
||||
114
packages/schemas/schemas/logicsrc-task.schema.json
Normal file
114
packages/schemas/schemas/logicsrc-task.schema.json
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://schemas.logicsrc.com/logicsrc-task.schema.json",
|
||||
"title": "LogicSRC Task",
|
||||
"type": "object",
|
||||
"required": ["type", "version", "title", "description", "board", "creator_did", "status"],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"type": { "const": "logicsrc.task" },
|
||||
"version": { "type": "string", "pattern": "^\\d+\\.\\d+(\\.\\d+)?$" },
|
||||
"title": { "type": "string", "minLength": 1, "maxLength": 160 },
|
||||
"description": { "type": "string", "minLength": 1 },
|
||||
"board": { "type": "string", "pattern": "^/[a-z0-9][a-z0-9/_-]*$" },
|
||||
"creator_did": { "$ref": "#/$defs/did" },
|
||||
"status": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"draft",
|
||||
"open",
|
||||
"funded",
|
||||
"claimed",
|
||||
"in_progress",
|
||||
"submitted",
|
||||
"approved",
|
||||
"paid",
|
||||
"rejected",
|
||||
"disputed",
|
||||
"cancelled",
|
||||
"expired",
|
||||
"refunded"
|
||||
]
|
||||
},
|
||||
"budget": { "$ref": "#/$defs/money" },
|
||||
"currency": { "type": "string", "minLength": 2, "maxLength": 12 },
|
||||
"deadline": { "type": "string", "format": "date-time" },
|
||||
"skills": {
|
||||
"type": "array",
|
||||
"items": { "type": "string", "minLength": 1 },
|
||||
"uniqueItems": true
|
||||
},
|
||||
"acceptance_criteria": {
|
||||
"type": "array",
|
||||
"items": { "type": "string", "minLength": 1 }
|
||||
},
|
||||
"attachments": {
|
||||
"type": "array",
|
||||
"items": { "$ref": "#/$defs/attachment" }
|
||||
},
|
||||
"external_links": {
|
||||
"type": "array",
|
||||
"items": { "type": "string", "format": "uri" }
|
||||
},
|
||||
"github_repo": { "type": "string" },
|
||||
"github_issue": { "type": "string" },
|
||||
"target_url": { "type": "string", "format": "uri" },
|
||||
"permissions": {
|
||||
"type": "object",
|
||||
"additionalProperties": { "type": "boolean" }
|
||||
},
|
||||
"assignee_did": { "$ref": "#/$defs/did" },
|
||||
"agent_allowed": { "type": "boolean", "default": true },
|
||||
"human_allowed": { "type": "boolean", "default": true },
|
||||
"escrow_required": { "type": "boolean", "default": false },
|
||||
"payment": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"provider": { "type": "string" },
|
||||
"escrow_id": { "type": "string" },
|
||||
"status": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"unfunded",
|
||||
"funding_pending",
|
||||
"funded",
|
||||
"release_pending",
|
||||
"released",
|
||||
"refunded",
|
||||
"disputed",
|
||||
"cancelled",
|
||||
"failed"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"logicsrc_version": { "type": "string" }
|
||||
},
|
||||
"$defs": {
|
||||
"did": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-z0-9][a-z0-9._-]*\\.[a-z0-9][a-z0-9._-]*$"
|
||||
},
|
||||
"money": {
|
||||
"type": "object",
|
||||
"required": ["amount", "currency"],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"amount": { "type": "number", "exclusiveMinimum": 0 },
|
||||
"currency": { "type": "string", "minLength": 2, "maxLength": 12 }
|
||||
}
|
||||
},
|
||||
"attachment": {
|
||||
"type": "object",
|
||||
"required": ["type", "url"],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"type": { "type": "string" },
|
||||
"name": { "type": "string" },
|
||||
"url": { "type": "string", "format": "uri" },
|
||||
"sha256": { "type": "string" }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue