oxe-cc 1.12.0 → 1.16.0

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 (40) hide show
  1. package/.github/dependabot.yml +31 -0
  2. package/.github/workflows/ci.yml +141 -56
  3. package/.github/workflows/release.yml +114 -89
  4. package/CHANGELOG.md +866 -754
  5. package/README.md +600 -736
  6. package/bin/lib/oxe-agent-install.cjs +299 -284
  7. package/bin/lib/oxe-artifact-catalog.cjs +376 -0
  8. package/bin/lib/oxe-command-registry.cjs +31 -0
  9. package/bin/lib/oxe-context-engine.cjs +11 -11
  10. package/bin/lib/oxe-core-command-handlers.cjs +82 -0
  11. package/bin/lib/oxe-dashboard.cjs +140 -140
  12. package/bin/lib/oxe-manifest.cjs +20 -20
  13. package/bin/lib/oxe-npm-version.cjs +6 -4
  14. package/bin/lib/oxe-plugin-cli.cjs +95 -0
  15. package/bin/lib/oxe-plugins.cjs +94 -3
  16. package/bin/lib/oxe-process.cjs +67 -0
  17. package/bin/lib/oxe-project-health.cjs +2846 -2781
  18. package/bin/lib/oxe-runtime-semantics.cjs +68 -69
  19. package/bin/oxe-cc.js +369 -353
  20. package/docs/INTEGRATION.md +182 -0
  21. package/docs/QUALITY-GATES.md +46 -0
  22. package/docs/RELEASE-READINESS.md +86 -61
  23. package/docs/RUNTIME-SMOKE-MATRIX.md +137 -135
  24. package/docs/oxe-artifact-map.html +1172 -0
  25. package/lib/sdk/index.cjs +20 -0
  26. package/lib/sdk/index.d.ts +971 -876
  27. package/lib/sdk/index.types.ts +933 -0
  28. package/oxe/templates/PLUGINS.md +8 -1
  29. package/oxe/templates/STATE-REFERENCE.md +125 -0
  30. package/oxe/templates/STATE.md +11 -121
  31. package/oxe/workflows/help.md +2 -0
  32. package/package.json +129 -108
  33. package/packages/runtime/package.json +18 -18
  34. package/packages/runtime/src/evidence/evidence-store.ts +2 -2
  35. package/packages/runtime/src/scheduler/multi-agent-coordinator.ts +728 -728
  36. package/packages/runtime/src/workspace/strategies/git-worktree.ts +24 -24
  37. package/packages/runtime/tsconfig.json +8 -2
  38. package/vscode-extension/.vscodeignore +2 -0
  39. package/vscode-extension/package.json +193 -185
  40. package/vscode-extension/src/extension.js +11 -1
@@ -0,0 +1,31 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: github-actions
4
+ directory: /
5
+ schedule:
6
+ interval: weekly
7
+ day: monday
8
+ time: "09:00"
9
+ timezone: America/Sao_Paulo
10
+ groups:
11
+ github-actions:
12
+ patterns: ["*"]
13
+ labels: [dependencies, github-actions]
14
+ open-pull-requests-limit: 5
15
+
16
+ - package-ecosystem: npm
17
+ directory: /
18
+ schedule:
19
+ interval: weekly
20
+ day: monday
21
+ time: "09:30"
22
+ timezone: America/Sao_Paulo
23
+ groups:
24
+ npm-development:
25
+ dependency-type: development
26
+ patterns: ["*"]
27
+ npm-production:
28
+ dependency-type: production
29
+ patterns: ["*"]
30
+ labels: [dependencies, npm]
31
+ open-pull-requests-limit: 10
@@ -1,57 +1,142 @@
1
- name: CI
2
-
3
- on:
4
- push:
5
- branches: [main, master]
6
- pull_request:
7
- branches: [main, master]
8
-
9
- jobs:
10
- test:
11
- runs-on: ubuntu-latest
12
- steps:
13
- - uses: actions/checkout@v4
14
- - uses: actions/setup-node@v4
15
- with:
16
- node-version: '20'
17
- cache: npm
18
- - run: npm ci
19
- - run: npm test
20
- - run: npm run scan:assets
21
- - run: npm run release:doctor
22
-
23
- doctor:
24
- runs-on: ubuntu-latest
25
- needs: test
26
- steps:
27
- - uses: actions/checkout@v4
28
- - uses: actions/setup-node@v4
29
- with:
30
- node-version: '20'
31
- cache: npm
32
- - run: npm ci
33
- - name: OXE Doctor
34
- run: node bin/oxe-cc.js doctor
35
-
36
- wrapper-audit:
37
- runs-on: ubuntu-latest
38
- needs: test
39
- steps:
40
- - uses: actions/checkout@v4
41
- - uses: actions/setup-node@v4
42
- with:
43
- node-version: '20'
44
- cache: npm
45
- - run: npm ci
46
- - name: Audit runtime wrappers
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main, master]
6
+ pull_request:
7
+ branches: [main, master]
8
+
9
+ permissions:
10
+ contents: read
11
+
12
+ concurrency:
13
+ group: ci-${{ github.workflow }}-${{ github.ref }}
14
+ cancel-in-progress: true
15
+
16
+ jobs:
17
+ workflow-lint:
18
+ runs-on: ubuntu-latest
19
+ timeout-minutes: 10
20
+ steps:
21
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
22
+ with:
23
+ persist-credentials: false
24
+ - name: Install immutable actionlint
25
+ run: go install github.com/rhysd/actionlint/cmd/actionlint@03d0035246f3e81f36aed592ffb4bebf33a03106 # v1.7.7
26
+ - name: Validate GitHub Actions workflows
47
27
  run: |
