@behavproof/cli 0.0.0-stage → 0.1.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 (67) hide show
  1. package/README.md +14 -2
  2. package/dist/api.d.ts +6 -0
  3. package/dist/api.d.ts.map +1 -0
  4. package/dist/api.js +5 -0
  5. package/dist/api.js.map +1 -0
  6. package/dist/check.d.ts +272 -0
  7. package/dist/check.d.ts.map +1 -0
  8. package/dist/check.js +220 -0
  9. package/dist/check.js.map +1 -0
  10. package/dist/formal-evaluation.d.ts +108 -0
  11. package/dist/formal-evaluation.d.ts.map +1 -0
  12. package/dist/formal-evaluation.js +78 -0
  13. package/dist/formal-evaluation.js.map +1 -0
  14. package/dist/formal-worker.d.ts +2 -0
  15. package/dist/formal-worker.d.ts.map +1 -0
  16. package/dist/formal-worker.js +32 -0
  17. package/dist/formal-worker.js.map +1 -0
  18. package/dist/formal.d.ts +148 -0
  19. package/dist/formal.d.ts.map +1 -0
  20. package/dist/formal.js +99 -0
  21. package/dist/formal.js.map +1 -0
  22. package/dist/impact.d.ts +20 -0
  23. package/dist/impact.d.ts.map +1 -0
  24. package/dist/impact.js +23 -0
  25. package/dist/impact.js.map +1 -0
  26. package/dist/index.d.ts +3 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +151 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/pipeline.d.ts +38 -0
  31. package/dist/pipeline.d.ts.map +1 -0
  32. package/dist/pipeline.js +46 -0
  33. package/dist/pipeline.js.map +1 -0
  34. package/dist/project.d.ts +97 -0
  35. package/dist/project.d.ts.map +1 -0
  36. package/dist/project.js +101 -0
  37. package/dist/project.js.map +1 -0
  38. package/dist/registration.d.ts +595 -0
  39. package/dist/registration.d.ts.map +1 -0
  40. package/dist/registration.js +112 -0
  41. package/dist/registration.js.map +1 -0
  42. package/dist/report.d.ts +23 -0
  43. package/dist/report.d.ts.map +1 -0
  44. package/dist/report.js +34 -0
  45. package/dist/report.js.map +1 -0
  46. package/dist/scopes.d.ts +48 -0
  47. package/dist/scopes.d.ts.map +1 -0
  48. package/dist/scopes.js +60 -0
  49. package/dist/scopes.js.map +1 -0
  50. package/dist/trust.d.ts +533 -0
  51. package/dist/trust.d.ts.map +1 -0
  52. package/dist/trust.js +130 -0
  53. package/dist/trust.js.map +1 -0
  54. package/package.json +51 -4
  55. package/presets/basic-v1.json +21 -0
  56. package/presets/critical-v1.json +39 -0
  57. package/presets/standard-v1.json +21 -0
  58. package/schemas/config.schema.json +492 -0
  59. package/schemas/evidence.schema.json +3612 -0
  60. package/schemas/manifest.schema.json +225 -0
  61. package/schemas/policy.schema.json +21 -0
  62. package/schemas/registration.schema.json +1065 -0
  63. package/schemas/registry.schema.json +307 -0
  64. package/schemas/trust-root.schema.json +1445 -0
  65. package/templates/audit.yml +28 -0
  66. package/templates/protected-github-producer.yml +58 -0
  67. package/templates/protected-github-publisher.yml +111 -0
