Skip to content

Commit 53655fc

Browse files
committed
Publish the online agentic coding walkthrough
0 parents  commit 53655fc

75 files changed

Lines changed: 4543 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.gitattributes‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Keep teaching inputs and their recorded checksums consistent across platforms.
2+
* text=auto eol=lf
3+
*.png binary
4+
*.jpg binary
5+
*.woff binary
6+
*.woff2 binary

‎.github/workflows/pages.yml‎

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
name: Documentation site
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
workflow_dispatch:
9+
10+
permissions:
11+
contents: read
12+
13+
concurrency:
14+
group: pages-${{ github.ref }}
15+
cancel-in-progress: true
16+
17+
jobs:
18+
build:
19+
runs-on: ubuntu-latest
20+
steps:
21+
- uses: actions/checkout@v6
22+
- name: Set up Ruby
23+
uses: ruby/setup-ruby@v1
24+
with:
25+
ruby-version: "3.3"
26+
bundler-cache: true
27+
- name: Build documentation
28+
run: bundle exec jekyll build --strict_front_matter --trace
29+
env:
30+
JEKYLL_ENV: production
31+
- name: Check rendered links
32+
run: python3 scripts/py/check_site.py _site
33+
- name: Upload Pages artifact
34+
if: github.event_name != 'pull_request' && github.ref == format('refs/heads/{0}', github.event.repository.default_branch)
35+
uses: actions/upload-pages-artifact@v4
36+
37+
deploy:
38+
if: github.event_name != 'pull_request' && github.ref == format('refs/heads/{0}', github.event.repository.default_branch)
39+
needs: build
40+
runs-on: ubuntu-latest
41+
permissions:
42+
pages: write
43+
id-token: write
44+
environment:
45+
name: github-pages
46+
url: ${{ steps.deployment.outputs.page_url }}
47+
steps:
48+
- name: Configure Pages
49+
uses: actions/configure-pages@v6
50+
- name: Deploy documentation
51+
id: deployment
52+
uses: actions/deploy-pages@v5

‎.github/workflows/slides.yml‎

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: Workshop slides
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
workflow_dispatch:
9+
10+
permissions:
11+
contents: read
12+
13+
jobs:
14+
render:
15+
runs-on: ubuntu-latest
16+
steps:
17+
- uses: actions/checkout@v6
18+
- uses: quarto-dev/quarto-actions/setup@v2
19+
with:
20+
version: "1.8.26"
21+
- name: Render workshop slides
22+
run: quarto render docs/lab_meeting/slide_deck.qmd

‎.gitignore‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
_site/
2+
.jekyll-cache/
3+
.jekyll-metadata
4+
.bundle/
5+
vendor/bundle/
6+
docs/lab_meeting/slide_deck.html
7+
docs/lab_meeting/slide_deck_files/
8+
.quarto/
9+
__pycache__/
10+
*.py[cod]
11+
tmp/
12+
*.log
13+
.DS_Store
14+
Thumbs.db
15+
.vscode/
16+
.idea/
17+
*.swp
18+
*.swo
19+
*~
20+
.env
21+
.env.*

‎.ruby-version‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
3.3

‎AGENTS.md‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# AGENTS.md
2+
3+
This repository contains the online guide. The runnable exercise is at https://github.com/ilarsf/practical-genai-agentic-coding-example.
4+
5+
Read README.md and the relevant lesson before editing. Keep the two language paths, relative links, lab theme, and Part 1 navigation intact. Use synthetic examples and copyable fenced prompts. Check provider claims against their official sources and preserve source review dates.
6+
7+
Validate changes with `bundle exec jekyll build --strict_front_matter` and `python3 scripts/py/check_site.py _site`. Keep rendered output, dependencies, caches, and personal settings out of commits.

