Skip to content

Commit 2a5d346

Browse files
committed
chore: willboosterify this repo
1 parent cfd0b37 commit 2a5d346

File tree

14 files changed

+167
-330
lines changed

14 files changed

+167
-330
lines changed

.cursor/rules/general.mdc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ alwaysApply: true
1212

1313
## General Instructions
1414

15+
- Do not write tests unless explicitly requested.
1516
- After making code changes, run `yarn check-all-for-ai` to execute all tests (note: this may take up to 30 minutes), or run `yarn check-for-ai` for type checking and linting only.
1617
- If you are confident your changes will not break any tests, you may use `check-for-ai`.
1718
- Once you have verified your changes, commit them to the current branch using the `--no-verify` option and push to the current branch.
@@ -24,3 +25,5 @@ alwaysApply: true
2425
- Write comments that explain "why" rather than "what". Avoid explanations that can be understood from the code itself.
2526
- Use stderr for logging debug messages temporarily since stdout output is sometimes omitted.
2627
- When adding new functions or classes, define them below any functions or classes that call them to maintain clear call order.
28+
- Prefer `undefined` over `null` unless explicitly dealing with APIs or libraries that require `null`.
29+
- Always perform existence checks on array due to `noUncheckedIndexedAccess: true`.

.github/workflows/add-issue-to-project.yml

Lines changed: 0 additions & 11 deletions
This file was deleted.

.github/workflows/add-ready-issue-to-project.yml

Lines changed: 0 additions & 13 deletions
This file was deleted.

.github/workflows/autofix.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
name: autofix.ci
2+
on:
3+
pull_request:
4+
push:
5+
branches:
6+
- main
7+
permissions:
8+
contents: read
9+
concurrency:
10+
group: autofix-${{ github.head_ref }}
11+
cancel-in-progress: true
12+
jobs:
13+
autofix:
14+
runs-on: ubuntu-latest
15+
steps:
16+
- uses: actions/checkout@v6
17+
- uses: actions/setup-node@v6
18+
with:
19+
check-latest: true
20+
- run: yarn install
21+
- run: yarn run cleanup
22+
- run: yarn run build
23+
- uses: autofix-ci/action@v1

.github/workflows/notify-ready.yml

Lines changed: 0 additions & 10 deletions
This file was deleted.

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ concurrency:
77
group: ${{ github.workflow }}
88
cancel-in-progress: false
99
permissions:
10+
id-token: write
1011
contents: write
1112
jobs:
1213
release:
@@ -15,4 +16,3 @@ jobs:
1516
github_hosted_runner: true
1617
secrets:
1718
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
18-
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

