create-ryu-app 0.1.14 → 0.2.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/dist/index.js +1 -1
- package/package.json +2 -2
- package/template/agent/src/agent.ts +2 -2
- package/template/app/sidecar/package.json +1 -1
- package/template/companion-plugin/manifest.json +5 -5
- package/template/companion-plugin/src/app.ts +1 -1
- package/template/companion-plugin/src/widget.tsx +1 -1
- package/template/ryu-app/manifest.json +3 -3
package/dist/index.js
CHANGED
|
@@ -16,7 +16,7 @@ var RE_WORD_SEPARATOR = /[-_\s]+/;
|
|
|
16
16
|
var RE_VALID_NAME = /^[a-z0-9][a-z0-9-_]*$/i;
|
|
17
17
|
var RE_LABEL_IMPERSONATES = /ryu|system/i;
|
|
18
18
|
var SAFE_COMPANION_LABEL = "App Panel";
|
|
19
|
-
var SDK_DEPENDENCY_RANGE = "^0.
|
|
19
|
+
var SDK_DEPENDENCY_RANGE = "^0.2.0";
|
|
20
20
|
var TEMPLATES = {
|
|
21
21
|
agent: {
|
|
22
22
|
kind: "plugin",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-ryu-app",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Scaffold a starter Ryu SDK project with a Runnable, gateway-pointed model config, and manifest.json manifest",
|
|
6
6
|
"bin": {
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"clean": "rm -rf dist"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@ryuhq/sdk": "^0.
|
|
23
|
+
"@ryuhq/sdk": "^0.2.0"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@types/bun": "^1.3.4",
|
|
@@ -36,7 +36,7 @@ const agent = new Agent({
|
|
|
36
36
|
"expense emails, read the relevant ones, and return a concise list of " +
|
|
37
37
|
"expenses with amount, merchant, date, and a category.",
|
|
38
38
|
tools: {
|
|
39
|
-
gmailSearch: ryuTool("
|
|
39
|
+
gmailSearch: ryuTool("composio.GMAIL_SEARCH_EMAILS", {
|
|
40
40
|
description: "Search the user's Gmail messages",
|
|
41
41
|
parameters: {
|
|
42
42
|
type: "object",
|
|
@@ -50,7 +50,7 @@ const agent = new Agent({
|
|
|
50
50
|
required: ["query"],
|
|
51
51
|
},
|
|
52
52
|
}),
|
|
53
|
-
gmailGet: ryuTool("
|
|
53
|
+
gmailGet: ryuTool("composio.GMAIL_GET_EMAIL", {
|
|
54
54
|
description: "Fetch a single Gmail message by id",
|
|
55
55
|
}),
|
|
56
56
|
},
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
"version": "0.1.0",
|
|
5
5
|
"runnables": [
|
|
6
6
|
{
|
|
7
|
-
"id": "
|
|
7
|
+
"id": "__APP_NAME__.render",
|
|
8
8
|
"name": "render",
|
|
9
9
|
"kind": "tool",
|
|
10
10
|
"config": {
|
|
11
|
-
"slug": "
|
|
11
|
+
"slug": "__APP_NAME__.render",
|
|
12
12
|
"description": "Render the interactive panel inline in the chat reply.",
|
|
13
13
|
"widget": true,
|
|
14
14
|
"widget_accessible": true,
|
|
@@ -17,11 +17,11 @@
|
|
|
17
17
|
}
|
|
18
18
|
},
|
|
19
19
|
{
|
|
20
|
-
"id": "
|
|
20
|
+
"id": "__APP_NAME__.save",
|
|
21
21
|
"name": "save",
|
|
22
22
|
"kind": "tool",
|
|
23
23
|
"config": {
|
|
24
|
-
"slug": "
|
|
24
|
+
"slug": "__APP_NAME__.save",
|
|
25
25
|
"description": "Persist the panel's current state. Callable by the mounted widget via callTool.",
|
|
26
26
|
"widget": false,
|
|
27
27
|
"widget_accessible": true,
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"slash_commands": [],
|
|
47
47
|
"widgets": [
|
|
48
48
|
{
|
|
49
|
-
"tool_id": "
|
|
49
|
+
"tool_id": "__APP_NAME__.render",
|
|
50
50
|
"uri": "ui://widget/__APP_NAME__.html",
|
|
51
51
|
"ui_entry": "src/widget.tsx",
|
|
52
52
|
"mime": "text/html+skybridge",
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* that mounts the widget, it declares a `save` tool marked `accessible: true` — a
|
|
6
6
|
* COMPANION the mounted widget may invoke over the capability-gated bridge:
|
|
7
7
|
*
|
|
8
|
-
* await window.openai.callTool("
|
|
8
|
+
* await window.openai.callTool("__APP_NAME__.save", { state })
|
|
9
9
|
*
|
|
10
10
|
* The host routes that call through the Gateway (allowlist + audit) before it
|
|
11
11
|
* reaches Core; the frame never holds a token. It also declares a full-page
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
"version": "0.1.0",
|
|
5
5
|
"runnables": [
|
|
6
6
|
{
|
|
7
|
-
"id": "
|
|
7
|
+
"id": "__APP_NAME__.render",
|
|
8
8
|
"name": "render",
|
|
9
9
|
"kind": "tool",
|
|
10
10
|
"config": {
|
|
11
|
-
"slug": "
|
|
11
|
+
"slug": "__APP_NAME__.render",
|
|
12
12
|
"description": "Render the __APP_DISPLAY_NAME__ widget inline in the chat reply.",
|
|
13
13
|
"widget": true,
|
|
14
14
|
"widget_accessible": false,
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"slash_commands": [],
|
|
44
44
|
"widgets": [
|
|
45
45
|
{
|
|
46
|
-
"tool_id": "
|
|
46
|
+
"tool_id": "__APP_NAME__.render",
|
|
47
47
|
"uri": "ui://widget/__APP_NAME__.html",
|
|
48
48
|
"ui_entry": "src/widget.tsx",
|
|
49
49
|
"mime": "text/html+skybridge",
|