@webless/agent 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/LICENSE +21 -0
- package/README.md +121 -0
- package/dist/chunk-WLQDMWO6.js +932 -0
- package/dist/chunk-WLQDMWO6.js.map +1 -0
- package/dist/embed.cjs +1188 -0
- package/dist/embed.cjs.map +1 -0
- package/dist/embed.css +945 -0
- package/dist/embed.css.map +1 -0
- package/dist/embed.d.cts +55 -0
- package/dist/embed.d.ts +55 -0
- package/dist/embed.js +248 -0
- package/dist/embed.js.map +1 -0
- package/dist/index.cjs +368 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +73 -0
- package/dist/index.d.ts +73 -0
- package/dist/index.js +332 -0
- package/dist/index.js.map +1 -0
- package/dist/react.cjs +978 -0
- package/dist/react.cjs.map +1 -0
- package/dist/react.css +798 -0
- package/dist/react.css.map +1 -0
- package/dist/react.d.cts +113 -0
- package/dist/react.d.ts +113 -0
- package/dist/react.js +36 -0
- package/dist/react.js.map +1 -0
- package/package.json +61 -0
- package/scripts/build-agent-manifest-bundle-impl.mjs +87 -0
- package/scripts/build-agent-manifest-bundle.mjs +42 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/react/components/ToolTimeline/ToolTimeline.css","../src/react/components/AgentActivityBubble/AgentActivityBubble.css","../src/react/components/Composer/Composer.css","../src/react/components/FollowUpChips/FollowUpChips.css","../src/react/components/MessageBubble/MessageBubble.css","../src/react/components/AgentRail/AgentRail.css","../src/react/components/AssistEdgeTab/AssistEdgeTab.css"],"sourcesContent":[".tool-timeline {\n width: fit-content;\n max-width: 100%;\n}\n\n.tool-timeline--inline {\n background: transparent;\n border: none;\n border-radius: 0;\n padding: 0;\n}\n\n.tool-timeline:not(.tool-timeline--inline) {\n background: var(--as-surface-muted);\n border: 1px solid var(--as-border);\n border-radius: var(--as-radius-md);\n padding: 12px;\n}\n\n.agent-status {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n min-width: 0;\n animation: agent-status-in 0.22s cubic-bezier(0.22, 1, 0.36, 1);\n}\n\n@keyframes agent-status-in {\n from {\n opacity: 0;\n transform: translateY(4px);\n }\n\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.agent-status__icon {\n width: 16px;\n height: 16px;\n display: grid;\n place-items: center;\n flex-shrink: 0;\n margin-top: 2px;\n color: var(--as-brand);\n}\n\n.agent-status__icon--error {\n font-size: 12px;\n font-weight: 700;\n color: var(--as-danger);\n}\n\n.agent-status__spinner {\n width: 14px;\n height: 14px;\n animation: as-spin 0.9s linear infinite;\n}\n\n@keyframes as-spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n.agent-status__copy {\n display: flex;\n flex-direction: column;\n gap: 2px;\n min-width: 0;\n}\n\n.agent-status__label {\n font-size: 13px;\n font-weight: 500;\n line-height: 1.4;\n color: var(--as-text-muted);\n word-break: break-word;\n}\n\n.agent-status__detail {\n font-size: 12px;\n line-height: 1.35;\n color: var(--as-text-subtle);\n word-break: break-word;\n}\n\n.tool-timeline__streaming-text {\n display: inline-block;\n width: fit-content;\n max-width: 100%;\n font-size: 13px;\n line-height: 1.5;\n color: var(--as-text);\n word-break: break-word;\n margin: 0;\n padding: 10px 12px;\n background: var(--as-surface-muted);\n border: 1px solid var(--as-border);\n border-radius: var(--as-radius-md);\n border-bottom-left-radius: 4px;\n}\n\n.tool-timeline__streaming-text:not(:first-child) {\n margin-top: 10px;\n}\n\n.tool-timeline__cursor {\n display: inline-block;\n width: 2px;\n height: 14px;\n margin-left: 1px;\n vertical-align: text-bottom;\n background: var(--as-brand);\n animation: as-blink 1s step-end infinite;\n}\n\n@keyframes as-blink {\n 50% {\n opacity: 0;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .agent-status {\n animation: none;\n }\n\n .agent-status__spinner {\n animation: none;\n }\n}\n",".agent-activity-bubble {\n align-self: flex-start;\n width: 100%;\n max-width: 100%;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n}\n\n.agent-activity-bubble__shell {\n width: fit-content;\n max-width: 100%;\n padding: 0;\n background: transparent;\n border: none;\n}\n",".composer {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.composer__field {\n display: flex;\n align-items: flex-end;\n gap: 6px;\n padding: 6px;\n border: 1px solid var(--as-border);\n border-radius: var(--as-radius-lg);\n background: var(--as-surface-muted);\n}\n\n.composer__field:focus-within {\n border-color: rgb(111 22 255 / 0.35);\n box-shadow: 0 0 0 3px rgb(111 22 255 / 0.1);\n}\n\n.composer__input {\n flex: 1;\n min-width: 0;\n border: none;\n background: transparent;\n resize: none;\n padding: 8px 6px 8px 8px;\n font-size: 13px;\n line-height: 1.45;\n color: var(--as-text);\n max-height: 96px;\n}\n\n.composer__input::placeholder {\n color: var(--as-text-subtle);\n}\n\n.composer__input:focus {\n outline: none;\n}\n\n.composer__send {\n appearance: none;\n border: none;\n width: 34px;\n height: 34px;\n border-radius: 999px;\n background: var(--as-brand);\n color: #fff;\n display: grid;\n place-items: center;\n cursor: pointer;\n flex-shrink: 0;\n transition: opacity 0.15s ease, transform 0.15s ease;\n}\n\n.composer__send:hover:not(:disabled) {\n transform: translateY(-1px);\n}\n\n.composer__send:disabled {\n opacity: 0.45;\n cursor: not-allowed;\n}\n\n.composer__send svg {\n width: 14px;\n height: 14px;\n}\n\n.composer--dock .composer__field {\n align-items: center;\n padding: 5px 5px 5px 13px;\n background: var(--as-surface-muted);\n border: 1px solid var(--as-border);\n border-radius: 999px;\n box-shadow: none;\n}\n\n.composer--dock .composer__field:focus-within {\n border-color: rgb(111 22 255 / 0.35);\n box-shadow: 0 0 0 3px rgb(111 22 255 / 0.1);\n}\n\n.composer--dock .composer__input {\n padding: 11px 0;\n font-size: 15px;\n max-height: 48px;\n}\n\n.composer--dock .composer__send {\n width: 40px;\n height: 40px;\n}\n\n.composer--dock .composer__send svg {\n width: 15px;\n height: 15px;\n}\n",".followups {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.followups__label {\n font-size: 12px;\n font-weight: 700;\n color: var(--as-text-subtle);\n letter-spacing: 0.02em;\n}\n\n.followups__list {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.followups__chip {\n appearance: none;\n border: 1px solid var(--as-border);\n background: var(--as-surface);\n color: var(--as-text);\n font-size: 13px;\n font-weight: 600;\n line-height: 1.4;\n text-align: left;\n border-radius: var(--as-radius-sm);\n padding: 10px 12px;\n cursor: pointer;\n transition: border-color 0.15s ease, background 0.15s ease;\n word-break: break-word;\n}\n\n.followups__chip:hover:not(:disabled) {\n border-color: rgb(111 22 255 / 0.25);\n background: var(--as-brand-soft);\n}\n\n.followups__chip:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.followups--dock {\n width: 100%;\n gap: 0;\n}\n\n.followups__scroll {\n display: flex;\n gap: 8px;\n justify-content: flex-start;\n overflow-x: auto;\n padding: 2px;\n scrollbar-width: none;\n -ms-overflow-style: none;\n}\n\n.followups__scroll::-webkit-scrollbar {\n display: none;\n}\n\n.followups__chip--dock {\n display: inline-flex;\n align-items: center;\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n padding: 8px 12px;\n border-radius: 999px;\n font-size: 12px;\n font-weight: 600;\n white-space: nowrap;\n text-align: left;\n}\n",".message-bubble {\n display: flex;\n flex-direction: column;\n gap: 8px;\n max-width: 92%;\n}\n\n.message-bubble--visitor {\n align-self: flex-end;\n align-items: flex-end;\n}\n\n.message-bubble--agent {\n align-self: flex-start;\n align-items: flex-start;\n max-width: 100%;\n}\n\n.message-bubble__text {\n margin: 0;\n padding: 10px 12px;\n border-radius: var(--as-radius-md);\n font-size: 13px;\n line-height: 1.5;\n word-break: break-word;\n}\n\n.message-bubble--visitor .message-bubble__text {\n background: var(--as-visitor-bubble);\n color: var(--as-visitor-text);\n border-bottom-right-radius: 4px;\n}\n\n.message-bubble--agent .message-bubble__text {\n background: var(--as-surface-muted);\n color: var(--as-text);\n border: 1px solid var(--as-border);\n border-bottom-left-radius: 4px;\n}\n",".agent-rail {\n --rail-width: var(--as-rail-max-width);\n display: flex;\n flex-direction: column;\n width: var(--rail-width);\n max-width: var(--rail-width);\n min-width: var(--rail-width);\n height: 100%;\n max-height: 100dvh;\n overflow: hidden;\n background: var(--as-surface);\n border-left: 1px solid var(--as-border);\n box-shadow: var(--as-shadow-rail);\n color: var(--as-text);\n font-family: var(--as-font-body);\n position: relative;\n z-index: var(--as-z-rail);\n}\n\n.agent-rail__header {\n flex-shrink: 0;\n display: flex;\n flex-direction: column;\n gap: 10px;\n padding: 14px;\n}\n\n.agent-rail__brand-row {\n display: grid;\n grid-template-columns: 32px 1fr 32px;\n align-items: center;\n min-height: 32px;\n min-width: 0;\n}\n\n.agent-rail__brand-label {\n grid-column: 2;\n grid-row: 1;\n font-family: var(--as-font-display);\n font-size: 14px;\n font-weight: 600;\n letter-spacing: -0.01em;\n line-height: 1;\n text-align: center;\n}\n\n.agent-rail__brand-spacer {\n width: 32px;\n height: 32px;\n}\n\n.agent-rail__collapse,\n.agent-rail__close,\n.agent-rail__expand {\n appearance: none;\n border: none;\n background: transparent;\n color: var(--as-text-subtle);\n width: 32px;\n height: 32px;\n margin: 0;\n padding: 0;\n border-radius: 8px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n flex-shrink: 0;\n grid-row: 1;\n}\n\n.agent-rail__collapse,\n.agent-rail__close {\n grid-column: 1;\n justify-self: start;\n}\n\n.agent-rail__expand {\n grid-column: 3;\n justify-self: end;\n}\n\n.agent-rail__collapse:hover,\n.agent-rail__close:hover,\n.agent-rail__expand:hover {\n background: var(--as-surface-muted);\n color: var(--as-text);\n}\n\n.agent-rail__collapse svg,\n.agent-rail__close svg,\n.agent-rail__expand svg {\n width: 16px;\n height: 16px;\n}\n\n.agent-rail__transcript {\n flex: 1 1 auto;\n min-height: 0;\n overflow-y: auto;\n overflow-x: hidden;\n overscroll-behavior: contain;\n padding: 14px 12px;\n display: flex;\n flex-direction: column;\n gap: 14px;\n scroll-behavior: smooth;\n -webkit-overflow-scrolling: touch;\n}\n\n.agent-rail__timeline-slot,\n.agent-rail__followups-slot {\n flex-shrink: 0;\n}\n\n.agent-rail__composer-wrap {\n flex-shrink: 0;\n padding: 12px 12px 14px;\n border-top: 1px solid var(--as-border);\n background: var(--as-surface);\n}\n\n.agent-rail__footer {\n margin-top: 8px;\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.agent-rail__footer-disclaimer {\n margin: 0;\n text-align: center;\n font-size: 11px;\n color: var(--as-text-subtle);\n line-height: 1.35;\n}\n\n.agent-rail__footer-note {\n margin: 0;\n text-align: center;\n font-size: 11px;\n color: var(--as-text-subtle);\n line-height: 1.35;\n}\n\n.agent-rail--mobile-fullscreen {\n position: fixed;\n inset: 0;\n width: 100%;\n max-width: none;\n min-width: 0;\n height: 100dvh;\n max-height: 100dvh;\n overflow: hidden;\n z-index: var(--as-z-mobile);\n border-left: none;\n box-shadow: none;\n}\n\n.agent-rail--expanded {\n position: fixed;\n top: 50%;\n left: 50%;\n width: 95vw;\n height: 95dvh;\n max-width: none;\n min-width: 0;\n max-height: 95dvh;\n transform: translate(-50%, -50%);\n z-index: calc(var(--as-z-mobile) + 1);\n border: 1px solid var(--as-border);\n border-radius: var(--as-radius-lg);\n box-shadow:\n 0 0 0 1px rgb(42 51 70 / 0.04),\n 0 28px 80px -24px rgb(18 4 62 / 0.35);\n transition:\n width 320ms cubic-bezier(0.22, 1, 0.36, 1),\n height 320ms cubic-bezier(0.22, 1, 0.36, 1),\n transform 320ms cubic-bezier(0.22, 1, 0.36, 1),\n border-radius 320ms cubic-bezier(0.22, 1, 0.36, 1),\n box-shadow 320ms cubic-bezier(0.22, 1, 0.36, 1);\n overflow: hidden;\n}\n\n.agent-rail--expanded .agent-rail__transcript {\n padding: 20px 24px 25px;\n align-items: center;\n}\n\n.agent-rail--expanded .agent-rail__transcript .message-bubble {\n width: 85%;\n max-width: 85%;\n}\n\n.agent-rail--expanded .agent-rail__transcript .message-bubble__text {\n font-size: 16px;\n padding: 12px 14px;\n}\n\n.agent-rail--expanded .agent-rail__transcript .tool-timeline__streaming-text {\n font-size: 16px;\n padding: 12px 14px;\n}\n\n.agent-rail--expanded .agent-rail__transcript .message-bubble--visitor {\n align-self: center;\n align-items: flex-end;\n}\n\n.agent-rail--expanded .agent-rail__transcript .message-bubble--agent {\n align-self: center;\n align-items: flex-start;\n}\n\n.agent-rail--expanded .agent-rail__transcript .agent-activity-bubble,\n.agent-rail--expanded .agent-rail__transcript [role=\"alert\"] {\n align-self: center;\n align-items: flex-start;\n width: 85%;\n max-width: 85%;\n}\n\n.agent-rail--expanded .agent-rail__dock-wrap {\n flex-shrink: 0;\n width: 70%;\n max-width: 70%;\n align-self: center;\n padding: 18px 0 24px;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 10px;\n}\n\n.agent-rail--expanded .agent-rail__dock-followups {\n width: 100%;\n}\n\n.agent-rail--expanded .agent-rail__dock-followups .followups__scroll {\n justify-content: flex-start;\n}\n\n.agent-rail--expanded .agent-rail__dock {\n display: flex;\n flex-direction: column;\n gap: 10px;\n width: 100%;\n padding: 12px;\n border: 1px solid var(--as-border);\n border-radius: calc(var(--as-radius-lg) + 4px);\n background: #fff;\n}\n\n.agent-rail--expanded .agent-rail__footer {\n margin-top: 0;\n width: 100%;\n}\n\n.agent-rail--mobile-fullscreen .agent-rail__close {\n display: grid;\n}\n\n.agent-rail--mobile-fullscreen .agent-rail__collapse {\n display: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .agent-rail--expanded {\n transition: none;\n }\n}\n\n@media (max-width: 767px) {\n .agent-rail {\n position: fixed;\n inset: 0;\n width: 100%;\n max-width: none;\n min-width: 0;\n height: 100dvh;\n max-height: 100dvh;\n overflow: hidden;\n z-index: var(--as-z-mobile);\n border-left: none;\n box-shadow: none;\n }\n\n .agent-rail .agent-rail__close {\n display: grid;\n }\n\n .agent-rail .agent-rail__collapse {\n display: none;\n }\n}\n\n@media (min-width: 768px) {\n .agent-rail .agent-rail__close {\n display: none !important;\n }\n}\n",".assist-edge-tab {\n --tab-ink: var(--as-brand);\n --tab-fill: #fff;\n --tab-line: rgb(111 22 255 / 0.35);\n --tab-along: 50%;\n --tab-inset: 0px;\n position: fixed;\n top: auto;\n right: auto;\n bottom: auto;\n left: auto;\n z-index: calc(var(--as-z-rail) + 1);\n appearance: none;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n border: 1px solid var(--tab-line);\n background: var(--tab-fill);\n color: var(--tab-ink);\n cursor: pointer;\n opacity: 0;\n pointer-events: none;\n box-shadow: -6px 0 20px -12px rgb(18 4 62 / 0.28);\n transition:\n transform 420ms cubic-bezier(0.22, 1, 0.36, 1),\n opacity 240ms ease,\n box-shadow 180ms ease;\n}\n\n.assist-edge-tab.is-visible {\n opacity: 1;\n pointer-events: auto;\n}\n\n.assist-edge-tab:focus-visible {\n outline: 2px solid var(--as-brand);\n outline-offset: 3px;\n}\n\n.assist-edge-tab svg {\n width: 16px;\n height: 16px;\n flex-shrink: 0;\n}\n\n.assist-edge-tab__sparkles {\n width: 18px;\n height: 16px;\n}\n\n.assist-edge-tab__label {\n font-family: var(--as-font-display);\n font-size: 13px;\n font-weight: 600;\n letter-spacing: 0.02em;\n line-height: 1;\n white-space: nowrap;\n}\n\n.assist-edge-tab--right,\n.assist-edge-tab--left {\n flex-direction: column;\n width: 40px;\n min-height: 168px;\n padding: 14px 0 12px;\n}\n\n.assist-edge-tab--right .assist-edge-tab__label,\n.assist-edge-tab--left .assist-edge-tab__label {\n writing-mode: vertical-rl;\n transform: rotate(180deg);\n}\n\n.assist-edge-tab--top,\n.assist-edge-tab--bottom {\n flex-direction: row;\n height: 40px;\n min-width: 168px;\n width: auto;\n padding: 0 14px;\n}\n\n.assist-edge-tab--right {\n top: var(--tab-along);\n right: var(--tab-inset);\n border-right: none;\n border-radius: 999px 0 0 999px;\n transform: translateY(-50%) translateX(calc(100% + 18px));\n}\n\n.assist-edge-tab--right.is-visible {\n transform: translateY(-50%) translateX(0);\n}\n\n.assist-edge-tab--right.is-visible:hover {\n transform: translateY(-50%) translateX(-2px);\n}\n\n.assist-edge-tab--left {\n top: var(--tab-along);\n left: var(--tab-inset);\n border-left: none;\n border-radius: 0 999px 999px 0;\n transform: translateY(-50%) translateX(calc(-100% - 18px));\n}\n\n.assist-edge-tab--left.is-visible {\n transform: translateY(-50%) translateX(0);\n}\n\n.assist-edge-tab--left.is-visible:hover {\n transform: translateY(-50%) translateX(2px);\n}\n\n.assist-edge-tab--top {\n left: var(--tab-along);\n top: var(--tab-inset);\n border-top: none;\n border-radius: 0 0 999px 999px;\n transform: translateX(-50%) translateY(calc(-100% - 18px));\n}\n\n.assist-edge-tab--top.is-visible {\n transform: translateX(-50%) translateY(0);\n}\n\n.assist-edge-tab--top.is-visible:hover {\n transform: translateX(-50%) translateY(2px);\n}\n\n.assist-edge-tab--bottom {\n left: var(--tab-along);\n bottom: var(--tab-inset);\n border-bottom: none;\n border-radius: 999px 999px 0 0;\n transform: translateX(-50%) translateY(calc(100% + 18px));\n}\n\n.assist-edge-tab--bottom.is-visible {\n transform: translateX(-50%) translateY(0);\n}\n\n.assist-edge-tab--bottom.is-visible:hover {\n transform: translateX(-50%) translateY(-2px);\n}\n\n.assist-edge-tab--outline {\n --tab-fill: #f7f6fa;\n --tab-line: rgb(111 22 255 / 0.45);\n}\n\n.assist-edge-tab--outline.assist-edge-tab--right,\n.assist-edge-tab--outline.assist-edge-tab--left {\n min-height: 176px;\n border-radius: 999px;\n border-right: 1px solid var(--tab-line);\n border-left: 1px solid var(--tab-line);\n}\n\n.assist-edge-tab--outline.assist-edge-tab--top,\n.assist-edge-tab--outline.assist-edge-tab--bottom {\n border-radius: 999px;\n border-top: 1px solid var(--tab-line);\n border-bottom: 1px solid var(--tab-line);\n}\n\n.assist-edge-tab--ask {\n --tab-fill: #efe8fb;\n --tab-line: transparent;\n}\n\n.assist-edge-tab--ask.assist-edge-tab--right,\n.assist-edge-tab--ask.assist-edge-tab--left {\n min-height: 196px;\n width: 42px;\n}\n\n.assist-edge-tab--ask.assist-edge-tab--right {\n border-radius: 18px 0 0 18px;\n}\n\n.assist-edge-tab--ask.assist-edge-tab--left {\n border-radius: 0 18px 18px 0;\n}\n\n.assist-edge-tab--fill {\n --tab-fill: var(--as-brand);\n --tab-ink: #fff;\n --tab-line: transparent;\n box-shadow: -8px 0 22px -10px rgb(111 22 255 / 0.55);\n}\n\n.assist-edge-tab--fill.assist-edge-tab--right,\n.assist-edge-tab--fill.assist-edge-tab--left {\n min-height: 180px;\n}\n\n.assist-edge-tab__dots {\n display: grid;\n grid-template-columns: repeat(3, 3px);\n gap: 3px;\n}\n\n.assist-edge-tab--top .assist-edge-tab__dots,\n.assist-edge-tab--bottom .assist-edge-tab__dots {\n grid-template-columns: repeat(4, 3px);\n grid-template-rows: repeat(3, 3px);\n}\n\n.assist-edge-tab__dots i {\n width: 3px;\n height: 3px;\n border-radius: 999px;\n background: currentColor;\n opacity: 0.55;\n}\n\n@media (max-width: 767px) {\n .assist-edge-tab {\n z-index: calc(var(--as-z-mobile) + 2);\n }\n\n .assist-edge-tab--right,\n .assist-edge-tab--left {\n min-height: 148px;\n width: 36px;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .assist-edge-tab,\n .assist-edge-tab.is-visible,\n .assist-edge-tab.is-visible:hover {\n transition: none;\n }\n}\n"],"mappings":"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","names":[]}
|
package/dist/react.d.cts
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
|
|
3
|
+
type ToolStepState = "completed" | "active" | "pending" | "error";
|
|
4
|
+
type ToolStep = {
|
|
5
|
+
id: string;
|
|
6
|
+
label: string;
|
|
7
|
+
state: ToolStepState;
|
|
8
|
+
detail?: string;
|
|
9
|
+
};
|
|
10
|
+
type Citation = {
|
|
11
|
+
id: string;
|
|
12
|
+
label: string;
|
|
13
|
+
url: string;
|
|
14
|
+
};
|
|
15
|
+
type FollowUpSuggestion = {
|
|
16
|
+
id: string;
|
|
17
|
+
label: string;
|
|
18
|
+
};
|
|
19
|
+
type JourneyContext = {
|
|
20
|
+
id: string;
|
|
21
|
+
name: string;
|
|
22
|
+
currentStep?: number;
|
|
23
|
+
totalSteps?: number;
|
|
24
|
+
stepLabel?: string;
|
|
25
|
+
};
|
|
26
|
+
type ConversationMessage = {
|
|
27
|
+
id: string;
|
|
28
|
+
role: "visitor";
|
|
29
|
+
text: string;
|
|
30
|
+
createdAt: number;
|
|
31
|
+
} | {
|
|
32
|
+
id: string;
|
|
33
|
+
role: "agent";
|
|
34
|
+
text: string;
|
|
35
|
+
createdAt: number;
|
|
36
|
+
citations?: Citation[];
|
|
37
|
+
toolReceipts?: string[];
|
|
38
|
+
streaming?: boolean;
|
|
39
|
+
};
|
|
40
|
+
type AgentRailPhase = "idle" | "thinking" | "running-tools" | "streaming" | "complete";
|
|
41
|
+
type AgentRailState = {
|
|
42
|
+
phase: AgentRailPhase;
|
|
43
|
+
messages: ConversationMessage[];
|
|
44
|
+
toolSteps: ToolStep[];
|
|
45
|
+
journey: JourneyContext | null;
|
|
46
|
+
followUps: FollowUpSuggestion[];
|
|
47
|
+
streamingText: string;
|
|
48
|
+
error: string | null;
|
|
49
|
+
};
|
|
50
|
+
type AgentRailTheme = {
|
|
51
|
+
railMaxWidth: string;
|
|
52
|
+
brand: string;
|
|
53
|
+
brandSoft: string;
|
|
54
|
+
brandDeep: string;
|
|
55
|
+
surface: string;
|
|
56
|
+
surfaceMuted: string;
|
|
57
|
+
text: string;
|
|
58
|
+
textMuted: string;
|
|
59
|
+
textSubtle: string;
|
|
60
|
+
border: string;
|
|
61
|
+
visitorBubble: string;
|
|
62
|
+
visitorText: string;
|
|
63
|
+
success: string;
|
|
64
|
+
danger: string;
|
|
65
|
+
};
|
|
66
|
+
declare const defaultAgentRailTheme: AgentRailTheme;
|
|
67
|
+
|
|
68
|
+
type AgentRailProps = {
|
|
69
|
+
state: AgentRailState;
|
|
70
|
+
theme?: Partial<AgentRailTheme>;
|
|
71
|
+
brandLabel?: string;
|
|
72
|
+
poweredByLabel?: string;
|
|
73
|
+
composerPlaceholder?: string;
|
|
74
|
+
mobileFullscreen?: boolean;
|
|
75
|
+
expanded?: boolean;
|
|
76
|
+
onCollapse?: () => void;
|
|
77
|
+
onClose?: () => void;
|
|
78
|
+
onExpandToggle?: () => void;
|
|
79
|
+
onSubmit?: (message: string) => void;
|
|
80
|
+
onFollowUpSelect?: (label: string) => void;
|
|
81
|
+
};
|
|
82
|
+
declare function AgentRail({ state, theme, brandLabel, poweredByLabel, composerPlaceholder, mobileFullscreen, expanded, onCollapse, onClose, onExpandToggle, onSubmit, onFollowUpSelect, }: AgentRailProps): react.JSX.Element;
|
|
83
|
+
|
|
84
|
+
type AssistTabVariant = "outline" | "ask" | "fill";
|
|
85
|
+
type AssistTabSide = "right" | "left" | "top" | "bottom";
|
|
86
|
+
declare function AssistEdgeTab({ variant, side, along, inset, visible, onOpen, }: {
|
|
87
|
+
variant: AssistTabVariant;
|
|
88
|
+
side: AssistTabSide;
|
|
89
|
+
along: number;
|
|
90
|
+
inset: number;
|
|
91
|
+
visible: boolean;
|
|
92
|
+
onOpen: () => void;
|
|
93
|
+
}): react.JSX.Element;
|
|
94
|
+
|
|
95
|
+
type UseAgentChatOptions = {
|
|
96
|
+
customerId?: string;
|
|
97
|
+
indexId: string;
|
|
98
|
+
runtimeOrigin?: string;
|
|
99
|
+
visitorSessionId?: string;
|
|
100
|
+
storageKeyPrefix?: string;
|
|
101
|
+
};
|
|
102
|
+
declare function useAgentChat({ customerId, indexId, runtimeOrigin, visitorSessionId, storageKeyPrefix, }: UseAgentChatOptions): {
|
|
103
|
+
state: AgentRailState;
|
|
104
|
+
reset: () => void;
|
|
105
|
+
submit: (visitorText: string) => Promise<void>;
|
|
106
|
+
visitorSessionId: string;
|
|
107
|
+
sessionId: string | undefined;
|
|
108
|
+
};
|
|
109
|
+
declare function hasVisitorMessages(messages: ConversationMessage[]): boolean;
|
|
110
|
+
declare function createIdleSuggestions(): FollowUpSuggestion[];
|
|
111
|
+
declare function isAgentBusy(phase: AgentRailPhase): phase is "thinking" | "running-tools" | "streaming";
|
|
112
|
+
|
|
113
|
+
export { AgentRail, type AgentRailPhase, type AgentRailProps, type AgentRailState, type AgentRailTheme, AssistEdgeTab, type AssistTabSide, type AssistTabVariant, type Citation, type ConversationMessage, type FollowUpSuggestion, type JourneyContext, type ToolStep, type ToolStepState, type UseAgentChatOptions, createIdleSuggestions, defaultAgentRailTheme, hasVisitorMessages, isAgentBusy, useAgentChat };
|
package/dist/react.d.ts
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
|
|
3
|
+
type ToolStepState = "completed" | "active" | "pending" | "error";
|
|
4
|
+
type ToolStep = {
|
|
5
|
+
id: string;
|
|
6
|
+
label: string;
|
|
7
|
+
state: ToolStepState;
|
|
8
|
+
detail?: string;
|
|
9
|
+
};
|
|
10
|
+
type Citation = {
|
|
11
|
+
id: string;
|
|
12
|
+
label: string;
|
|
13
|
+
url: string;
|
|
14
|
+
};
|
|
15
|
+
type FollowUpSuggestion = {
|
|
16
|
+
id: string;
|
|
17
|
+
label: string;
|
|
18
|
+
};
|
|
19
|
+
type JourneyContext = {
|
|
20
|
+
id: string;
|
|
21
|
+
name: string;
|
|
22
|
+
currentStep?: number;
|
|
23
|
+
totalSteps?: number;
|
|
24
|
+
stepLabel?: string;
|
|
25
|
+
};
|
|
26
|
+
type ConversationMessage = {
|
|
27
|
+
id: string;
|
|
28
|
+
role: "visitor";
|
|
29
|
+
text: string;
|
|
30
|
+
createdAt: number;
|
|
31
|
+
} | {
|
|
32
|
+
id: string;
|
|
33
|
+
role: "agent";
|
|
34
|
+
text: string;
|
|
35
|
+
createdAt: number;
|
|
36
|
+
citations?: Citation[];
|
|
37
|
+
toolReceipts?: string[];
|
|
38
|
+
streaming?: boolean;
|
|
39
|
+
};
|
|
40
|
+
type AgentRailPhase = "idle" | "thinking" | "running-tools" | "streaming" | "complete";
|
|
41
|
+
type AgentRailState = {
|
|
42
|
+
phase: AgentRailPhase;
|
|
43
|
+
messages: ConversationMessage[];
|
|
44
|
+
toolSteps: ToolStep[];
|
|
45
|
+
journey: JourneyContext | null;
|
|
46
|
+
followUps: FollowUpSuggestion[];
|
|
47
|
+
streamingText: string;
|
|
48
|
+
error: string | null;
|
|
49
|
+
};
|
|
50
|
+
type AgentRailTheme = {
|
|
51
|
+
railMaxWidth: string;
|
|
52
|
+
brand: string;
|
|
53
|
+
brandSoft: string;
|
|
54
|
+
brandDeep: string;
|
|
55
|
+
surface: string;
|
|
56
|
+
surfaceMuted: string;
|
|
57
|
+
text: string;
|
|
58
|
+
textMuted: string;
|
|
59
|
+
textSubtle: string;
|
|
60
|
+
border: string;
|
|
61
|
+
visitorBubble: string;
|
|
62
|
+
visitorText: string;
|
|
63
|
+
success: string;
|
|
64
|
+
danger: string;
|
|
65
|
+
};
|
|
66
|
+
declare const defaultAgentRailTheme: AgentRailTheme;
|
|
67
|
+
|
|
68
|
+
type AgentRailProps = {
|
|
69
|
+
state: AgentRailState;
|
|
70
|
+
theme?: Partial<AgentRailTheme>;
|
|
71
|
+
brandLabel?: string;
|
|
72
|
+
poweredByLabel?: string;
|
|
73
|
+
composerPlaceholder?: string;
|
|
74
|
+
mobileFullscreen?: boolean;
|
|
75
|
+
expanded?: boolean;
|
|
76
|
+
onCollapse?: () => void;
|
|
77
|
+
onClose?: () => void;
|
|
78
|
+
onExpandToggle?: () => void;
|
|
79
|
+
onSubmit?: (message: string) => void;
|
|
80
|
+
onFollowUpSelect?: (label: string) => void;
|
|
81
|
+
};
|
|
82
|
+
declare function AgentRail({ state, theme, brandLabel, poweredByLabel, composerPlaceholder, mobileFullscreen, expanded, onCollapse, onClose, onExpandToggle, onSubmit, onFollowUpSelect, }: AgentRailProps): react.JSX.Element;
|
|
83
|
+
|
|
84
|
+
type AssistTabVariant = "outline" | "ask" | "fill";
|
|
85
|
+
type AssistTabSide = "right" | "left" | "top" | "bottom";
|
|
86
|
+
declare function AssistEdgeTab({ variant, side, along, inset, visible, onOpen, }: {
|
|
87
|
+
variant: AssistTabVariant;
|
|
88
|
+
side: AssistTabSide;
|
|
89
|
+
along: number;
|
|
90
|
+
inset: number;
|
|
91
|
+
visible: boolean;
|
|
92
|
+
onOpen: () => void;
|
|
93
|
+
}): react.JSX.Element;
|
|
94
|
+
|
|
95
|
+
type UseAgentChatOptions = {
|
|
96
|
+
customerId?: string;
|
|
97
|
+
indexId: string;
|
|
98
|
+
runtimeOrigin?: string;
|
|
99
|
+
visitorSessionId?: string;
|
|
100
|
+
storageKeyPrefix?: string;
|
|
101
|
+
};
|
|
102
|
+
declare function useAgentChat({ customerId, indexId, runtimeOrigin, visitorSessionId, storageKeyPrefix, }: UseAgentChatOptions): {
|
|
103
|
+
state: AgentRailState;
|
|
104
|
+
reset: () => void;
|
|
105
|
+
submit: (visitorText: string) => Promise<void>;
|
|
106
|
+
visitorSessionId: string;
|
|
107
|
+
sessionId: string | undefined;
|
|
108
|
+
};
|
|
109
|
+
declare function hasVisitorMessages(messages: ConversationMessage[]): boolean;
|
|
110
|
+
declare function createIdleSuggestions(): FollowUpSuggestion[];
|
|
111
|
+
declare function isAgentBusy(phase: AgentRailPhase): phase is "thinking" | "running-tools" | "streaming";
|
|
112
|
+
|
|
113
|
+
export { AgentRail, type AgentRailPhase, type AgentRailProps, type AgentRailState, type AgentRailTheme, AssistEdgeTab, type AssistTabSide, type AssistTabVariant, type Citation, type ConversationMessage, type FollowUpSuggestion, type JourneyContext, type ToolStep, type ToolStepState, type UseAgentChatOptions, createIdleSuggestions, defaultAgentRailTheme, hasVisitorMessages, isAgentBusy, useAgentChat };
|
package/dist/react.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AgentRail,
|
|
3
|
+
AssistEdgeTab,
|
|
4
|
+
createIdleSuggestions,
|
|
5
|
+
hasVisitorMessages,
|
|
6
|
+
isAgentBusy,
|
|
7
|
+
useAgentChat
|
|
8
|
+
} from "./chunk-WLQDMWO6.js";
|
|
9
|
+
|
|
10
|
+
// src/react/types/conversation.ts
|
|
11
|
+
var defaultAgentRailTheme = {
|
|
12
|
+
railMaxWidth: "450px",
|
|
13
|
+
brand: "#6f16ff",
|
|
14
|
+
brandSoft: "#f3edff",
|
|
15
|
+
brandDeep: "#12043e",
|
|
16
|
+
surface: "#ffffff",
|
|
17
|
+
surfaceMuted: "#f4f6fb",
|
|
18
|
+
text: "#171b2a",
|
|
19
|
+
textMuted: "#5a6378",
|
|
20
|
+
textSubtle: "#8a94a8",
|
|
21
|
+
border: "rgb(42 51 70 / 0.1)",
|
|
22
|
+
visitorBubble: "#6f16ff",
|
|
23
|
+
visitorText: "#ffffff",
|
|
24
|
+
success: "#18794e",
|
|
25
|
+
danger: "#c94b63"
|
|
26
|
+
};
|
|
27
|
+
export {
|
|
28
|
+
AgentRail,
|
|
29
|
+
AssistEdgeTab,
|
|
30
|
+
createIdleSuggestions,
|
|
31
|
+
defaultAgentRailTheme,
|
|
32
|
+
hasVisitorMessages,
|
|
33
|
+
isAgentBusy,
|
|
34
|
+
useAgentChat
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=react.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/react/types/conversation.ts"],"sourcesContent":["export type ToolStepState = \"completed\" | \"active\" | \"pending\" | \"error\";\n\nexport type ToolStep = {\n id: string;\n label: string;\n state: ToolStepState;\n detail?: string;\n};\n\nexport type Citation = {\n id: string;\n label: string;\n url: string;\n};\n\nexport type FollowUpSuggestion = {\n id: string;\n label: string;\n};\n\nexport type JourneyContext = {\n id: string;\n name: string;\n currentStep?: number;\n totalSteps?: number;\n stepLabel?: string;\n};\n\nexport type ConversationMessage =\n | {\n id: string;\n role: \"visitor\";\n text: string;\n createdAt: number;\n }\n | {\n id: string;\n role: \"agent\";\n text: string;\n createdAt: number;\n citations?: Citation[];\n toolReceipts?: string[];\n streaming?: boolean;\n };\n\nexport type AgentRailPhase =\n | \"idle\"\n | \"thinking\"\n | \"running-tools\"\n | \"streaming\"\n | \"complete\";\n\nexport type AgentRailState = {\n phase: AgentRailPhase;\n messages: ConversationMessage[];\n toolSteps: ToolStep[];\n journey: JourneyContext | null;\n followUps: FollowUpSuggestion[];\n streamingText: string;\n error: string | null;\n};\n\nexport type AgentRailTheme = {\n railMaxWidth: string;\n brand: string;\n brandSoft: string;\n brandDeep: string;\n surface: string;\n surfaceMuted: string;\n text: string;\n textMuted: string;\n textSubtle: string;\n border: string;\n visitorBubble: string;\n visitorText: string;\n success: string;\n danger: string;\n};\n\nexport const defaultAgentRailTheme: AgentRailTheme = {\n railMaxWidth: \"450px\",\n brand: \"#6f16ff\",\n brandSoft: \"#f3edff\",\n brandDeep: \"#12043e\",\n surface: \"#ffffff\",\n surfaceMuted: \"#f4f6fb\",\n text: \"#171b2a\",\n textMuted: \"#5a6378\",\n textSubtle: \"#8a94a8\",\n border: \"rgb(42 51 70 / 0.1)\",\n visitorBubble: \"#6f16ff\",\n visitorText: \"#ffffff\",\n success: \"#18794e\",\n danger: \"#c94b63\",\n};\n"],"mappings":";;;;;;;;;;AA+EO,IAAM,wBAAwC;AAAA,EACnD,cAAc;AAAA,EACd,OAAO;AAAA,EACP,WAAW;AAAA,EACX,WAAW;AAAA,EACX,SAAS;AAAA,EACT,cAAc;AAAA,EACd,MAAM;AAAA,EACN,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,eAAe;AAAA,EACf,aAAa;AAAA,EACb,SAAS;AAAA,EACT,QAAQ;AACV;","names":[]}
|
package/package.json
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@webless/agent",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Webless Agent SDK — Eve runtime client, React UI, and embed bundle.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"sideEffects": [
|
|
8
|
+
"**/*.css"
|
|
9
|
+
],
|
|
10
|
+
"files": [
|
|
11
|
+
"dist",
|
|
12
|
+
"scripts"
|
|
13
|
+
],
|
|
14
|
+
"main": "./dist/index.cjs",
|
|
15
|
+
"module": "./dist/index.js",
|
|
16
|
+
"types": "./dist/index.d.ts",
|
|
17
|
+
"exports": {
|
|
18
|
+
".": {
|
|
19
|
+
"types": "./dist/index.d.ts",
|
|
20
|
+
"import": "./dist/index.js",
|
|
21
|
+
"require": "./dist/index.cjs"
|
|
22
|
+
},
|
|
23
|
+
"./react": {
|
|
24
|
+
"types": "./dist/react.d.ts",
|
|
25
|
+
"import": "./dist/react.js",
|
|
26
|
+
"require": "./dist/react.cjs"
|
|
27
|
+
},
|
|
28
|
+
"./embed": {
|
|
29
|
+
"types": "./dist/embed.d.ts",
|
|
30
|
+
"import": "./dist/embed.js",
|
|
31
|
+
"require": "./dist/embed.cjs"
|
|
32
|
+
},
|
|
33
|
+
"./react.css": "./dist/react.css",
|
|
34
|
+
"./embed.css": "./dist/embed.css"
|
|
35
|
+
},
|
|
36
|
+
"scripts": {
|
|
37
|
+
"build": "tsup",
|
|
38
|
+
"build:bundle": "node ./scripts/build-agent-manifest-bundle.mjs",
|
|
39
|
+
"clean": "rm -rf dist",
|
|
40
|
+
"test": "vitest run",
|
|
41
|
+
"typecheck": "tsc --noEmit"
|
|
42
|
+
},
|
|
43
|
+
"publishConfig": {
|
|
44
|
+
"access": "public"
|
|
45
|
+
},
|
|
46
|
+
"dependencies": {
|
|
47
|
+
"eve": "0.40.0"
|
|
48
|
+
},
|
|
49
|
+
"peerDependencies": {
|
|
50
|
+
"react": ">=18",
|
|
51
|
+
"react-dom": ">=18"
|
|
52
|
+
},
|
|
53
|
+
"devDependencies": {
|
|
54
|
+
"@types/react": "^19.1.8",
|
|
55
|
+
"@types/react-dom": "^19.1.6",
|
|
56
|
+
"@vitejs/plugin-react": "^4.7.0",
|
|
57
|
+
"react": "^19.1.0",
|
|
58
|
+
"react-dom": "^19.1.0",
|
|
59
|
+
"vite-plugin-css-injected-by-js": "^3.5.2"
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { mkdtemp, mkdir, readFile, writeFile } from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { tmpdir } from "node:os";
|
|
4
|
+
import { fileURLToPath } from "node:url";
|
|
5
|
+
import react from "@vitejs/plugin-react";
|
|
6
|
+
import { build as viteBuild } from "vite";
|
|
7
|
+
import cssInjectedByJsPlugin from "vite-plugin-css-injected-by-js";
|
|
8
|
+
|
|
9
|
+
const packageRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..");
|
|
10
|
+
const repoRoot = path.resolve(packageRoot, "../..");
|
|
11
|
+
const PRODUCTION_NODE_ENV = "production";
|
|
12
|
+
|
|
13
|
+
function createProcessEnvIntro(nodeEnv) {
|
|
14
|
+
return `if(typeof process==="undefined"){var process={env:{}};}process.env=process.env||{};process.env.NODE_ENV=${JSON.stringify(nodeEnv)};`;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function createManifestBundleEntrySource(input) {
|
|
18
|
+
const manifest = {
|
|
19
|
+
...input.manifest,
|
|
20
|
+
customerId: input.customerId,
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
return [
|
|
24
|
+
`import { createWeblessAgentPublicApi } from ${JSON.stringify(path.join(packageRoot, "src/embed/iife-bootstrap.ts"))};`,
|
|
25
|
+
"",
|
|
26
|
+
`const manifest = ${JSON.stringify(manifest)};`,
|
|
27
|
+
"",
|
|
28
|
+
"createWeblessAgentPublicApi(manifest);",
|
|
29
|
+
].join("\n");
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export async function buildAgentBundleFromManifest(input) {
|
|
33
|
+
const outDir = path.resolve(input.outDir);
|
|
34
|
+
const fileName = input.fileName ?? "agent.js";
|
|
35
|
+
const tempDir = await mkdtemp(path.join(tmpdir(), "webless-agent-build-"));
|
|
36
|
+
const entryPath = path.join(tempDir, "manifest-entry.tsx");
|
|
37
|
+
|
|
38
|
+
await mkdir(outDir, { recursive: true });
|
|
39
|
+
await writeFile(entryPath, createManifestBundleEntrySource(input), "utf8");
|
|
40
|
+
|
|
41
|
+
try {
|
|
42
|
+
await viteBuild({
|
|
43
|
+
configFile: false,
|
|
44
|
+
envDir: repoRoot,
|
|
45
|
+
mode: PRODUCTION_NODE_ENV,
|
|
46
|
+
resolve: {
|
|
47
|
+
alias: {
|
|
48
|
+
"@webless/agent": path.join(packageRoot, "src/index.ts"),
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
define: {
|
|
52
|
+
"process.env.NODE_ENV": JSON.stringify(PRODUCTION_NODE_ENV),
|
|
53
|
+
},
|
|
54
|
+
plugins: [react(), cssInjectedByJsPlugin()],
|
|
55
|
+
build: {
|
|
56
|
+
outDir,
|
|
57
|
+
emptyOutDir: false,
|
|
58
|
+
cssCodeSplit: false,
|
|
59
|
+
lib: {
|
|
60
|
+
entry: entryPath,
|
|
61
|
+
fileName: () => fileName,
|
|
62
|
+
formats: ["iife"],
|
|
63
|
+
name: "WeblessAgent",
|
|
64
|
+
},
|
|
65
|
+
rollupOptions: {
|
|
66
|
+
output: {
|
|
67
|
+
intro: createProcessEnvIntro(PRODUCTION_NODE_ENV),
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
minify: "esbuild",
|
|
71
|
+
},
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
const bundlePath = path.join(outDir, fileName);
|
|
75
|
+
const bundle = await readFile(bundlePath);
|
|
76
|
+
|
|
77
|
+
return {
|
|
78
|
+
bundlePath,
|
|
79
|
+
fileName,
|
|
80
|
+
byteLength: bundle.byteLength,
|
|
81
|
+
customerId: input.customerId,
|
|
82
|
+
indexId: input.manifest.indexId,
|
|
83
|
+
};
|
|
84
|
+
} finally {
|
|
85
|
+
await mkdir(tempDir, { recursive: true }).catch(() => {});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { readFile } from "node:fs/promises";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { buildAgentBundleFromManifest } from "./build-agent-manifest-bundle-impl.mjs";
|
|
5
|
+
|
|
6
|
+
function getArg(flag) {
|
|
7
|
+
const prefixedFlag = `--${flag}`;
|
|
8
|
+
const index = process.argv.findIndex((value) => value === prefixedFlag);
|
|
9
|
+
const nextValue = index >= 0 ? process.argv[index + 1] : null;
|
|
10
|
+
|
|
11
|
+
return nextValue?.trim() ? nextValue.trim() : null;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
async function main() {
|
|
15
|
+
const manifestPath = getArg("manifest");
|
|
16
|
+
const customerId = getArg("customer-id");
|
|
17
|
+
const outDir = getArg("out-dir");
|
|
18
|
+
const fileName = getArg("file-name") ?? "agent.js";
|
|
19
|
+
|
|
20
|
+
if (!manifestPath || !customerId || !outDir) {
|
|
21
|
+
throw new Error(
|
|
22
|
+
"Usage: node build-agent-manifest-bundle.mjs --manifest <path> --customer-id <id> --out-dir <dir> [--file-name agent.js]",
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
const manifest = JSON.parse(await readFile(manifestPath, "utf8"));
|
|
27
|
+
const result = await buildAgentBundleFromManifest({
|
|
28
|
+
customerId,
|
|
29
|
+
manifest,
|
|
30
|
+
outDir: path.resolve(outDir),
|
|
31
|
+
fileName,
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
process.stdout.write(`${JSON.stringify(result)}\n`);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
main().catch((error) => {
|
|
38
|
+
process.stderr.write(
|
|
39
|
+
`${error instanceof Error ? (error.stack ?? error.message) : String(error)}\n`,
|
|
40
|
+
);
|
|
41
|
+
process.exit(1);
|
|
42
|
+
});
|