@asterai/cli 0.5.0 → 0.6.0
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 +12 -8
- package/dist/commands/init.d.ts +8 -1
- package/dist/commands/init.js +37 -5
- 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/oclif.manifest.json +15 -2
- package/package.json +4 -2
- /package/{asterai-init-plugin → init/typescript}/package.json +0 -0
- /package/{asterai-init-plugin → init/typescript}/plugin.ts +0 -0
- /package/{asterai-init-plugin → init/typescript}/plugin.wit +0 -0
- /package/{asterai-init-plugin → init/typescript}/tsconfig.json +0 -0
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.0 darwin-arm64 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.0/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.0/src/commands/deploy.ts)_
|
|
81
81
|
|
|
82
82
|
## `asterai help [COMMAND]`
|
|
83
83
|
|
|
@@ -97,7 +97,7 @@ DESCRIPTION
|
|
|
97
97
|
Display help for asterai.
|
|
98
98
|
```
|
|
99
99
|
|
|
100
|
-
_See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v6.0
|
|
100
|
+
_See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v6.2.0/src/commands/help.ts)_
|
|
101
101
|
|
|
102
102
|
## `asterai init [OUTDIR]`
|
|
103
103
|
|
|
@@ -105,7 +105,11 @@ Initialise a new plugin project
|
|
|
105
105
|
|
|
106
106
|
```
|
|
107
107
|
USAGE
|
|
108
|
-
$ asterai init [OUTDIR]
|
|
108
|
+
$ asterai init [OUTDIR] [--typescript] [--rust]
|
|
109
|
+
|
|
110
|
+
FLAGS
|
|
111
|
+
--rust init a the plugin project in rust
|
|
112
|
+
--typescript init a the plugin project in typescript
|
|
109
113
|
|
|
110
114
|
DESCRIPTION
|
|
111
115
|
Initialise a new plugin project
|
|
@@ -114,7 +118,7 @@ EXAMPLES
|
|
|
114
118
|
$ asterai init project-name
|
|
115
119
|
```
|
|
116
120
|
|
|
117
|
-
_See code: [src/commands/init.ts](https://github.com/asterai-io/asterai-sdk/blob/v0.
|
|
121
|
+
_See code: [src/commands/init.ts](https://github.com/asterai-io/asterai-sdk/blob/v0.6.0/src/commands/init.ts)_
|
|
118
122
|
|
|
119
123
|
## `asterai pkg [INPUT]`
|
|
120
124
|
|
|
@@ -139,7 +143,7 @@ EXAMPLES
|
|
|
139
143
|
$ asterai pkg
|
|
140
144
|
```
|
|
141
145
|
|
|
142
|
-
_See code: [src/commands/pkg.ts](https://github.com/asterai-io/asterai-sdk/blob/v0.
|
|
146
|
+
_See code: [src/commands/pkg.ts](https://github.com/asterai-io/asterai-sdk/blob/v0.6.0/src/commands/pkg.ts)_
|
|
143
147
|
|
|
144
148
|
## `asterai query`
|
|
145
149
|
|
|
@@ -162,5 +166,5 @@ EXAMPLES
|
|
|
162
166
|
$ asterai query
|
|
163
167
|
```
|
|
164
168
|
|
|
165
|
-
_See code: [src/commands/query.ts](https://github.com/asterai-io/asterai-sdk/blob/v0.
|
|
169
|
+
_See code: [src/commands/query.ts](https://github.com/asterai-io/asterai-sdk/blob/v0.6.0/src/commands/query.ts)_
|
|
166
170
|
<!-- commandsstop -->
|
package/dist/commands/init.d.ts
CHANGED
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
import { Command } from "@oclif/core";
|
|
2
|
+
export type InitFlags = {
|
|
3
|
+
rust?: boolean;
|
|
4
|
+
typescript?: boolean;
|
|
5
|
+
};
|
|
2
6
|
export default class Codegen extends Command {
|
|
3
7
|
static args: {
|
|
4
8
|
outDir: import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>;
|
|
5
9
|
};
|
|
6
10
|
static description: string;
|
|
7
11
|
static examples: string[];
|
|
8
|
-
static flags: {
|
|
12
|
+
static flags: {
|
|
13
|
+
typescript: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
14
|
+
rust: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
15
|
+
};
|
|
9
16
|
run(): Promise<void>;
|
|
10
17
|
}
|
package/dist/commands/init.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { Args, Command } from "@oclif/core";
|
|
1
|
+
import { Args, Command, Flags } from "@oclif/core";
|
|
2
2
|
import path from "path";
|
|
3
3
|
import fs from "fs";
|
|
4
4
|
import url from "url";
|
|
5
5
|
const __dirname = path.dirname(url.fileURLToPath(import.meta.url));
|
|
6
|
-
const
|
|
6
|
+
const SOURCE_DIR_TYPESCRIPT = path.join(__dirname, "../../init/typescript");
|
|
7
|
+
const SOURCE_DIR_RUST = path.join(__dirname, "../../init/rust");
|
|
7
8
|
export default class Codegen extends Command {
|
|
8
9
|
static args = {
|
|
9
10
|
outDir: Args.string({
|
|
@@ -12,10 +13,41 @@ export default class Codegen extends Command {
|
|
|
12
13
|
};
|
|
13
14
|
static description = "Initialise a new plugin project";
|
|
14
15
|
static examples = [`<%= config.bin %> <%= command.id %> project-name`];
|
|
15
|
-
static flags = {
|
|
16
|
+
static flags = {
|
|
17
|
+
typescript: Flags.boolean({
|
|
18
|
+
default: undefined,
|
|
19
|
+
description: "init a the plugin project in typescript",
|
|
20
|
+
}),
|
|
21
|
+
rust: Flags.boolean({
|
|
22
|
+
default: false,
|
|
23
|
+
description: "init a the plugin project in rust",
|
|
24
|
+
}),
|
|
25
|
+
};
|
|
16
26
|
async run() {
|
|
17
|
-
const { args } = await this.parse(Codegen);
|
|
27
|
+
const { args, flags } = await this.parse(Codegen);
|
|
28
|
+
assertOneLanguageFlag([flags.typescript, flags.rust]);
|
|
18
29
|
const outDir = path.resolve(args.outDir);
|
|
19
|
-
|
|
30
|
+
const sourceDir = getSourceDirByFlag(flags);
|
|
31
|
+
fs.cpSync(sourceDir, outDir, { recursive: true });
|
|
20
32
|
}
|
|
21
33
|
}
|
|
34
|
+
const assertOneLanguageFlag = (flags) => {
|
|
35
|
+
const undefinedCount = flags.reduce((acc, curr) => (curr === undefined ? acc + 1 : acc), 0);
|
|
36
|
+
const trueCount = flags.reduce((acc, curr) => (curr ? acc + 1 : acc), 0);
|
|
37
|
+
if (trueCount === 0 && undefinedCount !== 1) {
|
|
38
|
+
throw new Error("one language flag must be set");
|
|
39
|
+
}
|
|
40
|
+
if (trueCount > 1) {
|
|
41
|
+
throw new Error("only one language flag can be set");
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
const getSourceDirByFlag = (flags) => {
|
|
45
|
+
if (flags.rust) {
|
|
46
|
+
return SOURCE_DIR_RUST;
|
|
47
|
+
}
|
|
48
|
+
// Typescript is the default option.
|
|
49
|
+
if (flags.typescript === true || flags.typescript === undefined) {
|
|
50
|
+
return SOURCE_DIR_TYPESCRIPT;
|
|
51
|
+
}
|
|
52
|
+
throw new Error("Invalid flags configuration.");
|
|
53
|
+
};
|
|
@@ -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);
|
package/oclif.manifest.json
CHANGED
|
@@ -103,7 +103,20 @@
|
|
|
103
103
|
"examples": [
|
|
104
104
|
"<%= config.bin %> <%= command.id %> project-name"
|
|
105
105
|
],
|
|
106
|
-
"flags": {
|
|
106
|
+
"flags": {
|
|
107
|
+
"typescript": {
|
|
108
|
+
"description": "init a the plugin project in typescript",
|
|
109
|
+
"name": "typescript",
|
|
110
|
+
"allowNo": false,
|
|
111
|
+
"type": "boolean"
|
|
112
|
+
},
|
|
113
|
+
"rust": {
|
|
114
|
+
"description": "init a the plugin project in rust",
|
|
115
|
+
"name": "rust",
|
|
116
|
+
"allowNo": false,
|
|
117
|
+
"type": "boolean"
|
|
118
|
+
}
|
|
119
|
+
},
|
|
107
120
|
"hasDynamicHelp": false,
|
|
108
121
|
"hiddenAliases": [],
|
|
109
122
|
"id": "init",
|
|
@@ -231,5 +244,5 @@
|
|
|
231
244
|
]
|
|
232
245
|
}
|
|
233
246
|
},
|
|
234
|
-
"version": "0.
|
|
247
|
+
"version": "0.6.0"
|
|
235
248
|
}
|
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.0",
|
|
5
5
|
"author": "asterai <support@asterai.io>",
|
|
6
6
|
"repository": "asterai-io/asterai-sdk",
|
|
7
7
|
"homepage": "https://github.com/asterai-io/asterai-sdk",
|
|
@@ -36,7 +36,9 @@
|
|
|
36
36
|
"/bin",
|
|
37
37
|
"/dist",
|
|
38
38
|
"/oclif.manifest.json",
|
|
39
|
-
"/
|
|
39
|
+
"/init",
|
|
40
|
+
"!/init/rust/target",
|
|
41
|
+
"!/init/rust/Cargo.lock"
|
|
40
42
|
],
|
|
41
43
|
"oclif": {
|
|
42
44
|
"bin": "asterai",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|