@shuttle-ai/render-react 0.0.4 → 0.0.6
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/cjs/agentWork/agent/toolRender/confirm.cjs +1 -1
- package/dist/cjs/agentWork/agent/toolRender/index.cjs +1 -1
- package/dist/cjs/index.css +1 -1
- package/dist/es/agentWork/agent/toolRender/confirm.mjs +26 -25
- package/dist/es/agentWork/agent/toolRender/index.mjs +31 -28
- package/dist/es/index.css +1 -1
- package/dist/types/agentWork/agent/toolRender/confirm.d.ts +2 -1
- package/dist/types/context/tool/base.d.ts +2 -2
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("react/jsx-runtime"),
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("react/jsx-runtime"),a=require("react"),s=require("antd"),v=require("@ant-design/icons");function x({toolId:u,result:t,agent:d,getConfirmResult:i,getNewArgs:h,onAfterConfirm:f}){const[r,p]=a.useState(t?.type==="reject"?"reject":"accept"),[c,j]=a.useState(t?.reason||""),[m,y]=a.useState(!1);a.useEffect(()=>{t?.type&&p(t.type==="reject"?"reject":"accept")},[t?.type]),a.useEffect(()=>{t?.reason&&j(t.reason)},[t?.reason]);const o=a.useCallback(async()=>{if(r==="reject"&&!c){s.message.warning("请输入拒绝原因");return}y(!0);try{const e=r==="accept"?{type:"confirm",newArgs:await h?.()}:{type:"reject",reason:c};if(e.type==="confirm"&&i){const l=await i();l&&(e.result=l.result,e.newArgs=l.newArgs,e.type="confirmWithResult")}await d.confirmTool(u,e),f?.()}catch(e){throw e}finally{y(!1)}},[r,c,u,d,i,f]),g=a.useCallback(e=>{e.shiftKey||(e.preventDefault(),o())},[o]);return n.jsxs("div",{className:"fn-tool-confirm",children:[n.jsx("span",{className:"fn-tool-confirm-tip",children:"是否允许执行?"}),n.jsxs("div",{className:"fn-tool-confirm-button-group",children:[n.jsxs(s.Radio.Group,{size:"small",optionType:"button",value:r,disabled:!!t,onChange:e=>p(e.target.value),children:[n.jsx(s.Radio,{value:"accept",children:"接受"}),n.jsx(s.Radio,{value:"reject",children:"拒绝"})]}),n.jsx(s.Button,{disabled:!!t,size:"small",type:"primary",danger:r==="reject",loading:m,onClick:o,icon:n.jsx(v.SendOutlined,{}),children:"提交"})]}),r==="reject"&&n.jsx(s.Input.TextArea,{disabled:!!t,placeholder:"请输入拒绝原因",value:c,onChange:e=>j(e.target.value),rows:3,onPressEnter:g})]})}exports.default=x;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("react/jsx-runtime"),
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("react/jsx-runtime"),u=require("react"),c=require("../../../hooks/useToolMessage.cjs");require("../../../context/agentWork/base.cjs");require("@shuttle-ai/client");const a=require("../../../context/agent/useAgent.cjs");require("../../../context/agent/base.cjs");require("../../../context/tool/base.cjs");const l=require("../../../context/tool/provider.cjs"),d=require("./confirm.cjs");;/* empty css */function f({toolCall:e}){const n=a.useAgent(),s=c.default(n,e.id),t=u.useMemo(()=>n.options.tools?.find(o=>o.name===e.name),[n,e.name]);return s?r.jsx("div",{className:"agent-work-agent-tool",children:t?.run.type!=="render"?r.jsxs("div",{className:"agent-work-agent-fn-tool",children:[r.jsx("p",{className:"fn-tool-name",children:t?.label||e.name}),r.jsx("pre",{className:"fn-tool-args",children:i(e.args)}),r.jsx("pre",{className:"fn-tool-result",children:i(s.content||s.confirm?.result)}),r.jsx(d.default,{result:s.confirm,toolId:e.id,agent:n})]}):r.jsxs("div",{className:"agent-work-agent-render-tool",children:[r.jsx("p",{className:"render-tool-name",children:t?.label||e.name}),r.jsx(l.default,{toolId:e.id,agent:n,args:e.args,content:s.content,confirmResult:s.confirm,run:t.run})]})}):null}function i(e){if(typeof e=="object")return JSON.stringify(e,null,2);try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}}exports.default=f;
|
package/dist/cjs/index.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.agent-work{display:flex;flex-direction:column}.agent-work .agent-work-main{flex:1;overflow-y:auto;padding:12px}.agent-work .agent-work-main .agent-work-agent{display:flex;flex-direction:column;gap:1rem;position:relative}.agent-work .agent-work-main .agent-work-agent:before{content:" ";display:inline-block;position:absolute;top:8px;left:0;width:1px;z-index:-1;height:calc(100% - 8px);background-color:#0000001a}.agent-work .agent-work-main .agent-work-agent-message{padding:0 12px;display:flex;flex-direction:column;gap:1rem}.agent-work-agent-message.user-message{position:relative}.agent-work-agent-message.user-message .agent-work-agent-message-expand-icon{position:absolute;top:8px;left:0;transform:translate(-50%);width:1rem;height:1rem;display:flex;align-items:center;justify-content:center;border-radius:50%;background-color:#fff;box-shadow:0 0 4px #0000001a;font-size:12px;cursor:pointer}.agent-work-agent-message.user-message .agent-work-agent-message-content{background-color:#fff;box-shadow:0 0 8px #0000001a;padding:8px 12px;border-radius:8px;margin:0;font-size:1rem}.agent-work-agent-tool{display:flex;flex-direction:column;padding:8px;border-radius:8px;background-color:#1677ff33;box-shadow:0 0 8px #0000001a}.agent-work-agent-tool .agent-work-agent-fn-tool{display:flex;flex-direction:column;gap:8px}.agent-work-agent-tool .agent-work-agent-fn-tool .fn-tool-name{margin:0;font-weight:700}.agent-work-agent-tool .agent-work-agent-fn-tool .fn-tool-args,.agent-work-agent-tool .agent-work-agent-fn-tool .fn-tool-result{margin:0;padding-top:8px;border-top:1px solid #d9d9d9}.agent-work-agent-tool .agent-work-agent-fn-tool .fn-tool-result:empty{display:none}.agent-work-agent-tool .fn-tool-confirm{display:flex;flex-direction:column;gap:4px;padding-top:8px;border-top:1px solid #d9d9d9}.agent-work-agent-tool .fn-tool-confirm .fn-tool-confirm-tip{font-size:14px}.agent-work-agent-tool .fn-tool-confirm .fn-tool-confirm-button-group{display:flex;align-items:center;gap:2rem}.agent-work-agent-message.ai-message .ai-message-content{padding:8px;border-radius:8px;background-color:#aff0b566;box-shadow:0 0 8px #0000001a}.agent-work-agent-message.ai-message .ai-message-content>.markdown-body{background-color:transparent}.agent-work-agent-message.ai-message .agent-work-agent-children,.agent-work-agent-message.ai-message .agent-work-agent-tools{display:flex;flex-direction:column;gap:1rem}.agent-work-action{display:flex;flex-direction:column;border-radius:8px;border:1px solid #d9d9d9}.agent-work-action:has(.agent-work-action-input:focus){border-color:#1677ff;box-shadow:0 0 4px #4096ffaa}.agent-work-action:has(.agent-work-action-input.ant-input-disabled){background-color:#0000000a}.agent-work-action .agent-work-action-input.ant-input-disabled{background-color:transparent}.agent-work-action .agent-work-action-input{border:none;outline:none;box-shadow:none;resize:none}.agent-work-action .agent-work-action-btns{display:flex;align-items:center;justify-content:flex-end;padding:4px 11px;gap:8px}.shuttle-ai-tool-todo{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.shuttle-ai-tool-todo .shuttle-ai-tool-todo-header{font-size:14px;font-weight:500;color:#333}.shuttle-ai-tool-todo .shuttle-ai-tool-todo-item{display:inline-block;width:fit-content;font-size:14px}.shuttle-ai-tool-todo .shuttle-ai-tool-todo-item.status-in_progress{color:transparent;-webkit-background-clip:text;background-clip:text;background-image:linear-gradient(90deg,#000 0% 45%,#f5222d 45%,#52c41a,#1677ff 55%,#000 55% 100%);background-size:200% auto;animation:bg-scan 1s linear infinite}.shuttle-ai-tool-todo .shuttle-ai-tool-todo-item.status-completed{text-decoration:line-through;color:#888}@keyframes bg-scan{0%{background-position:100% center}to{background-position:0% center}}
|
|
1
|
+
.agent-work{display:flex;flex-direction:column}.agent-work .agent-work-main{flex:1;overflow-y:auto;padding:12px}.agent-work .agent-work-main .agent-work-agent{display:flex;flex-direction:column;gap:1rem;position:relative}.agent-work .agent-work-main .agent-work-agent:before{content:" ";display:inline-block;position:absolute;top:8px;left:0;width:1px;z-index:-1;height:calc(100% - 8px);background-color:#0000001a}.agent-work .agent-work-main .agent-work-agent-message{padding:0 12px;display:flex;flex-direction:column;gap:1rem}.agent-work-agent-message.user-message{position:relative}.agent-work-agent-message.user-message .agent-work-agent-message-expand-icon{position:absolute;top:8px;left:0;transform:translate(-50%);width:1rem;height:1rem;display:flex;align-items:center;justify-content:center;border-radius:50%;background-color:#fff;box-shadow:0 0 4px #0000001a;font-size:12px;cursor:pointer}.agent-work-agent-message.user-message .agent-work-agent-message-content{background-color:#fff;box-shadow:0 0 8px #0000001a;padding:8px 12px;border-radius:8px;margin:0;font-size:1rem}.agent-work-agent-tool{display:flex;flex-direction:column;padding:8px;border-radius:8px;background-color:#1677ff33;box-shadow:0 0 8px #0000001a}.agent-work-agent-tool .agent-work-agent-fn-tool{display:flex;flex-direction:column;gap:8px}.agent-work-agent-tool .agent-work-agent-fn-tool .fn-tool-name{margin:0;font-weight:700}.agent-work-agent-tool .agent-work-agent-fn-tool .fn-tool-args,.agent-work-agent-tool .agent-work-agent-fn-tool .fn-tool-result{margin:0;padding-top:8px;border-top:1px solid #d9d9d9}.agent-work-agent-tool .agent-work-agent-fn-tool .fn-tool-result:empty{display:none}.agent-work-agent-tool .agent-work-agent-render-tool{display:flex;flex-direction:column;gap:8px}.agent-work-agent-tool .agent-work-agent-render-tool .render-tool-name{margin:0;font-weight:700}.agent-work-agent-tool .fn-tool-confirm{display:flex;flex-direction:column;gap:4px;padding-top:8px;border-top:1px solid #d9d9d9}.agent-work-agent-tool .fn-tool-confirm .fn-tool-confirm-tip{font-size:14px}.agent-work-agent-tool .fn-tool-confirm .fn-tool-confirm-button-group{display:flex;align-items:center;gap:2rem}.agent-work-agent-message.ai-message .ai-message-content{padding:8px;border-radius:8px;background-color:#aff0b566;box-shadow:0 0 8px #0000001a}.agent-work-agent-message.ai-message .ai-message-content>.markdown-body{background-color:transparent}.agent-work-agent-message.ai-message .agent-work-agent-children,.agent-work-agent-message.ai-message .agent-work-agent-tools{display:flex;flex-direction:column;gap:1rem}.agent-work-action{display:flex;flex-direction:column;border-radius:8px;border:1px solid #d9d9d9}.agent-work-action:has(.agent-work-action-input:focus){border-color:#1677ff;box-shadow:0 0 4px #4096ffaa}.agent-work-action:has(.agent-work-action-input.ant-input-disabled){background-color:#0000000a}.agent-work-action .agent-work-action-input.ant-input-disabled{background-color:transparent}.agent-work-action .agent-work-action-input{border:none;outline:none;box-shadow:none;resize:none}.agent-work-action .agent-work-action-btns{display:flex;align-items:center;justify-content:flex-end;padding:4px 11px;gap:8px}.shuttle-ai-tool-todo{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.shuttle-ai-tool-todo .shuttle-ai-tool-todo-header{font-size:14px;font-weight:500;color:#333}.shuttle-ai-tool-todo .shuttle-ai-tool-todo-item{display:inline-block;width:fit-content;font-size:14px}.shuttle-ai-tool-todo .shuttle-ai-tool-todo-item.status-in_progress{color:transparent;-webkit-background-clip:text;background-clip:text;background-image:linear-gradient(90deg,#000 0% 45%,#f5222d 45%,#52c41a,#1677ff 55%,#000 55% 100%);background-size:200% auto;animation:bg-scan 1s linear infinite}.shuttle-ai-tool-todo .shuttle-ai-tool-todo-item.status-completed{text-decoration:line-through;color:#888}@keyframes bg-scan{0%{background-position:100% center}to{background-position:0% center}}
|
|
@@ -1,32 +1,33 @@
|
|
|
1
1
|
import { jsxs as s, jsx as r } from "react/jsx-runtime";
|
|
2
|
-
import { useState as l, useEffect as
|
|
3
|
-
import { message as
|
|
4
|
-
import { SendOutlined as
|
|
5
|
-
function
|
|
2
|
+
import { useState as l, useEffect as j, useCallback as g } from "react";
|
|
3
|
+
import { message as x, Radio as p, Button as T, Input as A } from "antd";
|
|
4
|
+
import { SendOutlined as E } from "@ant-design/icons";
|
|
5
|
+
function z({
|
|
6
6
|
toolId: f,
|
|
7
7
|
result: t,
|
|
8
8
|
agent: d,
|
|
9
9
|
getConfirmResult: o,
|
|
10
|
-
getNewArgs:
|
|
10
|
+
getNewArgs: v,
|
|
11
|
+
onAfterConfirm: m
|
|
11
12
|
}) {
|
|
12
|
-
const [n,
|
|
13
|
+
const [n, u] = l(
|
|
13
14
|
t?.type === "reject" ? "reject" : "accept"
|
|
14
|
-
), [a,
|
|
15
|
-
|
|
16
|
-
t?.type &&
|
|
17
|
-
}, [t?.type]),
|
|
18
|
-
t?.reason &&
|
|
15
|
+
), [a, y] = l(t?.reason || ""), [w, h] = l(!1);
|
|
16
|
+
j(() => {
|
|
17
|
+
t?.type && u(t.type === "reject" ? "reject" : "accept");
|
|
18
|
+
}, [t?.type]), j(() => {
|
|
19
|
+
t?.reason && y(t.reason);
|
|
19
20
|
}, [t?.reason]);
|
|
20
|
-
const c =
|
|
21
|
+
const c = g(async () => {
|
|
21
22
|
if (n === "reject" && !a) {
|
|
22
|
-
|
|
23
|
+
x.warning("请输入拒绝原因");
|
|
23
24
|
return;
|
|
24
25
|
}
|
|
25
|
-
|
|
26
|
+
h(!0);
|
|
26
27
|
try {
|
|
27
28
|
const e = n === "accept" ? {
|
|
28
29
|
type: "confirm",
|
|
29
|
-
newArgs: await
|
|
30
|
+
newArgs: await v?.()
|
|
30
31
|
} : {
|
|
31
32
|
type: "reject",
|
|
32
33
|
reason: a
|
|
@@ -35,13 +36,13 @@ function S({
|
|
|
35
36
|
const i = await o();
|
|
36
37
|
i && (e.result = i.result, e.newArgs = i.newArgs, e.type = "confirmWithResult");
|
|
37
38
|
}
|
|
38
|
-
await d.confirmTool(f, e);
|
|
39
|
+
await d.confirmTool(f, e), m?.();
|
|
39
40
|
} catch (e) {
|
|
40
41
|
throw e;
|
|
41
42
|
} finally {
|
|
42
|
-
|
|
43
|
+
h(!1);
|
|
43
44
|
}
|
|
44
|
-
}, [n, a, f, d, o]),
|
|
45
|
+
}, [n, a, f, d, o, m]), b = g(
|
|
45
46
|
(e) => {
|
|
46
47
|
e.shiftKey || (e.preventDefault(), c());
|
|
47
48
|
},
|
|
@@ -57,7 +58,7 @@ function S({
|
|
|
57
58
|
optionType: "button",
|
|
58
59
|
value: n,
|
|
59
60
|
disabled: !!t,
|
|
60
|
-
onChange: (e) =>
|
|
61
|
+
onChange: (e) => u(e.target.value),
|
|
61
62
|
children: [
|
|
62
63
|
/* @__PURE__ */ r(p, { value: "accept", children: "接受" }),
|
|
63
64
|
/* @__PURE__ */ r(p, { value: "reject", children: "拒绝" })
|
|
@@ -65,15 +66,15 @@ function S({
|
|
|
65
66
|
}
|
|
66
67
|
),
|
|
67
68
|
/* @__PURE__ */ r(
|
|
68
|
-
|
|
69
|
+
T,
|
|
69
70
|
{
|
|
70
71
|
disabled: !!t,
|
|
71
72
|
size: "small",
|
|
72
73
|
type: "primary",
|
|
73
74
|
danger: n === "reject",
|
|
74
|
-
loading:
|
|
75
|
+
loading: w,
|
|
75
76
|
onClick: c,
|
|
76
|
-
icon: /* @__PURE__ */ r(
|
|
77
|
+
icon: /* @__PURE__ */ r(E, {}),
|
|
77
78
|
children: "提交"
|
|
78
79
|
}
|
|
79
80
|
)
|
|
@@ -84,13 +85,13 @@ function S({
|
|
|
84
85
|
disabled: !!t,
|
|
85
86
|
placeholder: "请输入拒绝原因",
|
|
86
87
|
value: a,
|
|
87
|
-
onChange: (e) =>
|
|
88
|
+
onChange: (e) => y(e.target.value),
|
|
88
89
|
rows: 3,
|
|
89
|
-
onPressEnter:
|
|
90
|
+
onPressEnter: b
|
|
90
91
|
}
|
|
91
92
|
)
|
|
92
93
|
] });
|
|
93
94
|
}
|
|
94
95
|
export {
|
|
95
|
-
|
|
96
|
+
z as default
|
|
96
97
|
};
|
|
@@ -1,39 +1,42 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { useMemo as
|
|
3
|
-
import
|
|
1
|
+
import { jsx as e, jsxs as s } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo as c } from "react";
|
|
3
|
+
import a from "../../../hooks/useToolMessage.mjs";
|
|
4
4
|
import "../../../context/agentWork/base.mjs";
|
|
5
5
|
import "@shuttle-ai/client";
|
|
6
|
-
import { useAgent as
|
|
6
|
+
import { useAgent as f } from "../../../context/agent/useAgent.mjs";
|
|
7
7
|
import "../../../context/agent/base.mjs";
|
|
8
8
|
import "../../../context/tool/base.mjs";
|
|
9
|
-
import
|
|
10
|
-
import
|
|
9
|
+
import u from "../../../context/tool/provider.mjs";
|
|
10
|
+
import d from "./confirm.mjs";
|
|
11
11
|
/* empty css */
|
|
12
|
-
function
|
|
13
|
-
const
|
|
14
|
-
return
|
|
15
|
-
/* @__PURE__ */
|
|
16
|
-
/* @__PURE__ */
|
|
17
|
-
/* @__PURE__ */
|
|
18
|
-
/* @__PURE__ */
|
|
19
|
-
|
|
12
|
+
function w({ toolCall: r }) {
|
|
13
|
+
const n = f(), o = a(n, r.id), t = c(() => n.options.tools?.find((m) => m.name === r.name), [n, r.name]);
|
|
14
|
+
return o ? /* @__PURE__ */ e("div", { className: "agent-work-agent-tool", children: t?.run.type !== "render" ? /* @__PURE__ */ s("div", { className: "agent-work-agent-fn-tool", children: [
|
|
15
|
+
/* @__PURE__ */ e("p", { className: "fn-tool-name", children: t?.label || r.name }),
|
|
16
|
+
/* @__PURE__ */ e("pre", { className: "fn-tool-args", children: i(r.args) }),
|
|
17
|
+
/* @__PURE__ */ e("pre", { className: "fn-tool-result", children: i(o.content || o.confirm?.result) }),
|
|
18
|
+
/* @__PURE__ */ e(
|
|
19
|
+
d,
|
|
20
20
|
{
|
|
21
|
-
result:
|
|
21
|
+
result: o.confirm,
|
|
22
22
|
toolId: r.id,
|
|
23
|
-
agent:
|
|
23
|
+
agent: n
|
|
24
24
|
}
|
|
25
25
|
)
|
|
26
|
-
] }) : /* @__PURE__ */
|
|
27
|
-
p,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
26
|
+
] }) : /* @__PURE__ */ s("div", { className: "agent-work-agent-render-tool", children: [
|
|
27
|
+
/* @__PURE__ */ e("p", { className: "render-tool-name", children: t?.label || r.name }),
|
|
28
|
+
/* @__PURE__ */ e(
|
|
29
|
+
u,
|
|
30
|
+
{
|
|
31
|
+
toolId: r.id,
|
|
32
|
+
agent: n,
|
|
33
|
+
args: r.args,
|
|
34
|
+
content: o.content,
|
|
35
|
+
confirmResult: o.confirm,
|
|
36
|
+
run: t.run
|
|
37
|
+
}
|
|
38
|
+
)
|
|
39
|
+
] }) }) : null;
|
|
37
40
|
}
|
|
38
41
|
function i(r) {
|
|
39
42
|
if (typeof r == "object")
|
|
@@ -45,5 +48,5 @@ function i(r) {
|
|
|
45
48
|
}
|
|
46
49
|
}
|
|
47
50
|
export {
|
|
48
|
-
|
|
51
|
+
w as default
|
|
49
52
|
};
|
package/dist/es/index.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.agent-work{display:flex;flex-direction:column}.agent-work .agent-work-main{flex:1;overflow-y:auto;padding:12px}.agent-work .agent-work-main .agent-work-agent{display:flex;flex-direction:column;gap:1rem;position:relative}.agent-work .agent-work-main .agent-work-agent:before{content:" ";display:inline-block;position:absolute;top:8px;left:0;width:1px;z-index:-1;height:calc(100% - 8px);background-color:#0000001a}.agent-work .agent-work-main .agent-work-agent-message{padding:0 12px;display:flex;flex-direction:column;gap:1rem}.agent-work-agent-message.user-message{position:relative}.agent-work-agent-message.user-message .agent-work-agent-message-expand-icon{position:absolute;top:8px;left:0;transform:translate(-50%);width:1rem;height:1rem;display:flex;align-items:center;justify-content:center;border-radius:50%;background-color:#fff;box-shadow:0 0 4px #0000001a;font-size:12px;cursor:pointer}.agent-work-agent-message.user-message .agent-work-agent-message-content{background-color:#fff;box-shadow:0 0 8px #0000001a;padding:8px 12px;border-radius:8px;margin:0;font-size:1rem}.agent-work-agent-tool{display:flex;flex-direction:column;padding:8px;border-radius:8px;background-color:#1677ff33;box-shadow:0 0 8px #0000001a}.agent-work-agent-tool .agent-work-agent-fn-tool{display:flex;flex-direction:column;gap:8px}.agent-work-agent-tool .agent-work-agent-fn-tool .fn-tool-name{margin:0;font-weight:700}.agent-work-agent-tool .agent-work-agent-fn-tool .fn-tool-args,.agent-work-agent-tool .agent-work-agent-fn-tool .fn-tool-result{margin:0;padding-top:8px;border-top:1px solid #d9d9d9}.agent-work-agent-tool .agent-work-agent-fn-tool .fn-tool-result:empty{display:none}.agent-work-agent-tool .fn-tool-confirm{display:flex;flex-direction:column;gap:4px;padding-top:8px;border-top:1px solid #d9d9d9}.agent-work-agent-tool .fn-tool-confirm .fn-tool-confirm-tip{font-size:14px}.agent-work-agent-tool .fn-tool-confirm .fn-tool-confirm-button-group{display:flex;align-items:center;gap:2rem}.agent-work-agent-message.ai-message .ai-message-content{padding:8px;border-radius:8px;background-color:#aff0b566;box-shadow:0 0 8px #0000001a}.agent-work-agent-message.ai-message .ai-message-content>.markdown-body{background-color:transparent}.agent-work-agent-message.ai-message .agent-work-agent-children,.agent-work-agent-message.ai-message .agent-work-agent-tools{display:flex;flex-direction:column;gap:1rem}.agent-work-action{display:flex;flex-direction:column;border-radius:8px;border:1px solid #d9d9d9}.agent-work-action:has(.agent-work-action-input:focus){border-color:#1677ff;box-shadow:0 0 4px #4096ffaa}.agent-work-action:has(.agent-work-action-input.ant-input-disabled){background-color:#0000000a}.agent-work-action .agent-work-action-input.ant-input-disabled{background-color:transparent}.agent-work-action .agent-work-action-input{border:none;outline:none;box-shadow:none;resize:none}.agent-work-action .agent-work-action-btns{display:flex;align-items:center;justify-content:flex-end;padding:4px 11px;gap:8px}.shuttle-ai-tool-todo{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.shuttle-ai-tool-todo .shuttle-ai-tool-todo-header{font-size:14px;font-weight:500;color:#333}.shuttle-ai-tool-todo .shuttle-ai-tool-todo-item{display:inline-block;width:fit-content;font-size:14px}.shuttle-ai-tool-todo .shuttle-ai-tool-todo-item.status-in_progress{color:transparent;-webkit-background-clip:text;background-clip:text;background-image:linear-gradient(90deg,#000 0% 45%,#f5222d 45%,#52c41a,#1677ff 55%,#000 55% 100%);background-size:200% auto;animation:bg-scan 1s linear infinite}.shuttle-ai-tool-todo .shuttle-ai-tool-todo-item.status-completed{text-decoration:line-through;color:#888}@keyframes bg-scan{0%{background-position:100% center}to{background-position:0% center}}
|
|
1
|
+
.agent-work{display:flex;flex-direction:column}.agent-work .agent-work-main{flex:1;overflow-y:auto;padding:12px}.agent-work .agent-work-main .agent-work-agent{display:flex;flex-direction:column;gap:1rem;position:relative}.agent-work .agent-work-main .agent-work-agent:before{content:" ";display:inline-block;position:absolute;top:8px;left:0;width:1px;z-index:-1;height:calc(100% - 8px);background-color:#0000001a}.agent-work .agent-work-main .agent-work-agent-message{padding:0 12px;display:flex;flex-direction:column;gap:1rem}.agent-work-agent-message.user-message{position:relative}.agent-work-agent-message.user-message .agent-work-agent-message-expand-icon{position:absolute;top:8px;left:0;transform:translate(-50%);width:1rem;height:1rem;display:flex;align-items:center;justify-content:center;border-radius:50%;background-color:#fff;box-shadow:0 0 4px #0000001a;font-size:12px;cursor:pointer}.agent-work-agent-message.user-message .agent-work-agent-message-content{background-color:#fff;box-shadow:0 0 8px #0000001a;padding:8px 12px;border-radius:8px;margin:0;font-size:1rem}.agent-work-agent-tool{display:flex;flex-direction:column;padding:8px;border-radius:8px;background-color:#1677ff33;box-shadow:0 0 8px #0000001a}.agent-work-agent-tool .agent-work-agent-fn-tool{display:flex;flex-direction:column;gap:8px}.agent-work-agent-tool .agent-work-agent-fn-tool .fn-tool-name{margin:0;font-weight:700}.agent-work-agent-tool .agent-work-agent-fn-tool .fn-tool-args,.agent-work-agent-tool .agent-work-agent-fn-tool .fn-tool-result{margin:0;padding-top:8px;border-top:1px solid #d9d9d9}.agent-work-agent-tool .agent-work-agent-fn-tool .fn-tool-result:empty{display:none}.agent-work-agent-tool .agent-work-agent-render-tool{display:flex;flex-direction:column;gap:8px}.agent-work-agent-tool .agent-work-agent-render-tool .render-tool-name{margin:0;font-weight:700}.agent-work-agent-tool .fn-tool-confirm{display:flex;flex-direction:column;gap:4px;padding-top:8px;border-top:1px solid #d9d9d9}.agent-work-agent-tool .fn-tool-confirm .fn-tool-confirm-tip{font-size:14px}.agent-work-agent-tool .fn-tool-confirm .fn-tool-confirm-button-group{display:flex;align-items:center;gap:2rem}.agent-work-agent-message.ai-message .ai-message-content{padding:8px;border-radius:8px;background-color:#aff0b566;box-shadow:0 0 8px #0000001a}.agent-work-agent-message.ai-message .ai-message-content>.markdown-body{background-color:transparent}.agent-work-agent-message.ai-message .agent-work-agent-children,.agent-work-agent-message.ai-message .agent-work-agent-tools{display:flex;flex-direction:column;gap:1rem}.agent-work-action{display:flex;flex-direction:column;border-radius:8px;border:1px solid #d9d9d9}.agent-work-action:has(.agent-work-action-input:focus){border-color:#1677ff;box-shadow:0 0 4px #4096ffaa}.agent-work-action:has(.agent-work-action-input.ant-input-disabled){background-color:#0000000a}.agent-work-action .agent-work-action-input.ant-input-disabled{background-color:transparent}.agent-work-action .agent-work-action-input{border:none;outline:none;box-shadow:none;resize:none}.agent-work-action .agent-work-action-btns{display:flex;align-items:center;justify-content:flex-end;padding:4px 11px;gap:8px}.shuttle-ai-tool-todo{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.shuttle-ai-tool-todo .shuttle-ai-tool-todo-header{font-size:14px;font-weight:500;color:#333}.shuttle-ai-tool-todo .shuttle-ai-tool-todo-item{display:inline-block;width:fit-content;font-size:14px}.shuttle-ai-tool-todo .shuttle-ai-tool-todo-item.status-in_progress{color:transparent;-webkit-background-clip:text;background-clip:text;background-image:linear-gradient(90deg,#000 0% 45%,#f5222d 45%,#52c41a,#1677ff 55%,#000 55% 100%);background-size:200% auto;animation:bg-scan 1s linear infinite}.shuttle-ai-tool-todo .shuttle-ai-tool-todo-item.status-completed{text-decoration:line-through;color:#888}@keyframes bg-scan{0%{background-position:100% center}to{background-position:0% center}}
|
|
@@ -7,6 +7,7 @@ interface Props {
|
|
|
7
7
|
agent: Agent;
|
|
8
8
|
getConfirmResult?: () => WithPromise<Pick<ShuttleAi.Tool.ConfirmResult, 'result' | 'newArgs'>>;
|
|
9
9
|
getNewArgs?: () => WithPromise<ShuttleAi.Tool.ConfirmResult['newArgs']>;
|
|
10
|
+
onAfterConfirm?: () => void;
|
|
10
11
|
}
|
|
11
|
-
export default function ConfirmRender({ toolId, result, agent, getConfirmResult, getNewArgs, }: Props): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export default function ConfirmRender({ toolId, result, agent, getConfirmResult, getNewArgs, onAfterConfirm, }: Props): import("react/jsx-runtime").JSX.Element;
|
|
12
13
|
export {};
|
|
@@ -5,7 +5,7 @@ export interface ToolContext<T extends Record<string, any> = Record<string, any>
|
|
|
5
5
|
agent: Agent;
|
|
6
6
|
toolId: string;
|
|
7
7
|
content?: string;
|
|
8
|
-
confirmResult?: ShuttleAi.Tool.ConfirmResult
|
|
9
|
-
confirm?: (result: ShuttleAi.Tool.ConfirmResult) => Promise<void>;
|
|
8
|
+
confirmResult?: ShuttleAi.Tool.ConfirmResult<T>;
|
|
9
|
+
confirm?: (result: ShuttleAi.Tool.ConfirmResult<T>) => Promise<void>;
|
|
10
10
|
}
|
|
11
11
|
export declare const toolContext: import('react').Context<ToolContext<Record<string, any>>>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shuttle-ai/render-react",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.6",
|
|
4
4
|
"author": "Mingbing-get <1508850533@qq.com>",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "Shuttle AI web端智能体react渲染库",
|
|
@@ -35,8 +35,8 @@
|
|
|
35
35
|
"remark-breaks": "^4.0.0",
|
|
36
36
|
"remark-frontmatter": "^5.0.0",
|
|
37
37
|
"remark-gfm": "^4.0.1",
|
|
38
|
-
"@shuttle-ai/client": "0.0.
|
|
39
|
-
"@shuttle-ai/type": "0.0.
|
|
38
|
+
"@shuttle-ai/client": "0.0.6",
|
|
39
|
+
"@shuttle-ai/type": "0.0.6"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"typescript": "^5.3.3",
|