@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.
Files changed (238) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.yml +63 -0
  2. package/.github/ISSUE_TEMPLATE/feature_request.yml +40 -0
  3. package/.github/workflows/dependabot-comment.yml +34 -0
  4. package/.github/workflows/pr-comment.yml +33 -0
  5. package/.husky/pre-commit +5 -0
  6. package/.kiro/config.json +21 -0
  7. package/.kiro/settings/mcp.json +61 -0
  8. package/.kiro/specs/scripts-migration-api-first/design.md +883 -0
  9. package/.kiro/specs/scripts-migration-api-first/requirements.md +165 -0
  10. package/.kiro/specs/scripts-migration-api-first/tasks.md +539 -0
  11. package/.kiro/specs/{website-design-audit → website-brand-identity}/design.md +381 -0
  12. package/.kiro/specs/{website-design-audit → website-brand-identity}/requirements.md +88 -0
  13. package/.kiro/specs/website-brand-identity/tasks.md +981 -0
  14. package/CHANGELOG.md +23 -0
  15. package/README.md +12 -3
  16. package/bin/ossa-dev +42 -0
  17. package/bin/ossa-export +32 -0
  18. package/bin/ossa-generate +60 -0
  19. package/bin/ossa-health +40 -0
  20. package/bin/ossa-init +26 -0
  21. package/dist/repositories/schema.repository.d.ts.map +1 -1
  22. package/dist/repositories/schema.repository.js +15 -10
  23. package/dist/repositories/schema.repository.js.map +1 -1
  24. package/dist/services/github-sync/github-client.d.ts +14 -0
  25. package/dist/services/github-sync/github-client.d.ts.map +1 -0
  26. package/dist/services/github-sync/github-client.js +41 -0
  27. package/dist/services/github-sync/github-client.js.map +1 -0
  28. package/dist/services/github-sync/gitlab-client.d.ts +17 -0
  29. package/dist/services/github-sync/gitlab-client.d.ts.map +1 -0
  30. package/dist/services/github-sync/gitlab-client.js +42 -0
  31. package/dist/services/github-sync/gitlab-client.js.map +1 -0
  32. package/dist/services/github-sync/schemas.d.ts +46 -0
  33. package/dist/services/github-sync/schemas.d.ts.map +1 -0
  34. package/dist/services/github-sync/schemas.js +36 -0
  35. package/dist/services/github-sync/schemas.js.map +1 -0
  36. package/dist/services/github-sync/sync.service.d.ts +27 -0
  37. package/dist/services/github-sync/sync.service.d.ts.map +1 -0
  38. package/dist/services/github-sync/sync.service.js +99 -0
  39. package/dist/services/github-sync/sync.service.js.map +1 -0
  40. package/dist/services/runtime/claude/capability-mapper.d.ts +84 -0
  41. package/dist/services/runtime/claude/capability-mapper.d.ts.map +1 -0
  42. package/dist/services/runtime/claude/capability-mapper.js +245 -0
  43. package/dist/services/runtime/claude/capability-mapper.js.map +1 -0
  44. package/dist/services/runtime/claude/claude-adapter.d.ts +80 -0
  45. package/dist/services/runtime/claude/claude-adapter.d.ts.map +1 -0
  46. package/dist/services/runtime/claude/claude-adapter.js +287 -0
  47. package/dist/services/runtime/claude/claude-adapter.js.map +1 -0
  48. package/dist/services/runtime/claude/manifest-parser.d.ts +77 -0
  49. package/dist/services/runtime/claude/manifest-parser.d.ts.map +1 -0
  50. package/dist/services/runtime/claude/manifest-parser.js +169 -0
  51. package/dist/services/runtime/claude/manifest-parser.js.map +1 -0
  52. package/dist/services/runtime/claude/types.d.ts +115 -0
  53. package/dist/services/runtime/claude/types.d.ts.map +1 -0
  54. package/dist/services/runtime/claude/types.js +6 -0
  55. package/dist/services/runtime/claude/types.js.map +1 -0
  56. package/dist/services/validation.service.d.ts.map +1 -1
  57. package/dist/services/validation.service.js +12 -1
  58. package/dist/services/validation.service.js.map +1 -1
  59. package/dist/spec/v0.2.4/ossa-0.2.4.schema.json +85 -208
  60. package/dist/spec/v0.2.6/CHANGELOG.md +401 -0
  61. package/dist/spec/v0.2.6/README.md +72 -0
  62. package/dist/spec/v0.2.6/migrations/v0.2.3-to-v0.2.4.md +599 -0
  63. package/dist/spec/v0.2.6/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
  64. package/dist/spec/v0.2.6/ossa-0.2.6.schema.json +1786 -0
  65. package/dist/spec/v0.2.6/ossa-0.2.6.yaml +581 -0
  66. package/dist/spec/v0.2.6-dev/CHANGELOG.md +164 -0
  67. package/dist/spec/v0.2.6-dev/README.md +75 -0
  68. package/dist/spec/v0.2.6-dev/migrations/v0.2.2-to-v0.2.3.md +343 -0
  69. package/dist/spec/v0.2.6-dev/migrations/v0.2.3-to-v0.2.4.md +599 -0
  70. 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
  71. package/dist/spec/v0.2.6-dev/ossa-0.2.5.yaml +581 -0
  72. 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
  73. package/dist/spec/v0.2.6-dev/ossa-0.2.6-dev.yaml +448 -0
  74. package/dist/spec/v0.2.7/core/agentgraph.md +324 -0
  75. package/dist/spec/v0.2.7/resources/agentgraph.yaml +135 -0
  76. package/docs/brand-guide/01-brand-overview.md +37 -0
  77. package/docs/brand-guide/02-logo-usage.md +43 -0
  78. package/docs/brand-guide/03-color-palette.md +70 -0
  79. package/docs/brand-guide/04-typography.md +82 -0
  80. package/docs/brand-guide/05-voice-and-tone.md +108 -0
  81. package/docs/brand-guide/06-visual-elements.md +137 -0
  82. package/docs/brand-guide/07-application-examples.md +153 -0
  83. package/docs/brand-guide/OssaLogo/OssA_Logo.svg +21 -0
  84. package/docs/brand-guide/OssaLogo/brand.af +0 -0
  85. package/docs/brand-guide/README.md +107 -0
  86. package/docs/comparison.md +315 -0
  87. package/docs/operations/automation-roadmap.md +245 -0
  88. package/docs/operations/github-sync-strategy.md +357 -0
  89. package/examples/anthropic/claude-assistant.ossa.json +5 -4
  90. package/examples/autogen/multi-agent.ossa.json +6 -4
  91. package/examples/crewai/research-team.ossa.json +14 -5
  92. package/examples/cursor/code-review-agent.ossa.json +21 -6
  93. package/examples/langchain/chain-agent.ossa.json +21 -5
  94. package/examples/langflow/workflow-agent.ossa.json +2 -3
  95. package/examples/langgraph/state-machine-agent.ossa.json +2 -3
  96. package/examples/llamaindex/rag-agent.ossa.json +2 -3
  97. package/examples/openai/multi-tool-agent.ossa.json +32 -9
  98. package/examples/openai/swarm-agent.ossa.json +18 -5
  99. package/examples/vercel/edge-agent.ossa.json +5 -4
  100. package/openapi/github-sync.yaml +115 -0
  101. package/package.json +25 -4
  102. package/scripts/README.md +103 -0
  103. package/scripts/auto-rebase-mrs.ts +106 -0
  104. package/scripts/batch-dependabot.sh +57 -0
  105. package/scripts/configure-gitlab-branch-protection.ts +95 -0
  106. package/scripts/create-issue-helper.ts +238 -0
  107. package/scripts/create-milestone-issue.ts +73 -0
  108. package/scripts/fix-schema-formats.js +82 -0
  109. package/scripts/generate-agents-catalog.ts +77 -0
  110. package/scripts/generate-api-docs.ts +218 -0
  111. package/scripts/generate-cli-docs.ts +410 -0
  112. package/scripts/generate-config-docs.ts +109 -0
  113. package/scripts/generate-errors-docs.ts +76 -0
  114. package/scripts/generate-examples-docs.ts +99 -0
  115. package/scripts/generate-schema-docs.ts +296 -0
  116. package/scripts/generate-types-docs.ts +48 -0
  117. package/scripts/lowercase-docs.ts +43 -0
  118. package/scripts/manage-milestone-mrs.ts +279 -0
  119. package/scripts/rebase-all-mrs.sh +75 -0
  120. package/scripts/sync-github-pr.sh +48 -0
  121. package/scripts/sync-version.js +40 -0
  122. package/scripts/sync-wiki.sh +50 -0
  123. package/scripts/validate-all.js +127 -0
  124. package/spec/v0.2.4/ossa-0.2.4.schema.json +85 -208
  125. package/spec/v0.2.6/CHANGELOG.md +401 -0
  126. package/spec/v0.2.6/README.md +72 -0
  127. package/spec/v0.2.6/migrations/v0.2.3-to-v0.2.4.md +599 -0
  128. package/spec/v0.2.6/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
  129. package/spec/v0.2.6/ossa-0.2.6.schema.json +1786 -0
  130. package/spec/v0.2.6/ossa-0.2.6.yaml +581 -0
  131. package/spec/v0.2.6-dev/CHANGELOG.md +164 -0
  132. package/spec/v0.2.6-dev/README.md +75 -0
  133. package/spec/v0.2.6-dev/migrations/v0.2.2-to-v0.2.3.md +343 -0
  134. package/spec/v0.2.6-dev/migrations/v0.2.3-to-v0.2.4.md +599 -0
  135. package/spec/v0.2.6-dev/ossa-0.2.5.schema.json +1696 -0
  136. package/spec/v0.2.6-dev/ossa-0.2.5.yaml +581 -0
  137. package/spec/v0.2.6-dev/ossa-0.2.6-dev.schema.json +1696 -0
  138. package/spec/v0.2.6-dev/ossa-0.2.6-dev.yaml +448 -0
  139. package/spec/v0.2.7/core/agentgraph.md +324 -0
  140. package/spec/v0.2.7/resources/agentgraph.yaml +135 -0
  141. package/website/DESIGN_SYSTEM_IMPLEMENTATION.md +445 -0
  142. package/website/app/about/page.tsx +53 -44
  143. package/website/app/ecosystem/page.tsx +146 -111
  144. package/website/app/globals.scss +256 -21
  145. package/website/app/page.tsx +394 -182
  146. package/website/app/page.tsx.bak +679 -0
  147. package/website/app/page.tsx.bak2 +649 -0
  148. package/website/app/schema/page.tsx +3 -3
  149. package/website/app/specification/page.tsx +1 -1
  150. package/website/components/layout/Header.tsx +27 -23
  151. package/website/components/ui/Badge.tsx +82 -0
  152. package/website/components/ui/Button.tsx +116 -0
  153. package/website/components/ui/Card.tsx +167 -0
  154. package/website/components/ui/Checkbox.tsx +141 -0
  155. package/website/components/ui/Input.tsx +169 -0
  156. package/website/components/ui/Radio.tsx +141 -0
  157. package/website/components/ui/Select.tsx +182 -0
  158. package/website/components/ui/Tag.tsx +158 -0
  159. package/website/components/ui/Textarea.tsx +195 -0
  160. package/website/components/ui/index.ts +11 -0
  161. package/website/content/docs/{00-HOME.md → 00-home.md} +1 -1
  162. package/website/content/docs/agents/catalog.md +28 -0
  163. package/website/content/docs/{AIFlow-Framework-Integration-with-OSSA.md → aiflow-framework-integration-with-ossa.md} +2 -2
  164. package/website/content/docs/api-reference/index.md +38 -0
  165. package/website/content/docs/api-reference/ossa-core-api.md +634 -0
  166. package/website/content/docs/api-reference/ossa-registry-api.md +515 -0
  167. package/website/content/docs/api-reference/unified-agent-gateway.md +599 -0
  168. package/website/content/docs/cli-reference/index.md +111 -0
  169. package/website/content/docs/cli-reference/ossa-agents.md +70 -0
  170. package/website/content/docs/cli-reference/ossa-export.md +56 -0
  171. package/website/content/docs/cli-reference/ossa-generate.md +66 -0
  172. package/website/content/docs/cli-reference/ossa-gitlab-agent.md +57 -0
  173. package/website/content/docs/cli-reference/ossa-import.md +56 -0
  174. package/website/content/docs/cli-reference/ossa-init.md +57 -0
  175. package/website/content/docs/cli-reference/ossa-migrate.md +62 -0
  176. package/website/content/docs/cli-reference/ossa-run.md +66 -0
  177. package/website/content/docs/cli-reference/ossa-schema.md +57 -0
  178. package/website/content/docs/cli-reference/ossa-setup.md +57 -0
  179. package/website/content/docs/cli-reference/ossa-validate.md +66 -0
  180. package/website/content/docs/configuration/index.md +97 -0
  181. package/website/content/docs/deployment/github-mirroring.md +924 -0
  182. package/website/content/docs/documentation.md +100 -0
  183. package/website/content/docs/ecosystem/framework-support.md +551 -9
  184. package/website/content/docs/errors/index.md +10 -0
  185. package/website/content/docs/examples/{AIFlow-Framework-Integration-with-OSSA.md → aiflow-framework-integration-with-ossa.md} +2 -2
  186. package/website/content/docs/examples/catalog.md +300 -0
  187. package/website/content/docs/for-audiences/{Students-Researchers.md → students-researchers.md} +1 -1
  188. package/website/content/docs/getting-started/{Installation.md → installation.md} +1 -1
  189. package/website/content/docs/getting-started.md +1 -1
  190. package/website/content/docs/integrations/aiflow.md +2 -2
  191. package/website/content/docs/migration-guides/anthropic-mcp-to-ossa.md +5 -5
  192. package/website/content/docs/migration-guides/crewai-to-ossa.md +3 -3
  193. package/website/content/docs/migration-guides/drupal-eca-to-ossa.md +7 -7
  194. package/website/content/docs/migration-guides/langchain-to-ossa.md +4 -4
  195. package/website/content/docs/openapi-extensions/index.md +1 -1
  196. package/website/content/docs/ossa-compliant-badge.md +1 -1
  197. package/website/content/docs/pre-release/index.md +5 -5
  198. package/website/content/docs/releases/v0.2.6.md +99 -0
  199. package/website/content/docs/schema-reference/agent-capabilities.md +50 -0
  200. package/website/content/docs/schema-reference/agent-id.md +52 -0
  201. package/website/content/docs/schema-reference/agent-name.md +50 -0
  202. package/website/content/docs/schema-reference/agent-role.md +54 -0
  203. package/website/content/docs/schema-reference/agent-version.md +50 -0
  204. package/website/content/docs/schema-reference/index.md +26 -157
  205. package/website/content/docs/types-reference/index.md +105 -0
  206. package/website/content/docs/versioning.md +3 -3
  207. package/website/dev.sh +53 -0
  208. package/website/docker-compose.dev.yml +36 -0
  209. package/website/lib/version.ts +1 -1
  210. package/website/lib/versions.json +45 -20
  211. package/website/package.json +1 -1
  212. package/website/styles/_spacing.scss +453 -0
  213. package/website/styles/_tokens.scss +245 -0
  214. package/website/styles/_typography.scss +361 -0
  215. package/website/styles/_variables.scss +270 -19
  216. package/website/tailwind.config.ts +113 -79
  217. package/.kiro/specs/agent-buildkit-templates/design.md +0 -495
  218. package/.kiro/specs/agent-buildkit-templates/requirements.md +0 -165
  219. package/.kiro/specs/kiro-ide-supercharger/README.md +0 -202
  220. package/.kiro/specs/kiro-ide-supercharger/design.md +0 -1005
  221. package/.kiro/specs/kiro-ide-supercharger/requirements.md +0 -141
  222. package/.kiro/specs/kiro-ide-supercharger/tasks.md +0 -507
  223. package/docs/issue-19-completion-summary.md +0 -648
  224. package/docs/issue-19-validation.md +0 -351
  225. package/website/content/docs/Examples.md +0 -71
  226. package/website/content/docs/OpenAPI-Extensions.md +0 -934
  227. package/website/content/docs/core-concepts/Project-Structure.md +0 -348
  228. package/website/content/docs/examples/Migration-Guides.md +0 -214
  229. package/website/content/docs/for-audiences/Architects.md +0 -224
  230. package/website/content/docs/for-audiences/Developers.md +0 -220
  231. package/website/content/docs/for-audiences/Enterprises.md +0 -256
  232. package/website/content/docs/getting-started/5-Minute-Overview.md +0 -85
  233. package/website/content/docs/getting-started/First-Agent.md +0 -196
  234. package/website/content/docs/getting-started/Hello-World.md +0 -184
  235. package/website/content/docs/migration-guides/00-INDEX.md +0 -76
  236. package/website/content/docs/migration-guides/README.md +0 -133
  237. /package/dist/spec/v0.2.4/{ossa-0.2.4-dev.yaml → ossa-0.2.4.yaml} +0 -0
  238. /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
+ }