@alpic80/rivet-cli 1.24.0-aidon.9 β 1.24.2-aidon.10
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/README.md +9 -6
- package/bin/cli.js +0 -1
- package/bin/commands/serve.js +49 -25
- package/dist/types/commands/run.d.ts +2 -2
- package/dist/types/commands/serve.d.ts +11 -8
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -117,57 +117,60 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
|
|
|
117
117
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/gogwilt"><img src="https://avatars.githubusercontent.com/u/448108?v=4?s=100" width="100px;" alt="Cai GoGwilt"/><br /><sub><b>Cai GoGwilt</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/commits?author=gogwilt" title="Code">π»</a> <a href="#business-gogwilt" title="Business development">πΌ</a> <a href="#ideas-gogwilt" title="Ideas, Planning, & Feedback">π€</a> <a href="#maintenance-gogwilt" title="Maintenance">π§</a> <a href="#promotion-gogwilt" title="Promotion">π£</a> <a href="https://github.com/Ironclad/rivet/pulls?q=is%3Apr+reviewed-by%3Agogwilt" title="Reviewed Pull Requests">π</a> <a href="https://github.com/Ironclad/rivet/issues?q=author%3Agogwilt" title="Bug reports">π</a></td>
|
|
118
118
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/teddycoleman"><img src="https://avatars.githubusercontent.com/u/15386324?v=4?s=100" width="100px;" alt="Teddy Coleman"/><br /><sub><b>Teddy Coleman</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/commits?author=teddycoleman" title="Code">π»</a> <a href="https://github.com/Ironclad/rivet/issues?q=author%3Ateddycoleman" title="Bug reports">π</a></td>
|
|
119
119
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/tberman"><img src="https://avatars.githubusercontent.com/u/183738?v=4?s=100" width="100px;" alt="Todd Berman"/><br /><sub><b>Todd Berman</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/commits?author=tberman" title="Code">π»</a> <a href="https://github.com/Ironclad/rivet/issues?q=author%3Atberman" title="Bug reports">π</a></td>
|
|
120
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/AryamanAgrawal"><img src="https://avatars.githubusercontent.com/u/107009412?v=4?s=100" width="100px;" alt="Aryaman Agrawal"/><br /><sub><b>Aryaman Agrawal</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/commits?author=AryamanAgrawalIronclad" title="Code">π»</a> <a href="https://github.com/Ironclad/rivet/commits?author=AryamanAgrawalIronclad" title="Documentation">π</a> <a href="#ideas-AryamanAgrawalIronclad" title="Ideas, Planning, & Feedback">π€</a> <a href="#promotion-AryamanAgrawalIronclad" title="Promotion">π£</a> <a href="https://github.com/Ironclad/rivet/issues?q=author%3AAryamanAgrawalIronclad" title="Bug reports">π</a></td>
|
|
120
121
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/a-rothwell"><img src="https://avatars.githubusercontent.com/u/12634659?v=4?s=100" width="100px;" alt="Andrew Rothwell"/><br /><sub><b>Andrew Rothwell</b></sub></a><br /><a href="#tutorial-a-rothwell" title="Tutorials">β
</a> <a href="https://github.com/Ironclad/rivet/commits?author=a-rothwell" title="Documentation">π</a> <a href="https://github.com/Ironclad/rivet/commits?author=a-rothwell" title="Code">π»</a></td>
|
|
121
122
|
<td align="center" valign="top" width="14.28%"><a href="http://twitter.com/dominiccooney"><img src="https://avatars.githubusercontent.com/u/55120?v=4?s=100" width="100px;" alt="Dominic Cooney"/><br /><sub><b>Dominic Cooney</b></sub></a><br /><a href="#ideas-dominiccooney" title="Ideas, Planning, & Feedback">π€</a> <a href="https://github.com/Ironclad/rivet/issues?q=author%3Adominiccooney" title="Bug reports">π</a></td>
|
|
122
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ankrgyl"><img src="https://avatars.githubusercontent.com/u/565363?v=4?s=100" width="100px;" alt="Ankur Goyal"/><br /><sub><b>Ankur Goyal</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/commits?author=ankrgyl" title="Documentation">π</a> <a href="https://github.com/Ironclad/rivet/commits?author=ankrgyl" title="Code">π»</a></td>
|
|
123
123
|
</tr>
|
|
124
124
|
<tr>
|
|
125
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ankrgyl"><img src="https://avatars.githubusercontent.com/u/565363?v=4?s=100" width="100px;" alt="Ankur Goyal"/><br /><sub><b>Ankur Goyal</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/commits?author=ankrgyl" title="Documentation">π</a> <a href="https://github.com/Ironclad/rivet/commits?author=ankrgyl" title="Code">π»</a></td>
|
|
125
126
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/scottbessler"><img src="https://avatars.githubusercontent.com/u/293802?v=4?s=100" width="100px;" alt="Scott Bessler"/><br /><sub><b>Scott Bessler</b></sub></a><br /><a href="#example-scottbessler" title="Examples">π‘</a> <a href="https://github.com/Ironclad/rivet/commits?author=scottbessler" title="Code">π»</a> <a href="https://github.com/Ironclad/rivet/issues?q=author%3Ascottbessler" title="Bug reports">π</a></td>
|
|
126
127
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/meeow"><img src="https://avatars.githubusercontent.com/u/18222559?v=4?s=100" width="100px;" alt="Brandon Hong"/><br /><sub><b>Brandon Hong</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/commits?author=meeow" title="Code">π»</a> <a href="https://github.com/Ironclad/rivet/issues?q=author%3Ameeow" title="Bug reports">π</a></td>
|
|
127
128
|
<td align="center" valign="top" width="14.28%"><a href="https://swimburger.net"><img src="https://avatars.githubusercontent.com/u/3382717?v=4?s=100" width="100px;" alt="Niels Swimberghe"/><br /><sub><b>Niels Swimberghe</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/commits?author=Swimburger" title="Code">π»</a> <a href="https://github.com/Ironclad/rivet/commits?author=Swimburger" title="Documentation">π</a> <a href="https://github.com/Ironclad/rivet/issues?q=author%3ASwimburger" title="Bug reports">π</a></td>
|
|
128
129
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/tcgj"><img src="https://avatars.githubusercontent.com/u/7994529?v=4?s=100" width="100px;" alt="Terence C"/><br /><sub><b>Terence C</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/commits?author=tcgj" title="Code">π»</a></td>
|
|
129
130
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/tbrodahl-ironclad"><img src="https://avatars.githubusercontent.com/u/142630410?v=4?s=100" width="100px;" alt="Thomas Brodahl"/><br /><sub><b>Thomas Brodahl</b></sub></a><br /><a href="#design-tbrodahl-ironclad" title="Design">π¨</a></td>
|
|
130
131
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Jkwok0714"><img src="https://avatars.githubusercontent.com/u/28716303?v=4?s=100" width="100px;" alt="Justin Kwok"/><br /><sub><b>Justin Kwok</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/issues?q=author%3AJkwok0714" title="Bug reports">π</a></td>
|
|
131
|
-
<td align="center" valign="top" width="14.28%"><a href="https://meebleforp.com/"><img src="https://avatars.githubusercontent.com/u/445650?v=4?s=100" width="100px;" alt="Zhang Yi Jiang"/><br /><sub><b>Zhang Yi Jiang</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/commits?author=ZhangYiJiang" title="Documentation">π</a></td>
|
|
132
132
|
</tr>
|
|
133
133
|
<tr>
|
|
134
|
+
<td align="center" valign="top" width="14.28%"><a href="https://meebleforp.com/"><img src="https://avatars.githubusercontent.com/u/445650?v=4?s=100" width="100px;" alt="Zhang Yi Jiang"/><br /><sub><b>Zhang Yi Jiang</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/commits?author=ZhangYiJiang" title="Documentation">π</a></td>
|
|
134
135
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Crystalix007"><img src="https://avatars.githubusercontent.com/u/4603729?v=4?s=100" width="100px;" alt="Michael Kuc"/><br /><sub><b>Michael Kuc</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/commits?author=Crystalix007" title="Code">π»</a></td>
|
|
135
136
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/eltociear"><img src="https://avatars.githubusercontent.com/u/22633385?v=4?s=100" width="100px;" alt="Ikko Eltociear Ashimine"/><br /><sub><b>Ikko Eltociear Ashimine</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/commits?author=eltociear" title="Documentation">π</a></td>
|
|
136
137
|
<td align="center" valign="top" width="14.28%"><a href="http://ohshutit.com"><img src="https://avatars.githubusercontent.com/u/54246375?v=4?s=100" width="100px;" alt="HU$H"/><br /><sub><b>HU$H</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/commits?author=hushaudio" title="Code">π»</a> <a href="#ideas-hushaudio" title="Ideas, Planning, & Feedback">π€</a></td>
|
|
137
138
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/kcwhite"><img src="https://avatars.githubusercontent.com/u/3812801?v=4?s=100" width="100px;" alt="kcwhite"/><br /><sub><b>kcwhite</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/commits?author=kcwhite" title="Documentation">π</a></td>
|
|
138
139
|
<td align="center" valign="top" width="14.28%"><a href="https://gentrace.ai"><img src="https://avatars.githubusercontent.com/u/1203039?v=4?s=100" width="100px;" alt="Vivek Nair"/><br /><sub><b>Vivek Nair</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/commits?author=viveknair" title="Code">π»</a> <a href="https://github.com/Ironclad/rivet/commits?author=viveknair" title="Documentation">π</a> <a href="https://github.com/Ironclad/rivet/issues?q=author%3Aviveknair" title="Bug reports">π</a></td>
|
|
139
140
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/CongYun22"><img src="https://avatars.githubusercontent.com/u/115971962?v=4?s=100" width="100px;" alt="δΈδΊ"/><br /><sub><b>δΈδΊ</b></sub></a><br /><a href="#ideas-CongYun22" title="Ideas, Planning, & Feedback">π€</a></td>
|
|
140
|
-
<td align="center" valign="top" width="14.28%"><a href="https://www.linkedin.com/in/vianneystroebel/"><img src="https://avatars.githubusercontent.com/u/628818?v=4?s=100" width="100px;" alt="Vianney Stroebel"/><br /><sub><b>Vianney Stroebel</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/issues?q=author%3Avibl" title="Bug reports">π</a></td>
|
|
141
141
|
</tr>
|
|
142
142
|
<tr>
|
|
143
|
+
<td align="center" valign="top" width="14.28%"><a href="https://www.linkedin.com/in/vianneystroebel/"><img src="https://avatars.githubusercontent.com/u/628818?v=4?s=100" width="100px;" alt="Vianney Stroebel"/><br /><sub><b>Vianney Stroebel</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/issues?q=author%3Avibl" title="Bug reports">π</a></td>
|
|
143
144
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/advisely"><img src="https://avatars.githubusercontent.com/u/29242247?v=4?s=100" width="100px;" alt="HumanBot"/><br /><sub><b>HumanBot</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/issues?q=author%3Aadvisely" title="Bug reports">π</a></td>
|
|
144
145
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/bradstallion"><img src="https://avatars.githubusercontent.com/u/37795833?v=4?s=100" width="100px;" alt="bradstallion"/><br /><sub><b>bradstallion</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/issues?q=author%3Abradstallion" title="Bug reports">π</a></td>
|
|
145
146
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Wannabeasmartguy"><img src="https://avatars.githubusercontent.com/u/107250451?v=4?s=100" width="100px;" alt="Wannabeasmartguy"/><br /><sub><b>Wannabeasmartguy</b></sub></a><br /><a href="#ideas-Wannabeasmartguy" title="Ideas, Planning, & Feedback">π€</a></td>
|
|
146
147
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mhamadeus"><img src="https://avatars.githubusercontent.com/u/77891233?v=4?s=100" width="100px;" alt="mhamadeus"/><br /><sub><b>mhamadeus</b></sub></a><br /><a href="#ideas-mhamadeus" title="Ideas, Planning, & Feedback">π€</a></td>
|
|
147
148
|
<td align="center" valign="top" width="14.28%"><a href="https://www.linkedin.com/in/moalturfi/"><img src="https://avatars.githubusercontent.com/u/71999644?v=4?s=100" width="100px;" alt="Mohamed Alturfi"/><br /><sub><b>Mohamed Alturfi</b></sub></a><br /><a href="#maintenance-altaiiiir" title="Maintenance">π§</a></td>
|
|
148
149
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/kojikeneda"><img src="https://avatars.githubusercontent.com/u/2552616?v=4?s=100" width="100px;" alt="kojikeneda"/><br /><sub><b>kojikeneda</b></sub></a><br /><a href="#ideas-kojikeneda" title="Ideas, Planning, & Feedback">π€</a></td>
|
|
149
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Sandesh-Pyakurel"><img src="https://avatars.githubusercontent.com/u/82999440?v=4?s=100" width="100px;" alt="Sandesh Pyakurel"/><br /><sub><b>Sandesh Pyakurel</b></sub></a><br /><a href="#maintenance-Sandesh-Pyakurel" title="Maintenance">π§</a></td>
|
|
150
150
|
</tr>
|
|
151
151
|
<tr>
|
|
152
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Sandesh-Pyakurel"><img src="https://avatars.githubusercontent.com/u/82999440?v=4?s=100" width="100px;" alt="Sandesh Pyakurel"/><br /><sub><b>Sandesh Pyakurel</b></sub></a><br /><a href="#maintenance-Sandesh-Pyakurel" title="Maintenance">π§</a></td>
|
|
152
153
|
<td align="center" valign="top" width="14.28%"><a href="http://www.linkedin.com/in/jasonlgill"><img src="https://avatars.githubusercontent.com/u/241711?v=4?s=100" width="100px;" alt="Jason Gill"/><br /><sub><b>Jason Gill</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/issues?q=author%3Ajasongill" title="Bug reports">π</a></td>
|
|
153
154
|
<td align="center" valign="top" width="14.28%"><a href="https://andriydruk.com"><img src="https://avatars.githubusercontent.com/u/1927559?v=4?s=100" width="100px;" alt="Andriy Druk"/><br /><sub><b>Andriy Druk</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/issues?q=author%3Aandriydruk" title="Bug reports">π</a></td>
|
|
154
155
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/bardia-pourvakil"><img src="https://avatars.githubusercontent.com/u/132475166?v=4?s=100" width="100px;" alt="bardia-pourvakil"/><br /><sub><b>bardia-pourvakil</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/commits?author=bardia-pourvakil" title="Documentation">π</a></td>
|
|
155
156
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Cinerar"><img src="https://avatars.githubusercontent.com/u/120550?v=4?s=100" width="100px;" alt="Cinerar"/><br /><sub><b>Cinerar</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/commits?author=Cinerar" title="Documentation">π</a></td>
|
|
156
157
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/vpckso"><img src="https://avatars.githubusercontent.com/u/40294053?v=4?s=100" width="100px;" alt="Kit"/><br /><sub><b>Kit</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/commits?author=vpckso" title="Code">π»</a></td>
|
|
157
158
|
<td align="center" valign="top" width="14.28%"><a href="https://reactgular.com"><img src="https://avatars.githubusercontent.com/u/50146659?v=4?s=100" width="100px;" alt="Nick Foscarini"/><br /><sub><b>Nick Foscarini</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/commits?author=codemile" title="Code">π»</a> <a href="https://github.com/Ironclad/rivet/commits?author=codemile" title="Documentation">π</a></td>
|
|
158
|
-
<td align="center" valign="top" width="14.28%"><a href="https://chang.com"><img src="https://avatars.githubusercontent.com/u/969364?v=4?s=100" width="100px;" alt="Wayne Chang"/><br /><sub><b>Wayne Chang</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/commits?author=wayne-chang" title="Code">π»</a></td>
|
|
159
159
|
</tr>
|
|
160
160
|
<tr>
|
|
161
|
+
<td align="center" valign="top" width="14.28%"><a href="https://chang.com"><img src="https://avatars.githubusercontent.com/u/969364?v=4?s=100" width="100px;" alt="Wayne Chang"/><br /><sub><b>Wayne Chang</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/commits?author=wayne-chang" title="Code">π»</a></td>
|
|
161
162
|
<td align="center" valign="top" width="14.28%"><a href="http://twitter.com/lou7s"><img src="https://avatars.githubusercontent.com/u/35469434?v=4?s=100" width="100px;" alt="loui7"/><br /><sub><b>loui7</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/commits?author=loui7" title="Code">π»</a></td>
|
|
162
163
|
<td align="center" valign="top" width="14.28%"><a href="https://aschen.tech"><img src="https://avatars.githubusercontent.com/u/4447392?v=4?s=100" width="100px;" alt="Adrien Maret"/><br /><sub><b>Adrien Maret</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/commits?author=Aschen" title="Code">π»</a></td>
|
|
163
164
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ShravanSunder"><img src="https://avatars.githubusercontent.com/u/5294949?v=4?s=100" width="100px;" alt="Shravan Sunder"/><br /><sub><b>Shravan Sunder</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/commits?author=ShravanSunder" title="Code">π»</a></td>
|
|
164
165
|
<td align="center" valign="top" width="14.28%"><a href="https://www.liaujianjie.com"><img src="https://avatars.githubusercontent.com/u/3143132?v=4?s=100" width="100px;" alt="Liau Jian Jie"/><br /><sub><b>Liau Jian Jie</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/commits?author=liaujianjie" title="Code">π»</a></td>
|
|
165
166
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/d-debrock"><img src="https://avatars.githubusercontent.com/u/38040249?v=4?s=100" width="100px;" alt="d-debrock"/><br /><sub><b>d-debrock</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/commits?author=d-debrock" title="Code">π»</a></td>
|
|
166
167
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cyppan"><img src="https://avatars.githubusercontent.com/u/1446201?v=4?s=100" width="100px;" alt="Cyprien Pannier"/><br /><sub><b>Cyprien Pannier</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/commits?author=cyppan" title="Code">π»</a></td>
|
|
167
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/StephenGrider"><img src="https://avatars.githubusercontent.com/u/5003903?v=4?s=100" width="100px;" alt="Stephen Grider"/><br /><sub><b>Stephen Grider</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/commits?author=StephenGrider" title="Code">π»</a> <a href="#ideas-StephenGrider" title="Ideas, Planning, & Feedback">π€</a> <a href="#maintenance-StephenGrider" title="Maintenance">π§</a></td>
|
|
168
168
|
</tr>
|
|
169
169
|
<tr>
|
|
170
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/StephenGrider"><img src="https://avatars.githubusercontent.com/u/5003903?v=4?s=100" width="100px;" alt="Stephen Grider"/><br /><sub><b>Stephen Grider</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/commits?author=StephenGrider" title="Code">π»</a> <a href="#ideas-StephenGrider" title="Ideas, Planning, & Feedback">π€</a> <a href="#maintenance-StephenGrider" title="Maintenance">π§</a></td>
|
|
171
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/suhail-ak-s"><img src="https://avatars.githubusercontent.com/u/157091287?v=4?s=100" width="100px;" alt="Suhail AK"/><br /><sub><b>Suhail AK</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/commits?author=suhail-ak-s" title="Code">π»</a></td>
|
|
170
172
|
<td align="center" valign="top" width="14.28%"><a href="http://getenter.ai"><img src="https://avatars.githubusercontent.com/u/65794514?v=4?s=100" width="100px;" alt="Juliano Amadeu"/><br /><sub><b>Juliano Amadeu</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/commits?author=julianolm" title="Code">π»</a> <a href="#ideas-julianolm" title="Ideas, Planning, & Feedback">π€</a></td>
|
|
173
|
+
<td align="center" valign="top" width="14.28%"><a href="http://valerypopoff.ru"><img src="https://avatars.githubusercontent.com/u/5064630?v=4?s=100" width="100px;" alt="Valera Popov"/><br /><sub><b>Valera Popov</b></sub></a><br /><a href="https://github.com/Ironclad/rivet/commits?author=valerypopoff" title="Code">π»</a></td>
|
|
171
174
|
</tr>
|
|
172
175
|
</tbody>
|
|
173
176
|
</table>
|
package/bin/cli.js
CHANGED
|
@@ -3,7 +3,6 @@ import yargs from 'yargs';
|
|
|
3
3
|
import { hideBin } from 'yargs/helpers';
|
|
4
4
|
import { makeCommand as makeRunCommand, run } from './commands/run.js';
|
|
5
5
|
import { makeCommand as makeServeCommand, serve } from './commands/serve.js';
|
|
6
|
-
console.log('>>> CLI ENTRY REACHED');
|
|
7
6
|
await yargs(hideBin(process.argv))
|
|
8
7
|
.command('run <projectFile> [graphName]', 'Run a graph in a project file, or the main graph if graphName is not specified.', (y) => makeRunCommand(y), (args) => run(args))
|
|
9
8
|
.command('serve [projectFile]', 'Serve a project file as a REST API.', (y) => makeServeCommand(y), (args) => serve(args))
|
package/bin/commands/serve.js
CHANGED
|
@@ -19,13 +19,11 @@ export function makeCommand(y) {
|
|
|
19
19
|
})
|
|
20
20
|
.option('port', {
|
|
21
21
|
describe: 'The port to serve on',
|
|
22
|
-
type: 'number'
|
|
23
|
-
default: 3000,
|
|
22
|
+
type: 'number'
|
|
24
23
|
})
|
|
25
24
|
.option('dev', {
|
|
26
25
|
describe: 'Run in development mode: rereads the project file on each request',
|
|
27
|
-
type: 'boolean'
|
|
28
|
-
default: false,
|
|
26
|
+
type: 'boolean'
|
|
29
27
|
})
|
|
30
28
|
.option('graph', {
|
|
31
29
|
describe: 'The ID or name of the graph to run. If omitted, the main graph is used.',
|
|
@@ -34,8 +32,7 @@ export function makeCommand(y) {
|
|
|
34
32
|
})
|
|
35
33
|
.option('allow-specifying-graph-id', {
|
|
36
34
|
describe: 'Allow specifying the graph ID in the URL path',
|
|
37
|
-
type: 'boolean'
|
|
38
|
-
default: false,
|
|
35
|
+
type: 'boolean'
|
|
39
36
|
})
|
|
40
37
|
.option('openai-api-key', {
|
|
41
38
|
describe: 'The OpenAI API key to use for the project. If omitted, the environment variable OPENAI_API_KEY is used.',
|
|
@@ -54,13 +51,11 @@ export function makeCommand(y) {
|
|
|
54
51
|
})
|
|
55
52
|
.option('expose-cost', {
|
|
56
53
|
describe: 'Expose the cost of the graph run in the response',
|
|
57
|
-
type: 'boolean'
|
|
58
|
-
default: false,
|
|
54
|
+
type: 'boolean'
|
|
59
55
|
})
|
|
60
56
|
.option('expose-usage', {
|
|
61
57
|
describe: 'Expose the token usage of the graph run in the response',
|
|
62
|
-
type: 'boolean'
|
|
63
|
-
default: false,
|
|
58
|
+
type: 'boolean'
|
|
64
59
|
})
|
|
65
60
|
.option('stream', {
|
|
66
61
|
describe: 'Turns on streaming mode. Rivet events will be sent to the client using SSE (Server-Sent Events). If this is set to a Node ID or node title, only events for that node will be sent.',
|
|
@@ -71,21 +66,23 @@ export function makeCommand(y) {
|
|
|
71
66
|
describe: 'Streams the partial outputs of a specific node. Requires --stream to be set.',
|
|
72
67
|
type: 'string',
|
|
73
68
|
demandOption: false,
|
|
69
|
+
})
|
|
70
|
+
.option('events', {
|
|
71
|
+
describe: 'Turns on listening to events triggered by "Raise Event" nodes. Events will be sent to the client using SSE (Server-Sent Events). Value is a list of event names, only valid with stream option',
|
|
72
|
+
type: 'string',
|
|
73
|
+
demandOption: false,
|
|
74
74
|
})
|
|
75
75
|
.option('log-requests', {
|
|
76
76
|
describe: 'Determines if all requests (except health checks) will be logged via Hono logger',
|
|
77
|
-
type: 'boolean'
|
|
78
|
-
default: false,
|
|
77
|
+
type: 'boolean'
|
|
79
78
|
})
|
|
80
79
|
.option('log-activity', {
|
|
81
80
|
describe: 'Determines if basic activity should be logging during processing',
|
|
82
|
-
type: 'boolean'
|
|
83
|
-
default: false,
|
|
81
|
+
type: 'boolean'
|
|
84
82
|
})
|
|
85
83
|
.option('log-trace', {
|
|
86
84
|
describe: 'Determines if includeTrace should be turned on during graph processing',
|
|
87
|
-
type: 'boolean'
|
|
88
|
-
default: false,
|
|
85
|
+
type: 'boolean'
|
|
89
86
|
})
|
|
90
87
|
.option('projects-root-dir', {
|
|
91
88
|
describe: 'Specifies the root directory where project files are located. If specified, a projectFile argument will be a relative path to this directory',
|
|
@@ -113,8 +110,8 @@ export async function serve(cliArgs = {}) {
|
|
|
113
110
|
debugger;
|
|
114
111
|
const pluginSettings = await setupPlugins(Rivet);
|
|
115
112
|
const args = {
|
|
116
|
-
hostname: cliArgs.hostname ?? process.env.
|
|
117
|
-
port: Number(cliArgs.port ?? process.env.
|
|
113
|
+
hostname: cliArgs.hostname ?? process.env.SERVE_HOSTNAME ?? '127.0.0.1',
|
|
114
|
+
port: Number(cliArgs.port ?? process.env.SERVE_PORT ?? 3000),
|
|
118
115
|
projectFile: cliArgs.projectFile ?? process.env.PROJECT_FILE,
|
|
119
116
|
dev: cliArgs.dev ?? process.env.NODE_ENV === 'development',
|
|
120
117
|
graph: cliArgs.graph ?? process.env.GRAPH,
|
|
@@ -129,6 +126,7 @@ export async function serve(cliArgs = {}) {
|
|
|
129
126
|
logTrace: cliArgs.logTrace ?? (process.env.LOG_TRACE === 'true'),
|
|
130
127
|
stream: cliArgs.stream ?? process.env.STREAM,
|
|
131
128
|
streamNode: cliArgs.streamNode ?? process.env.STREAM_NODE,
|
|
129
|
+
events: cliArgs.events ?? process.env.EVENTS,
|
|
132
130
|
projectsRootDir: cliArgs.projectsRootDir ?? process.env.PROJECTS_ROOT_DIR,
|
|
133
131
|
pluginSettings: pluginSettings,
|
|
134
132
|
};
|
|
@@ -150,6 +148,7 @@ export async function serve(cliArgs = {}) {
|
|
|
150
148
|
throwIfNoMainGraph(initialProject, args.graph, projectFilePath);
|
|
151
149
|
throwIfInvalidGraph(initialProject, args.graph);
|
|
152
150
|
}
|
|
151
|
+
console.log(chalk.green('Server running version 11'));
|
|
153
152
|
if (args.logActivity) {
|
|
154
153
|
const logInfo = [
|
|
155
154
|
args.hostname && `Hostname:${chalk.bold.white(args.hostname)}`,
|
|
@@ -165,16 +164,29 @@ export async function serve(cliArgs = {}) {
|
|
|
165
164
|
app.get('/health', async (c) => c.text('Healthy like Popeye'));
|
|
166
165
|
app.post('/', async (c) => {
|
|
167
166
|
if (args.projectsRootDir) {
|
|
167
|
+
if (args.logActivity) {
|
|
168
|
+
console.error(chalk.red('Status 400 - Configured with projects-root-dir which requires a project file to be specified in URL,'));
|
|
169
|
+
}
|
|
168
170
|
return c.text('Configured with projects-root-dir which requires a project file to be specified in URL', 400);
|
|
169
171
|
}
|
|
172
|
+
// Capture all headers as an object
|
|
173
|
+
const headers = {};
|
|
174
|
+
c.req.raw.headers.forEach((value, key) => {
|
|
175
|
+
headers[key] = value;
|
|
176
|
+
});
|
|
170
177
|
const project = args.dev ? await loadProjectFromFile(projectFilePath) : initialProject;
|
|
171
178
|
const inputText = await c.req.text();
|
|
172
|
-
return await processGraph({ project, inputText });
|
|
179
|
+
return await processGraph({ project, headers, inputText });
|
|
173
180
|
});
|
|
174
181
|
if (args.allowSpecifyingGraphId || args.projectsRootDir) {
|
|
175
182
|
app.post('/*', async (c) => {
|
|
176
183
|
const full = decodeURIComponent(c.req.path.slice(1)); // remove leading slash
|
|
177
|
-
const parts = full.split('
|
|
184
|
+
const parts = full.split(':');
|
|
185
|
+
// Capture all headers as an object
|
|
186
|
+
const headers = {};
|
|
187
|
+
c.req.raw.headers.forEach((value, key) => {
|
|
188
|
+
headers[key] = value;
|
|
189
|
+
});
|
|
178
190
|
let graphId;
|
|
179
191
|
let graphFile;
|
|
180
192
|
if (parts.length === 1) {
|
|
@@ -193,10 +205,16 @@ export async function serve(cliArgs = {}) {
|
|
|
193
205
|
let project;
|
|
194
206
|
if (args.projectsRootDir) {
|
|
195
207
|
if (!graphFile) {
|
|
208
|
+
if (args.logActivity) {
|
|
209
|
+
console.error(chalk.red('Status 400 - A graphFile is required when specifying projects-root-dir,'));
|
|
210
|
+
}
|
|
196
211
|
return c.text('A graphFile is required when specifying projects-root-dir', 400);
|
|
197
212
|
}
|
|
198
213
|
const fileMissing = await testIfMissingFile(path.join(args.projectsRootDir, graphFile));
|
|
199
214
|
if (fileMissing) {
|
|
215
|
+
if (args.logActivity) {
|
|
216
|
+
console.error(chalk.red(`Status 400 - GraphFile ${graphFile} not found in root directory (${args.projectsRootDir})`));
|
|
217
|
+
}
|
|
200
218
|
return c.text(`GraphFile ${graphFile} not found in root directory (${args.projectsRootDir})`, 400);
|
|
201
219
|
}
|
|
202
220
|
project = await loadProjectFromFile(path.join(args.projectsRootDir, graphFile));
|
|
@@ -205,7 +223,7 @@ export async function serve(cliArgs = {}) {
|
|
|
205
223
|
project = args.dev || args.projectsRootDir ? await loadProjectFromFile(projectFilePath) : initialProject;
|
|
206
224
|
}
|
|
207
225
|
const inputText = await c.req.text();
|
|
208
|
-
return await processGraph({ project, inputText, graphId });
|
|
226
|
+
return await processGraph({ project, headers, inputText, graphId });
|
|
209
227
|
});
|
|
210
228
|
}
|
|
211
229
|
const server = serveHono({
|
|
@@ -256,10 +274,13 @@ function createProcessGraph(ctx) {
|
|
|
256
274
|
let inputs = {};
|
|
257
275
|
let runParams = {};
|
|
258
276
|
if (opts.inputText.trim()) {
|
|
277
|
+
console.log(`Parsing input text: ${opts.inputText}`);
|
|
259
278
|
const parsed = JSON.parse(opts.inputText);
|
|
260
279
|
if (typeof parsed !== 'object') {
|
|
261
280
|
throw new Error('Inputs must be an object');
|
|
262
281
|
}
|
|
282
|
+
//pass in the header if needed
|
|
283
|
+
inputs.headers = JSON.stringify(opts.headers);
|
|
263
284
|
if ('runParams' in parsed) {
|
|
264
285
|
runParams = parsed['runParams'];
|
|
265
286
|
delete parsed['runParams'];
|
|
@@ -275,6 +296,7 @@ function createProcessGraph(ctx) {
|
|
|
275
296
|
`Input:${JSON.stringify(inputs)}`,
|
|
276
297
|
localCtx.stream && `Stream:${chalk.bold.white(localCtx.stream)}`,
|
|
277
298
|
localCtx.streamNode && `StreamNode:${chalk.bold.white(localCtx.streamNode)}`,
|
|
299
|
+
localCtx.events && `Events:${chalk.bold.white(localCtx.events)}`,
|
|
278
300
|
localCtx.exposeCost && `ExposeCost:${chalk.bold.white(localCtx.exposeCost)}`,
|
|
279
301
|
localCtx.exposeUsage && `ExposeUsage:${chalk.bold.white(localCtx.exposeUsage)}`,
|
|
280
302
|
localCtx.logTrace && `LogTrace:${chalk.bold.white(localCtx.logTrace)}`
|
|
@@ -328,7 +350,7 @@ const parseStream = (stream) => {
|
|
|
328
350
|
}
|
|
329
351
|
return { start, finish, delta };
|
|
330
352
|
};
|
|
331
|
-
async function streamGraph({ project, inputs, graphId, pluginSettings, openaiApiKey, openaiEndpoint, openaiOrganization, exposeCost, exposeUsage, logActivity, logTrace, stream, streamNode, }) {
|
|
353
|
+
async function streamGraph({ project, inputs, graphId, pluginSettings, openaiApiKey, openaiEndpoint, openaiOrganization, exposeCost, exposeUsage, logActivity, logTrace, stream, streamNode, events }) {
|
|
332
354
|
const { run, processor, getSSEStream } = createProcessor(project, {
|
|
333
355
|
inputs,
|
|
334
356
|
graph: graphId,
|
|
@@ -340,7 +362,7 @@ async function streamGraph({ project, inputs, graphId, pluginSettings, openaiApi
|
|
|
340
362
|
});
|
|
341
363
|
if (streamNode) {
|
|
342
364
|
let sseStream;
|
|
343
|
-
if (exposeCost || exposeUsage) {
|
|
365
|
+
if (exposeCost || exposeUsage || events) {
|
|
344
366
|
const baseOptions = {
|
|
345
367
|
exposeCost,
|
|
346
368
|
exposeUsage,
|
|
@@ -352,6 +374,7 @@ async function streamGraph({ project, inputs, graphId, pluginSettings, openaiApi
|
|
|
352
374
|
...baseOptions,
|
|
353
375
|
partialOutputs: [streamNode],
|
|
354
376
|
nodeFinish: [streamNode],
|
|
377
|
+
userStreamEvents: events
|
|
355
378
|
};
|
|
356
379
|
sseStream = getSingleNodeStream(processor, spec);
|
|
357
380
|
}
|
|
@@ -373,12 +396,13 @@ async function streamGraph({ project, inputs, graphId, pluginSettings, openaiApi
|
|
|
373
396
|
error: logActivity
|
|
374
397
|
};
|
|
375
398
|
const sseStream = getSSEStream(parsed === true
|
|
376
|
-
? { ...baseOptions, nodeStart: true, nodeFinish: true, partialOutputs: true }
|
|
399
|
+
? { ...baseOptions, nodeStart: true, nodeFinish: true, partialOutputs: true, userStreamEvents: events }
|
|
377
400
|
: {
|
|
378
401
|
...baseOptions,
|
|
379
402
|
nodeStart: parsed.start,
|
|
380
403
|
nodeFinish: parsed.finish,
|
|
381
|
-
partialOutputs: parsed.delta
|
|
404
|
+
partialOutputs: parsed.delta,
|
|
405
|
+
userStreamEvents: events
|
|
382
406
|
});
|
|
383
407
|
run().catch((err) => {
|
|
384
408
|
console.error(err);
|
|
@@ -8,9 +8,9 @@ export declare function makeCommand<T>(y: yargs.Argv<T>): yargs.Argv<T & {
|
|
|
8
8
|
} & {
|
|
9
9
|
"include-cost": boolean;
|
|
10
10
|
} & {
|
|
11
|
-
context:
|
|
11
|
+
context: never[] | string[];
|
|
12
12
|
} & {
|
|
13
|
-
input:
|
|
13
|
+
input: never[] | string[];
|
|
14
14
|
}>;
|
|
15
15
|
export declare function run(args: {
|
|
16
16
|
projectFile: string;
|
|
@@ -2,13 +2,13 @@ import type * as yargs from 'yargs';
|
|
|
2
2
|
export declare function makeCommand<T>(y: yargs.Argv<T>): yargs.Argv<T & {
|
|
3
3
|
hostname: string | undefined;
|
|
4
4
|
} & {
|
|
5
|
-
port: number;
|
|
5
|
+
port: number | undefined;
|
|
6
6
|
} & {
|
|
7
|
-
dev: boolean;
|
|
7
|
+
dev: boolean | undefined;
|
|
8
8
|
} & {
|
|
9
9
|
graph: string | undefined;
|
|
10
10
|
} & {
|
|
11
|
-
"allow-specifying-graph-id": boolean;
|
|
11
|
+
"allow-specifying-graph-id": boolean | undefined;
|
|
12
12
|
} & {
|
|
13
13
|
"openai-api-key": string | undefined;
|
|
14
14
|
} & {
|
|
@@ -16,19 +16,21 @@ export declare function makeCommand<T>(y: yargs.Argv<T>): yargs.Argv<T & {
|
|
|
16
16
|
} & {
|
|
17
17
|
"openai-organization": string | undefined;
|
|
18
18
|
} & {
|
|
19
|
-
"expose-cost": boolean;
|
|
19
|
+
"expose-cost": boolean | undefined;
|
|
20
20
|
} & {
|
|
21
|
-
"expose-usage": boolean;
|
|
21
|
+
"expose-usage": boolean | undefined;
|
|
22
22
|
} & {
|
|
23
23
|
stream: string | undefined;
|
|
24
24
|
} & {
|
|
25
25
|
"stream-node": string | undefined;
|
|
26
26
|
} & {
|
|
27
|
-
|
|
27
|
+
events: string | undefined;
|
|
28
|
+
} & {
|
|
29
|
+
"log-requests": boolean | undefined;
|
|
28
30
|
} & {
|
|
29
|
-
"log-activity": boolean;
|
|
31
|
+
"log-activity": boolean | undefined;
|
|
30
32
|
} & {
|
|
31
|
-
"log-trace": boolean;
|
|
33
|
+
"log-trace": boolean | undefined;
|
|
32
34
|
} & {
|
|
33
35
|
"projects-root-dir": string | undefined;
|
|
34
36
|
} & {
|
|
@@ -51,6 +53,7 @@ type ServerContext = {
|
|
|
51
53
|
logTrace: boolean;
|
|
52
54
|
stream: string | undefined;
|
|
53
55
|
streamNode: string | undefined;
|
|
56
|
+
events: string | undefined;
|
|
54
57
|
projectsRootDir: string | undefined;
|
|
55
58
|
pluginSettings?: Record<string, Record<string, unknown>>;
|
|
56
59
|
};
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@alpic80/rivet-cli",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"repository": "https://github.com/castortech/rivet",
|
|
5
|
-
"version": "1.24.
|
|
5
|
+
"version": "1.24.2-aidon.10",
|
|
6
6
|
"src": "bin/cli.ts",
|
|
7
7
|
"bin": {
|
|
8
8
|
"rivet": "bin/cli.js"
|
|
@@ -24,11 +24,11 @@
|
|
|
24
24
|
"dev:serve": "tsx src/cli.ts serve --projects-root-dir C:/temp/aidon/Rivet_Files"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@alpic80/rivet-core": "^1.24.
|
|
28
|
-
"@alpic80/rivet-node": "^1.24.
|
|
27
|
+
"@alpic80/rivet-core": "^1.24.2-aidon.10",
|
|
28
|
+
"@alpic80/rivet-node": "^1.24.2-aidon.9",
|
|
29
29
|
"@hono/node-server": "^1.13.8",
|
|
30
|
-
"@ironclad/rivet-core": "npm:@alpic80/rivet-core@1.24.
|
|
31
|
-
"@ironclad/rivet-node": "npm:@alpic80/rivet-node@1.24.
|
|
30
|
+
"@ironclad/rivet-core": "npm:@alpic80/rivet-core@1.24.2-aidon.10",
|
|
31
|
+
"@ironclad/rivet-node": "npm:@alpic80/rivet-node@1.24.2-aidon.9",
|
|
32
32
|
"@types/dotenv": "^8.2.3",
|
|
33
33
|
"chalk": "^5.4.1",
|
|
34
34
|
"didyoumean2": "^7.0.4",
|