@@ -0,0 +1,28 @@
1
+ name: BehavProof internal audit
2
+ on: [pull_request, workflow_dispatch]
3
+ permissions:
4
+ contents: read
5
+ jobs:
6
+ evidence:
7
+ runs-on: ubuntu-latest
8
+ steps:
9
+ - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262
10
+ with:
11
+ persist-credentials: false
12
+ - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
13
+ with:
14
+ node-version: '24'
15
+ - run: npm ci --ignore-scripts
16
+ - run: npm test
17
+ gate:
18
+ needs: [evidence]
19
+ if: always()
20
+ runs-on: ubuntu-latest
21
+ steps:
22
+ - name: Verify upstream outcome
23
+ env:
24
+ UPSTREAM_RESULT: ${{ needs.evidence.result }}
25
+ run: test "$UPSTREAM_RESULT" = success
26
+ # Use a pinned verifier installation and a separately provisioned trust root.
27
+ # This template does not supply those prerequisites or issue an external protected check.
28
+ - run: behavproof check --mode gate --trust-root /opt/behavproof/trust-root.json
@@ -0,0 +1,58 @@
1
+ # Review/provision this main-only workflow separately. Not active on feature branches.
2
+ name: BehavProof protected producer
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ pr:
7
+ description: PR targeting the isolated enforcement branch
8
+ required: true
9
+ type: string
10
+ permissions:
11
+ contents: read
12
+ actions: read
13
+ pull-requests: read
14
+ jobs:
15
+ collect:
16
+ if: github.repository == 'kanoi-y/pdd-ts' && github.ref == 'refs/heads/main'
17
+ runs-on: ubuntu-24.04
18
+ timeout-minutes: 15
19
+ defaults:
20
+ run:
21
+ working-directory: sdk
22
+ env:
23
+ BEHAVPROOF_WORKFLOW_SHA: ${{ vars.BEHAVPROOF_WORKFLOW_SHA }}
24
+ BEHAVPROOF_CURRENT_WORKFLOW_SHA: ${{ github.workflow_sha }}
25
+ BEHAVPROOF_SDK_SHA: ${{ vars.BEHAVPROOF_SDK_SHA }}
26
+ BEHAVPROOF_REGISTRATION_JSON: ${{ vars.BEHAVPROOF_REGISTRATION_JSON }}
27
+ BEHAVPROOF_REGISTRATION_DIGEST: ${{ vars.BEHAVPROOF_REGISTRATION_DIGEST }}
28
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
29
+ steps:
30
+ - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
31
+ with:
32
+ repository: kanoi-y/BehavProof
33
+ ref: ${{ vars.BEHAVPROOF_SDK_SHA }}
34
+ path: sdk
35
+ persist-credentials: false
36
+ - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
37
+ with:
38
+ node-version: '24'
39
+ - run: npm ci --ignore-scripts
40
+ - run: npm run build
41
+ - run: echo "$PWD/node_modules/.bin" >> "$GITHUB_PATH"
42
+ - name: Stage public verifier runtime
43
+ run: node scripts/prepare-sandbox-sdk.mjs --built --output /tmp/behavproof-public-sdk
44
+ - name: Pull fixed runtime
45
+ run: docker pull --platform linux/amd64 node:24.14.1-bookworm@sha256:80fc934952c8f1b2b4d39907af7211f8a9fff1a4c2cf673fb49099292c251cec
46
+ - id: produce
47
+ name: Collect inside credential-free container
48
+ env:
49
+ TARGET_PR: ${{ inputs.pr }}
50
+ run: node scripts/github-produce.mjs --pr "$TARGET_PR" --sandbox-sdk /tmp/behavproof-public-sdk --output /tmp/behavproof-producer-artifact
51
+ - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
52
+ if: always() && steps.produce.outputs.artifact_name != ''
53
+ with:
54
+ name: ${{ steps.produce.outputs.artifact_name }}
55
+ path: /tmp/behavproof-producer-artifact/
56
+ include-hidden-files: true
57
+ if-no-files-found: error
58
+ retention-days: 7
@@ -0,0 +1,111 @@
1
+ # Dedicated App credentials are used only by the protected main final-gate job.
2
+ name: BehavProof protected publisher
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ pr:
7
+ description: PR targeting the isolated enforcement branch
8
+ required: true
9
+ type: string
10
+ producer_run:
11
+ description: Completed registered producer run ID
12
+ required: true
13
+ type: string
14
+ skip_verify:
15
+ description: Isolated AC-18 negative test only (always blocks the gate)
16
+ type: boolean
17
+ default: false
18
+ permissions:
19
+ contents: read
20
+ actions: read
21
+ pull-requests: read
22
+ jobs:
23
+ verify:
24
+ if: github.repository == 'kanoi-y/pdd-ts' && github.ref == 'refs/heads/main' && !inputs.skip_verify
25
+ runs-on: ubuntu-24.04
26
+ timeout-minutes: 10
27
+ defaults:
28
+ run:
29
+ working-directory: sdk
30
+ env:
31
+ BEHAVPROOF_WORKFLOW_SHA: ${{ vars.BEHAVPROOF_WORKFLOW_SHA }}
32
+ BEHAVPROOF_CURRENT_WORKFLOW_SHA: ${{ github.workflow_sha }}
33
+ BEHAVPROOF_SDK_SHA: ${{ vars.BEHAVPROOF_SDK_SHA }}
34
+ BEHAVPROOF_REGISTRATION_JSON: ${{ vars.BEHAVPROOF_REGISTRATION_JSON }}
35
+ BEHAVPROOF_REGISTRATION_DIGEST: ${{ vars.BEHAVPROOF_REGISTRATION_DIGEST }}
36
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
37
+ steps:
38
+ - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
39
+ with:
40
+ repository: kanoi-y/BehavProof
41
+ ref: ${{ vars.BEHAVPROOF_SDK_SHA }}
42
+ path: sdk
43
+ persist-credentials: false
44
+ - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
45
+ with:
46
+ node-version: '24'
47
+ - run: npm ci --ignore-scripts
48
+ - run: npm run build
49
+ - run: echo "$PWD/node_modules/.bin" >> "$GITHUB_PATH"
50
+ - name: Verify registered producer and current source
51
+ env:
52
+ TARGET_PR: ${{ inputs.pr }}
53
+ PRODUCER_RUN: ${{ inputs.producer_run }}
54
+ run: node scripts/github-verify.mjs --pr "$TARGET_PR" --producer-run "$PRODUCER_RUN" --verify-only
55
+ gate:
56
+ needs: [verify]
57
+ if: always()
58
+ runs-on: ubuntu-24.04
59
+ timeout-minutes: 10
60
+ environment: pdd-publisher
61
+ defaults:
62
+ run:
63
+ working-directory: sdk
64
+ env:
65
+ BEHAVPROOF_WORKFLOW_SHA: ${{ vars.BEHAVPROOF_WORKFLOW_SHA }}
66
+ BEHAVPROOF_CURRENT_WORKFLOW_SHA: ${{ github.workflow_sha }}
67
+ BEHAVPROOF_SDK_SHA: ${{ vars.BEHAVPROOF_SDK_SHA }}
68
+ BEHAVPROOF_REGISTRATION_JSON: ${{ vars.BEHAVPROOF_REGISTRATION_JSON }}
69
+ BEHAVPROOF_REGISTRATION_DIGEST: ${{ vars.BEHAVPROOF_REGISTRATION_DIGEST }}
70
+ steps:
71
+ - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
72
+ with:
73
+ repository: kanoi-y/BehavProof
74
+ ref: ${{ vars.BEHAVPROOF_SDK_SHA }}
75
+ path: sdk
76
+ persist-credentials: false
77
+ - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
78
+ with:
79
+ node-version: '24'
80
+ - run: npm ci --ignore-scripts
81
+ - run: npm run build
82
+ - run: npm rebuild @behavproof/cli --ignore-scripts --offline
83
+ - run: echo "$PWD/node_modules/.bin" >> "$GITHUB_PATH"
84
+ - uses: actions/create-github-app-token@fee1f7d63c2ff003460e3d139729b119787bc349 # v2
85
+ id: app
86
+ with:
87
+ app-id: ${{ vars.PDD_APP_ID }}
88
+ private-key: ${{ secrets.PDD_APP_PRIVATE_KEY }}
89
+ owner: kanoi-y
90
+ repositories: pdd-ts
91
+ permission-checks: write
92
+ permission-contents: read
93
+ permission-pull-requests: read
94
+ permission-actions: read
95
+ permission-administration: read
96
+ - name: Prepare current authenticated data
97
+ env:
98
+ GITHUB_TOKEN: ${{ steps.app.outputs.token }}
99
+ TARGET_PR: ${{ inputs.pr }}
100
+ PRODUCER_RUN: ${{ inputs.producer_run }}
101
+ run: node scripts/github-verify.mjs --pr "$TARGET_PR" --producer-run "$PRODUCER_RUN"
102
+ - name: Evaluate protected gate
103
+ env:
104
+ GITHUB_TOKEN: ${{ steps.app.outputs.token }}
105
+ run: behavproof check --root /tmp/behavproof-project --mode gate --trust-root /tmp/behavproof-control/trust-root.json --config .behavproof/host-config.json --format json --output .behavproof/gate.json
106
+ - name: Publish success or explicit failure
107
+ if: always() && steps.app.outcome == 'success'
108
+ env:
109
+ GITHUB_TOKEN: ${{ steps.app.outputs.token }}
110
+ TARGET_PR: ${{ inputs.pr }}
111
+ run: node scripts/github-publish.mjs --pr "$TARGET_PR"