{"_id":"@bluefly/ossa-studio","name":"@bluefly/ossa-studio","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.1":{"name":"@bluefly/ossa-studio","version":"0.1.1","private":false,"license":"MIT","repository":{"type":"git","url":"git+https://gitlab.com/blueflyio/ossa/lab/ossa-studio.git"},"publishConfig":{"registry":"https://registry.npmjs.org/","access":"public"},"scripts":{"dev":"next dev","build":"next build","start":"next start","lint":"next lint","validate:showcase":"tsx scripts/validate-showcase.ts","generate:showcase":"tsx scripts/generate-showcase.ts","test:integration":"tsx scripts/test-integration.ts","test:uuid":"tsx scripts/test-uuid.ts","setup:export-target":"tsx scripts/setup-export-target.ts","build:lib":"vite build","build:wizard-standalone":"vite build --config vite.wizard.config.ts","prepublishOnly":"npm run build:lib","test:e2e":"playwright test","test:e2e:ui":"playwright test --ui"},"overrides":{"express":"^5.2.1"},"dependencies":{"@bluefly/openstandardagents":"^0.4.5","@monaco-editor/react":"^4.6.0","@radix-ui/react-checkbox":"^1.3.3","@radix-ui/react-dialog":"^1.1.15","@radix-ui/react-progress":"^1.1.8","@radix-ui/react-slot":"^1.2.4","@radix-ui/react-tabs":"^1.1.13","@xyflow/react":"^12.10.2","ajv":"^8.17.1","ajv-formats":"^3.0.1","archiver":"^7.0.1","class-variance-authority":"^0.7.1","clsx":"^2.1.1","lucide-react":"^0.577.0","nanoid":"^5.0.9","next":"^15.1.0","react":"^18.3.1","react-dom":"^18.3.1","tailwind-merge":"^2.6.0","yaml":"^2.7.0","zod":"^3.24.0"},"devDependencies":{"@playwright/test":"^1.49.0","@types/archiver":"^7.0.0","@types/node":"^22.10.0","@types/react":"^18.3.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.7.0","autoprefixer":"^10.4.20","postcss":"^8.4.49","sass":"^1.82.0","tailwindcss":"^3.4.16","tsx":"^4.21.0","typescript":"^5.7.0","vite":"^6.4.1","vite-plugin-dts":"^4.5.4"},"description":"OSSA agent creator and wizard UI components for AgentDash and other React hosts","main":"dist/index.js","types":"dist/lib-entry.d.ts","type":"module","exports":{".":{"import":"./dist/index.js","types":"./dist/lib-entry.d.ts"}},"_id":"@bluefly/ossa-studio@0.1.1","bugs":{"url":"https://gitlab.com/blueflyio/ossa/lab/ossa-studio/issues"},"homepage":"https://gitlab.com/blueflyio/ossa/lab/ossa-studio#readme","_nodeVersion":"22.19.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-niA1b42dQTIKnOyBCW+xKewu844ICJD0NHIAevDzo4ZUb76necT9/0Jn5TE/yBsBjydYwIj2QeUSJAe9jjKY9Q==","shasum":"b42ca70f199ad422f18ca78c0242d847c628658f","tarball":"https://registry.npmjs.org/@bluefly/ossa-studio/-/ossa-studio-0.1.1.tgz","fileCount":60,"unpackedSize":398425,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBD1qToMjebaewSC+/GMnc64dbQN0p4JnX7i+ccqijKGAiEA4ORUXOOAtIHOmoLbt2Y6KMO3nRdfr3Iv93vZpQKXLI8="}]},"_npmUser":{"name":"blueflyio","email":"admin@bluefly.io"},"directories":{},"maintainers":[{"name":"bagent","email":"agent@bluefly.io"},{"name":"blueflyio","email":"admin@bluefly.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ossa-studio_0.1.1_1774706754296_0.8649673803008198"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-28T14:05:54.183Z","0.1.1":"2026-03-28T14:05:54.472Z","modified":"2026-03-28T14:05:54.759Z"},"maintainers":[{"name":"bagent","email":"agent@bluefly.io"},{"name":"blueflyio","email":"admin@bluefly.io"}],"description":"OSSA agent creator and wizard UI components for AgentDash and other React hosts","homepage":"https://gitlab.com/blueflyio/ossa/lab/ossa-studio#readme","repository":{"type":"git","url":"git+https://gitlab.com/blueflyio/ossa/lab/ossa-studio.git"},"bugs":{"url":"https://gitlab.com/blueflyio/ossa/lab/ossa-studio/issues"},"license":"MIT","readme":"# OSSA Web Agents (Playground)\n\n**GitLab:** https://gitlab.com/blueflyio/ossa/lab/openstandard-ui  \n**npm (public):** https://www.npmjs.com/package/@bluefly/ossa-studio — install with `npm i @bluefly/ossa-studio` or `pnpm add @bluefly/ossa-studio`. MIT license.\n\nThis repository is the **interactive playground and agent creator** for OSSA. It hosts:\n\n- **Agent Creator UI** - Interactive \"Try Now\" creator (embedded in website homepage)\n- **Playground Interface** - Full-featured agent editing and testing\n- **User-Generated Agents** - All agents created via the creator\n- **Showcase Gallery** - Curated showcase-worthy agents for website display\n- **Site Agents** - Agents that maintain openstandardagents.org\n- **GitLab Agents** - GitLab automation agents\n\n## Quick Start\n\n```bash\n# Install dependencies\nnpm install\n\n# Run development server\nnpm run dev\n\n# Build for production\nnpm run build\n\n```\n\n## Architecture\n\n### Agent Creator (`app/creator/`)\n\nInteractive agent creation interface that can be:\n- Used standalone at `/creator`\n- Embedded as iframe/widget on website homepage\n- Deployed to GitLab Pages/CDN for embedding\n\n**Components:**\n- `AgentCreator` - Main creator component (wizard → editor → preview)\n- `AgentWizard` - 6-step wizard for agent creation\n- `ManifestEditor` - Monaco editor for YAML editing\n- `ValidationPanel` - Real-time validation feedback\n- `PreviewPanel` - Agent preview\n\n### Artifacts (`artifacts/`)\n\n- **`user-generated/`** - All user-created agents (gitignored)\n- **`showcase/`** - Curated showcase agents\n  - `featured/` - Featured agents\n  - `community/` - Community submissions\n  - `metadata/gallery.json` - Generated gallery index\n\n**Separation of duties:** The canonical Git repo for wizard-generated agents is [openstandard-generated-agents](https://gitlab.com/blueflyio/ossa/lab/openstandard-generated-agents). Save/push from the creator should target that repo; the platform registry (platform-agents) is for platform agents only and must not be used for user-generated output.\n\n### API (OpenAPI-first)\n\n**Spec:** `spec/openapi.yaml` (OpenAPI 3.1). **Schemas:** `spec/schemas.zod.ts` (Zod; request/response validation).\n\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | `/api/agents` | List cataloged agents (query: page, limit, minScore, curated, sort) |\n| POST | `/api/agents` | Save agent (body: manifest YAML string, optional metadata); returns `uuid` (canonical id) |\n| GET | `/api/agents/:id` | Get one agent (manifest + metadata; `uuid` when length >= 20) |\n| GET | `/api/agents/:id/artifact` | Download manifest (query: format=yaml\\|json) |\n| POST | `/api/score` | Score agent 0-100 (body: manifest or agentId); persists score when agentId provided |\n| GET | `/api/leaderboard` | Leaderboard by score (query: minScore=70, limit, page) |\n| GET | `/api/showcase/gallery` | Gallery index for website sync |\n| POST | `/api/export` | Trigger export pipeline (manifest + platform) |\n| POST | `/api/manifest/validate` | Validate manifest against OSSA schema |\n\nLegacy: `/api/agents/save` is a deprecated alias for POST `/api/agents`. Use POST `/api/agents` per spec.\n\n**Agent UUID (unique id):** Every saved agent gets a server-generated UUID (`crypto.randomUUID()`, 36 chars). It is the catalog id (directory name under `artifacts/user-generated/`), stored in metadata as `uuid`, and returned as `id`, `uuid`, and `sessionId` on POST. List and detail responses include `uuid` only when length >= 20 (legacy short ids omitted). See `spec/openapi.yaml` and `spec/schemas.zod.ts` for minLength and validation.\n","readmeFilename":"README.md","_rev":"1-d09d6f639b0fc0003515d2e32602e37b"}