@asterai/cli 0.5.0 → 0.6.1
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 +6 -6
- package/bin/dev.js +0 -0
- package/init/rust/.gitignore +2 -0
- package/init/rust/Cargo.toml +25 -0
- package/init/rust/build.sh +5 -0
- package/init/rust/deploy.sh +7 -0
- package/init/rust/plugin.wit +10 -0
- package/init/rust/src/bindings.rs +685 -0
- package/init/rust/src/lib.rs +16 -0
- package/init/typescript/.gitignore +10 -0
- package/{asterai-init-plugin → init/typescript}/package.json +1 -1
- package/{asterai-init-plugin → init/typescript}/plugin.ts +6 -4
- package/init/typescript/plugin.wit +11 -0
- package/init/typescript/tsconfig.json +8 -0
- package/oclif.manifest.json +1 -1
- package/package.json +20 -15
- package/asterai-init-plugin/plugin.wit +0 -12
- package/asterai-init-plugin/tsconfig.json +0 -11
package/README.md
CHANGED
|
@@ -20,7 +20,7 @@ $ npm install -g @asterai/cli
|
|
|
20
20
|
$ asterai COMMAND
|
|
21
21
|
running command...
|
|
22
22
|
$ asterai (--version)
|
|
23
|
-
@asterai/cli/0.
|
|
23
|
+
@asterai/cli/0.6.1 linux-x64 node-v20.12.2
|
|
24
24
|
$ asterai --help [COMMAND]
|
|
25
25
|
USAGE
|
|
26
26
|
$ asterai COMMAND
|
|
@@ -53,7 +53,7 @@ EXAMPLES
|
|
|
53
53
|
$ asterai auth
|
|
54
54
|
```
|
|
55
55
|
|
|
56
|
-
_See code: [src/commands/auth.ts](https://github.com/asterai-io/asterai-sdk/blob/v0.
|
|
56
|
+
_See code: [src/commands/auth.ts](https://github.com/asterai-io/asterai-sdk/blob/v0.6.1/src/commands/auth.ts)_
|
|
57
57
|
|
|
58
58
|
## `asterai deploy`
|
|
59
59
|
|
|
@@ -77,7 +77,7 @@ EXAMPLES
|
|
|
77
77
|
$ asterai deploy --app 66a46b12-b1a7-4b72-a64a-0e4fe21902b6
|
|
78
78
|
```
|
|
79
79
|
|
|
80
|
-
_See code: [src/commands/deploy.ts](https://github.com/asterai-io/asterai-sdk/blob/v0.
|
|
80
|
+
_See code: [src/commands/deploy.ts](https://github.com/asterai-io/asterai-sdk/blob/v0.6.1/src/commands/deploy.ts)_
|
|
81
81
|
|
|
82
82
|
## `asterai help [COMMAND]`
|
|
83
83
|
|
|
@@ -114,7 +114,7 @@ EXAMPLES
|
|
|
114
114
|
$ asterai init project-name
|
|
115
115
|
```
|
|
116
116
|
|
|
117
|
-
_See code: [src/commands/init.ts](https://github.com/asterai-io/asterai-sdk/blob/v0.
|
|
117
|
+
_See code: [src/commands/init.ts](https://github.com/asterai-io/asterai-sdk/blob/v0.6.1/src/commands/init.ts)_
|
|
118
118
|
|
|
119
119
|
## `asterai pkg [INPUT]`
|
|
120
120
|
|
|
@@ -139,7 +139,7 @@ EXAMPLES
|
|
|
139
139
|
$ asterai pkg
|
|
140
140
|
```
|
|
141
141
|
|
|
142
|
-
_See code: [src/commands/pkg.ts](https://github.com/asterai-io/asterai-sdk/blob/v0.
|
|
142
|
+
_See code: [src/commands/pkg.ts](https://github.com/asterai-io/asterai-sdk/blob/v0.6.1/src/commands/pkg.ts)_
|
|
143
143
|
|
|
144
144
|
## `asterai query`
|
|
145
145
|
|
|
@@ -162,5 +162,5 @@ EXAMPLES
|
|
|
162
162
|
$ asterai query
|
|
163
163
|
```
|
|
164
164
|
|
|
165
|
-
_See code: [src/commands/query.ts](https://github.com/asterai-io/asterai-sdk/blob/v0.
|
|
165
|
+
_See code: [src/commands/query.ts](https://github.com/asterai-io/asterai-sdk/blob/v0.6.1/src/commands/query.ts)_
|
|
166
166
|
<!-- commandsstop -->
|
package/bin/dev.js
CHANGED
|
File without changes
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
[package]
|
|
2
|
+
name = "plugin"
|
|
3
|
+
# Note that this version does not matter for the plugin,
|
|
4
|
+
# only the one in plugin.wit is used.
|
|
5
|
+
version = "0.0.0"
|
|
6
|
+
edition = "2021"
|
|
7
|
+
publish = false
|
|
8
|
+
|
|
9
|
+
[dependencies]
|
|
10
|
+
wit-bindgen-rt = { version = "0.39.0", features = ["bitflags"] }
|
|
11
|
+
|
|
12
|
+
[lib]
|
|
13
|
+
crate-type = ["cdylib"]
|
|
14
|
+
|
|
15
|
+
[profile.release]
|
|
16
|
+
codegen-units = 1
|
|
17
|
+
opt-level = "s"
|
|
18
|
+
debug = false
|
|
19
|
+
strip = true
|
|
20
|
+
lto = true
|
|
21
|
+
|
|
22
|
+
[package.metadata.component]
|
|
23
|
+
package = "your-username:plugin"
|
|
24
|
+
|
|
25
|
+
[package.metadata.component.dependencies]
|
|
@@ -0,0 +1,685 @@
|
|
|
1
|
+
// Generated by `wit-bindgen` 0.36.0. DO NOT EDIT!
|
|
2
|
+
// Options used:
|
|
3
|
+
// * runtime_path: "wit_bindgen_rt"
|
|
4
|
+
#[rustfmt::skip]
|
|
5
|
+
#[allow(dead_code, clippy::all)]
|
|
6
|
+
pub mod asterai {
|
|
7
|
+
pub mod host {
|
|
8
|
+
#[allow(dead_code, clippy::all)]
|
|
9
|
+
pub mod api {
|
|
10
|
+
#[used]
|
|
11
|
+
#[doc(hidden)]
|
|
12
|
+
static __FORCE_SECTION_REF: fn() = super::super::super::__link_custom_section_describing_imports;
|
|
13
|
+
use super::super::super::_rt;
|
|
14
|
+
#[derive(Clone)]
|
|
15
|
+
pub struct EmbeddingSimilarityScore {
|
|
16
|
+
pub score: f32,
|
|
17
|
+
pub payload: _rt::Vec<(_rt::String, _rt::String)>,
|
|
18
|
+
}
|
|
19
|
+
impl ::core::fmt::Debug for EmbeddingSimilarityScore {
|
|
20
|
+
fn fmt(
|
|
21
|
+
&self,
|
|
22
|
+
f: &mut ::core::fmt::Formatter<'_>,
|
|
23
|
+
) -> ::core::fmt::Result {
|
|
24
|
+
f.debug_struct("EmbeddingSimilarityScore")
|
|
25
|
+
.field("score", &self.score)
|
|
26
|
+
.field("payload", &self.payload)
|
|
27
|
+
.finish()
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
#[derive(Clone)]
|
|
31
|
+
pub struct Query {
|
|
32
|
+
pub content: _rt::String,
|
|
33
|
+
pub user_id: Option<_rt::String>,
|
|
34
|
+
}
|
|
35
|
+
impl ::core::fmt::Debug for Query {
|
|
36
|
+
fn fmt(
|
|
37
|
+
&self,
|
|
38
|
+
f: &mut ::core::fmt::Formatter<'_>,
|
|
39
|
+
) -> ::core::fmt::Result {
|
|
40
|
+
f.debug_struct("Query")
|
|
41
|
+
.field("content", &self.content)
|
|
42
|
+
.field("user-id", &self.user_id)
|
|
43
|
+
.finish()
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
#[derive(Clone)]
|
|
47
|
+
pub struct PluginContext {
|
|
48
|
+
pub query: Query,
|
|
49
|
+
pub app_id: _rt::String,
|
|
50
|
+
}
|
|
51
|
+
impl ::core::fmt::Debug for PluginContext {
|
|
52
|
+
fn fmt(
|
|
53
|
+
&self,
|
|
54
|
+
f: &mut ::core::fmt::Formatter<'_>,
|
|
55
|
+
) -> ::core::fmt::Result {
|
|
56
|
+
f.debug_struct("PluginContext")
|
|
57
|
+
.field("query", &self.query)
|
|
58
|
+
.field("app-id", &self.app_id)
|
|
59
|
+
.finish()
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
#[derive(Clone)]
|
|
63
|
+
pub struct QueryAgentArgs {
|
|
64
|
+
pub query: _rt::String,
|
|
65
|
+
pub agent_id: _rt::String,
|
|
66
|
+
pub query_key: Option<_rt::String>,
|
|
67
|
+
}
|
|
68
|
+
impl ::core::fmt::Debug for QueryAgentArgs {
|
|
69
|
+
fn fmt(
|
|
70
|
+
&self,
|
|
71
|
+
f: &mut ::core::fmt::Formatter<'_>,
|
|
72
|
+
) -> ::core::fmt::Result {
|
|
73
|
+
f.debug_struct("QueryAgentArgs")
|
|
74
|
+
.field("query", &self.query)
|
|
75
|
+
.field("agent-id", &self.agent_id)
|
|
76
|
+
.field("query-key", &self.query_key)
|
|
77
|
+
.finish()
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
#[derive(Clone)]
|
|
81
|
+
pub struct QueryAgentResponse {
|
|
82
|
+
pub content: _rt::String,
|
|
83
|
+
}
|
|
84
|
+
impl ::core::fmt::Debug for QueryAgentResponse {
|
|
85
|
+
fn fmt(
|
|
86
|
+
&self,
|
|
87
|
+
f: &mut ::core::fmt::Formatter<'_>,
|
|
88
|
+
) -> ::core::fmt::Result {
|
|
89
|
+
f.debug_struct("QueryAgentResponse")
|
|
90
|
+
.field("content", &self.content)
|
|
91
|
+
.finish()
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
#[allow(unused_unsafe, clippy::all)]
|
|
95
|
+
pub fn embedding_store(content: &str, collection_name: &str) {
|
|
96
|
+
unsafe {
|
|
97
|
+
let vec0 = content;
|
|
98
|
+
let ptr0 = vec0.as_ptr().cast::<u8>();
|
|
99
|
+
let len0 = vec0.len();
|
|
100
|
+
let vec1 = collection_name;
|
|
101
|
+
let ptr1 = vec1.as_ptr().cast::<u8>();
|
|
102
|
+
let len1 = vec1.len();
|
|
103
|
+
#[cfg(target_arch = "wasm32")]
|
|
104
|
+
#[link(wasm_import_module = "asterai:host/api@0.1.0")]
|
|
105
|
+
extern "C" {
|
|
106
|
+
#[link_name = "embedding-store"]
|
|
107
|
+
fn wit_import(_: *mut u8, _: usize, _: *mut u8, _: usize);
|
|
108
|
+
}
|
|
109
|
+
#[cfg(not(target_arch = "wasm32"))]
|
|
110
|
+
fn wit_import(_: *mut u8, _: usize, _: *mut u8, _: usize) {
|
|
111
|
+
unreachable!()
|
|
112
|
+
}
|
|
113
|
+
wit_import(ptr0.cast_mut(), len0, ptr1.cast_mut(), len1);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
#[allow(unused_unsafe, clippy::all)]
|
|
117
|
+
pub fn embedding_search(
|
|
118
|
+
query: &str,
|
|
119
|
+
collection_name: &str,
|
|
120
|
+
) -> _rt::Vec<EmbeddingSimilarityScore> {
|
|
121
|
+
unsafe {
|
|
122
|
+
#[repr(align(4))]
|
|
123
|
+
struct RetArea([::core::mem::MaybeUninit<u8>; 8]);
|
|
124
|
+
let mut ret_area = RetArea([::core::mem::MaybeUninit::uninit(); 8]);
|
|
125
|
+
let vec0 = query;
|
|
126
|
+
let ptr0 = vec0.as_ptr().cast::<u8>();
|
|
127
|
+
let len0 = vec0.len();
|
|
128
|
+
let vec1 = collection_name;
|
|
129
|
+
let ptr1 = vec1.as_ptr().cast::<u8>();
|
|
130
|
+
let len1 = vec1.len();
|
|
131
|
+
let ptr2 = ret_area.0.as_mut_ptr().cast::<u8>();
|
|
132
|
+
#[cfg(target_arch = "wasm32")]
|
|
133
|
+
#[link(wasm_import_module = "asterai:host/api@0.1.0")]
|
|
134
|
+
extern "C" {
|
|
135
|
+
#[link_name = "embedding-search"]
|
|
136
|
+
fn wit_import(
|
|
137
|
+
_: *mut u8,
|
|
138
|
+
_: usize,
|
|
139
|
+
_: *mut u8,
|
|
140
|
+
_: usize,
|
|
141
|
+
_: *mut u8,
|
|
142
|
+
);
|
|
143
|
+
}
|
|
144
|
+
#[cfg(not(target_arch = "wasm32"))]
|
|
145
|
+
fn wit_import(
|
|
146
|
+
_: *mut u8,
|
|
147
|
+
_: usize,
|
|
148
|
+
_: *mut u8,
|
|
149
|
+
_: usize,
|
|
150
|
+
_: *mut u8,
|
|
151
|
+
) {
|
|
152
|
+
unreachable!()
|
|
153
|
+
}
|
|
154
|
+
wit_import(ptr0.cast_mut(), len0, ptr1.cast_mut(), len1, ptr2);
|
|
155
|
+
let l3 = *ptr2.add(0).cast::<*mut u8>();
|
|
156
|
+
let l4 = *ptr2.add(4).cast::<usize>();
|
|
157
|
+
let base15 = l3;
|
|
158
|
+
let len15 = l4;
|
|
159
|
+
let mut result15 = _rt::Vec::with_capacity(len15);
|
|
160
|
+
for i in 0..len15 {
|
|
161
|
+
let base = base15.add(i * 12);
|
|
162
|
+
let e15 = {
|
|
163
|
+
let l5 = *base.add(0).cast::<f32>();
|
|
164
|
+
let l6 = *base.add(4).cast::<*mut u8>();
|
|
165
|
+
let l7 = *base.add(8).cast::<usize>();
|
|
166
|
+
let base14 = l6;
|
|
167
|
+
let len14 = l7;
|
|
168
|
+
let mut result14 = _rt::Vec::with_capacity(len14);
|
|
169
|
+
for i in 0..len14 {
|
|
170
|
+
let base = base14.add(i * 16);
|
|
171
|
+
let e14 = {
|
|
172
|
+
let l8 = *base.add(0).cast::<*mut u8>();
|
|
173
|
+
let l9 = *base.add(4).cast::<usize>();
|
|
174
|
+
let len10 = l9;
|
|
175
|
+
let bytes10 = _rt::Vec::from_raw_parts(
|
|
176
|
+
l8.cast(),
|
|
177
|
+
len10,
|
|
178
|
+
len10,
|
|
179
|
+
);
|
|
180
|
+
let l11 = *base.add(8).cast::<*mut u8>();
|
|
181
|
+
let l12 = *base.add(12).cast::<usize>();
|
|
182
|
+
let len13 = l12;
|
|
183
|
+
let bytes13 = _rt::Vec::from_raw_parts(
|
|
184
|
+
l11.cast(),
|
|
185
|
+
len13,
|
|
186
|
+
len13,
|
|
187
|
+
);
|
|
188
|
+
(_rt::string_lift(bytes10), _rt::string_lift(bytes13))
|
|
189
|
+
};
|
|
190
|
+
result14.push(e14);
|
|
191
|
+
}
|
|
192
|
+
_rt::cabi_dealloc(base14, len14 * 16, 4);
|
|
193
|
+
EmbeddingSimilarityScore {
|
|
194
|
+
score: l5,
|
|
195
|
+
payload: result14,
|
|
196
|
+
}
|
|
197
|
+
};
|
|
198
|
+
result15.push(e15);
|
|
199
|
+
}
|
|
200
|
+
_rt::cabi_dealloc(base15, len15 * 12, 4);
|
|
201
|
+
result15
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
#[allow(unused_unsafe, clippy::all)]
|
|
205
|
+
pub fn kv_get(key: &str, user_id: Option<&str>) -> Option<_rt::String> {
|
|
206
|
+
unsafe {
|
|
207
|
+
#[repr(align(4))]
|
|
208
|
+
struct RetArea([::core::mem::MaybeUninit<u8>; 12]);
|
|
209
|
+
let mut ret_area = RetArea([::core::mem::MaybeUninit::uninit(); 12]);
|
|
210
|
+
let vec0 = key;
|
|
211
|
+
let ptr0 = vec0.as_ptr().cast::<u8>();
|
|
212
|
+
let len0 = vec0.len();
|
|
213
|
+
let (result2_0, result2_1, result2_2) = match user_id {
|
|
214
|
+
Some(e) => {
|
|
215
|
+
let vec1 = e;
|
|
216
|
+
let ptr1 = vec1.as_ptr().cast::<u8>();
|
|
217
|
+
let len1 = vec1.len();
|
|
218
|
+
(1i32, ptr1.cast_mut(), len1)
|
|
219
|
+
}
|
|
220
|
+
None => (0i32, ::core::ptr::null_mut(), 0usize),
|
|
221
|
+
};
|
|
222
|
+
let ptr3 = ret_area.0.as_mut_ptr().cast::<u8>();
|
|
223
|
+
#[cfg(target_arch = "wasm32")]
|
|
224
|
+
#[link(wasm_import_module = "asterai:host/api@0.1.0")]
|
|
225
|
+
extern "C" {
|
|
226
|
+
#[link_name = "kv-get"]
|
|
227
|
+
fn wit_import(
|
|
228
|
+
_: *mut u8,
|
|
229
|
+
_: usize,
|
|
230
|
+
_: i32,
|
|
231
|
+
_: *mut u8,
|
|
232
|
+
_: usize,
|
|
233
|
+
_: *mut u8,
|
|
234
|
+
);
|
|
235
|
+
}
|
|
236
|
+
#[cfg(not(target_arch = "wasm32"))]
|
|
237
|
+
fn wit_import(
|
|
238
|
+
_: *mut u8,
|
|
239
|
+
_: usize,
|
|
240
|
+
_: i32,
|
|
241
|
+
_: *mut u8,
|
|
242
|
+
_: usize,
|
|
243
|
+
_: *mut u8,
|
|
244
|
+
) {
|
|
245
|
+
unreachable!()
|
|
246
|
+
}
|
|
247
|
+
wit_import(
|
|
248
|
+
ptr0.cast_mut(),
|
|
249
|
+
len0,
|
|
250
|
+
result2_0,
|
|
251
|
+
result2_1,
|
|
252
|
+
result2_2,
|
|
253
|
+
ptr3,
|
|
254
|
+
);
|
|
255
|
+
let l4 = i32::from(*ptr3.add(0).cast::<u8>());
|
|
256
|
+
match l4 {
|
|
257
|
+
0 => None,
|
|
258
|
+
1 => {
|
|
259
|
+
let e = {
|
|
260
|
+
let l5 = *ptr3.add(4).cast::<*mut u8>();
|
|
261
|
+
let l6 = *ptr3.add(8).cast::<usize>();
|
|
262
|
+
let len7 = l6;
|
|
263
|
+
let bytes7 = _rt::Vec::from_raw_parts(
|
|
264
|
+
l5.cast(),
|
|
265
|
+
len7,
|
|
266
|
+
len7,
|
|
267
|
+
);
|
|
268
|
+
_rt::string_lift(bytes7)
|
|
269
|
+
};
|
|
270
|
+
Some(e)
|
|
271
|
+
}
|
|
272
|
+
_ => _rt::invalid_enum_discriminant(),
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
#[allow(unused_unsafe, clippy::all)]
|
|
277
|
+
pub fn kv_set(key: &str, value: Option<&str>, user_id: Option<&str>) {
|
|
278
|
+
unsafe {
|
|
279
|
+
let vec0 = key;
|
|
280
|
+
let ptr0 = vec0.as_ptr().cast::<u8>();
|
|
281
|
+
let len0 = vec0.len();
|
|
282
|
+
let (result2_0, result2_1, result2_2) = match value {
|
|
283
|
+
Some(e) => {
|
|
284
|
+
let vec1 = e;
|
|
285
|
+
let ptr1 = vec1.as_ptr().cast::<u8>();
|
|
286
|
+
let len1 = vec1.len();
|
|
287
|
+
(1i32, ptr1.cast_mut(), len1)
|
|
288
|
+
}
|
|
289
|
+
None => (0i32, ::core::ptr::null_mut(), 0usize),
|
|
290
|
+
};
|
|
291
|
+
let (result4_0, result4_1, result4_2) = match user_id {
|
|
292
|
+
Some(e) => {
|
|
293
|
+
let vec3 = e;
|
|
294
|
+
let ptr3 = vec3.as_ptr().cast::<u8>();
|
|
295
|
+
let len3 = vec3.len();
|
|
296
|
+
(1i32, ptr3.cast_mut(), len3)
|
|
297
|
+
}
|
|
298
|
+
None => (0i32, ::core::ptr::null_mut(), 0usize),
|
|
299
|
+
};
|
|
300
|
+
#[cfg(target_arch = "wasm32")]
|
|
301
|
+
#[link(wasm_import_module = "asterai:host/api@0.1.0")]
|
|
302
|
+
extern "C" {
|
|
303
|
+
#[link_name = "kv-set"]
|
|
304
|
+
fn wit_import(
|
|
305
|
+
_: *mut u8,
|
|
306
|
+
_: usize,
|
|
307
|
+
_: i32,
|
|
308
|
+
_: *mut u8,
|
|
309
|
+
_: usize,
|
|
310
|
+
_: i32,
|
|
311
|
+
_: *mut u8,
|
|
312
|
+
_: usize,
|
|
313
|
+
);
|
|
314
|
+
}
|
|
315
|
+
#[cfg(not(target_arch = "wasm32"))]
|
|
316
|
+
fn wit_import(
|
|
317
|
+
_: *mut u8,
|
|
318
|
+
_: usize,
|
|
319
|
+
_: i32,
|
|
320
|
+
_: *mut u8,
|
|
321
|
+
_: usize,
|
|
322
|
+
_: i32,
|
|
323
|
+
_: *mut u8,
|
|
324
|
+
_: usize,
|
|
325
|
+
) {
|
|
326
|
+
unreachable!()
|
|
327
|
+
}
|
|
328
|
+
wit_import(
|
|
329
|
+
ptr0.cast_mut(),
|
|
330
|
+
len0,
|
|
331
|
+
result2_0,
|
|
332
|
+
result2_1,
|
|
333
|
+
result2_2,
|
|
334
|
+
result4_0,
|
|
335
|
+
result4_1,
|
|
336
|
+
result4_2,
|
|
337
|
+
);
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
#[allow(unused_unsafe, clippy::all)]
|
|
341
|
+
pub fn get_env(key: &str) -> Option<_rt::String> {
|
|
342
|
+
unsafe {
|
|
343
|
+
#[repr(align(4))]
|
|
344
|
+
struct RetArea([::core::mem::MaybeUninit<u8>; 12]);
|
|
345
|
+
let mut ret_area = RetArea([::core::mem::MaybeUninit::uninit(); 12]);
|
|
346
|
+
let vec0 = key;
|
|
347
|
+
let ptr0 = vec0.as_ptr().cast::<u8>();
|
|
348
|
+
let len0 = vec0.len();
|
|
349
|
+
let ptr1 = ret_area.0.as_mut_ptr().cast::<u8>();
|
|
350
|
+
#[cfg(target_arch = "wasm32")]
|
|
351
|
+
#[link(wasm_import_module = "asterai:host/api@0.1.0")]
|
|
352
|
+
extern "C" {
|
|
353
|
+
#[link_name = "get-env"]
|
|
354
|
+
fn wit_import(_: *mut u8, _: usize, _: *mut u8);
|
|
355
|
+
}
|
|
356
|
+
#[cfg(not(target_arch = "wasm32"))]
|
|
357
|
+
fn wit_import(_: *mut u8, _: usize, _: *mut u8) {
|
|
358
|
+
unreachable!()
|
|
359
|
+
}
|
|
360
|
+
wit_import(ptr0.cast_mut(), len0, ptr1);
|
|
361
|
+
let l2 = i32::from(*ptr1.add(0).cast::<u8>());
|
|
362
|
+
match l2 {
|
|
363
|
+
0 => None,
|
|
364
|
+
1 => {
|
|
365
|
+
let e = {
|
|
366
|
+
let l3 = *ptr1.add(4).cast::<*mut u8>();
|
|
367
|
+
let l4 = *ptr1.add(8).cast::<usize>();
|
|
368
|
+
let len5 = l4;
|
|
369
|
+
let bytes5 = _rt::Vec::from_raw_parts(
|
|
370
|
+
l3.cast(),
|
|
371
|
+
len5,
|
|
372
|
+
len5,
|
|
373
|
+
);
|
|
374
|
+
_rt::string_lift(bytes5)
|
|
375
|
+
};
|
|
376
|
+
Some(e)
|
|
377
|
+
}
|
|
378
|
+
_ => _rt::invalid_enum_discriminant(),
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
#[allow(unused_unsafe, clippy::all)]
|
|
383
|
+
pub fn get_context() -> PluginContext {
|
|
384
|
+
unsafe {
|
|
385
|
+
#[repr(align(4))]
|
|
386
|
+
struct RetArea([::core::mem::MaybeUninit<u8>; 28]);
|
|
387
|
+
let mut ret_area = RetArea([::core::mem::MaybeUninit::uninit(); 28]);
|
|
388
|
+
let ptr0 = ret_area.0.as_mut_ptr().cast::<u8>();
|
|
389
|
+
#[cfg(target_arch = "wasm32")]
|
|
390
|
+
#[link(wasm_import_module = "asterai:host/api@0.1.0")]
|
|
391
|
+
extern "C" {
|
|
392
|
+
#[link_name = "get-context"]
|
|
393
|
+
fn wit_import(_: *mut u8);
|
|
394
|
+
}
|
|
395
|
+
#[cfg(not(target_arch = "wasm32"))]
|
|
396
|
+
fn wit_import(_: *mut u8) {
|
|
397
|
+
unreachable!()
|
|
398
|
+
}
|
|
399
|
+
wit_import(ptr0);
|
|
400
|
+
let l1 = *ptr0.add(0).cast::<*mut u8>();
|
|
401
|
+
let l2 = *ptr0.add(4).cast::<usize>();
|
|
402
|
+
let len3 = l2;
|
|
403
|
+
let bytes3 = _rt::Vec::from_raw_parts(l1.cast(), len3, len3);
|
|
404
|
+
let l4 = i32::from(*ptr0.add(8).cast::<u8>());
|
|
405
|
+
let l8 = *ptr0.add(20).cast::<*mut u8>();
|
|
406
|
+
let l9 = *ptr0.add(24).cast::<usize>();
|
|
407
|
+
let len10 = l9;
|
|
408
|
+
let bytes10 = _rt::Vec::from_raw_parts(l8.cast(), len10, len10);
|
|
409
|
+
PluginContext {
|
|
410
|
+
query: Query {
|
|
411
|
+
content: _rt::string_lift(bytes3),
|
|
412
|
+
user_id: match l4 {
|
|
413
|
+
0 => None,
|
|
414
|
+
1 => {
|
|
415
|
+
let e = {
|
|
416
|
+
let l5 = *ptr0.add(12).cast::<*mut u8>();
|
|
417
|
+
let l6 = *ptr0.add(16).cast::<usize>();
|
|
418
|
+
let len7 = l6;
|
|
419
|
+
let bytes7 = _rt::Vec::from_raw_parts(
|
|
420
|
+
l5.cast(),
|
|
421
|
+
len7,
|
|
422
|
+
len7,
|
|
423
|
+
);
|
|
424
|
+
_rt::string_lift(bytes7)
|
|
425
|
+
};
|
|
426
|
+
Some(e)
|
|
427
|
+
}
|
|
428
|
+
_ => _rt::invalid_enum_discriminant(),
|
|
429
|
+
},
|
|
430
|
+
},
|
|
431
|
+
app_id: _rt::string_lift(bytes10),
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
#[allow(unused_unsafe, clippy::all)]
|
|
436
|
+
pub fn send_response_to_agent(response: &str) {
|
|
437
|
+
unsafe {
|
|
438
|
+
let vec0 = response;
|
|
439
|
+
let ptr0 = vec0.as_ptr().cast::<u8>();
|
|
440
|
+
let len0 = vec0.len();
|
|
441
|
+
#[cfg(target_arch = "wasm32")]
|
|
442
|
+
#[link(wasm_import_module = "asterai:host/api@0.1.0")]
|
|
443
|
+
extern "C" {
|
|
444
|
+
#[link_name = "send-response-to-agent"]
|
|
445
|
+
fn wit_import(_: *mut u8, _: usize);
|
|
446
|
+
}
|
|
447
|
+
#[cfg(not(target_arch = "wasm32"))]
|
|
448
|
+
fn wit_import(_: *mut u8, _: usize) {
|
|
449
|
+
unreachable!()
|
|
450
|
+
}
|
|
451
|
+
wit_import(ptr0.cast_mut(), len0);
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
#[allow(unused_unsafe, clippy::all)]
|
|
455
|
+
pub fn query_agent(
|
|
456
|
+
args: &QueryAgentArgs,
|
|
457
|
+
) -> Result<QueryAgentResponse, _rt::String> {
|
|
458
|
+
unsafe {
|
|
459
|
+
#[repr(align(4))]
|
|
460
|
+
struct RetArea([::core::mem::MaybeUninit<u8>; 12]);
|
|
461
|
+
let mut ret_area = RetArea([::core::mem::MaybeUninit::uninit(); 12]);
|
|
462
|
+
let QueryAgentArgs {
|
|
463
|
+
query: query0,
|
|
464
|
+
agent_id: agent_id0,
|
|
465
|
+
query_key: query_key0,
|
|
466
|
+
} = args;
|
|
467
|
+
let vec1 = query0;
|
|
468
|
+
let ptr1 = vec1.as_ptr().cast::<u8>();
|
|
469
|
+
let len1 = vec1.len();
|
|
470
|
+
let vec2 = agent_id0;
|
|
471
|
+
let ptr2 = vec2.as_ptr().cast::<u8>();
|
|
472
|
+
let len2 = vec2.len();
|
|
473
|
+
let (result4_0, result4_1, result4_2) = match query_key0 {
|
|
474
|
+
Some(e) => {
|
|
475
|
+
let vec3 = e;
|
|
476
|
+
let ptr3 = vec3.as_ptr().cast::<u8>();
|
|
477
|
+
let len3 = vec3.len();
|
|
478
|
+
(1i32, ptr3.cast_mut(), len3)
|
|
479
|
+
}
|
|
480
|
+
None => (0i32, ::core::ptr::null_mut(), 0usize),
|
|
481
|
+
};
|
|
482
|
+
let ptr5 = ret_area.0.as_mut_ptr().cast::<u8>();
|
|
483
|
+
#[cfg(target_arch = "wasm32")]
|
|
484
|
+
#[link(wasm_import_module = "asterai:host/api@0.1.0")]
|
|
485
|
+
extern "C" {
|
|
486
|
+
#[link_name = "query-agent"]
|
|
487
|
+
fn wit_import(
|
|
488
|
+
_: *mut u8,
|
|
489
|
+
_: usize,
|
|
490
|
+
_: *mut u8,
|
|
491
|
+
_: usize,
|
|
492
|
+
_: i32,
|
|
493
|
+
_: *mut u8,
|
|
494
|
+
_: usize,
|
|
495
|
+
_: *mut u8,
|
|
496
|
+
);
|
|
497
|
+
}
|
|
498
|
+
#[cfg(not(target_arch = "wasm32"))]
|
|
499
|
+
fn wit_import(
|
|
500
|
+
_: *mut u8,
|
|
501
|
+
_: usize,
|
|
502
|
+
_: *mut u8,
|
|
503
|
+
_: usize,
|
|
504
|
+
_: i32,
|
|
505
|
+
_: *mut u8,
|
|
506
|
+
_: usize,
|
|
507
|
+
_: *mut u8,
|
|
508
|
+
) {
|
|
509
|
+
unreachable!()
|
|
510
|
+
}
|
|
511
|
+
wit_import(
|
|
512
|
+
ptr1.cast_mut(),
|
|
513
|
+
len1,
|
|
514
|
+
ptr2.cast_mut(),
|
|
515
|
+
len2,
|
|
516
|
+
result4_0,
|
|
517
|
+
result4_1,
|
|
518
|
+
result4_2,
|
|
519
|
+
ptr5,
|
|
520
|
+
);
|
|
521
|
+
let l6 = i32::from(*ptr5.add(0).cast::<u8>());
|
|
522
|
+
match l6 {
|
|
523
|
+
0 => {
|
|
524
|
+
let e = {
|
|
525
|
+
let l7 = *ptr5.add(4).cast::<*mut u8>();
|
|
526
|
+
let l8 = *ptr5.add(8).cast::<usize>();
|
|
527
|
+
let len9 = l8;
|
|
528
|
+
let bytes9 = _rt::Vec::from_raw_parts(
|
|
529
|
+
l7.cast(),
|
|
530
|
+
len9,
|
|
531
|
+
len9,
|
|
532
|
+
);
|
|
533
|
+
QueryAgentResponse {
|
|
534
|
+
content: _rt::string_lift(bytes9),
|
|
535
|
+
}
|
|
536
|
+
};
|
|
537
|
+
Ok(e)
|
|
538
|
+
}
|
|
539
|
+
1 => {
|
|
540
|
+
let e = {
|
|
541
|
+
let l10 = *ptr5.add(4).cast::<*mut u8>();
|
|
542
|
+
let l11 = *ptr5.add(8).cast::<usize>();
|
|
543
|
+
let len12 = l11;
|
|
544
|
+
let bytes12 = _rt::Vec::from_raw_parts(
|
|
545
|
+
l10.cast(),
|
|
546
|
+
len12,
|
|
547
|
+
len12,
|
|
548
|
+
);
|
|
549
|
+
_rt::string_lift(bytes12)
|
|
550
|
+
};
|
|
551
|
+
Err(e)
|
|
552
|
+
}
|
|
553
|
+
_ => _rt::invalid_enum_discriminant(),
|
|
554
|
+
}
|
|
555
|
+
}
|
|
556
|
+
}
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
#[rustfmt::skip]
|
|
561
|
+
#[allow(dead_code, clippy::all)]
|
|
562
|
+
pub mod exports {
|
|
563
|
+
pub mod your_username {
|
|
564
|
+
pub mod greeter {
|
|
565
|
+
#[allow(dead_code, clippy::all)]
|
|
566
|
+
pub mod greeter {
|
|
567
|
+
#[used]
|
|
568
|
+
#[doc(hidden)]
|
|
569
|
+
static __FORCE_SECTION_REF: fn() = super::super::super::super::__link_custom_section_describing_imports;
|
|
570
|
+
use super::super::super::super::_rt;
|
|
571
|
+
#[doc(hidden)]
|
|
572
|
+
#[allow(non_snake_case)]
|
|
573
|
+
pub unsafe fn _export_greet_cabi<T: Guest>(arg0: *mut u8, arg1: usize) {
|
|
574
|
+
#[cfg(target_arch = "wasm32")] _rt::run_ctors_once();
|
|
575
|
+
let len0 = arg1;
|
|
576
|
+
let bytes0 = _rt::Vec::from_raw_parts(arg0.cast(), len0, len0);
|
|
577
|
+
T::greet(_rt::string_lift(bytes0));
|
|
578
|
+
}
|
|
579
|
+
pub trait Guest {
|
|
580
|
+
fn greet(name: _rt::String);
|
|
581
|
+
}
|
|
582
|
+
#[doc(hidden)]
|
|
583
|
+
macro_rules! __export_your_username_greeter_greeter_0_1_0_cabi {
|
|
584
|
+
($ty:ident with_types_in $($path_to_types:tt)*) => {
|
|
585
|
+
const _ : () = { #[export_name =
|
|
586
|
+
"your-username:greeter/greeter@0.1.0#greet"] unsafe extern "C" fn
|
|
587
|
+
export_greet(arg0 : * mut u8, arg1 : usize,) {
|
|
588
|
+
$($path_to_types)*:: _export_greet_cabi::<$ty > (arg0, arg1) } };
|
|
589
|
+
};
|
|
590
|
+
}
|
|
591
|
+
#[doc(hidden)]
|
|
592
|
+
pub(crate) use __export_your_username_greeter_greeter_0_1_0_cabi;
|
|
593
|
+
}
|
|
594
|
+
}
|
|
595
|
+
}
|
|
596
|
+
}
|
|
597
|
+
#[rustfmt::skip]
|
|
598
|
+
mod _rt {
|
|
599
|
+
pub use alloc_crate::vec::Vec;
|
|
600
|
+
pub use alloc_crate::string::String;
|
|
601
|
+
pub unsafe fn string_lift(bytes: Vec<u8>) -> String {
|
|
602
|
+
if cfg!(debug_assertions) {
|
|
603
|
+
String::from_utf8(bytes).unwrap()
|
|
604
|
+
} else {
|
|
605
|
+
String::from_utf8_unchecked(bytes)
|
|
606
|
+
}
|
|
607
|
+
}
|
|
608
|
+
pub unsafe fn cabi_dealloc(ptr: *mut u8, size: usize, align: usize) {
|
|
609
|
+
if size == 0 {
|
|
610
|
+
return;
|
|
611
|
+
}
|
|
612
|
+
let layout = alloc::Layout::from_size_align_unchecked(size, align);
|
|
613
|
+
alloc::dealloc(ptr, layout);
|
|
614
|
+
}
|
|
615
|
+
pub unsafe fn invalid_enum_discriminant<T>() -> T {
|
|
616
|
+
if cfg!(debug_assertions) {
|
|
617
|
+
panic!("invalid enum discriminant")
|
|
618
|
+
} else {
|
|
619
|
+
core::hint::unreachable_unchecked()
|
|
620
|
+
}
|
|
621
|
+
}
|
|
622
|
+
#[cfg(target_arch = "wasm32")]
|
|
623
|
+
pub fn run_ctors_once() {
|
|
624
|
+
wit_bindgen_rt::run_ctors_once();
|
|
625
|
+
}
|
|
626
|
+
extern crate alloc as alloc_crate;
|
|
627
|
+
pub use alloc_crate::alloc;
|
|
628
|
+
}
|
|
629
|
+
/// Generates `#[no_mangle]` functions to export the specified type as the
|
|
630
|
+
/// root implementation of all generated traits.
|
|
631
|
+
///
|
|
632
|
+
/// For more information see the documentation of `wit_bindgen::generate!`.
|
|
633
|
+
///
|
|
634
|
+
/// ```rust
|
|
635
|
+
/// # macro_rules! export{ ($($t:tt)*) => (); }
|
|
636
|
+
/// # trait Guest {}
|
|
637
|
+
/// struct MyType;
|
|
638
|
+
///
|
|
639
|
+
/// impl Guest for MyType {
|
|
640
|
+
/// // ...
|
|
641
|
+
/// }
|
|
642
|
+
///
|
|
643
|
+
/// export!(MyType);
|
|
644
|
+
/// ```
|
|
645
|
+
#[allow(unused_macros)]
|
|
646
|
+
#[doc(hidden)]
|
|
647
|
+
macro_rules! __export_plugin_impl {
|
|
648
|
+
($ty:ident) => {
|
|
649
|
+
self::export!($ty with_types_in self);
|
|
650
|
+
};
|
|
651
|
+
($ty:ident with_types_in $($path_to_types_root:tt)*) => {
|
|
652
|
+
$($path_to_types_root)*::
|
|
653
|
+
exports::your_username::greeter::greeter::__export_your_username_greeter_greeter_0_1_0_cabi!($ty
|
|
654
|
+
with_types_in $($path_to_types_root)*::
|
|
655
|
+
exports::your_username::greeter::greeter);
|
|
656
|
+
};
|
|
657
|
+
}
|
|
658
|
+
#[doc(inline)]
|
|
659
|
+
pub(crate) use __export_plugin_impl as export;
|
|
660
|
+
#[cfg(target_arch = "wasm32")]
|
|
661
|
+
#[link_section = "component-type:wit-bindgen:0.36.0:your-username:greeter@0.1.0:plugin:encoded world"]
|
|
662
|
+
#[doc(hidden)]
|
|
663
|
+
pub static __WIT_BINDGEN_COMPONENT_TYPE: [u8; 776] = *b"\
|
|
664
|
+
\0asm\x0d\0\x01\0\0\x19\x16wit-component-encoding\x04\0\x07\x8b\x05\x01A\x02\x01\
|
|
665
|
+
A\x04\x01B\x1f\x01o\x02ss\x01p\0\x01r\x02\x05scorev\x07payload\x01\x04\0\x1aembe\
|
|
666
|
+
dding-similarity-score\x03\0\x02\x01ks\x01r\x02\x07contents\x07user-id\x04\x04\0\
|
|
667
|
+
\x05query\x03\0\x05\x01r\x02\x05query\x06\x06app-ids\x04\0\x0eplugin-context\x03\
|
|
668
|
+
\0\x07\x01r\x03\x05querys\x08agent-ids\x09query-key\x04\x04\0\x10query-agent-arg\
|
|
669
|
+
s\x03\0\x09\x01r\x01\x07contents\x04\0\x14query-agent-response\x03\0\x0b\x01@\x02\
|
|
670
|
+
\x07contents\x0fcollection-names\x01\0\x04\0\x0fembedding-store\x01\x0d\x01p\x03\
|
|
671
|
+
\x01@\x02\x05querys\x0fcollection-names\0\x0e\x04\0\x10embedding-search\x01\x0f\x01\
|
|
672
|
+
@\x02\x03keys\x07user-id\x04\0\x04\x04\0\x06kv-get\x01\x10\x01@\x03\x03keys\x05v\
|
|
673
|
+
alue\x04\x07user-id\x04\x01\0\x04\0\x06kv-set\x01\x11\x01@\x01\x03keys\0\x04\x04\
|
|
674
|
+
\0\x07get-env\x01\x12\x01@\0\0\x08\x04\0\x0bget-context\x01\x13\x01@\x01\x08resp\
|
|
675
|
+
onses\x01\0\x04\0\x16send-response-to-agent\x01\x14\x01j\x01\x0c\x01s\x01@\x01\x04\
|
|
676
|
+
args\x0a\0\x15\x04\0\x0bquery-agent\x01\x16\x03\0\x16asterai:host/api@0.1.0\x05\0\
|
|
677
|
+
\x01B\x02\x01@\x01\x04names\x01\0\x04\0\x05greet\x01\0\x04\0#your-username:greet\
|
|
678
|
+
er/greeter@0.1.0\x05\x01\x04\0\"your-username:greeter/plugin@0.1.0\x04\0\x0b\x0c\
|
|
679
|
+
\x01\0\x06plugin\x03\0\0\0G\x09producers\x01\x0cprocessed-by\x02\x0dwit-componen\
|
|
680
|
+
t\x070.220.0\x10wit-bindgen-rust\x060.36.0";
|
|
681
|
+
#[inline(never)]
|
|
682
|
+
#[doc(hidden)]
|
|
683
|
+
pub fn __link_custom_section_describing_imports() {
|
|
684
|
+
wit_bindgen_rt::maybe_link_cabi_realloc();
|
|
685
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
use crate::bindings::asterai::host::api;
|
|
2
|
+
use crate::bindings::exports::your_username::greeter::greeter::Guest;
|
|
3
|
+
|
|
4
|
+
#[allow(warnings)]
|
|
5
|
+
mod bindings;
|
|
6
|
+
|
|
7
|
+
struct Component;
|
|
8
|
+
|
|
9
|
+
impl Guest for Component {
|
|
10
|
+
fn greet(name: String) {
|
|
11
|
+
let greeting = format!("hello {name}");
|
|
12
|
+
api::send_response_to_agent(&greeting);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
bindings::export!(Component with_types_in bindings);
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import { BinaryOperationInput } from "./generated/plugin";
|
|
2
1
|
import * as asterai from "asterai:host/api@0.1.0";
|
|
2
|
+
import { BinaryOperationResult } from "example:math/plugin@0.1.0";
|
|
3
3
|
|
|
4
|
-
export const
|
|
5
|
-
const result =
|
|
4
|
+
export const mul = (a: number, b: number): BinaryOperationResult => {
|
|
5
|
+
const result = a + b;
|
|
6
6
|
// Send the calculation result to the agent.
|
|
7
7
|
asterai.sendResponseToAgent(`the result is ${result}`);
|
|
8
8
|
// This result is not seen by the agent, but it can be consumed by
|
|
9
9
|
// other plugins calling this function.
|
|
10
|
-
return
|
|
10
|
+
return {
|
|
11
|
+
value: result,
|
|
12
|
+
};
|
|
11
13
|
};
|
package/oclif.manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@asterai/cli",
|
|
3
3
|
"description": "CLI for building and deploying asterai plugins",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.6.1",
|
|
5
5
|
"author": "asterai <support@asterai.io>",
|
|
6
6
|
"repository": "asterai-io/asterai-sdk",
|
|
7
7
|
"homepage": "https://github.com/asterai-io/asterai-sdk",
|
|
@@ -13,18 +13,6 @@
|
|
|
13
13
|
"license": "UNLICENSED",
|
|
14
14
|
"main": "dist/index.js",
|
|
15
15
|
"type": "module",
|
|
16
|
-
"scripts": {
|
|
17
|
-
"prepare": "cd .. && husky cli/.husky",
|
|
18
|
-
"build": "shx rm -rf dist && tsc -b",
|
|
19
|
-
"lint": "eslint . --ext .ts",
|
|
20
|
-
"postpack": "shx rm -f oclif.manifest.json",
|
|
21
|
-
"posttest": "pnpm run lint",
|
|
22
|
-
"prepack": "oclif manifest && oclif readme",
|
|
23
|
-
"test": "mocha --forbid-only \"test/**/*.test.ts\"",
|
|
24
|
-
"version": "oclif readme && git add README.md",
|
|
25
|
-
"format": "prettier --write .",
|
|
26
|
-
"format-staged": "pretty-quick --staged"
|
|
27
|
-
},
|
|
28
16
|
"bin": {
|
|
29
17
|
"asterai": "./bin/run.js"
|
|
30
18
|
},
|
|
@@ -36,7 +24,15 @@
|
|
|
36
24
|
"/bin",
|
|
37
25
|
"/dist",
|
|
38
26
|
"/oclif.manifest.json",
|
|
39
|
-
"/
|
|
27
|
+
"/init",
|
|
28
|
+
"/init/rust/.gitignore",
|
|
29
|
+
"/init/typescript/.gitignore",
|
|
30
|
+
"!/init/rust/target",
|
|
31
|
+
"!/init/rust/Cargo.lock",
|
|
32
|
+
"!/init/typescript/build",
|
|
33
|
+
"!/init/typescript/node_modules",
|
|
34
|
+
"!/init/typescript/generated",
|
|
35
|
+
"!/init/typescript/pnpm-lock.yaml"
|
|
40
36
|
],
|
|
41
37
|
"oclif": {
|
|
42
38
|
"bin": "asterai",
|
|
@@ -83,5 +79,14 @@
|
|
|
83
79
|
"shx": "^0.3.3",
|
|
84
80
|
"ts-node": "^10",
|
|
85
81
|
"typescript": "^5"
|
|
82
|
+
},
|
|
83
|
+
"scripts": {
|
|
84
|
+
"build": "shx rm -rf dist && tsc -b",
|
|
85
|
+
"lint": "eslint . --ext .ts",
|
|
86
|
+
"posttest": "pnpm run lint",
|
|
87
|
+
"test": "mocha --forbid-only \"test/**/*.test.ts\"",
|
|
88
|
+
"version": "oclif readme && git add README.md",
|
|
89
|
+
"format": "prettier --write .",
|
|
90
|
+
"format-staged": "pretty-quick --staged"
|
|
86
91
|
}
|
|
87
|
-
}
|
|
92
|
+
}
|