@bluefly/openstandardagents 0.2.4 → 0.2.5-RC
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cursorrules +84 -0
- package/.devfile.yaml +87 -0
- package/.env.example +25 -3
- package/.github/workflows/release.yml +1 -1
- package/.kiro/specs/agent-buildkit-templates/design.md +495 -0
- package/.kiro/specs/agent-buildkit-templates/requirements.md +165 -0
- package/.kiro/specs/kiro-ide-supercharger/README.md +202 -0
- package/.kiro/specs/kiro-ide-supercharger/design.md +1005 -0
- package/.kiro/specs/kiro-ide-supercharger/requirements.md +141 -0
- package/.kiro/specs/kiro-ide-supercharger/tasks.md +507 -0
- package/.kiro/specs/website-design-audit/design.md +679 -0
- package/.kiro/specs/website-design-audit/requirements.md +199 -0
- package/.releaserc.json +5 -4
- package/.version.json +6 -0
- package/CHANGELOG.md +140 -96
- package/CONTRIBUTING.md +23 -5
- package/README.md +121 -43
- package/bin/ossa +24 -3
- package/bin/ossa-validate-all +55 -0
- package/bin/ossa-version +23 -0
- package/bin/validate-ossa-0.2.4.ts +244 -0
- package/bin/validate-ossa-0.2.5-RC.ts +244 -0
- package/bin/validate-ossa.ts +273 -0
- package/dist/di-container.d.ts +1 -1
- package/dist/di-container.d.ts.map +1 -1
- package/dist/di-container.js.map +1 -1
- package/dist/repositories/schema.repository.d.ts +17 -2
- package/dist/repositories/schema.repository.d.ts.map +1 -1
- package/dist/repositories/schema.repository.js +96 -18
- package/dist/repositories/schema.repository.js.map +1 -1
- package/dist/services/generation.service.d.ts +7 -5
- package/dist/services/generation.service.d.ts.map +1 -1
- package/dist/services/generation.service.js +92 -44
- package/dist/services/generation.service.js.map +1 -1
- package/dist/services/gitlab-agent.service.d.ts +94 -0
- package/dist/services/gitlab-agent.service.d.ts.map +1 -0
- package/dist/services/gitlab-agent.service.js +162 -0
- package/dist/services/gitlab-agent.service.js.map +1 -0
- package/dist/services/migration.service.d.ts +3 -3
- package/dist/services/migration.service.d.ts.map +1 -1
- package/dist/services/migration.service.js +108 -61
- package/dist/services/migration.service.js.map +1 -1
- package/dist/services/release-automation/base-crud.service.d.ts +93 -0
- package/dist/services/release-automation/base-crud.service.d.ts.map +1 -0
- package/dist/services/release-automation/base-crud.service.js +68 -0
- package/dist/services/release-automation/base-crud.service.js.map +1 -0
- package/dist/services/release-automation/index.d.ts +12 -0
- package/dist/services/release-automation/index.d.ts.map +1 -0
- package/dist/services/release-automation/index.js +12 -0
- package/dist/services/release-automation/index.js.map +1 -0
- package/dist/services/release-automation/merge-request.service.d.ts +119 -0
- package/dist/services/release-automation/merge-request.service.d.ts.map +1 -0
- package/dist/services/release-automation/merge-request.service.js +212 -0
- package/dist/services/release-automation/merge-request.service.js.map +1 -0
- package/dist/services/release-automation/milestone.service.d.ts +104 -0
- package/dist/services/release-automation/milestone.service.d.ts.map +1 -0
- package/dist/services/release-automation/milestone.service.js +207 -0
- package/dist/services/release-automation/milestone.service.js.map +1 -0
- package/dist/services/release-automation/release.service.d.ts +118 -0
- package/dist/services/release-automation/release.service.d.ts.map +1 -0
- package/dist/services/release-automation/release.service.js +207 -0
- package/dist/services/release-automation/release.service.js.map +1 -0
- package/dist/services/release-automation/schemas/release.schema.d.ts +299 -0
- package/dist/services/release-automation/schemas/release.schema.d.ts.map +1 -0
- package/dist/services/release-automation/schemas/release.schema.js +269 -0
- package/dist/services/release-automation/schemas/release.schema.js.map +1 -0
- package/dist/services/release-automation/tag.service.d.ts +99 -0
- package/dist/services/release-automation/tag.service.d.ts.map +1 -0
- package/dist/services/release-automation/tag.service.js +180 -0
- package/dist/services/release-automation/tag.service.js.map +1 -0
- package/dist/services/release-automation/webhook.service.d.ts +37 -0
- package/dist/services/release-automation/webhook.service.d.ts.map +1 -0
- package/dist/services/release-automation/webhook.service.js +173 -0
- package/dist/services/release-automation/webhook.service.js.map +1 -0
- package/dist/services/runtime/openai.adapter.d.ts.map +1 -1
- package/dist/services/runtime/openai.adapter.js.map +1 -1
- package/dist/services/validation.service.d.ts.map +1 -1
- package/dist/services/validation.service.js +24 -11
- package/dist/services/validation.service.js.map +1 -1
- package/dist/services/validators/anthropic.validator.d.ts +2 -2
- package/dist/services/validators/anthropic.validator.d.ts.map +1 -1
- package/dist/services/validators/anthropic.validator.js +14 -9
- package/dist/services/validators/anthropic.validator.js.map +1 -1
- package/dist/services/validators/autogen.validator.d.ts +2 -2
- package/dist/services/validators/autogen.validator.d.ts.map +1 -1
- package/dist/services/validators/autogen.validator.js +18 -15
- package/dist/services/validators/autogen.validator.js.map +1 -1
- package/dist/services/validators/crewai.validator.d.ts +2 -2
- package/dist/services/validators/crewai.validator.d.ts.map +1 -1
- package/dist/services/validators/crewai.validator.js +18 -17
- package/dist/services/validators/crewai.validator.js.map +1 -1
- package/dist/services/validators/cursor.validator.d.ts +2 -2
- package/dist/services/validators/cursor.validator.d.ts.map +1 -1
- package/dist/services/validators/cursor.validator.js +15 -11
- package/dist/services/validators/cursor.validator.js.map +1 -1
- package/dist/services/validators/langchain.validator.d.ts +2 -2
- package/dist/services/validators/langchain.validator.d.ts.map +1 -1
- package/dist/services/validators/langchain.validator.js +14 -11
- package/dist/services/validators/langchain.validator.js.map +1 -1
- package/dist/services/validators/langflow.validator.d.ts +2 -2
- package/dist/services/validators/langflow.validator.d.ts.map +1 -1
- package/dist/services/validators/langflow.validator.js +14 -9
- package/dist/services/validators/langflow.validator.js.map +1 -1
- package/dist/services/validators/langgraph.validator.d.ts +2 -2
- package/dist/services/validators/langgraph.validator.d.ts.map +1 -1
- package/dist/services/validators/langgraph.validator.js +23 -18
- package/dist/services/validators/langgraph.validator.js.map +1 -1
- package/dist/services/validators/llamaindex.validator.d.ts +2 -2
- package/dist/services/validators/llamaindex.validator.d.ts.map +1 -1
- package/dist/services/validators/llamaindex.validator.js +19 -16
- package/dist/services/validators/llamaindex.validator.js.map +1 -1
- package/dist/services/validators/openai.validator.d.ts +2 -2
- package/dist/services/validators/openai.validator.d.ts.map +1 -1
- package/dist/services/validators/openai.validator.js +20 -16
- package/dist/services/validators/openai.validator.js.map +1 -1
- package/dist/services/validators/vercel-ai.validator.d.ts +2 -2
- package/dist/services/validators/vercel-ai.validator.d.ts.map +1 -1
- package/dist/services/validators/vercel-ai.validator.js +16 -15
- package/dist/services/validators/vercel-ai.validator.js.map +1 -1
- package/dist/spec/v0.2.0/ossa-0.2.0.schema.json +0 -0
- package/dist/spec/v0.2.1/ossa-0.2.1.schema.json +555 -0
- package/dist/spec/v0.2.3/CHANGELOG.md +7 -7
- package/dist/spec/v0.2.3/README.md +9 -9
- package/dist/spec/v0.2.3/migrations/v0.2.2-to-v0.2.3.md +18 -18
- package/{spec/v0.2.4-dev → dist/spec/v0.2.4}/CHANGELOG.md +8 -8
- package/dist/spec/{v0.2.4-dev → v0.2.4}/migrations/v0.2.3-to-v0.2.4.md +10 -10
- package/dist/spec/{v0.2.4-dev → v0.2.4}/ossa-0.2.4-dev.yaml +1 -1
- package/dist/spec/v0.2.4/ossa-0.2.4.schema.json +1819 -0
- package/dist/spec/v0.2.5/CHANGELOG.md +401 -0
- package/dist/spec/v0.2.5/README.md +72 -0
- package/dist/spec/v0.2.5/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/dist/spec/{v0.2.5-dev/ossa-0.2.5-dev.schema.json → v0.2.5/ossa-0.2.5.schema.json} +323 -359
- package/dist/spec/v0.2.5/ossa-0.2.5.yaml +581 -0
- package/dist/spec/v0.2.5-RC/CHANGELOG.md +401 -0
- package/dist/spec/v0.2.5-RC/README.md +72 -0
- package/{spec/v0.2.4-dev → dist/spec/v0.2.5-RC}/migrations/v0.2.3-to-v0.2.4.md +10 -10
- package/dist/spec/v0.2.5-RC/ossa-0.2.5-RC.schema.json +1696 -0
- package/dist/spec/v0.2.5-RC/ossa-0.2.5-RC.yaml +581 -0
- package/dist/types/index.d.ts +6 -1
- package/dist/types/index.d.ts.map +1 -1
- package/docs/issue-19-completion-summary.md +648 -0
- package/docs/issue-19-validation.md +351 -0
- package/examples/anthropic/claude-assistant.ossa.json +1 -1
- package/examples/autogen/multi-agent.ossa.json +1 -1
- package/examples/bridges/Dockerfile.production +1 -1
- package/examples/crewai/research-team.ossa.json +1 -1
- package/examples/cursor/code-review-agent.ossa.json +1 -1
- package/examples/enterprise/agent.yml +1 -1
- package/examples/getting-started/hello-world-complete.ossa.yaml +2 -2
- package/examples/integration-patterns/agent-to-agent-orchestration.ossa.yaml +4 -4
- package/examples/langchain/chain-agent.ossa.json +1 -1
- package/examples/langflow/workflow-agent.ossa.json +1 -1
- package/examples/langgraph/state-machine-agent.ossa.json +1 -1
- package/examples/llamaindex/rag-agent.ossa.json +1 -1
- package/examples/openai/basic-agent.ossa.yaml +61 -0
- package/examples/openai/multi-tool-agent.ossa.json +165 -0
- package/examples/openai/swarm-agent.ossa.json +1 -1
- package/examples/openapi-extensions/README.md +1 -1
- package/examples/quickstart/support-agent.ossa.yaml +1 -1
- package/examples/vercel/edge-agent.ossa.json +1 -1
- package/infrastructure/gitlab-agent/rbac.yaml +126 -0
- package/infrastructure/gitlab-agent/values.yaml +150 -0
- package/infrastructure/k8s/monitoring/00-namespace.yaml +7 -0
- package/infrastructure/k8s/monitoring/01-prometheus.yaml +142 -0
- package/infrastructure/k8s/monitoring/02-grafana.yaml +63 -0
- package/infrastructure/k8s/monitoring/03-lightweight.yaml +121 -0
- package/infrastructure/k8s/monitoring/README.md +73 -0
- package/infrastructure/k8s/monitoring/deploy.sh +38 -0
- package/openapi/CHANGELOG.md +21 -0
- package/openapi/README.md +46 -0
- package/openapi/{ossa-core-api.openapi.yaml → core/ossa-core-api.openapi.yaml} +59 -4
- package/openapi/{ossa-registry.openapi.yaml → core/ossa-registry.openapi.yaml} +75 -2
- package/openapi/{unified-agent-gateway.openapi.yaml → core/unified-agent-gateway.openapi.yaml} +3 -3
- package/openapi/reference-implementations/aiflow-bridge-api.openapi.yaml +136 -0
- package/openapi/reference-implementations/compliance-agent-api.openapi.yaml +192 -0
- package/openapi/reference-implementations/crewai-agent-api.openapi.yaml +149 -0
- package/openapi/reference-implementations/critic-agent-api.openapi.yaml +151 -0
- package/openapi/reference-implementations/document-analyzer-api.openapi.yaml +217 -0
- package/openapi/reference-implementations/getting-started-hello-world-api.openapi.yaml +149 -0
- package/openapi/reference-implementations/gitlab-ml-recommender-api.openapi.yaml +151 -0
- package/openapi/reference-implementations/governor-agent-api.openapi.yaml +193 -0
- package/openapi/reference-implementations/integrator-agent-api.openapi.yaml +165 -0
- package/openapi/reference-implementations/judge-agent-api.openapi.yaml +148 -0
- package/openapi/reference-implementations/k8s-troubleshooter-api.openapi.yaml +167 -0
- package/openapi/reference-implementations/langchain-agent-api.openapi.yaml +171 -0
- package/openapi/reference-implementations/monitor-agent-api.openapi.yaml +171 -0
- package/openapi/reference-implementations/orchestrator-agent-api.openapi.yaml +242 -0
- package/openapi/reference-implementations/quickstart-support-agent-api.openapi.yaml +187 -0
- package/openapi/{self-evolving-ecosystem.openapi.yaml → reference-implementations/self-evolving-ecosystem.openapi.yaml} +2 -2
- package/openapi/reference-implementations/worker-agent-api.openapi.yaml +208 -0
- package/openapi/reference-implementations/workflow-orchestrator-api.openapi.yaml +193 -0
- package/package.json +31 -21
- package/release.config.js +20 -5
- package/scripts/bump-version.ts +57 -0
- package/scripts/enhanced-version-manager.ts +257 -0
- package/scripts/gen-types.ts +51 -0
- package/scripts/gen-zod.ts +51 -0
- package/scripts/lib/exec.ts +37 -0
- package/scripts/lib/file-ops.ts +58 -0
- package/scripts/lib/version.ts +83 -0
- package/scripts/process-doc-templates.ts +37 -0
- package/scripts/schemas/package.schema.ts +75 -0
- package/scripts/setup-branch-protection.sh +33 -0
- package/scripts/sync-version.ts +39 -0
- package/scripts/sync-versions.ts +488 -0
- package/scripts/validate-schema.ts +49 -0
- package/spec/v0.2.0/ossa-0.2.0.schema.json +0 -0
- package/spec/v0.2.1/ossa-0.2.1.schema.json +555 -0
- package/spec/v0.2.3/CHANGELOG.md +7 -7
- package/spec/v0.2.3/README.md +9 -9
- package/spec/v0.2.3/migrations/v0.2.2-to-v0.2.3.md +18 -18
- package/{dist/spec/v0.2.4-dev → spec/v0.2.4}/CHANGELOG.md +8 -8
- package/spec/v0.2.4/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/spec/{v0.2.4-dev → v0.2.4}/ossa-0.2.4-dev.yaml +1 -1
- package/spec/v0.2.4/ossa-0.2.4.schema.json +1819 -0
- package/spec/v0.2.5/CHANGELOG.md +401 -0
- package/spec/v0.2.5/README.md +72 -0
- package/spec/v0.2.5/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/spec/{v0.2.5-dev/ossa-0.2.5-dev.schema.json → v0.2.5/ossa-0.2.5.schema.json} +323 -359
- package/spec/v0.2.5/ossa-0.2.5.yaml +581 -0
- package/spec/v0.2.5-RC/CHANGELOG.md +401 -0
- package/spec/v0.2.5-RC/README.md +72 -0
- package/spec/v0.2.5-RC/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/spec/v0.2.5-RC/ossa-0.2.5-RC.schema.json +1696 -0
- package/spec/v0.2.5-RC/ossa-0.2.5-RC.yaml +581 -0
- package/website/{.lighthouserc.js → .lighthouserc.ts} +5 -1
- package/website/Dockerfile +18 -5
- package/website/app/about/page.tsx +7 -7
- package/website/app/blog/[slug]/page.tsx +61 -20
- package/website/app/blog/page.tsx +120 -33
- package/website/app/design-guide/page.tsx +511 -0
- package/website/app/docs/[[...slug]]/page.tsx +641 -143
- package/website/app/examples/page.tsx +51 -41
- package/website/app/{globals.css → globals.scss} +50 -23
- package/website/app/layout.tsx +2 -2
- package/website/app/license/page.tsx +183 -0
- package/website/app/not-found.tsx +18 -0
- package/website/app/page.tsx +144 -79
- package/website/app/playground/page.tsx +25 -45
- package/website/app/schema/page.tsx +423 -392
- package/website/app/specification/page.tsx +245 -169
- package/website/components/Logo.tsx +75 -2
- package/website/components/docs/DocsSidebar.tsx +40 -3
- package/website/components/docs/MarkdownContent.tsx +265 -47
- package/website/components/docs/VersionSelector.tsx +64 -8
- package/website/components/examples/ExamplesViewer.tsx +2 -2
- package/website/components/layout/Footer.tsx +6 -1
- package/website/components/layout/Header.tsx +31 -33
- package/website/components/schema/SchemaComponentsAccordion.tsx +84 -0
- package/website/components/schema/SchemaExplorer.tsx +4 -4
- package/website/content/blog/OpenAPI-AI-Agents-Standard.md +276 -276
- package/website/content/blog/Why-Formal-Standards-Matter-Now.md +3 -14
- package/website/content/blog/gitlab-kubernetes-agent-ecosystem.md +286 -0
- package/website/content/blog/introducing-ossa-framework.md +1 -1
- package/website/content/blog/ossa-production-results.md +5 -5
- package/website/content/blog/welcome-to-ossa.md +2 -2
- package/website/content/blog/why-ai-agents-need-open-standard.md +5 -5
- package/website/content/docs/00-HOME.md +18 -25
- package/website/content/docs/AIFlow-Framework-Integration-with-OSSA.md +8 -8
- package/website/content/docs/OpenAPI-Extensions.md +576 -140
- package/website/content/docs/adapters/openai-adapter.md +693 -0
- package/website/content/docs/architecture/execution-flow.md +3 -3
- package/website/content/docs/architecture/multi-agent-systems.md +4 -4
- package/website/content/docs/architecture/overview.md +4 -4
- package/website/content/docs/architecture/stack-integration.md +4 -4
- package/website/content/docs/changelog.md +4 -4
- package/website/content/docs/contributing.md +2 -2
- package/website/content/docs/ecosystem/framework-support.md +0 -2
- package/website/content/docs/examples/AIFlow-Framework-Integration-with-OSSA.md +107 -0
- package/website/content/docs/examples/Migration-Guides.md +2 -2
- package/website/content/docs/for-audiences/{architects.md → Architects.md} +1 -1
- package/website/content/docs/for-audiences/{developers.md → Developers.md} +3 -3
- package/website/content/docs/for-audiences/Enterprises.md +2 -2
- package/website/content/docs/for-audiences/Students-Researchers.md +1 -1
- package/website/content/docs/getting-started/{5-minute-overview.md → 5-Minute-Overview.md} +2 -2
- package/website/content/docs/getting-started/{first-agent.md → First-Agent.md} +1 -1
- package/website/content/docs/getting-started/Hello-World.md +3 -3
- package/website/content/docs/getting-started/{installation.md → Installation.md} +7 -7
- package/website/content/docs/getting-started/index.md +92 -0
- package/website/content/docs/getting-started/running-agents.md +215 -13
- package/{docs → website/content/docs}/getting-started.md +10 -6
- package/website/content/docs/integrations/aiflow.md +2 -2
- package/website/content/docs/integrations/drupal.md +2 -2
- package/website/content/docs/migration-guides/README.md +1 -1
- package/website/content/docs/migration-guides/agent-schema-comparison.md +232 -0
- package/website/content/docs/migration-guides/anthropic-mcp-to-ossa.md +5 -5
- package/website/content/docs/migration-guides/crewai-to-ossa.md +3 -3
- package/website/content/docs/migration-guides/drupal-eca-to-ossa.md +11 -11
- package/{docs/migration → website/content/docs/migration-guides}/general-agent-schema.yml +1 -9
- package/website/content/docs/migration-guides/index.md +1 -1
- package/website/content/docs/migration-guides/langchain-to-ossa.md +17 -17
- package/website/content/docs/migration-guides/langflow-to-ossa.md +3 -3
- package/website/content/docs/migration-guides/openai-to-ossa.md +10 -10
- package/website/content/docs/openapi-extensions/examples.md +9 -9
- package/website/content/docs/openapi-extensions/index.md +59 -3
- package/website/content/docs/openapi-extensions/operation-extensions.md +61 -2
- package/website/content/docs/openapi-extensions/root-extensions.md +49 -3
- package/{docs/OSSA-COMPLIANT-BADGE.md → website/content/docs/ossa-compliant-badge.md} +18 -15
- package/website/content/docs/pre-release/index.md +10 -10
- package/website/content/docs/readme.md +35 -0
- package/website/content/docs/schema-reference/agent-spec.md +2 -2
- package/website/content/docs/schema-reference/autonomy.md +5 -5
- package/website/content/docs/schema-reference/constraints.md +5 -5
- package/website/content/docs/schema-reference/llm-config.md +1 -1
- package/website/content/docs/schema-reference/observability.md +5 -5
- package/website/content/docs/schema-reference/ossa-manifest.md +6 -6
- package/website/content/docs/schema-reference/taxonomy.md +3 -3
- package/website/content/docs/use-cases/00-index.md +1 -1
- package/{docs/VERSIONING.md → website/content/docs/versioning.md} +9 -5
- package/website/lib/version.ts +18 -1
- package/website/lib/versions.json +78 -0
- package/website/next.config.ts +3 -1
- package/website/package-lock.json +552 -18
- package/website/package.json +11 -5
- package/website/postcss.config.mjs +1 -1
- package/website/scripts/fetch-versions.js +166 -0
- package/website/scripts/generate-examples-index.js +163 -0
- package/website/scripts/merge-docs-to-wiki.ts +207 -0
- package/website/scripts/sync-version.js +28 -0
- package/website/scripts/sync-wiki.ts +64 -3
- package/website/scripts/upload-wiki.ts +199 -0
- package/website/styles/_variables.scss +36 -0
- package/website/tailwind.config.ts +93 -22
- package/.releaserc.json.disabled +0 -81
- package/dist/spec/v0.2.5-dev/CHANGELOG.md +0 -171
- package/dist/spec/v0.2.5-dev/examples/customer-support-graph.ossa.yaml +0 -362
- package/dist/spec/v0.2.5-dev/examples/parallel-processors.ossa.yaml +0 -464
- package/dist/spec/v0.2.5-dev/examples/research-team.ossa.yaml +0 -440
- package/dist/spec/v0.2.5-dev/migrations/v0.2.4-to-v0.2.5.md +0 -317
- package/dist/spec/v0.2.5-dev/ossa-0.2.5-dev.yaml +0 -409
- package/docs/README.md +0 -31
- package/docs/agent-openapi-spec.yml +0 -942
- package/docs/openapi-extensions.md +0 -930
- package/docs/schemas/openapi-extensions.schema.json +0 -486
- package/openapi/gitlab-orchestrator.openapi.yaml +0 -330
- package/ossa-website-swarm-tasks.json +0 -105
- package/spec/v0.2.5-dev/CHANGELOG.md +0 -171
- package/spec/v0.2.5-dev/examples/customer-support-graph.ossa.yaml +0 -362
- package/spec/v0.2.5-dev/examples/parallel-processors.ossa.yaml +0 -464
- package/spec/v0.2.5-dev/examples/research-team.ossa.yaml +0 -440
- package/spec/v0.2.5-dev/migrations/v0.2.4-to-v0.2.5.md +0 -317
- package/spec/v0.2.5-dev/ossa-0.2.5-dev.yaml +0 -409
- package/website/app/api/validate/route.ts +0 -88
- package/website/next.config.js +0 -17
- package/website/postcss.config.js +0 -7
- package/website/tailwind.config.js +0 -58
- /package/dist/spec/{v0.2.4-dev → v0.2.4}/ossa-0.2.4-dev.schema.json +0 -0
- /package/openapi/{ossa-registry-api.openapi.yaml → core/ossa-registry-api.openapi.yaml} +0 -0
- /package/openapi/{drupal-agent-api.openapi.yaml → reference-implementations/drupal-agent-api.openapi.yaml} +0 -0
- /package/openapi/{helm-generator.openapi.yaml → reference-implementations/helm-generator.openapi.yaml} +0 -0
- /package/spec/{v0.2.4-dev → v0.2.4}/ossa-0.2.4-dev.schema.json +0 -0
- /package/website/content/docs/{examples.md → Examples.md} +0 -0
- /package/website/content/docs/core-concepts/{project-structure.md → Project-Structure.md} +0 -0
- /package/website/content/docs/migration-guides/{00-index.md → 00-INDEX.md} +0 -0
- /package/{docs/migration → website/content/docs/migration-guides}/migration-manifest.json +0 -0
|
@@ -0,0 +1,495 @@
|
|
|
1
|
+
# Design Document
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
This design extends agent-buildkit with a centralized template management system that eliminates the need to copy configuration files across 40+ ecosystem projects. The solution adds a `templates/` directory to agent-buildkit containing reusable steering rules, hooks, MCP server configurations, spec templates, and test templates. Projects initialize with a minimal `.kiro/config.json` pointer file, and the existing `--use-kiro-context` flag is enhanced to resolve templates from agent-buildkit's package directory.
|
|
6
|
+
|
|
7
|
+
The design follows the DRY principle by making agent-buildkit the single source of truth for IDE configurations across the entire ecosystem, including OSSA, Drupal modules, npm packages, and agent-studio.
|
|
8
|
+
|
|
9
|
+
## Architecture
|
|
10
|
+
|
|
11
|
+
### High-Level Architecture
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
agent-buildkit (npm package)
|
|
15
|
+
├── templates/ # NEW: Template directory
|
|
16
|
+
│ ├── steering/ # Steering rules
|
|
17
|
+
│ ├── hooks/ # Agent hooks
|
|
18
|
+
│ ├── settings/ # IDE settings (mcp.json, context.json)
|
|
19
|
+
│ ├── specs/ # Spec templates
|
|
20
|
+
│ ├── tests/ # Test templates
|
|
21
|
+
│ └── mcp-servers/ # MCP server configs
|
|
22
|
+
├── src/
|
|
23
|
+
│ ├── cli/
|
|
24
|
+
│ │ └── commands/
|
|
25
|
+
│ │ └── init-context.ts # NEW: Context initialization command
|
|
26
|
+
│ ├── lib/
|
|
27
|
+
│ │ ├── template-resolver.ts # NEW: Template path resolution
|
|
28
|
+
│ │ └── context-loader.ts # ENHANCED: Load templates
|
|
29
|
+
│ └── types/
|
|
30
|
+
│ └── templates.ts # NEW: Template type definitions
|
|
31
|
+
└── docs/
|
|
32
|
+
└── templates.md # NEW: Template documentation
|
|
33
|
+
|
|
34
|
+
Consumer Project
|
|
35
|
+
├── .kiro/
|
|
36
|
+
│ └── config.json # Pointer to agent-buildkit templates
|
|
37
|
+
└── package.json # Depends on @bluefly/agent-buildkit
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Component Interaction Flow
|
|
41
|
+
|
|
42
|
+
```mermaid
|
|
43
|
+
sequenceDiagram
|
|
44
|
+
participant Dev as Developer
|
|
45
|
+
participant CLI as agent-buildkit CLI
|
|
46
|
+
participant Resolver as TemplateResolver
|
|
47
|
+
participant FS as File System
|
|
48
|
+
participant Project as Consumer Project
|
|
49
|
+
|
|
50
|
+
Dev->>CLI: npx agent-buildkit --init-context
|
|
51
|
+
CLI->>FS: Check .kiro/ exists
|
|
52
|
+
alt .kiro/ doesn't exist
|
|
53
|
+
CLI->>FS: Create .kiro/
|
|
54
|
+
end
|
|
55
|
+
CLI->>FS: Write .kiro/config.json
|
|
56
|
+
CLI->>Dev: Display template paths
|
|
57
|
+
|
|
58
|
+
Note over Dev,Project: Later: Using templates
|
|
59
|
+
|
|
60
|
+
Dev->>CLI: npx agent-buildkit --use-kiro-context
|
|
61
|
+
CLI->>FS: Read .kiro/config.json
|
|
62
|
+
CLI->>Resolver: Resolve template paths
|
|
63
|
+
Resolver->>FS: Locate agent-buildkit/templates/
|
|
64
|
+
Resolver->>CLI: Return template paths
|
|
65
|
+
CLI->>Project: Load steering, hooks, settings
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Components and Interfaces
|
|
69
|
+
|
|
70
|
+
### 1. Template Directory Structure
|
|
71
|
+
|
|
72
|
+
The `templates/` directory organizes reusable configurations by category:
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
templates/
|
|
76
|
+
├── README.md # Overview of template system
|
|
77
|
+
├── steering/
|
|
78
|
+
│ ├── README.md
|
|
79
|
+
│ ├── api-first.md # OSSA/OpenAPI patterns
|
|
80
|
+
│ ├── react-components.md # React/studio-ui patterns
|
|
81
|
+
│ ├── drupal-modules.md # Drupal 10+ development
|
|
82
|
+
│ ├── npm-packages.md # npm package patterns
|
|
83
|
+
│ └── zod-validation.md # Zod schema validation
|
|
84
|
+
├── hooks/
|
|
85
|
+
│ ├── README.md
|
|
86
|
+
│ ├── openapi-validate.json # OpenAPI schema validation
|
|
87
|
+
│ ├── drupal-standards.json # Drupal coding standards
|
|
88
|
+
│ └── test-on-save.json # Run tests on file save
|
|
89
|
+
├── settings/
|
|
90
|
+
│ ├── README.md
|
|
91
|
+
│ ├── mcp-gitlab.json # GitLab MCP config
|
|
92
|
+
│ ├── mcp-kubernetes.json # K8s MCP config
|
|
93
|
+
│ ├── mcp-orbstack.json # OrbStack local K8s
|
|
94
|
+
│ └── context-defaults.json # Default context settings
|
|
95
|
+
├── specs/
|
|
96
|
+
│ ├── README.md
|
|
97
|
+
│ ├── api-endpoint.md # OpenAPI endpoint spec template
|
|
98
|
+
│ ├── drupal-module.md # Drupal module spec template
|
|
99
|
+
│ ├── npm-package.md # npm package spec template
|
|
100
|
+
│ └── react-component.md # React component spec template
|
|
101
|
+
├── tests/
|
|
102
|
+
│ ├── README.md
|
|
103
|
+
│ ├── api-test.template.ts # API test template
|
|
104
|
+
│ ├── zod-validation.template.ts # Zod validation test
|
|
105
|
+
│ └── drupal-unit.template.php # Drupal unit test
|
|
106
|
+
└── mcp-servers/
|
|
107
|
+
├── README.md
|
|
108
|
+
├── gitlab-ci.json # GitLab CI/CD MCP
|
|
109
|
+
├── kubernetes-prod.json # Production K8s MCP
|
|
110
|
+
├── kubernetes-local.json # OrbStack local K8s MCP
|
|
111
|
+
└── drupal-agents.json # Drupal AI agent MCP configs
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### 2. CLI Command: init-context
|
|
115
|
+
|
|
116
|
+
**File:** `src/cli/commands/init-context.ts`
|
|
117
|
+
|
|
118
|
+
**Purpose:** Initialize a consumer project with minimal configuration
|
|
119
|
+
|
|
120
|
+
**Interface:**
|
|
121
|
+
```typescript
|
|
122
|
+
interface InitContextOptions {
|
|
123
|
+
force?: boolean; // Overwrite existing config
|
|
124
|
+
template?: string[]; // Copy specific templates
|
|
125
|
+
interactive?: boolean; // Interactive template selection
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
export async function initContext(options: InitContextOptions): Promise<void>
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
**Behavior:**
|
|
132
|
+
1. Check if `.kiro/` directory exists, create if missing
|
|
133
|
+
2. Check if `.kiro/config.json` exists
|
|
134
|
+
3. If exists and no `--force`, prompt for confirmation
|
|
135
|
+
4. Write `.kiro/config.json` with agent-buildkit template reference
|
|
136
|
+
5. If `--template` flag provided, copy specified templates to project
|
|
137
|
+
6. Display available template paths and usage instructions
|
|
138
|
+
|
|
139
|
+
### 3. Template Resolver
|
|
140
|
+
|
|
141
|
+
**File:** `src/lib/template-resolver.ts`
|
|
142
|
+
|
|
143
|
+
**Purpose:** Resolve template paths from agent-buildkit package
|
|
144
|
+
|
|
145
|
+
**Interface:**
|
|
146
|
+
```typescript
|
|
147
|
+
interface TemplateResolverOptions {
|
|
148
|
+
projectRoot: string;
|
|
149
|
+
configPath?: string;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
interface ResolvedTemplates {
|
|
153
|
+
steering: string[];
|
|
154
|
+
hooks: string[];
|
|
155
|
+
settings: string[];
|
|
156
|
+
specs: string[];
|
|
157
|
+
tests: string[];
|
|
158
|
+
mcpServers: string[];
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
export class TemplateResolver {
|
|
162
|
+
constructor(options: TemplateResolverOptions);
|
|
163
|
+
|
|
164
|
+
// Resolve all template paths
|
|
165
|
+
resolveAll(): Promise<ResolvedTemplates>;
|
|
166
|
+
|
|
167
|
+
// Resolve specific template category
|
|
168
|
+
resolveCategory(category: TemplateCategory): Promise<string[]>;
|
|
169
|
+
|
|
170
|
+
// Get template content
|
|
171
|
+
getTemplate(category: TemplateCategory, name: string): Promise<string>;
|
|
172
|
+
|
|
173
|
+
// Check for local overrides
|
|
174
|
+
hasLocalOverride(category: TemplateCategory, name: string): Promise<boolean>;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
type TemplateCategory = 'steering' | 'hooks' | 'settings' | 'specs' | 'tests' | 'mcp-servers';
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### 4. Context Loader (Enhanced)
|
|
181
|
+
|
|
182
|
+
**File:** `src/lib/context-loader.ts`
|
|
183
|
+
|
|
184
|
+
**Purpose:** Load templates when `--use-kiro-context` flag is used
|
|
185
|
+
|
|
186
|
+
**Interface:**
|
|
187
|
+
```typescript
|
|
188
|
+
interface ContextLoaderOptions {
|
|
189
|
+
projectRoot: string;
|
|
190
|
+
useLocalOverrides?: boolean;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
interface LoadedContext {
|
|
194
|
+
steering: SteeringRule[];
|
|
195
|
+
hooks: Hook[];
|
|
196
|
+
settings: Settings;
|
|
197
|
+
mcpServers: MCPServerConfig[];
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
export class ContextLoader {
|
|
201
|
+
constructor(options: ContextLoaderOptions);
|
|
202
|
+
|
|
203
|
+
// Load all context
|
|
204
|
+
loadAll(): Promise<LoadedContext>;
|
|
205
|
+
|
|
206
|
+
// Load specific category
|
|
207
|
+
loadCategory(category: TemplateCategory): Promise<any[]>;
|
|
208
|
+
|
|
209
|
+
// Merge local overrides with package templates
|
|
210
|
+
mergeWithOverrides(templates: any[], category: TemplateCategory): Promise<any[]>;
|
|
211
|
+
}
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
### 5. Configuration File Format
|
|
215
|
+
|
|
216
|
+
**File:** `.kiro/config.json` (in consumer projects)
|
|
217
|
+
|
|
218
|
+
```json
|
|
219
|
+
{
|
|
220
|
+
"version": "1.0",
|
|
221
|
+
"templateSource": "@bluefly/agent-buildkit",
|
|
222
|
+
"templateVersion": "^2.0.0",
|
|
223
|
+
"overrides": {
|
|
224
|
+
"steering": ["./custom-steering.md"],
|
|
225
|
+
"hooks": [],
|
|
226
|
+
"settings": ["./custom-mcp.json"]
|
|
227
|
+
},
|
|
228
|
+
"disabled": {
|
|
229
|
+
"steering": [],
|
|
230
|
+
"hooks": ["test-on-save"],
|
|
231
|
+
"mcpServers": []
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
## Data Models
|
|
237
|
+
|
|
238
|
+
### Template Metadata
|
|
239
|
+
|
|
240
|
+
```typescript
|
|
241
|
+
interface TemplateMetadata {
|
|
242
|
+
name: string;
|
|
243
|
+
category: TemplateCategory;
|
|
244
|
+
description: string;
|
|
245
|
+
version: string;
|
|
246
|
+
tags: string[];
|
|
247
|
+
applicableTo: ProjectType[];
|
|
248
|
+
dependencies?: string[];
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
type ProjectType =
|
|
252
|
+
| 'drupal-module'
|
|
253
|
+
| 'npm-package'
|
|
254
|
+
| 'react-app'
|
|
255
|
+
| 'openapi-service'
|
|
256
|
+
| 'drupal-recipe';
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
### Steering Rule
|
|
260
|
+
|
|
261
|
+
```typescript
|
|
262
|
+
interface SteeringRule {
|
|
263
|
+
name: string;
|
|
264
|
+
content: string;
|
|
265
|
+
inclusion: 'always' | 'conditional' | 'manual';
|
|
266
|
+
fileMatchPattern?: string;
|
|
267
|
+
priority: number;
|
|
268
|
+
}
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
### Hook Configuration
|
|
272
|
+
|
|
273
|
+
```typescript
|
|
274
|
+
interface Hook {
|
|
275
|
+
name: string;
|
|
276
|
+
trigger: HookTrigger;
|
|
277
|
+
action: HookAction;
|
|
278
|
+
enabled: boolean;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
type HookTrigger =
|
|
282
|
+
| 'on-save'
|
|
283
|
+
| 'on-message'
|
|
284
|
+
| 'on-session-start'
|
|
285
|
+
| 'on-agent-complete';
|
|
286
|
+
|
|
287
|
+
interface HookAction {
|
|
288
|
+
type: 'send-message' | 'execute-command';
|
|
289
|
+
payload: string;
|
|
290
|
+
}
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
### MCP Server Configuration
|
|
294
|
+
|
|
295
|
+
```typescript
|
|
296
|
+
interface MCPServerConfig {
|
|
297
|
+
name: string;
|
|
298
|
+
command: string;
|
|
299
|
+
args: string[];
|
|
300
|
+
env?: Record<string, string>;
|
|
301
|
+
disabled: boolean;
|
|
302
|
+
autoApprove: string[];
|
|
303
|
+
}
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
## Error Handling
|
|
307
|
+
|
|
308
|
+
### Error Types
|
|
309
|
+
|
|
310
|
+
```typescript
|
|
311
|
+
enum TemplateErrorCode {
|
|
312
|
+
CONFIG_NOT_FOUND = 'CONFIG_NOT_FOUND',
|
|
313
|
+
TEMPLATE_NOT_FOUND = 'TEMPLATE_NOT_FOUND',
|
|
314
|
+
INVALID_CONFIG = 'INVALID_CONFIG',
|
|
315
|
+
PERMISSION_DENIED = 'PERMISSION_DENIED',
|
|
316
|
+
TEMPLATE_PARSE_ERROR = 'TEMPLATE_PARSE_ERROR',
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
class TemplateError extends Error {
|
|
320
|
+
constructor(
|
|
321
|
+
public code: TemplateErrorCode,
|
|
322
|
+
message: string,
|
|
323
|
+
public details?: any
|
|
324
|
+
) {
|
|
325
|
+
super(message);
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
### Error Handling Strategy
|
|
331
|
+
|
|
332
|
+
1. **Missing Configuration**: If `.kiro/config.json` not found, provide helpful message suggesting `--init-context`
|
|
333
|
+
2. **Template Not Found**: Fall back to default behavior, log warning
|
|
334
|
+
3. **Invalid Configuration**: Validate config schema, provide specific error messages
|
|
335
|
+
4. **Permission Errors**: Check file permissions, suggest fixes
|
|
336
|
+
5. **Parse Errors**: Catch JSON/YAML parse errors, show line numbers
|
|
337
|
+
|
|
338
|
+
## Testing Strategy
|
|
339
|
+
|
|
340
|
+
### Unit Testing
|
|
341
|
+
|
|
342
|
+
We'll use Jest for unit testing with the following focus areas:
|
|
343
|
+
|
|
344
|
+
1. **Template Resolver Tests**
|
|
345
|
+
- Test path resolution for all template categories
|
|
346
|
+
- Test local override detection
|
|
347
|
+
- Test template content retrieval
|
|
348
|
+
- Test error handling for missing templates
|
|
349
|
+
|
|
350
|
+
2. **Context Loader Tests**
|
|
351
|
+
- Test loading all context categories
|
|
352
|
+
- Test merging local overrides with package templates
|
|
353
|
+
- Test priority ordering of steering rules
|
|
354
|
+
- Test disabled template filtering
|
|
355
|
+
|
|
356
|
+
3. **CLI Command Tests**
|
|
357
|
+
- Test `--init-context` creates correct directory structure
|
|
358
|
+
- Test `--init-context --force` overwrites existing config
|
|
359
|
+
- Test `--template` flag copies specific templates
|
|
360
|
+
- Test interactive mode prompts
|
|
361
|
+
|
|
362
|
+
4. **Configuration Validation Tests**
|
|
363
|
+
- Test valid config.json parsing
|
|
364
|
+
- Test invalid config.json error handling
|
|
365
|
+
- Test schema validation
|
|
366
|
+
|
|
367
|
+
### Property-Based Testing
|
|
368
|
+
|
|
369
|
+
We'll use fast-check for property-based testing. The testing strategy will focus on universal properties that should hold across all inputs.
|
|
370
|
+
|
|
371
|
+
**Property-Based Testing Library:** fast-check (for TypeScript/JavaScript)
|
|
372
|
+
|
|
373
|
+
**Configuration:** Each property-based test will run a minimum of 100 iterations.
|
|
374
|
+
|
|
375
|
+
**Tagging Convention:** Each property-based test will include a comment with the format:
|
|
376
|
+
`// Feature: agent-buildkit-templates, Property {number}: {property_text}`
|
|
377
|
+
|
|
378
|
+
|
|
379
|
+
|
|
380
|
+
## Correctness Properties
|
|
381
|
+
|
|
382
|
+
*A property is a characteristic or behavior that should hold true across all valid executions of a system-essentially, a formal statement about what the system should do. Properties serve as the bridge between human-readable specifications and machine-verifiable correctness guarantees.*
|
|
383
|
+
|
|
384
|
+
### Property 1: Template directory structure completeness
|
|
385
|
+
|
|
386
|
+
*For any* installation of agent-buildkit, all required template subdirectories (steering, hooks, settings, specs, tests, mcp-servers) should exist in the templates/ directory.
|
|
387
|
+
|
|
388
|
+
**Validates: Requirements 1.2, 8.2**
|
|
389
|
+
|
|
390
|
+
### Property 2: Template accessibility via node_modules
|
|
391
|
+
|
|
392
|
+
*For any* consumer project with agent-buildkit installed, the templates directory should be resolvable via standard Node.js module resolution.
|
|
393
|
+
|
|
394
|
+
**Validates: Requirements 1.5**
|
|
395
|
+
|
|
396
|
+
### Property 3: Template persistence across updates
|
|
397
|
+
|
|
398
|
+
*For any* version update of agent-buildkit, the template resolution mechanism should continue to work without requiring manual file copying.
|
|
399
|
+
|
|
400
|
+
**Validates: Requirements 2.3**
|
|
401
|
+
|
|
402
|
+
### Property 4: Config file template reference
|
|
403
|
+
|
|
404
|
+
*For any* initialization via `--init-context`, the created `.kiro/config.json` file should contain a valid reference to agent-buildkit's template directory.
|
|
405
|
+
|
|
406
|
+
**Validates: Requirements 3.3**
|
|
407
|
+
|
|
408
|
+
### Property 5: Config preservation without force flag
|
|
409
|
+
|
|
410
|
+
*For any* existing `.kiro/config.json` file, running `--init-context` without `--force` should preserve the existing configuration.
|
|
411
|
+
|
|
412
|
+
**Validates: Requirements 3.5**
|
|
413
|
+
|
|
414
|
+
### Property 6: Config file discovery with context flag
|
|
415
|
+
|
|
416
|
+
*For any* project with a `.kiro/config.json` file, invoking `--use-kiro-context` should successfully locate the configuration file.
|
|
417
|
+
|
|
418
|
+
**Validates: Requirements 4.1**
|
|
419
|
+
|
|
420
|
+
### Property 7: Template path resolution from config
|
|
421
|
+
|
|
422
|
+
*For any* valid `.kiro/config.json` file, the template resolver should resolve paths to agent-buildkit's templates directory.
|
|
423
|
+
|
|
424
|
+
**Validates: Requirements 4.2**
|
|
425
|
+
|
|
426
|
+
### Property 8: Complete template category loading
|
|
427
|
+
|
|
428
|
+
*For any* resolved template configuration, all template categories (steering, hooks, settings) should be loaded.
|
|
429
|
+
|
|
430
|
+
**Validates: Requirements 4.3**
|
|
431
|
+
|
|
432
|
+
### Property 9: MCP template JSON validity
|
|
433
|
+
|
|
434
|
+
*For any* MCP server template file in templates/mcp-servers/, the file content should parse as valid JSON.
|
|
435
|
+
|
|
436
|
+
**Validates: Requirements 5.4**
|
|
437
|
+
|
|
438
|
+
### Property 10: Template documentation completeness
|
|
439
|
+
|
|
440
|
+
*For any* MCP server template, corresponding documentation should exist either in the template directory README or the docs directory.
|
|
441
|
+
|
|
442
|
+
**Validates: Requirements 5.5**
|
|
443
|
+
|
|
444
|
+
### Property 11: README presence in template directories
|
|
445
|
+
|
|
446
|
+
*For any* template category subdirectory, a README.md file should exist providing documentation for that category.
|
|
447
|
+
|
|
448
|
+
**Validates: Requirements 8.3**
|
|
449
|
+
|
|
450
|
+
### Property 12: Template copy structure preservation
|
|
451
|
+
|
|
452
|
+
*For any* template copied to a consumer project using `--template`, the copied file structure should match the original template structure in agent-buildkit.
|
|
453
|
+
|
|
454
|
+
**Validates: Requirements 9.3**
|
|
455
|
+
|
|
456
|
+
### Property 13: Local override priority
|
|
457
|
+
|
|
458
|
+
*For any* template file that exists both in agent-buildkit and locally in the consumer project, the local file should be loaded instead of the package template.
|
|
459
|
+
|
|
460
|
+
**Validates: Requirements 9.4, 9.5**
|
|
461
|
+
|
|
462
|
+
### Property 14: OSSA schema reference resolution
|
|
463
|
+
|
|
464
|
+
*For any* OSSA schema reference in templates, the path should resolve to a valid location when `--use-kiro-context` is used.
|
|
465
|
+
|
|
466
|
+
**Validates: Requirements 10.5**
|
|
467
|
+
|
|
468
|
+
### Integration Tests
|
|
469
|
+
|
|
470
|
+
Integration tests will verify end-to-end workflows:
|
|
471
|
+
|
|
472
|
+
1. **Full Initialization Workflow**
|
|
473
|
+
- Install agent-buildkit in a new project
|
|
474
|
+
- Run `--init-context`
|
|
475
|
+
- Verify `.kiro/config.json` created
|
|
476
|
+
- Run `--use-kiro-context`
|
|
477
|
+
- Verify templates loaded correctly
|
|
478
|
+
|
|
479
|
+
2. **Template Override Workflow**
|
|
480
|
+
- Initialize project with templates
|
|
481
|
+
- Copy a template locally and modify it
|
|
482
|
+
- Run `--use-kiro-context`
|
|
483
|
+
- Verify local template used instead of package template
|
|
484
|
+
|
|
485
|
+
3. **Update Workflow**
|
|
486
|
+
- Initialize project with agent-buildkit v1
|
|
487
|
+
- Update to agent-buildkit v2
|
|
488
|
+
- Run `--use-kiro-context`
|
|
489
|
+
- Verify new templates accessible
|
|
490
|
+
|
|
491
|
+
4. **Selective Template Copy Workflow**
|
|
492
|
+
- Run `--init-context --template steering,hooks`
|
|
493
|
+
- Verify only steering and hooks copied
|
|
494
|
+
- Verify other templates still accessible from package
|
|
495
|
+
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# Requirements Document
|
|
2
|
+
|
|
3
|
+
## Introduction
|
|
4
|
+
|
|
5
|
+
This feature extends agent-buildkit to centralize IDE configuration templates, steering rules, hooks, MCP server configurations, and spec templates across a complex multi-project ecosystem. The ecosystem includes OSSA (OpenAPI schema master), gitlab_components, 20+ Drupal custom modules, 15+ npm packages, agent-studio IDE, and multiple domain models. Instead of copying configuration folders to 40+ projects, developers use agent-buildkit's new template management features, with updates propagating through standard npm update workflows. This extends the existing `--use-kiro-context` flag and integrates with OSSA schema sync and GitLab CI infrastructure.
|
|
6
|
+
|
|
7
|
+
## Glossary
|
|
8
|
+
|
|
9
|
+
- **Agent Buildkit**: The existing npm package at `/Users/flux423/Sites/LLM/agent-buildkit` that will be extended with template management capabilities
|
|
10
|
+
- **Template System**: The collection of reusable configuration files for steering, hooks, settings, specs, tests, and MCP servers stored within agent-buildkit
|
|
11
|
+
- **Context Initialization**: The new `--init-context` command in agent-buildkit for setting up projects with templates
|
|
12
|
+
- **Consumer Project**: Any of the 40+ projects that use agent-buildkit and will access centralized templates
|
|
13
|
+
- **Configuration Pointer**: A minimal `.kiro/config.json` file that references agent-buildkit's template directory
|
|
14
|
+
- **MCP Server**: Model Context Protocol server configuration
|
|
15
|
+
- **Steering Rules**: IDE guidance files that influence agent behavior
|
|
16
|
+
- **OSSA**: Open Standard Agents specification at `/Users/flux423/Sites/LLM/openstandardagents` - the master OpenAPI and schema source
|
|
17
|
+
- **GitLab Components**: CI/CD library at `/Users/flux423/Sites/LLM/gitlab_components`
|
|
18
|
+
- **Ecosystem Projects**: The 40+ projects including Drupal modules, npm packages, models, and recipes
|
|
19
|
+
- **Agent Studio**: Monorepo IDE tool at `/Users/flux423/Sites/LLM/common_npm/agent-studio` for macOS, iOS, Electron, VS Code extension, and web IDE
|
|
20
|
+
|
|
21
|
+
## Requirements
|
|
22
|
+
|
|
23
|
+
### Requirement 1
|
|
24
|
+
|
|
25
|
+
**User Story:** As a developer managing multiple projects, I want agent-buildkit to provide centralized templates, so that I can avoid copying configuration folders across 40+ projects.
|
|
26
|
+
|
|
27
|
+
#### Acceptance Criteria
|
|
28
|
+
|
|
29
|
+
1. WHEN agent-buildkit is installed THEN the Agent Buildkit SHALL include a `templates/` directory in its package structure
|
|
30
|
+
2. WHEN the templates directory exists THEN the Agent Buildkit SHALL provide subdirectories for steering, hooks, settings, specs, tests, and mcp-servers
|
|
31
|
+
3. WHEN a developer runs `npx agent-buildkit --init-context` THEN the Agent Buildkit SHALL create a minimal `.kiro/config.json` file
|
|
32
|
+
4. WHEN the initialization completes THEN the Agent Buildkit SHALL display available template paths and next steps
|
|
33
|
+
5. THE Agent Buildkit SHALL make templates accessible to all consumer projects via node_modules resolution
|
|
34
|
+
|
|
35
|
+
### Requirement 2
|
|
36
|
+
|
|
37
|
+
**User Story:** As a developer, I want to update all projects' templates by updating agent-buildkit, so that I can maintain consistency across my entire project portfolio.
|
|
38
|
+
|
|
39
|
+
#### Acceptance Criteria
|
|
40
|
+
|
|
41
|
+
1. WHEN a developer publishes a new version of agent-buildkit THEN the Package Manager SHALL make the updated version available on npm
|
|
42
|
+
2. WHEN a developer runs `npm update @bluefly/agent-buildkit` in a Consumer Project THEN the Package Manager SHALL fetch and install the latest version
|
|
43
|
+
3. WHEN agent-buildkit updates THEN the Template System SHALL provide the new templates without requiring manual file copying
|
|
44
|
+
4. THE Agent Buildkit SHALL use semantic versioning for all releases
|
|
45
|
+
5. WHEN template breaking changes are introduced THEN the Agent Buildkit SHALL document migration steps in CHANGELOG
|
|
46
|
+
|
|
47
|
+
### Requirement 3
|
|
48
|
+
|
|
49
|
+
**User Story:** As a developer, I want agent-buildkit to initialize my project with minimal configuration, so that I can start using templates quickly.
|
|
50
|
+
|
|
51
|
+
#### Acceptance Criteria
|
|
52
|
+
|
|
53
|
+
1. WHEN a developer runs `npx agent-buildkit --init-context` THEN the Agent Buildkit SHALL check if `.kiro` directory exists
|
|
54
|
+
2. IF the `.kiro` directory does not exist THEN the Agent Buildkit SHALL create it
|
|
55
|
+
3. WHEN creating the configuration THEN the Agent Buildkit SHALL write a `.kiro/config.json` file with a reference to agent-buildkit's template directory
|
|
56
|
+
4. WHEN the initialization is complete THEN the Agent Buildkit SHALL output the paths to available templates
|
|
57
|
+
5. THE Agent Buildkit SHALL not overwrite existing `.kiro/config.json` files without user confirmation
|
|
58
|
+
|
|
59
|
+
### Requirement 4
|
|
60
|
+
|
|
61
|
+
**User Story:** As a developer, I want agent-buildkit's existing `--use-kiro-context` flag to work with the new template system, so that I can use context in my build processes.
|
|
62
|
+
|
|
63
|
+
#### Acceptance Criteria
|
|
64
|
+
|
|
65
|
+
1. WHEN agent-buildkit is invoked with `--use-kiro-context` flag THEN the Agent Buildkit SHALL locate the `.kiro/config.json` file
|
|
66
|
+
2. WHEN the configuration pointer is found THEN the Agent Buildkit SHALL resolve template paths from its own templates directory
|
|
67
|
+
3. WHEN templates are resolved THEN the Agent Buildkit SHALL load steering rules, hooks, and settings
|
|
68
|
+
4. THE Agent Buildkit SHALL export a programmatic API for template path resolution
|
|
69
|
+
5. THE Agent Buildkit SHALL provide TypeScript type definitions for all template-related APIs
|
|
70
|
+
|
|
71
|
+
### Requirement 5
|
|
72
|
+
|
|
73
|
+
**User Story:** As a developer working with GitLab and Kubernetes, I want default MCP configurations for K8s agents and CI/CD, so that I can quickly set up agent-based workflows.
|
|
74
|
+
|
|
75
|
+
#### Acceptance Criteria
|
|
76
|
+
|
|
77
|
+
1. THE Agent Buildkit SHALL include MCP server templates for GitLab integration in templates/mcp-servers/
|
|
78
|
+
2. THE Agent Buildkit SHALL include MCP server templates for Kubernetes agent operations
|
|
79
|
+
3. THE Agent Buildkit SHALL include MCP server templates for CI/CD pipeline automation
|
|
80
|
+
4. WHEN a developer accesses MCP templates THEN the Template System SHALL provide configuration files in JSON format
|
|
81
|
+
5. THE Agent Buildkit SHALL include documentation for each MCP server template
|
|
82
|
+
|
|
83
|
+
### Requirement 6
|
|
84
|
+
|
|
85
|
+
**User Story:** As a developer using OrbStack for local development, I want MCP integration for local Kubernetes clusters, so that I can test agent workflows locally before deploying.
|
|
86
|
+
|
|
87
|
+
#### Acceptance Criteria
|
|
88
|
+
|
|
89
|
+
1. THE Agent Buildkit SHALL include MCP server templates for OrbStack Kubernetes integration
|
|
90
|
+
2. WHEN using OrbStack templates THEN the Template System SHALL provide localhost connection configurations
|
|
91
|
+
3. THE Agent Buildkit SHALL include examples for local K8s agent testing
|
|
92
|
+
4. THE Agent Buildkit SHALL document the differences between local and production MCP configurations
|
|
93
|
+
5. WHEN local configurations are used THEN the MCP Server SHALL connect to OrbStack's Kubernetes API
|
|
94
|
+
|
|
95
|
+
### Requirement 7
|
|
96
|
+
|
|
97
|
+
**User Story:** As a developer following API-first principles with OSSA as the schema master, I want agent-buildkit to support React, OpenAPI, Zod, and Drupal templates, so that my templates align with my technology stack across all ecosystem projects.
|
|
98
|
+
|
|
99
|
+
#### Acceptance Criteria
|
|
100
|
+
|
|
101
|
+
1. THE Agent Buildkit SHALL include spec templates for OpenAPI-based projects that reference OSSA schemas
|
|
102
|
+
2. THE Agent Buildkit SHALL include steering rules for React component development used in studio-ui and agent-studio
|
|
103
|
+
3. THE Agent Buildkit SHALL include test templates that use Zod for schema validation synced with OSSA
|
|
104
|
+
4. THE Agent Buildkit SHALL include steering rules for Drupal module development covering the 20+ custom modules
|
|
105
|
+
5. THE Agent Buildkit SHALL provide templates for npm package development used across the 15+ common_npm packages
|
|
106
|
+
|
|
107
|
+
### Requirement 8
|
|
108
|
+
|
|
109
|
+
**User Story:** As a package maintainer, I want a clear directory structure for templates within agent-buildkit, so that users can easily understand and extend the templates.
|
|
110
|
+
|
|
111
|
+
#### Acceptance Criteria
|
|
112
|
+
|
|
113
|
+
1. THE Agent Buildkit SHALL organize templates in a `templates/` directory at the package root
|
|
114
|
+
2. THE Template System SHALL use subdirectories for each template category: steering, hooks, settings, specs, tests, mcp-servers
|
|
115
|
+
3. WHEN a user browses agent-buildkit THEN the Template System SHALL provide a README in each template directory
|
|
116
|
+
4. THE Agent Buildkit SHALL include template documentation in its existing docs directory
|
|
117
|
+
5. THE Agent Buildkit SHALL maintain its existing npm package structure while adding the templates directory
|
|
118
|
+
|
|
119
|
+
### Requirement 9
|
|
120
|
+
|
|
121
|
+
**User Story:** As a developer, I want to selectively use templates from agent-buildkit, so that I can customize my project configuration while still benefiting from centralized updates.
|
|
122
|
+
|
|
123
|
+
#### Acceptance Criteria
|
|
124
|
+
|
|
125
|
+
1. WHEN a developer references a template THEN the Template System SHALL allow copying individual templates to the project
|
|
126
|
+
2. THE Agent Buildkit SHALL provide a `--template` flag to copy specific template categories
|
|
127
|
+
3. WHEN templates are copied THEN the Agent Buildkit SHALL preserve the original template structure
|
|
128
|
+
4. THE Agent Buildkit SHALL allow projects to override package templates with local files
|
|
129
|
+
5. WHEN local overrides exist THEN the Template System SHALL prioritize local files over agent-buildkit templates
|
|
130
|
+
|
|
131
|
+
### Requirement 10
|
|
132
|
+
|
|
133
|
+
**User Story:** As a developer working with OSSA schemas, I want agent-buildkit to integrate with OSSA schema sync and Apidog, so that my templates stay synchronized with the master OpenAPI specifications.
|
|
134
|
+
|
|
135
|
+
#### Acceptance Criteria
|
|
136
|
+
|
|
137
|
+
1. THE Agent Buildkit SHALL include steering rules that reference OSSA schema locations
|
|
138
|
+
2. WHEN OSSA schemas are updated THEN the Template System SHALL provide guidance for syncing with Apidog
|
|
139
|
+
3. THE Agent Buildkit SHALL include spec templates for API-first development using OSSA patterns
|
|
140
|
+
4. THE Agent Buildkit SHALL provide hooks for validating OpenAPI schema compliance
|
|
141
|
+
5. WHEN agent-buildkit uses `--use-kiro-context` THEN the Agent Buildkit SHALL resolve OSSA schema references
|
|
142
|
+
|
|
143
|
+
### Requirement 11
|
|
144
|
+
|
|
145
|
+
**User Story:** As a developer managing Drupal recipes and modules, I want templates specific to Drupal development, so that I can maintain consistency across llm_platform, secure_drupal recipes and 20+ custom modules.
|
|
146
|
+
|
|
147
|
+
#### Acceptance Criteria
|
|
148
|
+
|
|
149
|
+
1. THE Agent Buildkit SHALL include steering rules for Drupal 10+ module development
|
|
150
|
+
2. THE Agent Buildkit SHALL include spec templates for Drupal recipe creation
|
|
151
|
+
3. THE Agent Buildkit SHALL include hooks for Drupal coding standards validation
|
|
152
|
+
4. THE Agent Buildkit SHALL provide MCP server templates for Drupal AI agent modules (OSSA, KAgent, Claude, Cursor, etc.)
|
|
153
|
+
5. WHEN developing Drupal modules THEN the Template System SHALL provide guidance for recipe integration
|
|
154
|
+
|
|
155
|
+
### Requirement 12
|
|
156
|
+
|
|
157
|
+
**User Story:** As a developer, I want agent-buildkit to maintain its existing npm package quality while adding template features, so that all 40+ ecosystem projects can benefit from the updates.
|
|
158
|
+
|
|
159
|
+
#### Acceptance Criteria
|
|
160
|
+
|
|
161
|
+
1. THE Agent Buildkit SHALL continue to be published to npm under the `@bluefly` scope
|
|
162
|
+
2. WHEN published THEN the Agent Buildkit SHALL update package.json to document new template features
|
|
163
|
+
3. THE Agent Buildkit SHALL update its README.md with template initialization and usage instructions
|
|
164
|
+
4. THE Agent Buildkit SHALL maintain its existing Node.js version requirements
|
|
165
|
+
5. THE Agent Buildkit SHALL update its CHANGELOG.md to document template system additions
|