Skip to content

Commit c13b432

Browse files
author
deepshekhardas
committed
Merge remote-tracking branch 'origin/pr-3266-fix' into fix-pr-3322
# Conflicts: # apps/webapp/app/components/LoginPageLayout.tsx # apps/webapp/app/components/code/CodeBlock.tsx # apps/webapp/app/components/layout/AppLayout.tsx # apps/webapp/app/components/navigation/HelpAndFeedbackPopover.tsx # apps/webapp/app/components/primitives/Table.tsx # apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.test.tasks.$taskParam/route.tsx # apps/webapp/app/routes/api.v1.artifacts.ts # apps/webapp/app/routes/resources.orgs.$organizationSlug.projects.$projectParam.env.$envParam.runs.$runParam.spans.$spanParam/route.tsx # apps/webapp/app/tailwind.css # apps/webapp/tailwind.config.js # internal-packages/database/prisma/schema.prisma
2 parents 2dd9f37 + f7f0532 commit c13b432

50 files changed

Lines changed: 986 additions & 258 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
"@trigger.dev/core": patch
3+
"@trigger.dev/sdk": patch
4+
---
5+
6+
feat: Add OpenClaw agent integration with Slack webhooks
7+
8+
Implements Phase 1 MVP for AI agent platform allowing users to create agents through setup form (/agents/setup). Agents are stored in database with configuration (model, platform, tools). Slack webhook receives messages and triggers agent responses. Includes agent management UI and webhook integration infrastructure.