48
- node -e "
49
- const rs = require('./bin/lib/oxe-runtime-semantics.cjs');
50
- const r = rs.auditRuntimeTargets('.');
51
- if (!r.ok) {
52
- console.error('Wrapper audit failed:');
53
- console.error(JSON.stringify(r.mismatches, null, 2));
54
- process.exit(1);
55
- }
56
- console.log('Wrapper audit passed — all targets in sync');
57
- "
28
+ ACTIONLINT="$(go env GOPATH)/bin/actionlint"
29
+ "$ACTIONLINT"
30
+
31
+ test:
32
+ runs-on: ubuntu-latest
33
+ timeout-minutes: 45
34
+ steps:
35
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
36
+ with:
37
+ persist-credentials: false
38
+ - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
39
+ with:
40
+ node-version: '20'
41
+ cache: npm
42
+ - run: npm ci
43
+ - name: Reset quality telemetry
44
+ run: node scripts/quality-report.cjs reset
45
+ - name: Lint
46
+ run: node scripts/quality-report.cjs exec --name lint -- npm run lint
47
+ - name: Formatting
48
+ run: node scripts/quality-report.cjs exec --name format -- npm run format:check
49
+ - name: SDK type contract
50
+ run: node scripts/quality-report.cjs exec --name sdk-types -- npm run test:sdk-types
51
+ - name: Full test and coverage gate
52
+ run: node scripts/quality-report.cjs exec --name coverage -- npm run test:coverage
53
+ - name: Extension Host integration
54
+ run: node scripts/quality-report.cjs exec --name extension-host -- xvfb-run -a npm test --workspace oxe-agents
55
+ - name: Production dependency audit
56
+ run: node scripts/quality-report.cjs exec --name npm-audit -- npm audit
57
+ - name: Canonical assets
58
+ run: node scripts/quality-report.cjs exec --name assets -- npm run scan:assets
59
+ - name: Build VSIX
60
+ run: node scripts/quality-report.cjs exec --name vsix -- npm run build:vscode-ext
61
+ - name: npm package contract
62
+ run: node scripts/quality-report.cjs exec --name pack -- npm run release:pack-check
63
+ - name: Release manifest
64
+ run: node scripts/quality-report.cjs exec --name release-manifest -- npm run release:manifest
65
+ - name: Build quality report
66
+ if: always()
67
+ run: |
68
+ node scripts/quality-report.cjs finalize
69
+ cat .oxe/release/quality-gates-report.md >> "$GITHUB_STEP_SUMMARY"
70
+ - name: Upload quality evidence
71
+ if: always()
72
+ uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
73
+ with:
74
+ name: oxe-quality-gates
75
+ path: |
76
+ .oxe/release/quality-gates-report.json
77
+ .oxe/release/quality-gates-report.md
78
+ coverage/coverage-summary.json
79
+ if-no-files-found: error
80
+ retention-days: 30
81
+
82
+ node-compatibility:
83
+ name: Node ${{ matrix.node-version }} compatibility
84
+ runs-on: ubuntu-latest
85
+ timeout-minutes: 25
86
+ strategy:
87
+ fail-fast: false
88
+ matrix:
89
+ node-version: ['18', '22']
90
+ steps:
91
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
92
+ with:
93
+ persist-credentials: false
94
+ - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
95
+ with:
96
+ node-version: ${{ matrix.node-version }}
97
+ cache: npm
98
+ - run: npm ci
99
+ - run: npm run build:runtime
100
+ - run: npm run test:root
101
+
102
+ doctor:
103
+ runs-on: ubuntu-latest
104
+ timeout-minutes: 10
105
+ needs: test
106
+ steps:
107
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
108
+ with:
109
+ persist-credentials: false
110
+ - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
111
+ with:
112
+ node-version: '20'
113
+ cache: npm
114
+ - run: npm ci
115
+ - name: OXE Doctor
116
+ run: node bin/oxe-cc.js doctor
117
+
118
+ wrapper-audit:
119
+ runs-on: ubuntu-latest
120
+ timeout-minutes: 10
121
+ needs: test
122
+ steps:
123
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
124
+ with:
125
+ persist-credentials: false
126
+ - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
127
+ with:
128
+ node-version: '20'
129
+ cache: npm
130
+ - run: npm ci
131
+ - name: Audit runtime wrappers
132
+ run: |
133
+ node -e "
134
+ const rs = require('./bin/lib/oxe-runtime-semantics.cjs');
135
+ const r = rs.auditRuntimeTargets('.');
136
+ if (!r.ok) {
137
+ console.error('Wrapper audit failed:');
138
+ console.error(JSON.stringify(r.mismatches, null, 2));
139
+ process.exit(1);
140
+ }
141
+ console.log('Wrapper audit passed — all targets in sync');
142
+ "
@@ -1,94 +1,119 @@
1
- name: Release
2
-
3
- on:
4
- push:
5
- tags:
6
- - 'v*.*.*'
7
-
8
- jobs:
9
- validate:
10
- runs-on: ubuntu-latest
11
- steps:
12
- - uses: actions/checkout@v4
13
- - uses: actions/setup-node@v4
14
- with:
15
- node-version: '20'
16
- cache: npm
17
- - run: npm ci
18
- - run: npm test
19
- - run: npm run scan:assets
20
- - run: npm run release:doctor
21
- - run: node bin/oxe-cc.js --version
22
-
23
- publish-npm:
24
- needs: validate
25
- runs-on: ubuntu-latest
26
- permissions:
27
- contents: read
28
- id-token: write
29
- steps:
30
- - uses: actions/checkout@v4
31
- - uses: actions/setup-node@v4
32
- with:
33
- node-version: '20'
34
- cache: npm
35
- registry-url: 'https://registry.npmjs.org'
36
- - run: npm ci
37
- - run: npm publish --provenance --access public
38
- env:
39
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
40
-
41
- build-vsix:
42
- needs: validate
43
- runs-on: ubuntu-latest
44
- steps:
45
- - uses: actions/checkout@v4
46
- - uses: actions/setup-node@v4
47
- with:
48
- node-version: '20'
49
- cache: npm
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*.*.*'
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ concurrency:
12
+ group: release-${{ github.ref }}
13
+ cancel-in-progress: false
14
+
15
+ jobs:
16
+ validate:
17
+ runs-on: ubuntu-latest
18
+ timeout-minutes: 45
19
+ steps:
20
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
21
+ with:
22
+ persist-credentials: false
23
+ - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
24
+ with:
25
+ node-version: '20'
26
+ cache: npm
27
+ - run: npm ci
28
+ - name: Validate release tag against package version
29
+ run: test "${GITHUB_REF_NAME#v}" = "$(node -p "require('./package.json').version")"
30
+ - run: node scripts/quality-report.cjs reset
31
+ - run: node scripts/quality-report.cjs exec --name lint -- npm run lint
32
+ - run: node scripts/quality-report.cjs exec --name format -- npm run format:check
33
+ - run: node scripts/quality-report.cjs exec --name sdk-types -- npm run test:sdk-types
34
+ - run: node scripts/quality-report.cjs exec --name coverage -- npm run test:coverage
35
+ - run: node scripts/quality-report.cjs exec --name extension-host -- xvfb-run -a npm test --workspace oxe-agents
36
+ - run: node scripts/quality-report.cjs exec --name npm-audit -- npm audit
37
+ - run: node scripts/quality-report.cjs exec --name assets -- npm run scan:assets
38
+ - run: node scripts/quality-report.cjs exec --name vsix -- npm run build:vscode-ext
39
+ - run: node scripts/quality-report.cjs exec --name pack -- npm run release:pack-check
40
+ - run: node scripts/quality-report.cjs exec --name release-manifest -- npm run release:manifest
41
+ - name: Build quality report
42
+ if: always()
43
+ run: |
44
+ node scripts/quality-report.cjs finalize
45
+ cat .oxe/release/quality-gates-report.md >> "$GITHUB_STEP_SUMMARY"
46
+ - name: Upload quality evidence
47
+ if: always()
48
+ uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
49
+ with:
50
+ name: oxe-release-quality-gates
51
+ path: |
52
+ .oxe/release/quality-gates-report.json
53
+ .oxe/release/quality-gates-report.md
54
+ coverage/coverage-summary.json
55
+ if-no-files-found: error
56
+ retention-days: 90
57
+
58
+ build-vsix:
59
+ needs: validate
60
+ runs-on: ubuntu-latest
61
+ timeout-minutes: 15
62
+ steps:
63
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
64
+ with:
65
+ persist-credentials: false
66
+ - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
67
+ with:
68
+ node-version: '20'
69
+ cache: npm
50
70
  - run: npm ci
