@ogygie/cli 0.20.0 → 0.22.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.
package/dist/cli.js
CHANGED
|
@@ -21465,6 +21465,30 @@ var governedChecksumsByVersion = {
|
|
|
21465
21465
|
"scripts/verify-specs.ts": "92d54aa5111fe0753aa9d6eb3b4ac89a7f24fa06578ea3369ccb0dc9d4c3dd88",
|
|
21466
21466
|
"tsconfig.base.json": "0f8919e9ed8bbc88e0308fa2fa91471dabb18d1df721bd78c04076597eba89a2"
|
|
21467
21467
|
},
|
|
21468
|
+
"0.21.0": {
|
|
21469
|
+
".github/workflows/ogygie-gates.yml": "c1a05da24a2af4f68bbaae42c17e3dfba88ee44a2411291ce1163a2695b62f36",
|
|
21470
|
+
"AGENTS.md": "8356696ef27c53cad164ab0086163454348b18852b121eca9fb050fb73e625f0",
|
|
21471
|
+
"CLAUDE.md": "785ee8d90e368806d8cf0b4d84a15f29d1dc961168bda86cf1a6c60a923c8c9b",
|
|
21472
|
+
"scripts/lint-interdits.ts": "4644e1aaabc1d19ed42a0bdf8e2e55b9451f789d87d59754bce3432de7c357e7",
|
|
21473
|
+
"scripts/ogygie-design-brief.ts": "aba1585717b30808dd0bc8930a37a1ad2d83ee6869f969dbd06ca595e37a4a89",
|
|
21474
|
+
"scripts/ogygie-impact.ts": "f06cc8b4a46ddfbcfb32ba747c2454548ca49918123d04ab13d210b4a89c1fb9",
|
|
21475
|
+
"scripts/verify-contracts.ts": "9cd64c88dcc3b54b65bf1e1b7a68eb00353ee16f2a9ce8bca3c49ba063c2a08b",
|
|
21476
|
+
"scripts/verify-manifest.ts": "6c448fa3a19b87666f686ca57c6ca834d9e169b1380e4fe6e4c19b995bf94f3c",
|
|
21477
|
+
"scripts/verify-specs.ts": "92d54aa5111fe0753aa9d6eb3b4ac89a7f24fa06578ea3369ccb0dc9d4c3dd88",
|
|
21478
|
+
"tsconfig.base.json": "0f8919e9ed8bbc88e0308fa2fa91471dabb18d1df721bd78c04076597eba89a2"
|
|
21479
|
+
},
|
|
21480
|
+
"0.22.0": {
|
|
21481
|
+
".github/workflows/ogygie-gates.yml": "c1a05da24a2af4f68bbaae42c17e3dfba88ee44a2411291ce1163a2695b62f36",
|
|
21482
|
+
"AGENTS.md": "8356696ef27c53cad164ab0086163454348b18852b121eca9fb050fb73e625f0",
|
|
21483
|
+
"CLAUDE.md": "785ee8d90e368806d8cf0b4d84a15f29d1dc961168bda86cf1a6c60a923c8c9b",
|
|
21484
|
+
"scripts/lint-interdits.ts": "4644e1aaabc1d19ed42a0bdf8e2e55b9451f789d87d59754bce3432de7c357e7",
|
|
21485
|
+
"scripts/ogygie-design-brief.ts": "aba1585717b30808dd0bc8930a37a1ad2d83ee6869f969dbd06ca595e37a4a89",
|
|
21486
|
+
"scripts/ogygie-impact.ts": "f06cc8b4a46ddfbcfb32ba747c2454548ca49918123d04ab13d210b4a89c1fb9",
|
|
21487
|
+
"scripts/verify-contracts.ts": "9cd64c88dcc3b54b65bf1e1b7a68eb00353ee16f2a9ce8bca3c49ba063c2a08b",
|
|
21488
|
+
"scripts/verify-manifest.ts": "6c448fa3a19b87666f686ca57c6ca834d9e169b1380e4fe6e4c19b995bf94f3c",
|
|
21489
|
+
"scripts/verify-specs.ts": "92d54aa5111fe0753aa9d6eb3b4ac89a7f24fa06578ea3369ccb0dc9d4c3dd88",
|
|
21490
|
+
"tsconfig.base.json": "0f8919e9ed8bbc88e0308fa2fa91471dabb18d1df721bd78c04076597eba89a2"
|
|
21491
|
+
},
|
|
21468
21492
|
"0.3.0": {
|
|
21469
21493
|
".github/workflows/ogygie-gates.yml": "48c40efe9fe66dd0f9c3b94287026d80eae9afd6782b5833fdf8846d8662babf",
|
|
21470
21494
|
"AGENTS.md": "ca73ab619d8c55fac11858d815bf5fbab6537ecebe7ae4123cbdeb3e3e36bf1a",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ogygie/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.22.0",
|
|
4
4
|
"description": "Ogygie framework CLI: deterministic scaffolding (init), governed-file upgrades (upgrade) and lockstep verification (check) for Ogygie products.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"access": "public"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
|
-
"@ogygie/core": "0.
|
|
25
|
+
"@ogygie/core": "0.22.0",
|
|
26
26
|
"@types/node": "^24.0.0",
|
|
27
27
|
"esbuild": "^0.28.0",
|
|
28
28
|
"tsx": "^4.20.0",
|
|
@@ -7,12 +7,10 @@ on:
|
|
|
7
7
|
branches: [main, "spec/**"]
|
|
8
8
|
pull_request:
|
|
9
9
|
|
|
10
|
-
# Least-privilege token:
|
|
11
|
-
#
|
|
12
|
-
# The one job that writes (speculate) raises its own permission, alone.
|
|
10
|
+
# Least-privilege token: the gates only read the checkout. The one job that
|
|
11
|
+
# writes (speculate) raises its own permission, alone.
|
|
13
12
|
permissions:
|
|
14
13
|
contents: read
|
|
15
|
-
pull-requests: read
|
|
16
14
|
|
|
17
15
|
jobs:
|
|
18
16
|
verifier:
|
|
@@ -35,10 +33,22 @@ jobs:
|
|
|
35
33
|
- run: pnpm lint # any, ts-ignore, raw-db, dangerouslySetInnerHTML
|
|
36
34
|
- run: pnpm test
|
|
37
35
|
# Security
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
36
|
+
# Committed secrets: the gitleaks binary, pinned by version and checksum.
|
|
37
|
+
# Its GitHub action asks for a licence key as soon as the repository
|
|
38
|
+
# belongs to an organization; the binary asks for nothing. A pull request
|
|
39
|
+
# scans its own commits and a push the ones it brings, so a leak already
|
|
40
|
+
# dealt with in the past does not keep the gate red.
|
|
41
|
+
- env:
|
|
42
|
+
GITLEAKS_VERSION: "8.30.1"
|
|
43
|
+
GITLEAKS_SHA256: "551f6fc83ea457d62a0d98237cbad105af8d557003051f41f3e7ca7b3f2470eb"
|
|
44
|
+
RANGE: "${{ github.event_name == 'pull_request' && format('{0}..{1}', github.event.pull_request.base.sha, github.event.pull_request.head.sha) || format('{0}..{1}', github.event.before, github.sha) }}"
|
|
45
|
+
run: |
|
|
46
|
+
curl -sSLo "$RUNNER_TEMP/gitleaks.tar.gz" "https://github.com/gitleaks/gitleaks/releases/download/v${GITLEAKS_VERSION}/gitleaks_${GITLEAKS_VERSION}_linux_x64.tar.gz"
|
|
47
|
+
echo "${GITLEAKS_SHA256} $RUNNER_TEMP/gitleaks.tar.gz" | sha256sum -c -
|
|
48
|
+
tar -xzf "$RUNNER_TEMP/gitleaks.tar.gz" -C "$RUNNER_TEMP" gitleaks
|
|
49
|
+
# A branch born with this push has no "before": the whole history is scanned.
|
|
50
|
+
case "$RANGE" in 0000000000000000000000000000000000000000..*) RANGE="" ;; esac
|
|
51
|
+
"$RUNNER_TEMP/gitleaks" git --redact --no-banner ${RANGE:+--log-opts="$RANGE"} .
|
|
42
52
|
- uses: semgrep/semgrep-action@v1 # dangerous patterns (SAST)
|
|
43
53
|
with: { config: "p/typescript p/owasp-top-ten" }
|
|
44
54
|
- run: pnpm audit --audit-level=high # dependency CVEs
|
|
@@ -64,7 +74,8 @@ jobs:
|
|
|
64
74
|
# of a screen. The first schemas.ts of a NEW feature is drawn by the model and
|
|
65
75
|
# judged by the gates, written once; refused twice, the pull request gets the
|
|
66
76
|
# needs-operator label and nothing is generated. The holes are filled — library, draw, escalation — with the client's model key
|
|
67
|
-
# (a repo secret), the test of a candidate running without it
|
|
77
|
+
# (a repo secret), the test of a candidate running without it; the body of a
|
|
78
|
+
# custom view is one of them, and gets the same label when no candidate is green. A repo
|
|
68
79
|
# without the generator installed is told so, and the branch is left as is.
|
|
69
80
|
# With OGYGIE_CI_TOKEN (a token allowed to push to spec/* branches), the
|
|
70
81
|
# commit it pushes gets its own checks; with the default token, it does not.
|
|
@@ -115,7 +126,7 @@ jobs:
|
|
|
115
126
|
PR_NUMBER="$(gh pr list --head "$GITHUB_REF_NAME" --state open --json number --jq '.[0].number' 2>/dev/null || true)"
|
|
116
127
|
if [ "${SCHEMAS_STATUS:-0}" = "2" ]; then
|
|
117
128
|
if [ -n "$PR_NUMBER" ]; then
|
|
118
|
-
gh label create needs-operator --force --color D9A35A --description "
|
|
129
|
+
gh label create needs-operator --force --color D9A35A --description "La spec attend un geste de l'opérateur : un schemas.ts refusé deux fois, ou le corps d'une vue custom sans candidat vert." >/dev/null
|
|
119
130
|
gh pr edit "$PR_NUMBER" --add-label needs-operator
|
|
120
131
|
fi
|
|
121
132
|
echo "ogygie-gates — le schemas.ts de $SPEC_ID attend l'opérateur (needs-operator) : rien n'est généré sur la branche."
|
|
@@ -133,7 +144,16 @@ jobs:
|
|
|
133
144
|
# runs in a process that holds no secret. Absent, the library alone.
|
|
134
145
|
pnpm exec ogygie generate fill "$SPEC_ID" || FILL_STATUS=$?
|
|
135
146
|
pnpm exec ogygie generate verify
|
|
136
|
-
if [ "${FILL_STATUS:-0}"
|
|
147
|
+
if [ "${FILL_STATUS:-0}" = "2" ]; then
|
|
148
|
+
# The body of a custom view (hosted mode, the body as a hole): no candidate
|
|
149
|
+
# rendered its example — the operator writes it. The label says so; the
|
|
150
|
+
# view's own test stays red until then, so the pull request does too.
|
|
151
|
+
if [ -n "$PR_NUMBER" ]; then
|
|
152
|
+
gh label create needs-operator --force --color D9A35A --description "La spec attend un geste de l'opérateur : un schemas.ts refusé deux fois, ou le corps d'une vue custom sans candidat vert." >/dev/null
|
|
153
|
+
gh pr edit "$PR_NUMBER" --add-label needs-operator
|
|
154
|
+
fi
|
|
155
|
+
echo "ogygie-gates — le corps d'une vue custom de $SPEC_ID attend l'opérateur (needs-operator) : son test d'exemple reste rouge."
|
|
156
|
+
elif [ "${FILL_STATUS:-0}" != "0" ]; then
|
|
137
157
|
echo "ogygie-gates — des trous restent à l'humain, ou le plafond du modèle est atteint : voir le journal ci-dessus."
|
|
138
158
|
fi
|
|
139
159
|
# The previews of a screen (spec ogygie-hosted-mode B10): a page per
|