apps/webapp/app/components/AskAI.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ function ChatMessages({
230230
];
231231

232232
return (
233-
<div className="flex-1 overflow-y-auto p-4 scrollbar-thin scrollbar-track-transparent scrollbar-thumb-charcoal-600">
233+
<div className="flex-1 overflow-y-auto p-4 scrollbar-thin scrollbar-track-transparent scrollbar-thumb-gray-300">
234234
{conversation.length === 0 ? (
235235
<motion.div
236236
className="flex flex-col gap-2 pb-2"

apps/webapp/app/components/ErrorDisplay.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ type DisplayOptionsProps = {
4343

4444
export function ErrorDisplay({ title, message, button }: DisplayOptionsProps) {
4545
return (
46-
<div className="relative flex min-h-screen flex-col items-center justify-center bg-[#16181C]">
46+
<div className="relative flex min-h-screen flex-col items-center justify-center bg-background-dimmed">
4747
<div className="z-10 mt-[30vh] flex flex-col items-center gap-8">
4848
<Header1>{title}</Header1>
4949
{message && <Paragraph>{message}</Paragraph>}
Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,20 @@
11
export function LogoIcon({ className }: { className?: string }) {
22
return (
33
<svg
4-
width="321"
5-
height="282"
6-
viewBox="0 0 321 282"
4+
width="32"
5+
height="32"
6+
viewBox="0 0 32 32"
77
fill="none"
88
xmlns="http://www.w3.org/2000/svg"
99
className={className}
1010
>
11+
<rect width="32" height="32" rx="8" fill="#2E7D32" />
1112
<path
12-
fillRule="evenodd"
13-
clipRule="evenodd"
14-
d="M96.1017 113.4L160.679 4.57764e-05L320.718 281.045H0.638916L65.2159 167.642L110.896 194.382L92.0035 227.561H229.354L160.679 106.965L141.786 140.144L96.1017 113.4Z"
15-
fill="url(#paint0_linear_465_1663)"
13+
d="M16 6L24 24H8L16 6Z"
14+
fill="white"
15+
fillOpacity="0.9"
1616
/>
17-
<defs>
18-
<linearGradient
19-
id="paint0_linear_465_1663"
20-
x1="320.718"
21-
y1="140.687"
22-
x2="0.638918"
23-
y2="140.687"
24-
gradientUnits="userSpaceOnUse"
25-
>
26-
<stop stopColor="#41FF54" />
27-
<stop offset="1" stopColor="#E7FF52" />
28-
</linearGradient>
29-
</defs>
17+
<circle cx="16" cy="20" r="2" fill="#2E7D32" />
3018
</svg>
3119
);
3220
}
Lines changed: 24 additions & 182 deletions
Original file line numberDiff line numberDiff line change
@@ -1,190 +1,32 @@
11
export function LogoType({ className }: { className?: string }) {
22
return (
3-
<svg viewBox="0 0 751 130" xmlns="http://www.w3.org/2000/svg" className={className}>
4-
<path
5-
d="M195.022 16.2676H135.445H137.799V32.5096H157.858V102.4H174.84V32.5096H195.022V16.2676Z"
6-
fill="url(#paint0_linear_228_1439)"
7-
/>
8-
<path
9-
d="M211.265 51.4587V40.8767H195.391V102.4H211.265V72.9917C211.265 60.0719 221.725 56.3805 229.97 57.3648V39.6463C222.218 39.6463 214.465 43.0916 211.265 51.4587Z"
10-
fill="url(#paint1_linear_228_1439)"
11-
/>
12-
<path
13-
d="M246.954 33.494C252.368 33.494 256.799 29.0644 256.799 23.7734C256.799 18.4824 252.368 13.9297 246.954 13.9297C241.662 13.9297 237.232 18.4824 237.232 23.7734C237.232 29.0644 241.662 33.494 246.954 33.494ZM239.078 102.4H254.953V40.8767H239.078V102.4Z"
14-
fill="url(#paint2_linear_228_1439)"
15-
/>
16-
<path
17-
d="M315.253 40.8768V48.5056C310.946 42.7224 304.301 39.1542 295.563 39.1542C278.089 39.1542 264.921 53.4275 264.921 70.6539C264.921 88.0033 278.089 102.154 295.563 102.154C304.301 102.154 310.946 98.5853 315.253 92.8021V99.4466C315.253 109.167 309.1 114.581 299.132 114.581C289.656 114.581 285.596 110.767 283.011 105.968L269.475 113.72C274.889 123.687 285.472 128.731 298.64 128.731C314.884 128.731 330.758 119.626 330.758 99.4466V40.8768H315.253ZM298.025 87.5112C288.057 87.5112 280.796 80.4975 280.796 70.6539C280.796 60.9332 288.057 53.9196 298.025 53.9196C307.992 53.9196 315.253 60.9332 315.253 70.6539C315.253 80.4975 307.992 87.5112 298.025 87.5112Z"
18-
fill="url(#paint3_linear_228_1439)"
19-
/>
20-
<path
21-
d="M390.936 40.8768V48.5056C386.629 42.7224 379.983 39.1542 371.246 39.1542C353.772 39.1542 340.604 53.4275 340.604 70.6539C340.604 88.0033 353.772 102.154 371.246 102.154C379.983 102.154 386.629 98.5853 390.936 92.8021V99.4466C390.936 109.167 384.783 114.581 374.815 114.581C365.339 114.581 361.278 110.767 358.694 105.968L345.157 113.72C350.572 123.687 361.155 128.731 374.322 128.731C390.566 128.731 406.441 119.626 406.441 99.4466V40.8768H390.936ZM373.707 87.5112C363.739 87.5112 356.479 80.4975 356.479 70.6539C356.479 60.9332 363.739 53.9196 373.707 53.9196C383.675 53.9196 390.936 60.9332 390.936 70.6539C390.936 80.4975 383.675 87.5112 373.707 87.5112Z"
22-
fill="url(#paint4_linear_228_1439)"
23-
/>
24-
<path
25-
d="M432.9 78.1597H479.293C479.663 76.0679 479.909 73.9761 479.909 71.6383C479.909 53.5505 466.987 39.1542 448.775 39.1542C429.454 39.1542 416.287 53.3044 416.287 71.6383C416.287 89.9721 429.331 104.122 450.005 104.122C461.819 104.122 471.048 99.3236 476.832 90.9564L464.034 83.5737C461.327 87.142 456.404 89.726 450.251 89.726C441.883 89.726 435.115 86.2807 432.9 78.1597ZM432.654 65.8551C434.5 57.9802 440.284 53.4274 448.775 53.4274C455.42 53.4274 462.065 56.9958 464.034 65.8551H432.654Z"
26-
fill="url(#paint5_linear_228_1439)"
27-
/>
28-
<path
29-
d="M505.199 51.4587V40.8767H489.324V102.4H505.199V72.9917C505.199 60.0719 515.659 56.3805 523.904 57.3648V39.6463C516.151 39.6463 508.398 43.0916 505.199 51.4587Z"
30-
fill="url(#paint6_linear_228_1439)"
31-
/>
32-
<path
33-
d="M529.934 103.999C535.717 103.999 540.394 99.3235 540.394 93.5404C540.394 87.7572 535.717 83.0815 529.934 83.0815C524.15 83.0815 519.473 87.7572 519.473 93.5404C519.473 99.3235 524.15 103.999 529.934 103.999Z"
34-
fill="url(#paint7_linear_228_1439)"
35-
/>
36-
<path
37-
d="M596.632 16.2676V48.1364C592.202 42.4763 585.679 39.1541 576.696 39.1541C560.206 39.1541 546.67 53.3044 546.67 71.6382C546.67 89.972 560.206 104.122 576.696 104.122C585.679 104.122 592.202 100.8 596.632 95.1399V102.4H612.506V16.2676L596.632 16.2676ZM579.65 88.9876C569.805 88.9876 562.544 81.9741 562.544 71.6382C562.544 61.3024 569.805 54.2887 579.65 54.2887C589.371 54.2887 596.632 61.3024 596.632 71.6382C596.632 81.9741 589.371 88.9876 579.65 88.9876Z"
38-
fill="url(#paint8_linear_228_1439)"
39-
/>
40-
<path
41-
d="M637.98 78.1597H684.373C684.742 76.0679 684.989 73.9761 684.989 71.6383C684.989 53.5505 672.067 39.1542 653.855 39.1542C634.534 39.1542 621.367 53.3044 621.367 71.6383C621.367 89.9721 634.411 104.122 655.085 104.122C666.899 104.122 676.128 99.3236 681.912 90.9564L669.114 83.5737C666.407 87.142 661.484 89.726 655.331 89.726C646.963 89.726 640.195 86.2807 637.98 78.1597ZM637.734 65.8551C639.58 57.9802 645.363 53.4274 653.855 53.4274C660.5 53.4274 667.145 56.9958 669.114 65.8551H637.734Z"
42-
fill="url(#paint9_linear_228_1439)"
43-
/>
44-
<path
45-
d="M732.859 40.8768L717.846 83.9428L702.955 40.8768H685.481L708.862 102.4H726.952L750.333 40.8768H732.859Z"
46-
fill="url(#paint10_linear_228_1439)"
47-
/>
48-
<path
49-
fillRule="evenodd"
50-
clipRule="evenodd"
51-
d="M35.664 42.3949L59.4114 1.26865L118.264 103.194H0.558823L24.3062 62.0665L41.1046 71.7643L34.157 83.7971H84.6657L59.4114 40.0612L52.4637 52.094L35.664 42.3949Z"
52-
fill="url(#paint11_linear_228_1439)"
53-
/>
3+
<svg
4+
viewBox="0 0 520 80"
5+
xmlns="http://www.w3.org/2000/svg"
6+
className={className}
7+
>
548
<defs>
55-
<linearGradient
56-
id="paint0_linear_228_1439"
57-
x1="329.674"
58-
y1="150.079"
59-
x2="329.674"
60-
y2="13.9297"
61-
gradientUnits="userSpaceOnUse"
62-
>
63-
<stop stopColor="#41FF54" />
64-
<stop offset="1" stopColor="#E7FF52" />
65-
</linearGradient>
66-
<linearGradient
67-
id="paint1_linear_228_1439"
68-
x1="329.674"
69-
y1="150.079"
70-
x2="329.674"
71-
y2="13.9297"
72-
gradientUnits="userSpaceOnUse"
73-
>
74-
<stop stopColor="#41FF54" />
75-
<stop offset="1" stopColor="#E7FF52" />
76-
</linearGradient>
77-
<linearGradient
78-
id="paint2_linear_228_1439"
79-
x1="329.674"
80-
y1="150.079"
81-
x2="329.674"
82-
y2="13.9297"
83-
gradientUnits="userSpaceOnUse"
84-
>
85-
<stop stopColor="#41FF54" />
86-
<stop offset="1" stopColor="#E7FF52" />
87-
</linearGradient>
88-
<linearGradient
89-
id="paint3_linear_228_1439"
90-
x1="329.674"
91-
y1="150.079"
92-
x2="329.674"
93-
y2="13.9297"
94-
gradientUnits="userSpaceOnUse"
95-
>
96-
<stop stopColor="#41FF54" />
97-
<stop offset="1" stopColor="#E7FF52" />
98-
</linearGradient>
99-
<linearGradient
100-
id="paint4_linear_228_1439"
101-
x1="329.674"
102-
y1="150.079"
103-
x2="329.674"
104-
y2="13.9297"
105-
gradientUnits="userSpaceOnUse"
106-
>
107-
<stop stopColor="#41FF54" />
108-
<stop offset="1" stopColor="#E7FF52" />
109-
</linearGradient>
110-
<linearGradient
111-
id="paint5_linear_228_1439"
112-
x1="329.674"
113-
y1="150.079"
114-
x2="329.674"
115-
y2="13.9297"
116-
gradientUnits="userSpaceOnUse"
117-
>
118-
<stop stopColor="#41FF54" />
119-
<stop offset="1" stopColor="#E7FF52" />
120-
</linearGradient>
121-
<linearGradient
122-
id="paint6_linear_228_1439"
123-
x1="329.674"
124-
y1="150.079"
125-
x2="329.674"
126-
y2="13.9297"
127-
gradientUnits="userSpaceOnUse"
128-
>
129-
<stop stopColor="#41FF54" />
130-
<stop offset="1" stopColor="#E7FF52" />
131-
</linearGradient>
132-
<linearGradient
133-
id="paint7_linear_228_1439"
134-
x1="634.903"
135-
y1="139.717"
136-
x2="651.436"
137-
y2="25.9719"
138-
gradientUnits="userSpaceOnUse"
139-
>
140-
<stop stopColor="#2563EB" />
141-
<stop offset="1" stopColor="#A855F7" />
142-
</linearGradient>
143-
<linearGradient
144-
id="paint8_linear_228_1439"
145-
x1="634.903"
146-
y1="139.717"
147-
x2="651.436"
148-
y2="25.9719"
149-
gradientUnits="userSpaceOnUse"
150-
>
151-
<stop stopColor="#2563EB" />
152-
<stop offset="1" stopColor="#A855F7" />
153-
</linearGradient>
154-
<linearGradient
155-
id="paint9_linear_228_1439"
156-
x1="634.903"
157-
y1="139.717"
158-
x2="651.436"
159-
y2="25.9719"
160-
gradientUnits="userSpaceOnUse"
161-
>
162-
<stop stopColor="#2563EB" />
163-
<stop offset="1" stopColor="#A855F7" />
164-
</linearGradient>
165-
<linearGradient
166-
id="paint10_linear_228_1439"
167-
x1="634.903"
168-
y1="139.717"
169-
x2="651.436"
170-
y2="25.9719"
171-
gradientUnits="userSpaceOnUse"
172-
>
173-
<stop stopColor="#2563EB" />
174-
<stop offset="1" stopColor="#A855F7" />
175-
</linearGradient>
176-
<linearGradient
177-
id="paint11_linear_228_1439"
178-
x1="95.8593"
179-
y1="103.194"
180-
x2="94.7607"
181-
y2="31.2381"
182-
gradientUnits="userSpaceOnUse"
183-
>
184-
<stop stopColor="#41FF54" />
185-
<stop offset="1" stopColor="#E7FF52" />
9+
<linearGradient id="logoGradient" x1="0%" y1="0%" x2="100%" y2="0%">
10+
<stop offset="0%" stopColor="#2E7D32" />
11+
<stop offset="100%" stopColor="#43A047" />
18612
</linearGradient>
18713
</defs>
14+
{/* Icon */}
15+
<rect x="0" y="8" width="64" height="64" rx="14" fill="url(#logoGradient)" />
16+
<path d="M32 20L46 56H18L32 20Z" fill="white" fillOpacity="0.9" />
17+
<circle cx="32" cy="48" r="3.5" fill="#2E7D32" />
18+
{/* Text */}
19+
<text
20+
x="80"
21+
y="55"
22+
fontFamily="Geist Variable, Inter, Helvetica Neue, sans-serif"
23+
fontSize="42"
24+
fontWeight="600"
25+
letterSpacing="-0.02em"
26+
fill="currentColor"
27+
>
28+
Trigger.dev
29+
</text>
18830
</svg>
18931
);
19032
}

apps/webapp/app/components/code/AIQueryInput.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ export function AIQueryInput({
257257
onChange={(e) => setPrompt(e.target.value)}
258258
disabled={isLoading}
259259
rows={8}
260-
className="m-0 min-h-10 w-full resize-none border-0 bg-background-bright px-3 py-2.5 text-sm text-text-bright scrollbar-thin scrollbar-track-transparent scrollbar-thumb-charcoal-600 file:border-0 file:bg-transparent file:text-base file:font-medium placeholder:text-text-dimmed focus:border-0 focus:outline-none focus:ring-0 focus-visible:outline-none focus-visible:ring-0 focus-visible:ring-offset-0 disabled:cursor-not-allowed disabled:opacity-50"
260+
className="m-0 min-h-10 w-full resize-none border-0 bg-background-bright px-3 py-2.5 text-sm text-text-bright scrollbar-thin scrollbar-track-transparent scrollbar-thumb-gray-300 file:border-0 file:bg-transparent file:text-base file:font-medium placeholder:text-text-dimmed focus:border-0 focus:outline-none focus:ring-0 focus-visible:outline-none focus-visible:ring-0 focus-visible:ring-offset-0 disabled:cursor-not-allowed disabled:opacity-50"
261261
onKeyDown={(e) => {
262262
if (e.key === "Enter" && !e.shiftKey && prompt.trim() && !isLoading) {
263263
e.preventDefault();
@@ -390,7 +390,7 @@ export function AIQueryInput({
390390
</Button>
391391
)}
392392
</div>
393-
<div className="streamdown-container max-h-96 overflow-y-auto text-xs text-text-dimmed scrollbar-thin scrollbar-track-transparent scrollbar-thumb-charcoal-600">
393+
<div className="streamdown-container max-h-96 overflow-y-auto text-xs text-text-dimmed scrollbar-thin scrollbar-track-transparent scrollbar-thumb-gray-300">
394394
<Suspense fallback={<p className="whitespace-pre-wrap">{thinking}</p>}>
395395
<StreamdownRenderer isAnimating={isLoading}>{thinking}</StreamdownRenderer>
396396
</Suspense>

apps/webapp/app/components/code/TSQLEditor.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ export function TSQLEditor(opts: TSQLEditorProps) {
271271
>
272272
<div
273273
className={cn(
274-
"min-h-0 flex-1 overflow-auto scrollbar-thin scrollbar-track-transparent scrollbar-thumb-charcoal-600"
274+
"min-h-0 flex-1 overflow-auto scrollbar-thin scrollbar-track-transparent scrollbar-thumb-gray-300"
275275
)}
276276
ref={editor}
277277
onClick={() => {

apps/webapp/app/components/code/TSQLResultsTable.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1113,7 +1113,7 @@ export const TSQLResultsTable = memo(function TSQLResultsTable({
11131113

11141114
return (
11151115
<div
1116-
className="h-full min-h-0 w-full overflow-auto scrollbar-thin scrollbar-track-transparent scrollbar-thumb-charcoal-600"
1116+
className="h-full min-h-0 w-full overflow-auto scrollbar-thin scrollbar-track-transparent scrollbar-thumb-gray-300"
11171117
style={{ position: "relative" }}
11181118
>
11191119
<table style={{ display: "grid" }}>
@@ -1168,7 +1168,7 @@ export const TSQLResultsTable = memo(function TSQLResultsTable({
11681168
return (
11691169
<div
11701170
ref={tableContainerRef}
1171-
className="h-full min-h-0 w-full overflow-auto scrollbar-thin scrollbar-track-transparent scrollbar-thumb-charcoal-600"
1171+
className="h-full min-h-0 w-full overflow-auto scrollbar-thin scrollbar-track-transparent scrollbar-thumb-gray-300"
11721172
style={{ position: "relative" }}
11731173
>
11741174
<table style={{ display: "grid" }}>

apps/webapp/app/components/logs/LogDetailView.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ export function LogDetailView({ logId, initialLog, onClose, searchTerm }: LogDet
146146
className="pl-1"
147147
/>
148148
</div>
149-
<div className="overflow-y-auto px-3 py-3 scrollbar-thin scrollbar-track-transparent scrollbar-thumb-charcoal-600">
149+
<div className="overflow-y-auto px-3 py-3 scrollbar-thin scrollbar-track-transparent scrollbar-thumb-gray-300">
150150
<DetailsTab log={log} runPath={runPath} runStatus={runStatus} searchTerm={searchTerm} />
151151
</div>
152152
</div>

apps/webapp/app/components/logs/LogsTable.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ export function LogsTable({
115115
}, [hasMore, isLoadingMore, onLoadMore]);
116116

117117
return (
118-
<div className="relative h-full overflow-auto border-t scrollbar-thin scrollbar-track-transparent scrollbar-thumb-charcoal-600">
118+
<div className="relative h-full overflow-auto border-t scrollbar-thin scrollbar-track-transparent scrollbar-thumb-gray-300">
119119
<Table variant="compact/mono" containerClassName="overflow-visible" showTopBorder={false}>
120120
<TableHeader className="sticky top-0 z-10">
121121
<TableRow>

0 commit comments

Comments
 (0)