.github/workflows/test.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,3 @@ jobs:
1717
github_hosted_runner: true
1818
secrets:
1919
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
20-
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
"use strict";var n={name:"plugin-auto-install",factory:n=>{const t=n("child_process"),e=n("crypto"),c=n("fs"),r=n("path"),o="plugin-auto-install v2.0.5";let i=!1,s="";function a(n){try{const t=e.createHash("sha256"),o=r.join(n.cwd,"yarn.lock");c.statSync(o,{throwIfNoEntry:!1})&&t.update(c.readFileSync(o,"utf8"));for(const e of n.workspaces.map(n=>n.cwd).sort()){const n=r.join(e,"package.json"),o=JSON.parse(c.readFileSync(n,"utf8")),i=Object.keys(o).filter(n=>n.endsWith("ependencies")),s=[];for(const n of i)s.push(...Object.entries(o[n]).map(([n,t])=>`${n}: ${t}`));t.update(s.sort().join(","))}return t.digest("hex")}catch{}}function l(n){try{const t=d(n);return c.readFileSync(r.join(t,"hash"),"utf8")}catch{}}function u(n,t){if(!n||n===s)return!1;try{const e=d(t);c.mkdirSync(e,{recursive:!0}),c.writeFileSync(r.join(e,"hash"),n),c.writeFileSync(r.join(e,".gitignore"),".gitignore\nhash"),console.info(`${o} updated dependency hash: ${n}`),s=n}catch{}return!0}function d(n){return r.join(n.cwd,".yarn","plugins","plugin-auto-install")}return{hooks:{validateProject(n){i=!0;const t=a(n);t&&t===l(n)||u(t,n)},afterAllInstalled(n){i=!1;const t=a(n);t&&t===l(n)||u(t,n)},async setupScriptEnvironment(n,e){if(!i)try{const c=a(n);if(c&&c===l(n))return;if(!u(c,n))return;console.info(`${o} is running 'yarn install' due to dependency changes.`),t.spawnSync("yarn",["install"],{cwd:n.cwd,env:e}),console.info(`${o} finished 'yarn install'.`)}catch{}}}}}};module.exports=n;
1+
"use strict";var n={name:"plugin-auto-install",factory:n=>{const t=n("child_process"),e=n("crypto"),c=n("fs"),r=n("path"),o="plugin-auto-install v2.0.7";let i=!1,s="";function a(n){try{const t=e.createHash("sha256"),o=r.join(n.cwd,"yarn.lock");c.statSync(o,{throwIfNoEntry:!1})&&t.update(c.readFileSync(o,"utf8"));for(const e of n.workspaces.map(n=>n.cwd).sort()){const n=r.join(e,"package.json"),o=JSON.parse(c.readFileSync(n,"utf8")),i=Object.keys(o).filter(n=>n.endsWith("ependencies")),s=[];for(const n of i)s.push(...Object.entries(o[n]).map(([n,t])=>`${n}: ${t}`));t.update(s.sort().join(","))}return t.digest("hex")}catch{}}function l(n){try{const t=d(n);return c.readFileSync(r.join(t,"hash"),"utf8")}catch{}}function u(n,t){if(!n||n===s)return!1;try{const e=d(t);c.mkdirSync(e,{recursive:!0}),c.writeFileSync(r.join(e,"hash"),n),c.writeFileSync(r.join(e,".gitignore"),".gitignore\nhash"),console.info(`${o} updated dependency hash: ${n}`),s=n}catch{}return!0}function d(n){return r.join(n.cwd,".yarn","plugins","plugin-auto-install")}return{hooks:{validateProject(n){i=!0;const t=a(n);t&&t===l(n)||u(t,n)},afterAllInstalled(n){i=!1;const t=a(n);t&&t===l(n)||u(t,n)},async setupScriptEnvironment(n,e){if(!i)try{const c=a(n);if(c&&c===l(n))return;if(!u(c,n))return;console.info(`${o} is running 'yarn install' due to dependency changes.`),t.spawnSync("yarn",["install"],{cwd:n.cwd,env:e}),console.info(`${o} finished 'yarn install'.`)}catch{}}}}}};module.exports=n;
22
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFzc2lnbm1lbnQsIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXJndW1lbnQsIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtY2FsbCwgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1tZW1iZXItYWNjZXNzLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLXJldHVybiAqL1xuXG5pbXBvcnQgdHlwZSB7IEhvb2tzLCBQcm9qZWN0IH0gZnJvbSAnQHlhcm5wa2cvY29yZSc7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbmFtZTogJ3BsdWdpbi1hdXRvLWluc3RhbGwnLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBmYWN0b3J5OiAoaW1wb3J0UGFja2FnZTogKG5hbWU6IHN0cmluZykgPT4gYW55KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgIGNvbnN0IGNoaWxkX3Byb2Nlc3MgPSBpbXBvcnRQYWNrYWdlKCdjaGlsZF9wcm9jZXNzJyk7XG4gICAgY29uc3QgY3J5cHRvID0gaW1wb3J0UGFja2FnZSgnY3J5cHRvJyk7XG4gICAgY29uc3QgZnMgPSBpbXBvcnRQYWNrYWdlKCdmcycpO1xuICAgIGNvbnN0IHBhdGggPSBpbXBvcnRQYWNrYWdlKCdwYXRoJyk7XG5cbiAgICBjb25zdCBwcmVmaXggPSBgcGx1Z2luLWF1dG8taW5zdGFsbCB2JHtwcm9jZXNzLmVudi5WRVJTSU9OfWA7XG4gICAgbGV0IGluc3RhbGxpbmcgPSBmYWxzZTtcbiAgICBsZXQgbGFzdEhhc2ggPSAnJztcblxuICAgIGNvbnN0IGhvb2tzOiBIb29rcyA9IHtcbiAgICAgIHZhbGlkYXRlUHJvamVjdChwcm9qZWN0OiBQcm9qZWN0KSB7XG4gICAgICAgIGluc3RhbGxpbmcgPSB0cnVlO1xuICAgICAgICBjb25zdCBoYXNoID0gY2FsY1BhY2thZ2VIYXNoKHByb2plY3QpO1xuICAgICAgICBpZiAoaGFzaCAmJiBoYXNoID09PSByZWFkUGFja2FnZUhhc2gocHJvamVjdCkpIHJldHVybjtcblxuICAgICAgICB3cml0ZVBhY2thZ2VIYXNoKGhhc2gsIHByb2plY3QpO1xuICAgICAgfSxcbiAgICAgIGFmdGVyQWxsSW5zdGFsbGVkKHByb2plY3QpIHtcbiAgICAgICAgaW5zdGFsbGluZyA9IGZhbHNlO1xuICAgICAgICBjb25zdCBoYXNoID0gY2FsY1BhY2thZ2VIYXNoKHByb2plY3QpO1xuICAgICAgICBpZiAoaGFzaCAmJiBoYXNoID09PSByZWFkUGFja2FnZUhhc2gocHJvamVjdCkpIHJldHVybjtcblxuICAgICAgICB3cml0ZVBhY2thZ2VIYXNoKGhhc2gsIHByb2plY3QpO1xuICAgICAgfSxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcmVxdWlyZS1hd2FpdFxuICAgICAgYXN5bmMgc2V0dXBTY3JpcHRFbnZpcm9ubWVudChwcm9qZWN0OiBQcm9qZWN0LCBlbnY6IE5vZGVKUy5Qcm9jZXNzRW52KSB7XG4gICAgICAgIGlmIChpbnN0YWxsaW5nKSByZXR1cm47XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBoYXNoID0gY2FsY1BhY2thZ2VIYXNoKHByb2plY3QpO1xuICAgICAgICAgIGlmIChoYXNoICYmIGhhc2ggPT09IHJlYWRQYWNrYWdlSGFzaChwcm9qZWN0KSkgcmV0dXJuO1xuXG4gICAgICAgICAgLy8gVXBkYXRlIGhhc2ggdG8gYXZvaWQgYW4gaW5maW5pdGUgbG9vcFxuICAgICAgICAgIGlmICghd3JpdGVQYWNrYWdlSGFzaChoYXNoLCBwcm9qZWN0KSkgcmV0dXJuO1xuXG4gICAgICAgICAgLy8gTm90ZTogd2UgY2Fubm90IHByaW50IGFueXRoaW5nIGJlY2F1c2UgeWFybiBwcm9iYWJseSB0YWtlcyBvdmVyIHRoZSBzdGFuZGFyZCBvdXRwdXQuXG4gICAgICAgICAgY29uc29sZS5pbmZvKGAke3ByZWZpeH0gaXMgcnVubmluZyAneWFybiBpbnN0YWxsJyBkdWUgdG8gZGVwZW5kZW5jeSBjaGFuZ2VzLmApO1xuICAgICAgICAgIGNoaWxkX3Byb2Nlc3Muc3Bhd25TeW5jKCd5YXJuJywgWydpbnN0YWxsJ10sIHsgY3dkOiBwcm9qZWN0LmN3ZCwgZW52IH0pO1xuICAgICAgICAgIGNvbnNvbGUuaW5mbyhgJHtwcmVmaXh9IGZpbmlzaGVkICd5YXJuIGluc3RhbGwnLmApO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAvLyBkbyBub3RoaW5nXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIGNhbGNQYWNrYWdlSGFzaChwcm9qZWN0OiBQcm9qZWN0KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGhhc2ggPSBjcnlwdG8uY3JlYXRlSGFzaCgnc2hhMjU2Jyk7XG4gICAgICAgIGNvbnN0IHlhcm5Mb2NrRmlsZSA9IHBhdGguam9pbihwcm9qZWN0LmN3ZCwgJ3lhcm4ubG9jaycpO1xuICAgICAgICBjb25zdCBzdGF0ID0gZnMuc3RhdFN5bmMoeWFybkxvY2tGaWxlLCB7IHRocm93SWZOb0VudHJ5OiBmYWxzZSB9KTtcbiAgICAgICAgaWYgKHN0YXQpIHtcbiAgICAgICAgICBoYXNoLnVwZGF0ZShmcy5yZWFkRmlsZVN5bmMoeWFybkxvY2tGaWxlLCAndXRmOCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL25vLWFycmF5LXNvcnRcbiAgICAgICAgZm9yIChjb25zdCB3b3Jrc3BhY2VQYXRoIG9mIHByb2plY3Qud29ya3NwYWNlcy5tYXAoKHcpID0+IHcuY3dkKS5zb3J0KCkpIHtcbiAgICAgICAgICBjb25zdCBwYWNrYWdlSnNvbkZpbGUgPSBwYXRoLmpvaW4od29ya3NwYWNlUGF0aCwgJ3BhY2thZ2UuanNvbicpO1xuICAgICAgICAgIGNvbnN0IHBhY2thZ2VKc29uID0gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMocGFja2FnZUpzb25GaWxlLCAndXRmOCcpKTtcbiAgICAgICAgICBjb25zdCBkZXBzS2V5cyA9IE9iamVjdC5rZXlzKHBhY2thZ2VKc29uKS5maWx0ZXIoKGtleSkgPT4ga2V5LmVuZHNXaXRoKCdlcGVuZGVuY2llcycpKTtcbiAgICAgICAgICBjb25zdCBkZXBzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIGRlcHNLZXlzKSB7XG4gICAgICAgICAgICBkZXBzLnB1c2goLi4uT2JqZWN0LmVudHJpZXMocGFja2FnZUpzb25ba2V5XSkubWFwKChbbmFtZSwgdmVyXSkgPT4gYCR7bmFtZX06ICR7dmVyfWApKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vbm8tYXJyYXktc29ydFxuICAgICAgICAgIGhhc2gudXBkYXRlKGRlcHMuc29ydCgpLmpvaW4oJywnKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGhhc2guZGlnZXN0KCdoZXgnKTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICAvLyBkbyBub3RoaW5nXG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVhZFBhY2thZ2VIYXNoKHByb2plY3Q6IFByb2plY3QpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgaGFzaERpciA9IGdldEhhc2hEaXJQYXRoKHByb2plY3QpO1xuICAgICAgICByZXR1cm4gZnMucmVhZEZpbGVTeW5jKHBhdGguam9pbihoYXNoRGlyLCAnaGFzaCcpLCAndXRmOCcpO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8vIGRvIG5vdGhpbmdcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiB3cml0ZVBhY2thZ2VIYXNoKGhhc2g6IHN0cmluZyB8IHVuZGVmaW5lZCwgcHJvamVjdDogUHJvamVjdCk6IGJvb2xlYW4ge1xuICAgICAgaWYgKCFoYXNoIHx8IGhhc2ggPT09IGxhc3RIYXNoKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGhhc2hEaXIgPSBnZXRIYXNoRGlyUGF0aChwcm9qZWN0KTtcbiAgICAgICAgZnMubWtkaXJTeW5jKGhhc2hEaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgICAgICBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihoYXNoRGlyLCAnaGFzaCcpLCBoYXNoKTtcbiAgICAgICAgZnMud3JpdGVGaWxlU3luYyhwYXRoLmpvaW4oaGFzaERpciwgJy5naXRpZ25vcmUnKSwgJy5naXRpZ25vcmVcXG5oYXNoJyk7XG4gICAgICAgIGNvbnNvbGUuaW5mbyhgJHtwcmVmaXh9IHVwZGF0ZWQgZGVwZW5kZW5jeSBoYXNoOiAke2hhc2h9YCk7XG4gICAgICAgIGxhc3RIYXNoID0gaGFzaDtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICAvLyBkbyBub3RoaW5nXG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRIYXNoRGlyUGF0aChwcm9qZWN0OiBQcm9qZWN0KTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBwYXRoLmpvaW4ocHJvamVjdC5jd2QsICcueWFybicsICdwbHVnaW5zJywgJ3BsdWdpbi1hdXRvLWluc3RhbGwnKTtcbiAgICB9XG4gICAgcmV0dXJuIHsgaG9va3MgfTtcbiAgfSxcbn07XG4iXSwibmFtZXMiOlsiaW5kZXgiLCJuYW1lIiwiZmFjdG9yeSIsImltcG9ydFBhY2thZ2UiLCJjaGlsZF9wcm9jZXNzIiwiY3J5cHRvIiwiZnMiLCJwYXRoIiwicHJlZml4IiwiaW5zdGFsbGluZyIsImxhc3RIYXNoIiwiY2FsY1BhY2thZ2VIYXNoIiwicHJvamVjdCIsImhhc2giLCJjcmVhdGVIYXNoIiwieWFybkxvY2tGaWxlIiwiam9pbiIsImN3ZCIsInN0YXRTeW5jIiwidGhyb3dJZk5vRW50cnkiLCJ1cGRhdGUiLCJyZWFkRmlsZVN5bmMiLCJ3b3Jrc3BhY2VQYXRoIiwid29ya3NwYWNlcyIsIm1hcCIsInciLCJzb3J0IiwicGFja2FnZUpzb25GaWxlIiwicGFja2FnZUpzb24iLCJKU09OIiwicGFyc2UiLCJkZXBzS2V5cyIsIk9iamVjdCIsImtleXMiLCJmaWx0ZXIiLCJrZXkiLCJlbmRzV2l0aCIsImRlcHMiLCJwdXNoIiwiZW50cmllcyIsInZlciIsImRpZ2VzdCIsInJlYWRQYWNrYWdlSGFzaCIsImhhc2hEaXIiLCJnZXRIYXNoRGlyUGF0aCIsIndyaXRlUGFja2FnZUhhc2giLCJta2RpclN5bmMiLCJyZWN1cnNpdmUiLCJ3cml0ZUZpbGVTeW5jIiwiY29uc29sZSIsImluZm8iLCJob29rcyIsInZhbGlkYXRlUHJvamVjdCIsImFmdGVyQWxsSW5zdGFsbGVkIiwic2V0dXBTY3JpcHRFbnZpcm9ubWVudCIsImVudiIsInNwYXduU3luYyJdLCJtYXBwaW5ncyI6ImFBSUEsSUFBQUEsRUFBZSxDQUNiQyxLQUFNLHNCQUVOQyxRQUFVQyxJQUVSLE1BQU1DLEVBQWdCRCxFQUFjLGlCQUM5QkUsRUFBU0YsRUFBYyxVQUN2QkcsRUFBS0gsRUFBYyxNQUNuQkksRUFBT0osRUFBYyxRQUVyQkssRUFBUyw2QkFDZixJQUFJQyxHQUFhLEVBQ2JDLEVBQVcsR0FzQ2YsU0FBU0MsRUFBZ0JDLEdBQ3ZCLElBQ0UsTUFBTUMsRUFBT1IsRUFBT1MsV0FBVyxVQUN6QkMsRUFBZVIsRUFBS1MsS0FBS0osRUFBUUssSUFBSyxhQUMvQlgsRUFBR1ksU0FBU0gsRUFBYyxDQUFFSSxnQkFBZ0IsS0FFdkROLEVBQUtPLE9BQU9kLEVBQUdlLGFBQWFOLEVBQWMsU0FJNUMsSUFBSyxNQUFNTyxLQUFpQlYsRUFBUVcsV0FBV0MsSUFBS0MsR0FBTUEsRUFBRVIsS0FBS1MsT0FBUSxDQUN2RSxNQUFNQyxFQUFrQnBCLEVBQUtTLEtBQUtNLEVBQWUsZ0JBQzNDTSxFQUFjQyxLQUFLQyxNQUFNeEIsRUFBR2UsYUFBYU0sRUFBaUIsU0FDMURJLEVBQVdDLE9BQU9DLEtBQUtMLEdBQWFNLE9BQVFDLEdBQVFBLEVBQUlDLFNBQVMsZ0JBQ2pFQyxFQUFpQixHQUN2QixJQUFLLE1BQU1GLEtBQU9KLEVBQ2hCTSxFQUFLQyxRQUFRTixPQUFPTyxRQUFRWCxFQUFZTyxJQUFNWCxJQUFJLEVBQUV2QixFQUFNdUMsS0FBUyxHQUFHdkMsTUFBU3VDLE1BR2pGM0IsRUFBS08sT0FBT2lCLEVBQUtYLE9BQU9WLEtBQUssS0FDL0IsQ0FDQSxPQUFPSCxFQUFLNEIsT0FBTyxNQUNyQixDQUFFLE1BQ0EsQ0FFSixDQUVBLFNBQVNDLEVBQWdCOUIsR0FDdkIsSUFDRSxNQUFNK0IsRUFBVUMsRUFBZWhDLEdBQy9CLE9BQU9OLEVBQUdlLGFBQWFkLEVBQUtTLEtBQUsyQixFQUFTLFFBQVMsT0FDckQsQ0FBRSxNQUNBLENBRUosQ0FFQSxTQUFTRSxFQUFpQmhDLEVBQTBCRCxHQUNsRCxJQUFLQyxHQUFRQSxJQUFTSCxFQUFVLE9BQU8sRUFFdkMsSUFDRSxNQUFNaUMsRUFBVUMsRUFBZWhDLEdBQy9CTixFQUFHd0MsVUFBVUgsRUFBUyxDQUFFSSxXQUFXLElBQ25DekMsRUFBRzBDLGNBQWN6QyxFQUFLUyxLQUFLMkIsRUFBUyxRQUFTOUIsR0FDN0NQLEVBQUcwQyxjQUFjekMsRUFBS1MsS0FBSzJCLEVBQVMsY0FBZSxvQkFDbkRNLFFBQVFDLEtBQUssR0FBRzFDLDhCQUFtQ0ssS0FDbkRILEVBQVdHLENBQ2IsQ0FBRSxNQUNBLENBRUYsT0FBTyxDQUNULENBRUEsU0FBUytCLEVBQWVoQyxHQUN0QixPQUFPTCxFQUFLUyxLQUFLSixFQUFRSyxJQUFLLFFBQVMsVUFBVyxzQkFDcEQsQ0FDQSxNQUFPLENBQUVrQyxNQTNGWSxDQUNuQkMsZUFBQUEsQ0FBZ0J4QyxHQUNkSCxHQUFhLEVBQ2IsTUFBTUksRUFBT0YsRUFBZ0JDLEdBQ3pCQyxHQUFRQSxJQUFTNkIsRUFBZ0I5QixJQUVyQ2lDLEVBQWlCaEMsRUFBTUQsRUFDekIsRUFDQXlDLGlCQUFBQSxDQUFrQnpDLEdBQ2hCSCxHQUFhLEVBQ2IsTUFBTUksRUFBT0YsRUFBZ0JDLEdBQ3pCQyxHQUFRQSxJQUFTNkIsRUFBZ0I5QixJQUVyQ2lDLEVBQWlCaEMsRUFBTUQsRUFDekIsRUFFQSw0QkFBTTBDLENBQXVCMUMsRUFBa0IyQyxHQUM3QyxJQUFJOUMsRUFFSixJQUNFLE1BQU1JLEVBQU9GLEVBQWdCQyxHQUM3QixHQUFJQyxHQUFRQSxJQUFTNkIsRUFBZ0I5QixHQUFVLE9BRy9DLElBQUtpQyxFQUFpQmhDLEVBQU1ELEdBQVUsT0FHdENxQyxRQUFRQyxLQUFLLEdBQUcxQywwREFDaEJKLEVBQWNvRCxVQUFVLE9BQVEsQ0FBQyxXQUFZLENBQUV2QyxJQUFLTCxFQUFRSyxJQUFLc0MsUUFDakVOLFFBQVFDLEtBQUssR0FBRzFDLDZCQUNsQixDQUFFLE1BQ0EsQ0FFSiJ9

