@alpic80/rivet-cli 1.24.0-aidon.9 β 1.24.2-aidon.11
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 +51 -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)}`,
|
|
@@ -158,6 +157,8 @@ export async function serve(cliArgs = {}) {
|
|
|
158
157
|
args.dev && `Dev:${chalk.bold.white(args.dev)}`,
|
|
159
158
|
args.graph && `Graph:${chalk.bold.white(args.graph)}`,
|
|
160
159
|
args.allowSpecifyingGraphId && `AllowSpecifyingGraphId:${chalk.bold.white(args.allowSpecifyingGraphId)}`,
|
|
160
|
+
args.logActivity && `LogActivity:${chalk.bold.white(args.logActivity)}`,
|
|
161
|
+
args.logTrace && `LogTrace:${chalk.bold.white(args.logTrace)}`,
|
|
161
162
|
args.logRequests && `LogRequests:${chalk.bold.white(args.logRequests)}`
|
|
162
163
|
].filter(Boolean).join(', ');
|
|
163
164
|
console.log(chalk.green('Server config,', logInfo));
|
|
@@ -165,16 +166,29 @@ export async function serve(cliArgs = {}) {
|
|
|
165
166
|
app.get('/health', async (c) => c.text('Healthy like Popeye'));
|
|
166
167
|
app.post('/', async (c) => {
|
|
167
168
|
if (args.projectsRootDir) {
|
|
169
|
+
if (args.logActivity) {
|
|
170
|
+
console.error(chalk.red('Status 400 - Configured with projects-root-dir which requires a project file to be specified in URL,'));
|
|
171
|
+
}
|
|
168
172
|
return c.text('Configured with projects-root-dir which requires a project file to be specified in URL', 400);
|
|
169
173
|
}
|
|
174
|
+
// Capture all headers as an object
|
|
175
|
+
const headers = {};
|
|
176
|
+
c.req.raw.headers.forEach((value, key) => {
|
|
177
|
+
headers[key] = value;
|
|
178
|
+
});
|
|
170
179
|
const project = args.dev ? await loadProjectFromFile(projectFilePath) : initialProject;
|
|
171
180
|
const inputText = await c.req.text();
|
|
172
|
-
return await processGraph({ project, inputText });
|
|
181
|
+
return await processGraph({ project, headers, inputText });
|
|
173
182
|
});
|
|
174
183
|
if (args.allowSpecifyingGraphId || args.projectsRootDir) {
|
|
175
184
|
app.post('/*', async (c) => {
|
|
176
185
|
const full = decodeURIComponent(c.req.path.slice(1)); // remove leading slash
|
|
177
|
-
const parts = full.split('
|
|
186
|
+
const parts = full.split(':');
|
|
187
|
+
// Capture all headers as an object
|
|
188
|
+
const headers = {};
|
|
189
|
+
c.req.raw.headers.forEach((value, key) => {
|
|
190
|
+
headers[key] = value;
|
|
191
|
+
});
|
|
178
192
|
let graphId;
|
|
179
193
|
let graphFile;
|
|
180
194
|
if (parts.length === 1) {
|
|
@@ -193,10 +207,16 @@ export async function serve(cliArgs = {}) {
|
|
|
193
207
|
let project;
|
|
194
208
|
if (args.projectsRootDir) {
|
|
195
209
|
if (!graphFile) {
|
|
210
|
+
if (args.logActivity) {
|
|
211
|
+
console.error(chalk.red('Status 400 - A graphFile is required when specifying projects-root-dir,'));
|
|
212
|
+
}
|
|
196
213
|
return c.text('A graphFile is required when specifying projects-root-dir', 400);
|
|
197
214
|
}
|
|
198
215
|
const fileMissing = await testIfMissingFile(path.join(args.projectsRootDir, graphFile));
|
|
199
216
|
if (fileMissing) {
|
|
217
|
+
if (args.logActivity) {
|
|
218
|
+
console.error(chalk.red(`Status 400 - GraphFile ${graphFile} not found in root directory (${args.projectsRootDir})`));
|
|
219
|
+
}
|
|
200
220
|
return c.text(`GraphFile ${graphFile} not found in root directory (${args.projectsRootDir})`, 400);
|
|
201
221
|
}
|
|
202
222
|
project = await loadProjectFromFile(path.join(args.projectsRootDir, graphFile));
|
|
@@ -205,7 +225,7 @@ export async function serve(cliArgs = {}) {
|
|
|
205
225
|
project = args.dev || args.projectsRootDir ? await loadProjectFromFile(projectFilePath) : initialProject;
|
|
206
226
|
}
|
|
207
227
|
const inputText = await c.req.text();
|
|
208
|
-
return await processGraph({ project, inputText, graphId });
|
|
228
|
+
return await processGraph({ project, headers, inputText, graphId });
|
|
209
229
|
});
|
|
210
230
|
}
|
|
211
231
|
const server = serveHono({
|
|
@@ -256,10 +276,13 @@ function createProcessGraph(ctx) {
|
|
|
256
276
|
let inputs = {};
|
|
257
277
|
let runParams = {};
|
|
258
278
|
if (opts.inputText.trim()) {
|
|
279
|
+
console.log(`Parsing input text: ${opts.inputText}`);
|
|
259
280
|
const parsed = JSON.parse(opts.inputText);
|
|
260
281
|
if (typeof parsed !== 'object') {
|
|
261
282
|
throw new Error('Inputs must be an object');
|
|
262
283
|
}
|
|
284
|
+
//pass in the header if needed
|
|
285
|
+
inputs.headers = JSON.stringify(opts.headers);
|
|
263
286
|
if ('runParams' in parsed) {
|
|
264
287
|
runParams = parsed['runParams'];
|
|
265
288
|
delete parsed['runParams'];
|
|
@@ -275,6 +298,7 @@ function createProcessGraph(ctx) {
|
|
|
275
298
|
`Input:${JSON.stringify(inputs)}`,
|
|
276
299
|
localCtx.stream && `Stream:${chalk.bold.white(localCtx.stream)}`,
|
|
277
300
|
localCtx.streamNode && `StreamNode:${chalk.bold.white(localCtx.streamNode)}`,
|
|
301
|
+
localCtx.events && `Events:${chalk.bold.white(localCtx.events)}`,
|
|
278
302
|
localCtx.exposeCost && `ExposeCost:${chalk.bold.white(localCtx.exposeCost)}`,
|
|
279
303
|
localCtx.exposeUsage && `ExposeUsage:${chalk.bold.white(localCtx.exposeUsage)}`,
|
|
280
304
|
localCtx.logTrace && `LogTrace:${chalk.bold.white(localCtx.logTrace)}`
|
|
@@ -328,7 +352,7 @@ const parseStream = (stream) => {
|
|
|
328
352
|
}
|
|
329
353
|
return { start, finish, delta };
|
|
330
354
|
};
|
|
331
|
-
async function streamGraph({ project, inputs, graphId, pluginSettings, openaiApiKey, openaiEndpoint, openaiOrganization, exposeCost, exposeUsage, logActivity, logTrace, stream, streamNode, }) {
|
|
355
|
+
async function streamGraph({ project, inputs, graphId, pluginSettings, openaiApiKey, openaiEndpoint, openaiOrganization, exposeCost, exposeUsage, logActivity, logTrace, stream, streamNode, events }) {
|
|
332
356
|
const { run, processor, getSSEStream } = createProcessor(project, {
|
|
333
357
|
inputs,
|
|
334
358
|
graph: graphId,
|
|
@@ -340,7 +364,7 @@ async function streamGraph({ project, inputs, graphId, pluginSettings, openaiApi
|
|
|
340
364
|
});
|
|
341
365
|
if (streamNode) {
|
|
342
366
|
let sseStream;
|
|
343
|
-
if (exposeCost || exposeUsage) {
|
|
367
|
+
if (exposeCost || exposeUsage || events) {
|
|
344
368
|
const baseOptions = {
|
|
345
369
|
exposeCost,
|
|
346
370
|
exposeUsage,
|
|
@@ -352,6 +376,7 @@ async function streamGraph({ project, inputs, graphId, pluginSettings, openaiApi
|
|
|
352
376
|
...baseOptions,
|
|
353
377
|
partialOutputs: [streamNode],
|
|
354
378
|
nodeFinish: [streamNode],
|
|
379
|
+
userStreamEvents: events
|
|
355
380
|
};
|
|
356
381
|
sseStream = getSingleNodeStream(processor, spec);
|
|
357
382
|
}
|
|
@@ -373,12 +398,13 @@ async function streamGraph({ project, inputs, graphId, pluginSettings, openaiApi
|
|
|
373
398
|
error: logActivity
|
|
374
399
|
};
|
|
375
400
|
const sseStream = getSSEStream(parsed === true
|
|
376
|
-
? { ...baseOptions, nodeStart: true, nodeFinish: true, partialOutputs: true }
|
|
401
|
+
? { ...baseOptions, nodeStart: true, nodeFinish: true, partialOutputs: true, userStreamEvents: events }
|
|
377
402
|
: {
|
|
378
403
|
...baseOptions,
|
|
379
404
|
nodeStart: parsed.start,
|
|
380
405
|
nodeFinish: parsed.finish,
|
|
381
|
-
partialOutputs: parsed.delta
|
|
406
|
+
partialOutputs: parsed.delta,
|
|
407
|
+
userStreamEvents: events
|
|
382
408
|
});
|
|
383
409
|
run().catch((err) => {
|
|
384
410
|
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.11",
|
|
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.11",
|
|
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.11",
|
|
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",
|