config: packages,metadata,json (6 files)

This commit is contained in:
Richard Ward
2025-12-30 20:43:13 +00:00
parent 3abc2bb26c
commit 7d8eb2cbe9
6 changed files with 28 additions and 12 deletions

View File

@@ -5,4 +5,11 @@
export interface TenantContext {
tenantId: string;
canRead?: boolean;
canWrite?: boolean;
canDelete?: boolean;
canCreateRecord?: boolean;
canAddToList?: boolean;
quota?: { used: number; limit: number };
namespace?: string;
}

View File

@@ -82,20 +82,24 @@ function validateComponentsJson(seedPath) {
try {
const content = fs.readFileSync(componentsPath, 'utf-8')
const components = JSON.parse(content)
if (!Array.isArray(components)) {
errors.push('components.json must be an array')
const parsed = JSON.parse(content)
// Accept both formats: bare array or { components: [...] }
const components = Array.isArray(parsed) ? parsed : parsed.components
if (!components || !Array.isArray(components)) {
errors.push('components.json must be an array or have a "components" array property')
return { valid: false, errors, warnings }
}
for (let i = 0; i < components.length; i++) {
const comp = components[i]
if (!comp.id) {
errors.push(`Component at index ${i} missing required field: id`)
// Accept either "id" or "name" for component identifier
if (!comp.id && !comp.name) {
errors.push(`Component at index ${i} missing required field: id or name`)
}
if (!comp.type) {
errors.push(`Component at index ${i} missing required field: type`)
if (!comp.type && !comp.description) {
warnings.push(`Component at index ${i} has no type or description`)
}
}

View File

@@ -1,5 +1,5 @@
{
"id": "github_tools",
"packageId": "github_tools",
"name": "GitHub Tools",
"description": "GitHub integration tools including Actions viewer, run analysis, and workflow management",
"version": "1.0.0",

View File

@@ -1,9 +1,10 @@
{
"id": "media_center",
"packageId": "media_center",
"name": "Media Center",
"version": "1.1.0",
"description": "Media processing dashboard with job queue, radio, TV, document conversion, and retro gaming",
"author": "MetaBuilder",
"category": "media",
"minLevel": 3,
"tags": ["media", "streaming", "radio", "tv", "transcoding", "documents", "pdf", "retro", "gaming", "emulation"],
"dependencies": ["notification_center", "data_table"],

View File

@@ -1,5 +1,6 @@
{
"name": "screenshot_analyzer",
"packageId": "screenshot_analyzer",
"name": "Screenshot Analyzer",
"version": "1.0.0",
"description": "Screenshot Analyzer - Capture and analyze the current page",
"author": "MetaBuilder",

View File

@@ -1,7 +1,10 @@
{
"name": "shared",
"packageId": "shared",
"name": "Shared Utilities",
"version": "1.1.0",
"description": "Shared types, utilities, and permission system for all Lua packages",
"author": "MetaBuilder",
"category": "core",
"exports": [
"types.ui_types",
"permissions"