@aid-framework/generator-sdk 0.1.58 → 0.1.59
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/.tsbuildinfo +1 -1
- package/dist/drift.d.ts +5 -0
- package/dist/drift.d.ts.map +1 -1
- package/dist/drift.js +23 -0
- package/dist/drift.js.map +1 -1
- package/dist/eject.d.ts.map +1 -1
- package/dist/eject.js +8 -1
- package/dist/eject.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/ownership.d.ts +19 -2
- package/dist/ownership.d.ts.map +1 -1
- package/dist/ownership.js +25 -1
- package/dist/ownership.js.map +1 -1
- package/dist/scaffold.d.ts +104 -0
- package/dist/scaffold.d.ts.map +1 -0
- package/dist/scaffold.js +248 -0
- package/dist/scaffold.js.map +1 -0
- package/package.json +3 -3
package/dist/scaffold.js
ADDED
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scaffold content: generator-authored files that live outside the managed roots (§6a).
|
|
3
|
+
*
|
|
4
|
+
* Today that is the repository's own CI. It is planned like any other file, but it is
|
|
5
|
+
* written once and then belongs to the developer: `aid gen` never overwrites it, never
|
|
6
|
+
* records it in the manifest, and `aid eject` reports it as already owned. That split is
|
|
7
|
+
* what makes a generated workflow usable -- CI has to be edited for a runner, a
|
|
8
|
+
* credential, or a second toolchain, and every one of those edits would otherwise be a
|
|
9
|
+
* drift conflict against a file the developer is supposed to own.
|
|
10
|
+
*
|
|
11
|
+
* The emitted workflow deliberately contains **no** `apply` step and no cloud keys: it
|
|
12
|
+
* gates the repository and stops there. Deployment stays a human action, per §12.6.
|
|
13
|
+
*/
|
|
14
|
+
/** The repository CI: the spec gates, then lint/build/test for the app tier. */
|
|
15
|
+
export const CI_WORKFLOW_PATH = '.github/workflows/ci.yml';
|
|
16
|
+
/**
|
|
17
|
+
* The eval gate. A separate workflow because it needs a model credential and therefore
|
|
18
|
+
* cannot be a required check on a fork pull request: it runs on `workflow_dispatch` and
|
|
19
|
+
* nightly, and reports a skip -- not a pass -- when the credential is absent.
|
|
20
|
+
*/
|
|
21
|
+
export const EVALS_WORKFLOW_PATH = '.github/workflows/evals.yml';
|
|
22
|
+
/**
|
|
23
|
+
* Action pins. A tag is mutable; a SHA is not, and a generated workflow that runs
|
|
24
|
+
* `@v4` is one force-push away from running different code than it did last week.
|
|
25
|
+
* These are the commits the `v4`/`v5` tags resolved to when this was written.
|
|
26
|
+
*/
|
|
27
|
+
export const ACTION_PINS = {
|
|
28
|
+
checkout: 'actions/checkout@11d5960a326750d5838078e36cf38b85af677262',
|
|
29
|
+
setupNode: 'actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020',
|
|
30
|
+
setupPython: 'actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065',
|
|
31
|
+
};
|
|
32
|
+
/** `major.minor` of a semver string, used to pin the CLI a workflow installs. */
|
|
33
|
+
export function cliRangeFor(version) {
|
|
34
|
+
const match = /^(\d+)\.(\d+)\./.exec(version);
|
|
35
|
+
return match === null ? version : `${match[1]}.${match[2]}`;
|
|
36
|
+
}
|
|
37
|
+
function lines(values, indent = ' ') {
|
|
38
|
+
return values.map((value) => `${indent}${value}`);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The CI workflow for a generated project.
|
|
42
|
+
*
|
|
43
|
+
* The spec gates are the framework's own contract and always run. The app job needs the
|
|
44
|
+
* project's dependency manifest, and a job-level `if` cannot call `hashFiles`, so a small
|
|
45
|
+
* `detect` job probes for the file and the app job is skipped -- not green -- without it.
|
|
46
|
+
* The infra job is skipped the same way when `infra/` is absent, and it only compares the
|
|
47
|
+
* committed tree against the spec: `plan`/`apply` need credentials and stay human actions.
|
|
48
|
+
*/
|
|
49
|
+
export function scaffoldCi(profile, cliRange) {
|
|
50
|
+
const content = [
|
|
51
|
+
`# Generated once by \`aid gen\` for the \`${profile.target}\` target, then yours.`,
|
|
52
|
+
'# A scaffold file is never overwritten and never recorded in aid.manifest.json,',
|
|
53
|
+
'# so edit it freely: a new runner, a cache, an extra toolchain.',
|
|
54
|
+
'name: CI',
|
|
55
|
+
'',
|
|
56
|
+
'on:',
|
|
57
|
+
' push:',
|
|
58
|
+
' branches: [main]',
|
|
59
|
+
' pull_request:',
|
|
60
|
+
'',
|
|
61
|
+
'concurrency:',
|
|
62
|
+
// biome-ignore lint/suspicious/noTemplateCurlyInString: a GitHub Actions expression, emitted literally.
|
|
63
|
+
' group: ci-${{ github.workflow }}-${{ github.ref }}',
|
|
64
|
+
' cancel-in-progress: true',
|
|
65
|
+
'',
|
|
66
|
+
'permissions:',
|
|
67
|
+
' contents: read',
|
|
68
|
+
'',
|
|
69
|
+
'jobs:',
|
|
70
|
+
' spec:',
|
|
71
|
+
' name: Spec gates',
|
|
72
|
+
' runs-on: ubuntu-latest',
|
|
73
|
+
' timeout-minutes: 15',
|
|
74
|
+
' steps:',
|
|
75
|
+
` - uses: ${ACTION_PINS.checkout}`,
|
|
76
|
+
` - uses: ${ACTION_PINS.setupNode}`,
|
|
77
|
+
' with:',
|
|
78
|
+
" node-version: '22'",
|
|
79
|
+
' - name: Install the AID CLI',
|
|
80
|
+
` run: npm install --global @aid-framework/cli@${cliRange}`,
|
|
81
|
+
' - name: Validate the spec',
|
|
82
|
+
` run: aid validate ${profile.specPath}`,
|
|
83
|
+
' - name: The committed tree matches the spec',
|
|
84
|
+
` run: aid gen ${profile.specPath} --check`,
|
|
85
|
+
' - name: Diagnose the tree',
|
|
86
|
+
` run: aid doctor ${profile.specPath}`,
|
|
87
|
+
'',
|
|
88
|
+
' detect:',
|
|
89
|
+
' name: Detect the app',
|
|
90
|
+
' runs-on: ubuntu-latest',
|
|
91
|
+
' outputs:',
|
|
92
|
+
// biome-ignore lint/suspicious/noTemplateCurlyInString: a GitHub Actions expression, emitted literally.
|
|
93
|
+
' has_app: ${{ steps.probe.outputs.has_app }}',
|
|
94
|
+
// biome-ignore lint/suspicious/noTemplateCurlyInString: a GitHub Actions expression, emitted literally.
|
|
95
|
+
' has_infra: ${{ steps.infra.outputs.has_infra }}',
|
|
96
|
+
' steps:',
|
|
97
|
+
` - uses: ${ACTION_PINS.checkout}`,
|
|
98
|
+
' - id: probe',
|
|
99
|
+
' run: |',
|
|
100
|
+
` if [ -f ${profile.dependencyManifest} ]; then`,
|
|
101
|
+
' echo "has_app=true" >> "$GITHUB_OUTPUT"',
|
|
102
|
+
' else',
|
|
103
|
+
' echo "has_app=false" >> "$GITHUB_OUTPUT"',
|
|
104
|
+
' fi',
|
|
105
|
+
' - id: infra',
|
|
106
|
+
' run: |',
|
|
107
|
+
' if [ -d infra ]; then',
|
|
108
|
+
' echo "has_infra=true" >> "$GITHUB_OUTPUT"',
|
|
109
|
+
' else',
|
|
110
|
+
' echo "has_infra=false" >> "$GITHUB_OUTPUT"',
|
|
111
|
+
' fi',
|
|
112
|
+
'',
|
|
113
|
+
' app:',
|
|
114
|
+
' name: Lint, build, and test',
|
|
115
|
+
' runs-on: ubuntu-latest',
|
|
116
|
+
' timeout-minutes: 20',
|
|
117
|
+
' needs: detect',
|
|
118
|
+
` # Skipped, not green: without ${profile.dependencyManifest} there is nothing to`,
|
|
119
|
+
` # build, and a passing check that never ran is worse than an explicit skip.`,
|
|
120
|
+
` if: needs.detect.outputs.has_app == 'true'`,
|
|
121
|
+
' steps:',
|
|
122
|
+
` - uses: ${ACTION_PINS.checkout}`,
|
|
123
|
+
...lines(profile.toolchain, ' '),
|
|
124
|
+
' - name: Install dependencies',
|
|
125
|
+
' run: |',
|
|
126
|
+
...lines(profile.install, ' '),
|
|
127
|
+
' - name: Lint',
|
|
128
|
+
' run: |',
|
|
129
|
+
...lines(profile.lint, ' '),
|
|
130
|
+
' - name: Build',
|
|
131
|
+
` run: ${profile.build}`,
|
|
132
|
+
' - name: Test',
|
|
133
|
+
` run: ${profile.test}`,
|
|
134
|
+
'',
|
|
135
|
+
' infra:',
|
|
136
|
+
' name: Infra matches the spec',
|
|
137
|
+
' runs-on: ubuntu-latest',
|
|
138
|
+
' timeout-minutes: 15',
|
|
139
|
+
' needs: detect',
|
|
140
|
+
' # Skipped, not green: a project that has not generated infra/ has no committed',
|
|
141
|
+
' # tree to compare, and this job never plans against a cloud account.',
|
|
142
|
+
` if: needs.detect.outputs.has_infra == 'true'`,
|
|
143
|
+
' steps:',
|
|
144
|
+
` - uses: ${ACTION_PINS.checkout}`,
|
|
145
|
+
` - uses: ${ACTION_PINS.setupNode}`,
|
|
146
|
+
' with:',
|
|
147
|
+
" node-version: '22'",
|
|
148
|
+
' - name: Install the AID CLI',
|
|
149
|
+
` run: npm install --global @aid-framework/cli@${cliRange}`,
|
|
150
|
+
' - name: The committed infra tree matches the spec',
|
|
151
|
+
` run: aid infra gen ${profile.specPath} --check`,
|
|
152
|
+
'',
|
|
153
|
+
].join('\n');
|
|
154
|
+
return { path: CI_WORKFLOW_PATH, content, owner: 'scaffold' };
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* The eval gate for a project whose spec declares `gate.ci: true` evals.
|
|
158
|
+
*
|
|
159
|
+
* It never runs on `pull_request`. The generated evals measure a real model: with no
|
|
160
|
+
* credential the gateway falls back to the fake provider, whose output does not satisfy
|
|
161
|
+
* the eval's JSON schema, and the gate fails. Requiring the key on PRs would therefore
|
|
162
|
+
* either leak a secret to forks or turn the gate red for every contributor, so the gate
|
|
163
|
+
* runs on `workflow_dispatch` and nightly instead, and a missing key is an **error**
|
|
164
|
+
* rather than a silent skip: a gate that is green because it never ran is the failure
|
|
165
|
+
* mode this whole tier exists to avoid.
|
|
166
|
+
*/
|
|
167
|
+
export function scaffoldEvals(profile) {
|
|
168
|
+
const guarded = profile.secrets.length > 0;
|
|
169
|
+
const credentialSteps = guarded
|
|
170
|
+
? [
|
|
171
|
+
' - name: Check the model credential',
|
|
172
|
+
' id: creds',
|
|
173
|
+
' env:',
|
|
174
|
+
...profile.secrets.map((name) => ` ${name}: \${{ secrets.${name} }}`),
|
|
175
|
+
' run: |',
|
|
176
|
+
' missing=0',
|
|
177
|
+
...profile.secrets.flatMap((name) => [
|
|
178
|
+
` if [ -z "$${name}" ]; then`,
|
|
179
|
+
` echo "::warning::${name} is not set"`,
|
|
180
|
+
' missing=1',
|
|
181
|
+
' fi',
|
|
182
|
+
]),
|
|
183
|
+
' if [ "$missing" -eq 0 ]; then',
|
|
184
|
+
' echo "ready=true" >> "$GITHUB_OUTPUT"',
|
|
185
|
+
' else',
|
|
186
|
+
' echo "ready=false" >> "$GITHUB_OUTPUT"',
|
|
187
|
+
' fi',
|
|
188
|
+
]
|
|
189
|
+
: [];
|
|
190
|
+
const suiteSteps = profile.suites.flatMap((suite) => [
|
|
191
|
+
` - name: ${suite.id}`,
|
|
192
|
+
...(guarded ? [" if: steps.creds.outputs.ready == 'true'"] : []),
|
|
193
|
+
...(guarded
|
|
194
|
+
? [
|
|
195
|
+
' env:',
|
|
196
|
+
...profile.secrets.map((name) => ` ${name}: \${{ secrets.${name} }}`),
|
|
197
|
+
]
|
|
198
|
+
: []),
|
|
199
|
+
` run: ${suite.command}`,
|
|
200
|
+
]);
|
|
201
|
+
const skippedSteps = guarded
|
|
202
|
+
? [
|
|
203
|
+
' - name: Report a skipped gate',
|
|
204
|
+
" if: steps.creds.outputs.ready != 'true'",
|
|
205
|
+
' run: |',
|
|
206
|
+
` echo "::error::The eval gate could not run: set ${profile.secrets.join(', ')} as ${profile.secrets.length === 1 ? 'a repository secret' : 'repository secrets'}."`,
|
|
207
|
+
' exit 1',
|
|
208
|
+
]
|
|
209
|
+
: [];
|
|
210
|
+
const content = [
|
|
211
|
+
`# Generated once by \`aid gen\` for the \`${profile.target}\` target, then yours.`,
|
|
212
|
+
'# A scaffold file is never overwritten and never recorded in aid.manifest.json.',
|
|
213
|
+
'# Evals measure a real model, so this workflow needs the model credential; it runs',
|
|
214
|
+
'# on demand and nightly rather than on pull requests, which cannot hold a secret.',
|
|
215
|
+
'name: Evals',
|
|
216
|
+
'',
|
|
217
|
+
'on:',
|
|
218
|
+
' workflow_dispatch:',
|
|
219
|
+
' schedule:',
|
|
220
|
+
" - cron: '0 6 * * *'",
|
|
221
|
+
'',
|
|
222
|
+
'concurrency:',
|
|
223
|
+
// biome-ignore lint/suspicious/noTemplateCurlyInString: a GitHub Actions expression, emitted literally.
|
|
224
|
+
' group: evals-${{ github.workflow }}-${{ github.ref }}',
|
|
225
|
+
' cancel-in-progress: false',
|
|
226
|
+
'',
|
|
227
|
+
'permissions:',
|
|
228
|
+
' contents: read',
|
|
229
|
+
'',
|
|
230
|
+
'jobs:',
|
|
231
|
+
' evals:',
|
|
232
|
+
' name: Eval gate',
|
|
233
|
+
' runs-on: ubuntu-latest',
|
|
234
|
+
' timeout-minutes: 30',
|
|
235
|
+
' steps:',
|
|
236
|
+
` - uses: ${ACTION_PINS.checkout}`,
|
|
237
|
+
...lines(profile.toolchain, ' '),
|
|
238
|
+
' - name: Install dependencies',
|
|
239
|
+
' run: |',
|
|
240
|
+
...lines(profile.install, ' '),
|
|
241
|
+
...credentialSteps,
|
|
242
|
+
...suiteSteps,
|
|
243
|
+
...skippedSteps,
|
|
244
|
+
'',
|
|
245
|
+
].join('\n');
|
|
246
|
+
return { path: EVALS_WORKFLOW_PATH, content, owner: 'scaffold' };
|
|
247
|
+
}
|
|
248
|
+
//# sourceMappingURL=scaffold.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aid-framework/generator-sdk",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.59",
|
|
4
4
|
"description": "The AID Framework generator plugin interface: the manifest contract, the drift/ownership algorithm, and the determinism helpers every target generator emits through.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -30,8 +30,8 @@
|
|
|
30
30
|
"access": "public"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@aid-framework/ir": "0.1.
|
|
34
|
-
"@aid-framework/spec": "0.1.
|
|
33
|
+
"@aid-framework/ir": "0.1.59",
|
|
34
|
+
"@aid-framework/spec": "0.1.59"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@types/node": "^26.6.5"
|