‎CITATION.cff‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
cff-version: 1.2.0
2+
message: "If you use this teaching guide or its examples, please cite this repository."
3+
title: "Practical GenAI Agentic Coding Guide: From a reviewed task to a reproducible research repository"
4+
abstract: "Part 2 of the Fritsche Lab Practical GenAI series: a hands-on guide to repository context, provider setup, bounded agent tasks, independent verification, and reproducible synthetic research pipelines."
5+
authors:
6+
- family-names: "Fritsche"
7+
given-names: "Lars G."
8+
affiliation: "University of Michigan"
9+
website: "https://fritschelab.org/"
10+
repository-code: "https://github.com/ilarsf/practical-genai-agentic-coding-guide"
11+
url: "https://ilarsf.github.io/practical-genai-agentic-coding-guide/"
12+
license: "GPL-3.0-only"
13+
keywords:
14+
- "agentic coding"
15+
- "generative AI"
16+
- "reproducible research"
17+
- "research software"
18+
- "teaching"

‎Gemfile‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
source "https://rubygems.org"
2+
3+
gem "jekyll", "~> 4.4.1"
4+
gem "just-the-docs", "0.12.0"
5+
gem "jekyll-relative-links"

‎Gemfile.lock‎

Lines changed: 249 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,249 @@
1+
GEM
2+
remote: https://rubygems.org/
3+
specs:
4+
addressable (2.9.0)
5+
public_suffix (>= 2.0.2, < 8.0)
6+
base64 (0.3.0)
7+
bigdecimal (4.1.2)
8+
colorator (1.1.0)
9+
concurrent-ruby (1.3.6)
10+
csv (3.3.5)
11+
em-websocket (0.5.3)
12+
eventmachine (>= 0.12.9)
13+
http_parser.rb (~> 0)
14+
eventmachine (1.2.7)
15+
ffi (1.17.4)
16+
ffi (1.17.4-aarch64-linux-gnu)
17+
ffi (1.17.4-aarch64-linux-musl)
18+
ffi (1.17.4-arm-linux-gnu)
19+
ffi (1.17.4-arm-linux-musl)
20+
ffi (1.17.4-arm64-darwin)
21+
ffi (1.17.4-x86-linux-gnu)
22+
ffi (1.17.4-x86-linux-musl)
23+
ffi (1.17.4-x86_64-darwin)
24+
ffi (1.17.4-x86_64-linux-gnu)
25+
ffi (1.17.4-x86_64-linux-musl)
26+
forwardable-extended (2.6.0)
27+
google-protobuf (4.35.0)
28+
bigdecimal
29+
rake (~> 13.3)
30+
google-protobuf (4.35.0-aarch64-linux-gnu)
31+
bigdecimal
32+
rake (~> 13.3)
33+
google-protobuf (4.35.0-aarch64-linux-musl)
34+
bigdecimal
35+
rake (~> 13.3)
36+
google-protobuf (4.35.0-arm64-darwin)
37+
bigdecimal
38+
rake (~> 13.3)
39+
google-protobuf (4.35.0-x86-linux-gnu)
40+
bigdecimal
41+
rake (~> 13.3)
42+
google-protobuf (4.35.0-x86-linux-musl)
43+
bigdecimal
44+
rake (~> 13.3)
45+
google-protobuf (4.35.0-x86_64-darwin)
46+
bigdecimal
47+
rake (~> 13.3)
48+
google-protobuf (4.35.0-x86_64-linux-gnu)
49+
bigdecimal
50+
rake (~> 13.3)
51+
google-protobuf (4.35.0-x86_64-linux-musl)
52+
bigdecimal
53+
rake (~> 13.3)
54+
http_parser.rb (0.8.1)
55+
i18n (1.14.8)
56+
concurrent-ruby (~> 1.0)
57+
jekyll (4.4.1)
58+
addressable (~> 2.4)
59+
base64 (~> 0.2)
60+
colorator (~> 1.0)
61+
csv (~> 3.0)
62+
em-websocket (~> 0.5)
63+
i18n (~> 1.0)
64+
jekyll-sass-converter (>= 2.0, < 4.0)
65+
jekyll-watch (~> 2.0)
66+
json (~> 2.6)
67+
kramdown (~> 2.3, >= 2.3.1)
68+
kramdown-parser-gfm (~> 1.0)
69+
liquid (~> 4.0)
70+
mercenary (~> 0.3, >= 0.3.6)
71+
pathutil (~> 0.9)
72+
rouge (>= 3.0, < 5.0)
73+
safe_yaml (~> 1.0)
74+
terminal-table (>= 1.8, < 4.0)
75+
webrick (~> 1.7)
76+
jekyll-include-cache (0.2.1)
77+
jekyll (>= 3.7, < 5.0)
78+
jekyll-relative-links (0.7.0)
79+
jekyll (>= 3.3, < 5.0)
80+
jekyll-sass-converter (3.1.0)
81+
sass-embedded (~> 1.75)
82+
jekyll-seo-tag (2.9.0)
83+
jekyll (>= 3.8, < 5.0)
84+
jekyll-watch (2.2.1)
85+
listen (~> 3.0)
86+
json (2.19.5)
87+
just-the-docs (0.12.0)
88+
jekyll (>= 3.8.5)
89+
jekyll-include-cache
90+
jekyll-seo-tag (>= 2.0)
91+
rake (>= 12.3.1)
92+
kramdown (2.5.2)
93+
rexml (>= 3.4.4)
94+
kramdown-parser-gfm (1.1.0)
95+
kramdown (~> 2.0)
96+
liquid (4.0.4)
97+
listen (3.10.0)
98+
logger
99+
rb-fsevent (~> 0.10, >= 0.10.3)
100+
rb-inotify (~> 0.9, >= 0.9.10)
101+
logger (1.7.0)
102+
mercenary (0.4.0)
103+
pathutil (0.16.2)
104+
forwardable-extended (~> 2.6)
105+
public_suffix (7.0.5)
106+
rake (13.4.2)
107+
rb-fsevent (0.11.2)
108+
rb-inotify (0.11.1)
109+
ffi (~> 1.0)
110+
rexml (3.4.4)
111+
rouge (4.7.0)
112+
safe_yaml (1.0.5)
113+
sass-embedded (1.100.0)
114+
google-protobuf (~> 4.31)
115+
rake (>= 13)
116+
sass-embedded (1.100.0-aarch64-linux-android)
117+
google-protobuf (~> 4.31)
118+
sass-embedded (1.100.0-aarch64-linux-gnu)
119+
google-protobuf (~> 4.31)
120+
sass-embedded (1.100.0-aarch64-linux-musl)
121+
google-protobuf (~> 4.31)
122+
sass-embedded (1.100.0-arm-linux-androideabi)
123+
google-protobuf (~> 4.31)
124+
sass-embedded (1.100.0-arm-linux-gnueabihf)
125+
google-protobuf (~> 4.31)
126+
sass-embedded (1.100.0-arm-linux-musleabihf)
127+
google-protobuf (~> 4.31)
128+
sass-embedded (1.100.0-arm64-darwin)
129+
google-protobuf (~> 4.31)
130+
sass-embedded (1.100.0-riscv64-linux-android)
131+
google-protobuf (~> 4.31)
132+
sass-embedded (1.100.0-riscv64-linux-gnu)
133+
google-protobuf (~> 4.31)
134+
sass-embedded (1.100.0-riscv64-linux-musl)
135+
google-protobuf (~> 4.31)
136+
sass-embedded (1.100.0-x86_64-darwin)
137+
google-protobuf (~> 4.31)
138+
sass-embedded (1.100.0-x86_64-linux-android)
139+
google-protobuf (~> 4.31)
140+
sass-embedded (1.100.0-x86_64-linux-gnu)
141+
google-protobuf (~> 4.31)
142+
sass-embedded (1.100.0-x86_64-linux-musl)
143+
google-protobuf (~> 4.31)
144+
terminal-table (3.0.2)
145+
unicode-display_width (>= 1.1.1, < 3)
146+
unicode-display_width (2.6.0)
147+
webrick (1.9.2)
148+
149+
PLATFORMS
150+
aarch64-linux-android
151+
aarch64-linux-gnu
152+
aarch64-linux-musl
153+
arm-linux-androideabi
154+
arm-linux-gnu
155+
arm-linux-gnueabihf
156+
arm-linux-musl
157+
arm-linux-musleabihf
158+
arm64-darwin
159+
riscv64-linux-android
160+
riscv64-linux-gnu
161+
riscv64-linux-musl
162+
ruby
163+
x86-linux-gnu
164+
x86-linux-musl
165+
x86_64-darwin
166+
x86_64-linux-android
167+
x86_64-linux-gnu
168+
x86_64-linux-musl
169+
170+
DEPENDENCIES
171+
jekyll (~> 4.4.1)
172+
jekyll-relative-links
173+
just-the-docs (= 0.12.0)
174+
175+
CHECKSUMS
176+
addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af
177+
base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b
178+
bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd
179+
colorator (1.1.0) sha256=e2f85daf57af47d740db2a32191d1bdfb0f6503a0dfbc8327d0c9154d5ddfc38
180+
concurrent-ruby (1.3.6) sha256=6b56837e1e7e5292f9864f34b69c5a2cbc75c0cf5338f1ce9903d10fa762d5ab
181+
csv (3.3.5) sha256=6e5134ac3383ef728b7f02725d9872934f523cb40b961479f69cf3afa6c8e73f
182+
em-websocket (0.5.3) sha256=f56a92bde4e6cb879256d58ee31f124181f68f8887bd14d53d5d9a292758c6a8
183+
eventmachine (1.2.7) sha256=994016e42aa041477ba9cff45cbe50de2047f25dd418eba003e84f0d16560972
184+
ffi (1.17.4) sha256=bcd1642e06f0d16fc9e09ac6d49c3a7298b9789bcb58127302f934e437d60acf
185+
ffi (1.17.4-aarch64-linux-gnu) sha256=b208f06f91ffd8f5e1193da3cae3d2ccfc27fc36fba577baf698d26d91c080df
186+
ffi (1.17.4-aarch64-linux-musl) sha256=9286b7a615f2676245283aef0a0a3b475ae3aae2bb5448baace630bb77b91f39
187+
ffi (1.17.4-arm-linux-gnu) sha256=d6dbddf7cb77bf955411af5f187a65b8cd378cb003c15c05697f5feee1cb1564
188+
ffi (1.17.4-arm-linux-musl) sha256=9d4838ded0465bef6e2426935f6bcc93134b6616785a84ffd2a3d82bc3cf6f95
189+
ffi (1.17.4-arm64-darwin) sha256=19071aaf1419251b0a46852abf960e77330a3b334d13a4ab51d58b31a937001b
190+
ffi (1.17.4-x86-linux-gnu) sha256=38e150df5f4ca555e25beca4090823ae09657bceded154e3c52f8631c1ed72cf
191+
ffi (1.17.4-x86-linux-musl) sha256=fbeec0fc7c795bcf86f623bb18d31ea1820f7bd580e1703a3d3740d527437809
192+
ffi (1.17.4-x86_64-darwin) sha256=aa70390523cf3235096cf64962b709b4cfbd5c082a2cb2ae714eb0fe2ccda496
193+
ffi (1.17.4-x86_64-linux-gnu) sha256=9d3db14c2eae074b382fa9c083fe95aec6e0a1451da249eab096c34002bc752d
194+
ffi (1.17.4-x86_64-linux-musl) sha256=3fdf9888483de005f8ef8d1cf2d3b20d86626af206cbf780f6a6a12439a9c49e
195+
forwardable-extended (2.6.0) sha256=1bec948c469bbddfadeb3bd90eb8c85f6e627a412a3e852acfd7eaedbac3ec97
196+
google-protobuf (4.35.0) sha256=95346162c792ed78c9a28cbf2d937a53f706de6df36a27471582f63f03c30c0d
197+
google-protobuf (4.35.0-aarch64-linux-gnu) sha256=2cabd61b420918aec1564f9f7414e455bf922d20c5f8139d62783df5558a7aea
198+
google-protobuf (4.35.0-aarch64-linux-musl) sha256=f6b11f3420a4564f68e8233c95eac6924f6a727dfc2f81a56af2e09add551501
199+
google-protobuf (4.35.0-arm64-darwin) sha256=66ab26d3fc82b8950702e53ab16c198e3c0ea3f2a38aaaf1f32152da45593ac5
200+
google-protobuf (4.35.0-x86-linux-gnu) sha256=7a5b5681c7d7bf28e1a6e285e45bf55c4ef47b7b1ca8af6ff79964255efece9a
201+
google-protobuf (4.35.0-x86-linux-musl) sha256=f481b63b176c0335db8b50e46f033c0956857a599d9feafdd891a5c18ce28d43
202+
google-protobuf (4.35.0-x86_64-darwin) sha256=05eb5c8bc9899135befff496fc0a3642e7ff3d0943f043841dcc456f5654fea0
203+
google-protobuf (4.35.0-x86_64-linux-gnu) sha256=999226f3b00cd9fddb1b26851d16060212fa1d90c406aaad47e574682b716059
204+
google-protobuf (4.35.0-x86_64-linux-musl) sha256=be0218520d77b2aee898b363514b03819f6f63f9c041ae0d0d79b4ce5247bffd
205+
http_parser.rb (0.8.1) sha256=9ae8df145b39aa5398b2f90090d651c67bd8e2ebfe4507c966579f641e11097a
206+
i18n (1.14.8) sha256=285778639134865c5e0f6269e0b818256017e8cde89993fdfcbfb64d088824a5
207+
jekyll (4.4.1) sha256=4c1144d857a5b2b80d45b8cf5138289579a9f8136aadfa6dd684b31fe2bc18c1
208+
jekyll-include-cache (0.2.1) sha256=c7d4b9e551732a27442cb2ce853ba36a2f69c66603694b8c1184c99ab1a1a205
209+
jekyll-relative-links (0.7.0) sha256=831e54c348eeae751845c0d4ac4b244bd73b664341f0e8c9f1803b16f4570835
210+
jekyll-sass-converter (3.1.0) sha256=83925d84f1d134410c11d0c6643b0093e82e3a3cf127e90757a85294a3862443
211+
jekyll-seo-tag (2.9.0) sha256=0260015a8e1df9bf195cdfb0c675b7b2883fd8cbf12556e1c1cbe36a831c6852
212+
jekyll-watch (2.2.1) sha256=bc44ed43f5e0a552836245a54dbff3ea7421ecc2856707e8a1ee203a8387a7e1
213+
json (2.19.5) sha256=218a18553e4801d579ca7e0f5bc72bafd776d7397238a1fb4e74db5b0a812c59
214+
just-the-docs (0.12.0) sha256=15f2839ac9082898d60f33b978aa6f8e46fc50ba8fac20ae7a7f0e1fb295523e
215+
kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa
216+
kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729
217+
liquid (4.0.4) sha256=4fcfebb1a045e47918388dbb7a0925e7c3893e58d2bd6c3b3c73ec17a2d8fdb3
218+
listen (3.10.0) sha256=c6e182db62143aeccc2e1960033bebe7445309c7272061979bb098d03760c9d2
219+
logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
220+
mercenary (0.4.0) sha256=b25a1e4a59adca88665e08e24acf0af30da5b5d859f7d8f38fba52c28f405138
221+
pathutil (0.16.2) sha256=e43b74365631cab4f6d5e4228f812927efc9cb2c71e62976edcb252ee948d589
222+
public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623
223+
rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701
224+
rb-fsevent (0.11.2) sha256=43900b972e7301d6570f64b850a5aa67833ee7d87b458ee92805d56b7318aefe
225+
rb-inotify (0.11.1) sha256=a0a700441239b0ff18eb65e3866236cd78613d6b9f78fea1f9ac47a85e47be6e
226+
rexml (3.4.4) sha256=19e0a2c3425dfbf2d4fc1189747bdb2f849b6c5e74180401b15734bc97b5d142
227+
rouge (4.7.0) sha256=dba5896715c0325c362e895460a6d350803dbf6427454f49a47500f3193ea739
228+
safe_yaml (1.0.5) sha256=a6ac2d64b7eb027bdeeca1851fe7e7af0d668e133e8a88066a0c6f7087d9f848
229+
sass-embedded (1.100.0) sha256=b7d4831f304be5ba8717b2a1307644164b63dc158113a67f469e90578d3fc092
230+
sass-embedded (1.100.0-aarch64-linux-android) sha256=9603e1c26bea0396e849e3c3bb75b6843a43bae7a32c580084fd6c64260d9ef8
231+
sass-embedded (1.100.0-aarch64-linux-gnu) sha256=c13187f8eaae7e7e64246b18eb896534a84465a17198829ef65730db4662860e
232+
sass-embedded (1.100.0-aarch64-linux-musl) sha256=1b0945a66cd4e40f505db73b1e790e2561e07e6d9fd04ef6ebbf279835666b3f
233+
sass-embedded (1.100.0-arm-linux-androideabi) sha256=9948122504b69e20dc82a3b8fc20b3a61ea58a4713a713f64630b4c9a36f11e1
234+
sass-embedded (1.100.0-arm-linux-gnueabihf) sha256=a2de272bb02977ea91acaf3fecb6d8e09e4989501efbfc5375da4b5e7bff001d
235+
sass-embedded (1.100.0-arm-linux-musleabihf) sha256=ce19837c10bab5ae6785f10b435a57a64ca027a99875cd701dc6fd3af317cbe5
236+
sass-embedded (1.100.0-arm64-darwin) sha256=d294b32c3b7bed293ad39bd392713c07f1df5454e65fa0f8d80dadbdba8a0cf4
237+
sass-embedded (1.100.0-riscv64-linux-android) sha256=148669225f027eeedea0a27e474dc69448567c030c56792114894f55a68af38e
238+
sass-embedded (1.100.0-riscv64-linux-gnu) sha256=880ff1fca280b45b4d223366606aa634177adf38e793ad521426be7ad70a1ef2
239+
sass-embedded (1.100.0-riscv64-linux-musl) sha256=a8568d17343dcf0278d48b2efb4b3490ebe3ba0279ec4d69753e8ce4fd0614fa
240+
sass-embedded (1.100.0-x86_64-darwin) sha256=3db80c837a60712de3461d5aa1be43c7056a0584d7182a8ae7a8996d64ab46d3
241+
sass-embedded (1.100.0-x86_64-linux-android) sha256=1600dbddf82c83344a5bc2a5e163081efdf15661f782922603574328888cd2cc
242+
sass-embedded (1.100.0-x86_64-linux-gnu) sha256=58dd0a8a4f0dd78881b90d8b0e4d0eed042d54865b19b71384d91091ade93e18
243+
sass-embedded (1.100.0-x86_64-linux-musl) sha256=03dbee81bf93e770c725caf0c895e04c7b049ebef56b8a7002fcf21e6bedf7c5
244+
terminal-table (3.0.2) sha256=f951b6af5f3e00203fb290a669e0a85c5dd5b051b3b023392ccfd67ba5abae91
245+
unicode-display_width (2.6.0) sha256=12279874bba6d5e4d2728cef814b19197dbb10d7a7837a869bab65da943b7f5a
246+
webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131
247+
248+
BUNDLED WITH
249+
4.0.9

0 commit comments

Comments
 (0)