51
71
  - run: npm run build:vscode-ext
52
- - uses: actions/upload-artifact@v4
53
- with:
54
- name: oxe-agents-vsix
55
- path: '*.vsix'
56
- if-no-files-found: warn
57
-
58
- create-release:
59
- needs: [publish-npm, build-vsix]
60
- runs-on: ubuntu-latest
61
- permissions:
62
- contents: write
63
- steps:
64
- - uses: actions/checkout@v4
65
- - name: Extract changelog entry
66
- id: changelog
72
+ - name: Resolve current VSIX
73
+ id: current-vsix
67
74
  run: |
68
- TAG="${{ github.ref_name }}"
69
- VERSION="${TAG#v}"
70
- # Extract the block for this version from CHANGELOG.md
71
- awk "/^## \[${VERSION}\]/{found=1; next} found && /^## \[/{exit} found{print}" CHANGELOG.md > CHANGELOG_EXTRACT.md
72
- echo "Extracted changelog for ${VERSION}"
73
- cat CHANGELOG_EXTRACT.md
74
- - uses: actions/download-artifact@v4
75
+ VERSION="$(node -p "require('./vscode-extension/package.json').version")"
76
+ FILE="vscode-extension/oxe-agents-${VERSION}.vsix"
77
+ test -f "$FILE"
78
+ echo "path=$FILE" >> "$GITHUB_OUTPUT"
79
+ - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
75
80
  with:
76
81
  name: oxe-agents-vsix
77
- path: dist/
78
- continue-on-error: true
79
- - name: Create GitHub Release
80
- env:
81
- GH_TOKEN: ${{ github.token }}
82
- run: |
83
- TAG="${{ github.ref_name }}"
84
- VSIX_FILES=$(find dist/ -name "*.vsix" 2>/dev/null || true)
85
- if [ -n "$VSIX_FILES" ]; then
86
- gh release create "$TAG" \
87
- --title "oxe-cc $TAG" \
88
- --notes-file CHANGELOG_EXTRACT.md \
89
- $VSIX_FILES
90
- else
91
- gh release create "$TAG" \
92
- --title "oxe-cc $TAG" \
93
- --notes-file CHANGELOG_EXTRACT.md
94
- fi
82
+ path: ${{ steps.current-vsix.outputs.path }}
83
+ if-no-files-found: error
84
+ retention-days: 30
85
+
86
+ create-release:
87
+ needs: [validate, build-vsix]
88
+ runs-on: ubuntu-latest
89
+ timeout-minutes: 10
90
+ permissions:
91
+ contents: write
92
+ steps:
93
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
94
+ with:
95
+ persist-credentials: false
96
+ - name: Extract changelog entry
97
+ run: |
98
+ TAG="${{ github.ref_name }}"
99
+ VERSION="${TAG#v}"
100
+ awk "/^## \[${VERSION}\]/{found=1; next} found && /^## \[/{exit} found{print}" CHANGELOG.md > CHANGELOG_EXTRACT.md
101
+ test -s CHANGELOG_EXTRACT.md
102
+ - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
103
+ with:
104
+ name: oxe-agents-vsix
105
+ path: dist/
106
+ - name: Create GitHub Release
107
+ env:
108
+ GH_TOKEN: ${{ github.token }}
109
+ run: |
110
+ TAG="${{ github.ref_name }}"
111
+ mapfile -t VSIX_FILES < <(find dist/ -type f -name "*.vsix")
112
+ if [ "${#VSIX_FILES[@]}" -eq 0 ]; then
113
+ echo "VSIX obrigatório não encontrado no artefato oxe-agents-vsix" >&2
114
+ exit 1
115
+ fi
116
+ gh release create "$TAG" \
117
+ --title "oxe-cc $TAG" \
118
+ --notes-file CHANGELOG_EXTRACT.md \
119
+ "${VSIX_FILES[@]}"