@bluefly/openstandardagents 0.2.5-RC → 0.2.7
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/.github/ISSUE_TEMPLATE/bug_report.yml +63 -0
- package/.github/ISSUE_TEMPLATE/feature_request.yml +40 -0
- package/.github/workflows/dependabot-comment.yml +34 -0
- package/.github/workflows/pr-comment.yml +33 -0
- package/.husky/pre-commit +5 -0
- package/.kiro/config.json +21 -0
- package/.kiro/settings/mcp.json +61 -0
- package/.kiro/specs/scripts-migration-api-first/design.md +883 -0
- package/.kiro/specs/scripts-migration-api-first/requirements.md +165 -0
- package/.kiro/specs/scripts-migration-api-first/tasks.md +539 -0
- package/.kiro/specs/{website-design-audit → website-brand-identity}/design.md +381 -0
- package/.kiro/specs/{website-design-audit → website-brand-identity}/requirements.md +88 -0
- package/.kiro/specs/website-brand-identity/tasks.md +981 -0
- package/CHANGELOG.md +23 -0
- package/README.md +12 -3
- package/bin/ossa-dev +42 -0
- package/bin/ossa-export +32 -0
- package/bin/ossa-generate +60 -0
- package/bin/ossa-health +40 -0
- package/bin/ossa-init +26 -0
- package/dist/repositories/schema.repository.d.ts.map +1 -1
- package/dist/repositories/schema.repository.js +15 -10
- package/dist/repositories/schema.repository.js.map +1 -1
- package/dist/services/github-sync/github-client.d.ts +14 -0
- package/dist/services/github-sync/github-client.d.ts.map +1 -0
- package/dist/services/github-sync/github-client.js +41 -0
- package/dist/services/github-sync/github-client.js.map +1 -0
- package/dist/services/github-sync/gitlab-client.d.ts +17 -0
- package/dist/services/github-sync/gitlab-client.d.ts.map +1 -0
- package/dist/services/github-sync/gitlab-client.js +42 -0
- package/dist/services/github-sync/gitlab-client.js.map +1 -0
- package/dist/services/github-sync/schemas.d.ts +46 -0
- package/dist/services/github-sync/schemas.d.ts.map +1 -0
- package/dist/services/github-sync/schemas.js +36 -0
- package/dist/services/github-sync/schemas.js.map +1 -0
- package/dist/services/github-sync/sync.service.d.ts +27 -0
- package/dist/services/github-sync/sync.service.d.ts.map +1 -0
- package/dist/services/github-sync/sync.service.js +99 -0
- package/dist/services/github-sync/sync.service.js.map +1 -0
- package/dist/services/runtime/claude/capability-mapper.d.ts +84 -0
- package/dist/services/runtime/claude/capability-mapper.d.ts.map +1 -0
- package/dist/services/runtime/claude/capability-mapper.js +245 -0
- package/dist/services/runtime/claude/capability-mapper.js.map +1 -0
- package/dist/services/runtime/claude/claude-adapter.d.ts +80 -0
- package/dist/services/runtime/claude/claude-adapter.d.ts.map +1 -0
- package/dist/services/runtime/claude/claude-adapter.js +287 -0
- package/dist/services/runtime/claude/claude-adapter.js.map +1 -0
- package/dist/services/runtime/claude/manifest-parser.d.ts +77 -0
- package/dist/services/runtime/claude/manifest-parser.d.ts.map +1 -0
- package/dist/services/runtime/claude/manifest-parser.js +169 -0
- package/dist/services/runtime/claude/manifest-parser.js.map +1 -0
- package/dist/services/runtime/claude/types.d.ts +115 -0
- package/dist/services/runtime/claude/types.d.ts.map +1 -0
- package/dist/services/runtime/claude/types.js +6 -0
- package/dist/services/runtime/claude/types.js.map +1 -0
- package/dist/services/validation.service.d.ts.map +1 -1
- package/dist/services/validation.service.js +12 -1
- package/dist/services/validation.service.js.map +1 -1
- package/dist/spec/v0.2.4/ossa-0.2.4.schema.json +85 -208
- package/dist/spec/v0.2.6/CHANGELOG.md +401 -0
- package/dist/spec/v0.2.6/README.md +72 -0
- package/dist/spec/v0.2.6/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/dist/spec/v0.2.6/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
- package/dist/spec/v0.2.6/ossa-0.2.6.schema.json +1786 -0
- package/dist/spec/v0.2.6/ossa-0.2.6.yaml +581 -0
- package/dist/spec/v0.2.6-dev/CHANGELOG.md +164 -0
- package/dist/spec/v0.2.6-dev/README.md +75 -0
- package/dist/spec/v0.2.6-dev/migrations/v0.2.2-to-v0.2.3.md +343 -0
- package/dist/spec/v0.2.6-dev/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/dist/spec/{v0.2.4/ossa-0.2.4-dev.schema.json → v0.2.6-dev/ossa-0.2.5.schema.json} +9 -9
- package/dist/spec/v0.2.6-dev/ossa-0.2.5.yaml +581 -0
- package/{spec/v0.2.4/ossa-0.2.4-dev.schema.json → dist/spec/v0.2.6-dev/ossa-0.2.6-dev.schema.json} +9 -9
- package/dist/spec/v0.2.6-dev/ossa-0.2.6-dev.yaml +448 -0
- package/dist/spec/v0.2.7/core/agentgraph.md +324 -0
- package/dist/spec/v0.2.7/resources/agentgraph.yaml +135 -0
- package/docs/brand-guide/01-brand-overview.md +37 -0
- package/docs/brand-guide/02-logo-usage.md +43 -0
- package/docs/brand-guide/03-color-palette.md +70 -0
- package/docs/brand-guide/04-typography.md +82 -0
- package/docs/brand-guide/05-voice-and-tone.md +108 -0
- package/docs/brand-guide/06-visual-elements.md +137 -0
- package/docs/brand-guide/07-application-examples.md +153 -0
- package/docs/brand-guide/OssaLogo/OssA_Logo.svg +21 -0
- package/docs/brand-guide/OssaLogo/brand.af +0 -0
- package/docs/brand-guide/README.md +107 -0
- package/docs/comparison.md +315 -0
- package/docs/operations/automation-roadmap.md +245 -0
- package/docs/operations/github-sync-strategy.md +357 -0
- package/examples/anthropic/claude-assistant.ossa.json +5 -4
- package/examples/autogen/multi-agent.ossa.json +6 -4
- package/examples/crewai/research-team.ossa.json +14 -5
- package/examples/cursor/code-review-agent.ossa.json +21 -6
- package/examples/langchain/chain-agent.ossa.json +21 -5
- package/examples/langflow/workflow-agent.ossa.json +2 -3
- package/examples/langgraph/state-machine-agent.ossa.json +2 -3
- package/examples/llamaindex/rag-agent.ossa.json +2 -3
- package/examples/openai/multi-tool-agent.ossa.json +32 -9
- package/examples/openai/swarm-agent.ossa.json +18 -5
- package/examples/vercel/edge-agent.ossa.json +5 -4
- package/openapi/github-sync.yaml +115 -0
- package/package.json +25 -4
- package/scripts/README.md +103 -0
- package/scripts/auto-rebase-mrs.ts +106 -0
- package/scripts/batch-dependabot.sh +57 -0
- package/scripts/configure-gitlab-branch-protection.ts +95 -0
- package/scripts/create-issue-helper.ts +238 -0
- package/scripts/create-milestone-issue.ts +73 -0
- package/scripts/fix-schema-formats.js +82 -0
- package/scripts/generate-agents-catalog.ts +77 -0
- package/scripts/generate-api-docs.ts +218 -0
- package/scripts/generate-cli-docs.ts +410 -0
- package/scripts/generate-config-docs.ts +109 -0
- package/scripts/generate-errors-docs.ts +76 -0
- package/scripts/generate-examples-docs.ts +99 -0
- package/scripts/generate-schema-docs.ts +296 -0
- package/scripts/generate-types-docs.ts +48 -0
- package/scripts/lowercase-docs.ts +43 -0
- package/scripts/manage-milestone-mrs.ts +279 -0
- package/scripts/rebase-all-mrs.sh +75 -0
- package/scripts/sync-github-pr.sh +48 -0
- package/scripts/sync-version.js +40 -0
- package/scripts/sync-wiki.sh +50 -0
- package/scripts/validate-all.js +127 -0
- package/spec/v0.2.4/ossa-0.2.4.schema.json +85 -208
- package/spec/v0.2.6/CHANGELOG.md +401 -0
- package/spec/v0.2.6/README.md +72 -0
- package/spec/v0.2.6/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/spec/v0.2.6/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
- package/spec/v0.2.6/ossa-0.2.6.schema.json +1786 -0
- package/spec/v0.2.6/ossa-0.2.6.yaml +581 -0
- package/spec/v0.2.6-dev/CHANGELOG.md +164 -0
- package/spec/v0.2.6-dev/README.md +75 -0
- package/spec/v0.2.6-dev/migrations/v0.2.2-to-v0.2.3.md +343 -0
- package/spec/v0.2.6-dev/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/spec/v0.2.6-dev/ossa-0.2.5.schema.json +1696 -0
- package/spec/v0.2.6-dev/ossa-0.2.5.yaml +581 -0
- package/spec/v0.2.6-dev/ossa-0.2.6-dev.schema.json +1696 -0
- package/spec/v0.2.6-dev/ossa-0.2.6-dev.yaml +448 -0
- package/spec/v0.2.7/core/agentgraph.md +324 -0
- package/spec/v0.2.7/resources/agentgraph.yaml +135 -0
- package/website/DESIGN_SYSTEM_IMPLEMENTATION.md +445 -0
- package/website/app/about/page.tsx +53 -44
- package/website/app/ecosystem/page.tsx +146 -111
- package/website/app/globals.scss +256 -21
- package/website/app/page.tsx +394 -182
- package/website/app/page.tsx.bak +679 -0
- package/website/app/page.tsx.bak2 +649 -0
- package/website/app/schema/page.tsx +3 -3
- package/website/app/specification/page.tsx +1 -1
- package/website/components/layout/Header.tsx +27 -23
- package/website/components/ui/Badge.tsx +82 -0
- package/website/components/ui/Button.tsx +116 -0
- package/website/components/ui/Card.tsx +167 -0
- package/website/components/ui/Checkbox.tsx +141 -0
- package/website/components/ui/Input.tsx +169 -0
- package/website/components/ui/Radio.tsx +141 -0
- package/website/components/ui/Select.tsx +182 -0
- package/website/components/ui/Tag.tsx +158 -0
- package/website/components/ui/Textarea.tsx +195 -0
- package/website/components/ui/index.ts +11 -0
- package/website/content/docs/{00-HOME.md → 00-home.md} +1 -1
- package/website/content/docs/agents/catalog.md +28 -0
- package/website/content/docs/{AIFlow-Framework-Integration-with-OSSA.md → aiflow-framework-integration-with-ossa.md} +2 -2
- package/website/content/docs/api-reference/index.md +38 -0
- package/website/content/docs/api-reference/ossa-core-api.md +634 -0
- package/website/content/docs/api-reference/ossa-registry-api.md +515 -0
- package/website/content/docs/api-reference/unified-agent-gateway.md +599 -0
- package/website/content/docs/cli-reference/index.md +111 -0
- package/website/content/docs/cli-reference/ossa-agents.md +70 -0
- package/website/content/docs/cli-reference/ossa-export.md +56 -0
- package/website/content/docs/cli-reference/ossa-generate.md +66 -0
- package/website/content/docs/cli-reference/ossa-gitlab-agent.md +57 -0
- package/website/content/docs/cli-reference/ossa-import.md +56 -0
- package/website/content/docs/cli-reference/ossa-init.md +57 -0
- package/website/content/docs/cli-reference/ossa-migrate.md +62 -0
- package/website/content/docs/cli-reference/ossa-run.md +66 -0
- package/website/content/docs/cli-reference/ossa-schema.md +57 -0
- package/website/content/docs/cli-reference/ossa-setup.md +57 -0
- package/website/content/docs/cli-reference/ossa-validate.md +66 -0
- package/website/content/docs/configuration/index.md +97 -0
- package/website/content/docs/deployment/github-mirroring.md +924 -0
- package/website/content/docs/documentation.md +100 -0
- package/website/content/docs/ecosystem/framework-support.md +551 -9
- package/website/content/docs/errors/index.md +10 -0
- package/website/content/docs/examples/{AIFlow-Framework-Integration-with-OSSA.md → aiflow-framework-integration-with-ossa.md} +2 -2
- package/website/content/docs/examples/catalog.md +300 -0
- package/website/content/docs/for-audiences/{Students-Researchers.md → students-researchers.md} +1 -1
- package/website/content/docs/getting-started/{Installation.md → installation.md} +1 -1
- package/website/content/docs/getting-started.md +1 -1
- package/website/content/docs/integrations/aiflow.md +2 -2
- 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 +7 -7
- package/website/content/docs/migration-guides/langchain-to-ossa.md +4 -4
- package/website/content/docs/openapi-extensions/index.md +1 -1
- package/website/content/docs/ossa-compliant-badge.md +1 -1
- package/website/content/docs/pre-release/index.md +5 -5
- package/website/content/docs/releases/v0.2.6.md +99 -0
- package/website/content/docs/schema-reference/agent-capabilities.md +50 -0
- package/website/content/docs/schema-reference/agent-id.md +52 -0
- package/website/content/docs/schema-reference/agent-name.md +50 -0
- package/website/content/docs/schema-reference/agent-role.md +54 -0
- package/website/content/docs/schema-reference/agent-version.md +50 -0
- package/website/content/docs/schema-reference/index.md +26 -157
- package/website/content/docs/types-reference/index.md +105 -0
- package/website/content/docs/versioning.md +3 -3
- package/website/dev.sh +53 -0
- package/website/docker-compose.dev.yml +36 -0
- package/website/lib/version.ts +1 -1
- package/website/lib/versions.json +45 -20
- package/website/package.json +1 -1
- package/website/styles/_spacing.scss +453 -0
- package/website/styles/_tokens.scss +245 -0
- package/website/styles/_typography.scss +361 -0
- package/website/styles/_variables.scss +270 -19
- package/website/tailwind.config.ts +113 -79
- package/.kiro/specs/agent-buildkit-templates/design.md +0 -495
- package/.kiro/specs/agent-buildkit-templates/requirements.md +0 -165
- package/.kiro/specs/kiro-ide-supercharger/README.md +0 -202
- package/.kiro/specs/kiro-ide-supercharger/design.md +0 -1005
- package/.kiro/specs/kiro-ide-supercharger/requirements.md +0 -141
- package/.kiro/specs/kiro-ide-supercharger/tasks.md +0 -507
- package/docs/issue-19-completion-summary.md +0 -648
- package/docs/issue-19-validation.md +0 -351
- package/website/content/docs/Examples.md +0 -71
- package/website/content/docs/OpenAPI-Extensions.md +0 -934
- package/website/content/docs/core-concepts/Project-Structure.md +0 -348
- package/website/content/docs/examples/Migration-Guides.md +0 -214
- package/website/content/docs/for-audiences/Architects.md +0 -224
- package/website/content/docs/for-audiences/Developers.md +0 -220
- package/website/content/docs/for-audiences/Enterprises.md +0 -256
- package/website/content/docs/getting-started/5-Minute-Overview.md +0 -85
- package/website/content/docs/getting-started/First-Agent.md +0 -196
- package/website/content/docs/getting-started/Hello-World.md +0 -184
- package/website/content/docs/migration-guides/00-INDEX.md +0 -76
- package/website/content/docs/migration-guides/README.md +0 -133
- /package/dist/spec/v0.2.4/{ossa-0.2.4-dev.yaml → ossa-0.2.4.yaml} +0 -0
- /package/spec/v0.2.4/{ossa-0.2.4-dev.yaml → ossa-0.2.4.yaml} +0 -0
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
#
|
|
3
|
+
# Rebase all open MRs onto their target branches
|
|
4
|
+
# This script fetches and rebases each source branch
|
|
5
|
+
#
|
|
6
|
+
|
|
7
|
+
set -e
|
|
8
|
+
|
|
9
|
+
TOKEN="${GITLAB_TOKEN:-${SERVICE_ACCOUNT_OSSA_TOKEN:-${GITLAB_PUSH_TOKEN}}}"
|
|
10
|
+
PROJECT="blueflyio/openstandardagents"
|
|
11
|
+
|
|
12
|
+
if [ -z "$TOKEN" ]; then
|
|
13
|
+
echo "❌ Error: GITLAB_TOKEN or SERVICE_ACCOUNT_OSSA_TOKEN required"
|
|
14
|
+
exit 1
|
|
15
|
+
fi
|
|
16
|
+
|
|
17
|
+
echo "🔄 Fetching open merge requests..."
|
|
18
|
+
MRs=$(curl -sS --header "PRIVATE-TOKEN: $TOKEN" \
|
|
19
|
+
"https://gitlab.com/api/v4/projects/${PROJECT//\//%2F}/merge_requests?state=opened&per_page=20" | \
|
|
20
|
+
jq -r '.[] | "\(.iid)|\(.source_branch)|\(.target_branch)"')
|
|
21
|
+
|
|
22
|
+
echo ""
|
|
23
|
+
echo "Found MRs to rebase:"
|
|
24
|
+
echo "$MRs" | while IFS='|' read -r iid source target; do
|
|
25
|
+
echo " MR !$iid: $source -> $target"
|
|
26
|
+
done
|
|
27
|
+
|
|
28
|
+
echo ""
|
|
29
|
+
read -p "Continue with rebasing? (y/N) " -n 1 -r
|
|
30
|
+
echo
|
|
31
|
+
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
|
32
|
+
echo "Cancelled."
|
|
33
|
+
exit 0
|
|
34
|
+
fi
|
|
35
|
+
|
|
36
|
+
echo "$MRs" | while IFS='|' read -r iid source target; do
|
|
37
|
+
echo ""
|
|
38
|
+
echo "=== Rebasing MR !$iid: $source -> $target ==="
|
|
39
|
+
|
|
40
|
+
# Fetch both branches
|
|
41
|
+
git fetch origin "$source" "$target" 2>&1 | grep -v "^From" || true
|
|
42
|
+
|
|
43
|
+
# Check if source branch exists locally
|
|
44
|
+
if git show-ref --verify --quiet "refs/heads/$source"; then
|
|
45
|
+
echo " Branch $source exists locally, using worktree..."
|
|
46
|
+
git worktree add "../rebase-$source" "$source" 2>/dev/null || {
|
|
47
|
+
echo " Worktree exists, removing..."
|
|
48
|
+
git worktree remove "../rebase-$source" 2>/dev/null || true
|
|
49
|
+
git worktree add "../rebase-$source" "$source"
|
|
50
|
+
}
|
|
51
|
+
cd "../rebase-$source"
|
|
52
|
+
else
|
|
53
|
+
echo " Creating worktree for $source..."
|
|
54
|
+
git worktree add "../rebase-$source" "origin/$source"
|
|
55
|
+
cd "../rebase-$source"
|
|
56
|
+
fi
|
|
57
|
+
|
|
58
|
+
# Rebase onto target
|
|
59
|
+
echo " Rebasing onto origin/$target..."
|
|
60
|
+
if git rebase "origin/$target" 2>&1 | tee /tmp/rebase-output.log; then
|
|
61
|
+
echo " ✅ Rebase successful"
|
|
62
|
+
echo " Pushing..."
|
|
63
|
+
git push origin "$source" --force-with-lease 2>&1 | grep -v "^To " || true
|
|
64
|
+
echo " ✅ MR !$iid rebased and pushed"
|
|
65
|
+
else
|
|
66
|
+
echo " ❌ Rebase failed - check conflicts"
|
|
67
|
+
echo " Worktree: $(pwd)"
|
|
68
|
+
echo " Fix conflicts and run: git rebase --continue && git push origin $source --force-with-lease"
|
|
69
|
+
fi
|
|
70
|
+
|
|
71
|
+
cd - > /dev/null
|
|
72
|
+
done
|
|
73
|
+
|
|
74
|
+
echo ""
|
|
75
|
+
echo "✅ Rebase process complete!"
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
set -e
|
|
3
|
+
|
|
4
|
+
# Sync GitHub PR to GitLab MR
|
|
5
|
+
# Usage: ./sync-github-pr.sh <pr-number>
|
|
6
|
+
|
|
7
|
+
PR_NUMBER=$1
|
|
8
|
+
|
|
9
|
+
if [ -z "$PR_NUMBER" ]; then
|
|
10
|
+
echo "Usage: $0 <pr-number>"
|
|
11
|
+
exit 1
|
|
12
|
+
fi
|
|
13
|
+
|
|
14
|
+
echo "🔄 Syncing GitHub PR #$PR_NUMBER to GitLab..."
|
|
15
|
+
|
|
16
|
+
# Get PR details
|
|
17
|
+
PR_TITLE=$(gh pr view $PR_NUMBER --json title -q .title)
|
|
18
|
+
PR_AUTHOR=$(gh pr view $PR_NUMBER --json author -q .author.login)
|
|
19
|
+
PR_URL="https://github.com/blueflyio/openstandardagents/pull/$PR_NUMBER"
|
|
20
|
+
|
|
21
|
+
# Checkout PR
|
|
22
|
+
gh pr checkout $PR_NUMBER
|
|
23
|
+
|
|
24
|
+
# Create branch for GitLab
|
|
25
|
+
BRANCH_NAME="github-pr-$PR_NUMBER"
|
|
26
|
+
git checkout -b $BRANCH_NAME
|
|
27
|
+
|
|
28
|
+
# Push to GitLab
|
|
29
|
+
git push origin $BRANCH_NAME
|
|
30
|
+
|
|
31
|
+
# Create GitLab MR
|
|
32
|
+
glab mr create \
|
|
33
|
+
--title "GitHub PR #$PR_NUMBER: $PR_TITLE" \
|
|
34
|
+
--description "**From GitHub PR**: $PR_URL
|
|
35
|
+
**Author**: @$PR_AUTHOR
|
|
36
|
+
|
|
37
|
+
$(gh pr view $PR_NUMBER --json body -q .body)
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
*This MR was created from a GitHub pull request. Once merged, changes will sync back to GitHub.*" \
|
|
42
|
+
--source-branch $BRANCH_NAME \
|
|
43
|
+
--target-branch main \
|
|
44
|
+
--label "github-pr"
|
|
45
|
+
|
|
46
|
+
echo "✅ Created GitLab MR from GitHub PR #$PR_NUMBER"
|
|
47
|
+
echo " Branch: $BRANCH_NAME"
|
|
48
|
+
echo " Review on GitLab, then merge to sync back to GitHub"
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import { readFileSync, writeFileSync } from 'fs';
|
|
4
|
+
import { resolve } from 'path';
|
|
5
|
+
|
|
6
|
+
const { version } = JSON.parse(readFileSync('package.json', 'utf-8'));
|
|
7
|
+
|
|
8
|
+
const files = [
|
|
9
|
+
{
|
|
10
|
+
path: 'website/src/config.ts',
|
|
11
|
+
pattern: /version:\s*['"][\d.]+['"]/,
|
|
12
|
+
replacement: `version: '${version}'`
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
path: 'src/version.ts',
|
|
16
|
+
pattern: /VERSION\s*=\s*['"][\d.]+['"]/,
|
|
17
|
+
replacement: `VERSION = '${version}'`
|
|
18
|
+
}
|
|
19
|
+
];
|
|
20
|
+
|
|
21
|
+
console.log(`📦 Syncing version: ${version}\n`);
|
|
22
|
+
|
|
23
|
+
let updated = 0;
|
|
24
|
+
for (const { path, pattern, replacement } of files) {
|
|
25
|
+
try {
|
|
26
|
+
const content = readFileSync(path, 'utf-8');
|
|
27
|
+
if (pattern.test(content)) {
|
|
28
|
+
const newContent = content.replace(pattern, replacement);
|
|
29
|
+
writeFileSync(path, newContent);
|
|
30
|
+
console.log(`✓ ${path}`);
|
|
31
|
+
updated++;
|
|
32
|
+
} else {
|
|
33
|
+
console.log(`⚠ ${path} - pattern not found`);
|
|
34
|
+
}
|
|
35
|
+
} catch (err) {
|
|
36
|
+
console.log(`✗ ${path} - ${err.message}`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
console.log(`\n${updated} files updated`);
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
set -e
|
|
3
|
+
|
|
4
|
+
# Sync public wiki pages from GitLab to GitHub
|
|
5
|
+
# Usage: ./sync-wiki.sh
|
|
6
|
+
|
|
7
|
+
GITLAB_WIKI="https://gitlab.com/blueflyio/openstandardagents.wiki.git"
|
|
8
|
+
GITHUB_WIKI="https://github.com/blueflyio/openstandardagents.wiki.git"
|
|
9
|
+
|
|
10
|
+
# Public pages to sync
|
|
11
|
+
PUBLIC_PAGES=(
|
|
12
|
+
"home.md"
|
|
13
|
+
"Getting-Started.md"
|
|
14
|
+
"CLI-Utilities.md"
|
|
15
|
+
"V0.2.6-Release-Notes.md"
|
|
16
|
+
"Upgrading-to-v0.2.6.md"
|
|
17
|
+
"README.md"
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
echo "📚 Syncing wiki pages..."
|
|
21
|
+
|
|
22
|
+
# Clone wikis
|
|
23
|
+
rm -rf /tmp/gitlab-wiki /tmp/github-wiki
|
|
24
|
+
git clone $GITLAB_WIKI /tmp/gitlab-wiki
|
|
25
|
+
git clone $GITHUB_WIKI /tmp/github-wiki
|
|
26
|
+
|
|
27
|
+
# Sync public pages
|
|
28
|
+
cd /tmp/gitlab-wiki
|
|
29
|
+
for page in "${PUBLIC_PAGES[@]}"; do
|
|
30
|
+
if [ -f "$page" ]; then
|
|
31
|
+
echo " ✓ $page"
|
|
32
|
+
cp "$page" "/tmp/github-wiki/$page"
|
|
33
|
+
else
|
|
34
|
+
echo " ⚠ $page not found"
|
|
35
|
+
fi
|
|
36
|
+
done
|
|
37
|
+
|
|
38
|
+
# Commit and push to GitHub
|
|
39
|
+
cd /tmp/github-wiki
|
|
40
|
+
git add .
|
|
41
|
+
if git diff --staged --quiet; then
|
|
42
|
+
echo "No changes to sync"
|
|
43
|
+
else
|
|
44
|
+
git commit -m "Sync from GitLab wiki $(date +%Y-%m-%d)"
|
|
45
|
+
git push
|
|
46
|
+
echo "✅ Wiki synced to GitHub"
|
|
47
|
+
fi
|
|
48
|
+
|
|
49
|
+
# Cleanup
|
|
50
|
+
rm -rf /tmp/gitlab-wiki /tmp/github-wiki
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Comprehensive validation for OSSA project
|
|
5
|
+
* Validates versions, schemas, and consistency
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
const fs = require('fs');
|
|
9
|
+
const path = require('path');
|
|
10
|
+
const { execSync } = require('child_process');
|
|
11
|
+
|
|
12
|
+
const errors = [];
|
|
13
|
+
const warnings = [];
|
|
14
|
+
|
|
15
|
+
function check(name, fn) {
|
|
16
|
+
try {
|
|
17
|
+
fn();
|
|
18
|
+
} catch (err) {
|
|
19
|
+
errors.push(`${name}: ${err.message}`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function warn(message) {
|
|
24
|
+
warnings.push(message);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// Check version consistency
|
|
28
|
+
check('Version Consistency', () => {
|
|
29
|
+
const rootPkg = JSON.parse(fs.readFileSync('package.json', 'utf8'));
|
|
30
|
+
const websitePkg = JSON.parse(fs.readFileSync('website/package.json', 'utf8'));
|
|
31
|
+
|
|
32
|
+
if (rootPkg.version !== websitePkg.version) {
|
|
33
|
+
throw new Error(`Root (${rootPkg.version}) != Website (${websitePkg.version})`);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const versionTs = fs.readFileSync('website/lib/version.ts', 'utf8');
|
|
37
|
+
if (!versionTs.includes(`"${rootPkg.version}"`)) {
|
|
38
|
+
throw new Error(`version.ts doesn't contain ${rootPkg.version}`);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
console.log(`✓ Version consistency: ${rootPkg.version}`);
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
// Check schema exports
|
|
45
|
+
check('Schema Exports', () => {
|
|
46
|
+
const pkg = JSON.parse(fs.readFileSync('package.json', 'utf8'));
|
|
47
|
+
const schemaPath = pkg.exports['./schema'];
|
|
48
|
+
|
|
49
|
+
if (!fs.existsSync(schemaPath)) {
|
|
50
|
+
throw new Error(`Schema not found: ${schemaPath}`);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
console.log(`✓ Schema export: ${schemaPath}`);
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
// Check spec directories
|
|
57
|
+
check('Spec Directories', () => {
|
|
58
|
+
const pkg = JSON.parse(fs.readFileSync('package.json', 'utf8'));
|
|
59
|
+
const version = pkg.version;
|
|
60
|
+
const specDir = `spec/v${version}`;
|
|
61
|
+
|
|
62
|
+
if (!fs.existsSync(specDir)) {
|
|
63
|
+
throw new Error(`Missing spec directory: ${specDir}`);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const schemaFile = `${specDir}/ossa-${version}.schema.json`;
|
|
67
|
+
if (!fs.existsSync(schemaFile)) {
|
|
68
|
+
throw new Error(`Missing schema: ${schemaFile}`);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
console.log(`✓ Spec directory: ${specDir}`);
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
// Validate schemas
|
|
75
|
+
check('Schema Validation', () => {
|
|
76
|
+
try {
|
|
77
|
+
execSync('npm run validate:schema', { stdio: 'pipe' });
|
|
78
|
+
console.log('✓ Schema validation passed');
|
|
79
|
+
} catch (err) {
|
|
80
|
+
throw new Error('Schema validation failed');
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
// Check for version references
|
|
85
|
+
check('Version References', () => {
|
|
86
|
+
const pkg = JSON.parse(fs.readFileSync('package.json', 'utf8'));
|
|
87
|
+
const version = pkg.version;
|
|
88
|
+
|
|
89
|
+
// Check for old version references
|
|
90
|
+
const result = execSync(
|
|
91
|
+
`grep -r "0\\.2\\.[0-9]" src/ website/app/ website/lib/ --include="*.ts" --include="*.tsx" 2>/dev/null || true`,
|
|
92
|
+
{ encoding: 'utf8' }
|
|
93
|
+
);
|
|
94
|
+
|
|
95
|
+
const lines = result.split('\n').filter(l => l.trim());
|
|
96
|
+
const outdated = lines.filter(l => !l.includes(version) && !l.includes('v0.2'));
|
|
97
|
+
|
|
98
|
+
if (outdated.length > 0) {
|
|
99
|
+
warn(`Found ${outdated.length} potentially outdated version references`);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
console.log(`✓ Version references checked`);
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
// Summary
|
|
106
|
+
console.log('\n' + '='.repeat(50));
|
|
107
|
+
|
|
108
|
+
if (errors.length > 0) {
|
|
109
|
+
console.log('\n❌ ERRORS:');
|
|
110
|
+
errors.forEach(e => console.log(` - ${e}`));
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
if (warnings.length > 0) {
|
|
114
|
+
console.log('\n⚠️ WARNINGS:');
|
|
115
|
+
warnings.forEach(w => console.log(` - ${w}`));
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
if (errors.length === 0 && warnings.length === 0) {
|
|
119
|
+
console.log('\n✅ All validations passed!');
|
|
120
|
+
process.exit(0);
|
|
121
|
+
} else if (errors.length === 0) {
|
|
122
|
+
console.log('\n✅ Validations passed with warnings');
|
|
123
|
+
process.exit(0);
|
|
124
|
+
} else {
|
|
125
|
+
console.log(`\n❌ ${errors.length} error(s) found`);
|
|
126
|
+
process.exit(1);
|
|
127
|
+
}
|