.yarnrc.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ npmPreapprovedPackages:
2020
- '@willbooster/wb'
2121

2222
plugins:
23-
- checksum: ddf08755e338eac5b6a0da27d4ba813a8a3d5dfb1f0f0876c7c5b6406cbd882177d3750da13e0d546d35da3bba82c353801b4f5bfc82763e09071dde0ea2b767
23+
- checksum: d387bf474c315e463ddcbda77aabda9ba0b28ab3723fccccf40a310a3225d073963841bc255b2d2d8de9c1111548a7308b6af27eb31db57c75c4b9cb05aea73e
2424
path: .yarn/plugins/plugin-auto-install.cjs
25-
spec: 'https://github.com/WillBooster/yarn-plugin-auto-install/releases/download/v2.0.5/index.cjs'
25+
spec: 'https://github.com/WillBooster/yarn-plugin-auto-install/releases/download/v2.0.7/index.cjs'
2626

2727
yarnPath: .yarn/releases/yarn-4.12.0.cjs

AGENTS.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
## General Instructions
88

9+
- Do not write tests unless explicitly requested.
910
- After making code changes, run `yarn check-all-for-ai` to execute all tests (note: this may take up to 30 minutes), or run `yarn check-for-ai` for type checking and linting only.
1011
- If you are confident your changes will not break any tests, you may use `check-for-ai`.
1112
- Once you have verified your changes, commit them to the current branch using the `--no-verify` option and push to the current branch.
@@ -18,3 +19,5 @@
1819
- Write comments that explain "why" rather than "what". Avoid explanations that can be understood from the code itself.
1920
- Use stderr for logging debug messages temporarily since stdout output is sometimes omitted.
2021
- When adding new functions or classes, define them below any functions or classes that call them to maintain clear call order.
22+
- Prefer `undefined` over `null` unless explicitly dealing with APIs or libraries that require `null`.
23+
- Always perform existence checks on array due to `noUncheckedIndexedAccess: true`.

0 commit comments

Comments
 (0)