diff --git a/api/ee/src/core/entitlements/types.py b/api/ee/src/core/entitlements/types.py index 5c09172b6a..e346f11c57 100644 --- a/api/ee/src/core/entitlements/types.py +++ b/api/ee/src/core/entitlements/types.py @@ -60,7 +60,7 @@ class Probe(BaseModel): }, }, "features": [ - "2 prompts", + "Unlimited prompts", "20 evaluations/month", "5k traces/month", "2 seats", @@ -212,7 +212,7 @@ class Probe(BaseModel): }, Tracker.GAUGES: { Gauge.USERS: Quota(limit=2, strict=True, free=2), - Gauge.APPLICATIONS: Quota(limit=2, strict=True, free=2), + Gauge.APPLICATIONS: Quota(strict=True), }, }, Plan.CLOUD_V0_PRO: { diff --git a/api/pyproject.toml b/api/pyproject.toml index a106a91ecd..b5d1f69d63 100644 --- a/api/pyproject.toml +++ b/api/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "api" -version = "0.60.1" +version = "0.60.2" description = "Agenta API" authors = [ { name = "Mahmoud Mabrouk", email = "mahmoud@agenta.ai" }, diff --git a/docs/docusaurus.config.ts b/docs/docusaurus.config.ts index f33bea025d..4d89dcdcfd 100644 --- a/docs/docusaurus.config.ts +++ b/docs/docusaurus.config.ts @@ -84,8 +84,8 @@ const config: Config = { navbar: { logo: { alt: "agenta-ai", - src: "images/light-complete-transparent-CROPPED.png", - srcDark: "images/dark-complete-transparent-CROPPED.png", + src: "images/Agenta-logo-full-light.png", + srcDark: "images/Agenta-logo-full-dark-accent.png", }, hideOnScroll: false, items: [ diff --git a/docs/static/images/Agenta-logo-full-dark-accent.png b/docs/static/images/Agenta-logo-full-dark-accent.png new file mode 100644 index 0000000000..a270afc094 Binary files /dev/null and b/docs/static/images/Agenta-logo-full-dark-accent.png differ diff --git a/docs/static/images/Agenta-logo-full-light.png b/docs/static/images/Agenta-logo-full-light.png new file mode 100644 index 0000000000..bddc2359bd Binary files /dev/null and b/docs/static/images/Agenta-logo-full-light.png differ diff --git a/docs/static/images/dark-complete-transparent-CROPPED.png b/docs/static/images/dark-complete-transparent-CROPPED.png deleted file mode 100644 index bc73ad84e2..0000000000 Binary files a/docs/static/images/dark-complete-transparent-CROPPED.png and /dev/null differ diff --git a/docs/static/images/dark-logo.svg b/docs/static/images/dark-logo.svg deleted file mode 100644 index 6cb8ef3330..0000000000 --- a/docs/static/images/dark-logo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/static/images/favicon.ico b/docs/static/images/favicon.ico index 4dc8619b1d..dad02fe072 100644 Binary files a/docs/static/images/favicon.ico and b/docs/static/images/favicon.ico differ diff --git a/docs/static/images/light-complete-transparent-CROPPED.png b/docs/static/images/light-complete-transparent-CROPPED.png deleted file mode 100644 index de9bbd9aca..0000000000 Binary files a/docs/static/images/light-complete-transparent-CROPPED.png and /dev/null differ diff --git a/docs/static/images/light-logo.svg b/docs/static/images/light-logo.svg deleted file mode 100644 index 9c795f8e88..0000000000 --- a/docs/static/images/light-logo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/static/images/social-card.png b/docs/static/images/social-card.png index d62f2f99b9..49fe2b893e 100644 Binary files a/docs/static/images/social-card.png and b/docs/static/images/social-card.png differ diff --git a/sdk/pyproject.toml b/sdk/pyproject.toml index 18792637b5..dd3bf54cf0 100644 --- a/sdk/pyproject.toml +++ b/sdk/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "agenta" -version = "0.60.1" +version = "0.60.2" description = "The SDK for agenta is an open-source LLMOps platform." readme = "README.md" authors = [ diff --git a/web/ee/package.json b/web/ee/package.json index dd01512689..01946d1ff3 100644 --- a/web/ee/package.json +++ b/web/ee/package.json @@ -1,6 +1,6 @@ { "name": "@agenta/ee", - "version": "0.60.1", + "version": "0.60.2", "private": true, "engines": { "node": ">=18" diff --git a/web/ee/public/assets/Agenta-logo-full-dark-accent.png b/web/ee/public/assets/Agenta-logo-full-dark-accent.png new file mode 100644 index 0000000000..c14833dab1 Binary files /dev/null and b/web/ee/public/assets/Agenta-logo-full-dark-accent.png differ diff --git a/web/ee/public/assets/Agenta-logo-full-light.png b/web/ee/public/assets/Agenta-logo-full-light.png new file mode 100644 index 0000000000..4c9b31a813 Binary files /dev/null and b/web/ee/public/assets/Agenta-logo-full-light.png differ diff --git a/web/ee/public/assets/dark-complete-transparent-CROPPED.png b/web/ee/public/assets/dark-complete-transparent-CROPPED.png deleted file mode 100644 index 7d134ac59a..0000000000 Binary files a/web/ee/public/assets/dark-complete-transparent-CROPPED.png and /dev/null differ diff --git a/web/ee/public/assets/dark-complete-transparent_white_logo.png b/web/ee/public/assets/dark-complete-transparent_white_logo.png deleted file mode 100644 index 8685bbf981..0000000000 Binary files a/web/ee/public/assets/dark-complete-transparent_white_logo.png and /dev/null differ diff --git a/web/ee/public/assets/dark-logo.svg b/web/ee/public/assets/dark-logo.svg deleted file mode 100644 index 6cb8ef3330..0000000000 --- a/web/ee/public/assets/dark-logo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/web/ee/public/assets/favicon.ico b/web/ee/public/assets/favicon.ico index 4dc8619b1d..dad02fe072 100644 Binary files a/web/ee/public/assets/favicon.ico and b/web/ee/public/assets/favicon.ico differ diff --git a/web/ee/public/assets/light-complete-transparent-CROPPED.png b/web/ee/public/assets/light-complete-transparent-CROPPED.png deleted file mode 100644 index 6be2e99e08..0000000000 Binary files a/web/ee/public/assets/light-complete-transparent-CROPPED.png and /dev/null differ diff --git a/web/ee/public/assets/light-logo.svg b/web/ee/public/assets/light-logo.svg deleted file mode 100644 index 9c795f8e88..0000000000 --- a/web/ee/public/assets/light-logo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/web/ee/src/components/PostSignupForm/PostSignupForm.tsx b/web/ee/src/components/PostSignupForm/PostSignupForm.tsx index ef9c38778c..d481fc3350 100644 --- a/web/ee/src/components/PostSignupForm/PostSignupForm.tsx +++ b/web/ee/src/components/PostSignupForm/PostSignupForm.tsx @@ -345,7 +345,7 @@ const PostSignupForm = () => { <>
agenta-ai {
{Object.entries(usage) - ?.filter(([key]) => key !== "users") + ?.filter(([key]) => (key !== "users" && key !== "applications")) ?.map(([key, info]) => { return ( (o ? o[key] : undefined), obj) + if (!obj || typeof obj !== "object" || !path) return undefined + + const parts = path.split(".") + let current: any = obj + + for (let i = 0; i < parts.length; i++) { + if (current === undefined || current === null) return undefined + + const part = parts[i] + + if (Object.prototype.hasOwnProperty.call(current, part)) { + current = current[part] + continue + } + + let combined = part + let found = false + + for (let j = i + 1; j < parts.length; j++) { + combined += `.${parts[j]}` + if (Object.prototype.hasOwnProperty.call(current, combined)) { + current = current[combined] + i = j + found = true + break + } + } + + if (!found) return undefined + } + + return current } export function computeInputsAndGroundTruth({ diff --git a/web/oss/package.json b/web/oss/package.json index 21783ced3f..6d4e247c86 100644 --- a/web/oss/package.json +++ b/web/oss/package.json @@ -1,6 +1,6 @@ { "name": "@agenta/oss", - "version": "0.60.1", + "version": "0.60.2", "private": true, "engines": { "node": ">=18" diff --git a/web/oss/public/assets/Agenta-logo-full-dark-accent.png b/web/oss/public/assets/Agenta-logo-full-dark-accent.png new file mode 100644 index 0000000000..c14833dab1 Binary files /dev/null and b/web/oss/public/assets/Agenta-logo-full-dark-accent.png differ diff --git a/web/oss/public/assets/Agenta-logo-full-light.png b/web/oss/public/assets/Agenta-logo-full-light.png new file mode 100644 index 0000000000..4c9b31a813 Binary files /dev/null and b/web/oss/public/assets/Agenta-logo-full-light.png differ diff --git a/web/oss/public/assets/dark-complete-transparent-CROPPED.png b/web/oss/public/assets/dark-complete-transparent-CROPPED.png deleted file mode 100644 index 7d134ac59a..0000000000 Binary files a/web/oss/public/assets/dark-complete-transparent-CROPPED.png and /dev/null differ diff --git a/web/oss/public/assets/dark-complete-transparent_white_logo.png b/web/oss/public/assets/dark-complete-transparent_white_logo.png deleted file mode 100644 index 8685bbf981..0000000000 Binary files a/web/oss/public/assets/dark-complete-transparent_white_logo.png and /dev/null differ diff --git a/web/oss/public/assets/dark-logo.svg b/web/oss/public/assets/dark-logo.svg deleted file mode 100644 index 6cb8ef3330..0000000000 --- a/web/oss/public/assets/dark-logo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/web/oss/public/assets/favicon.ico b/web/oss/public/assets/favicon.ico index 4dc8619b1d..dad02fe072 100644 Binary files a/web/oss/public/assets/favicon.ico and b/web/oss/public/assets/favicon.ico differ diff --git a/web/oss/public/assets/light-complete-transparent-CROPPED.png b/web/oss/public/assets/light-complete-transparent-CROPPED.png deleted file mode 100644 index 6be2e99e08..0000000000 Binary files a/web/oss/public/assets/light-complete-transparent-CROPPED.png and /dev/null differ diff --git a/web/oss/public/assets/light-logo.svg b/web/oss/public/assets/light-logo.svg deleted file mode 100644 index 9c795f8e88..0000000000 --- a/web/oss/public/assets/light-logo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/web/oss/src/components/Logo/Logo.tsx b/web/oss/src/components/Logo/Logo.tsx index ddb1c133f9..1c3b6447d5 100644 --- a/web/oss/src/components/Logo/Logo.tsx +++ b/web/oss/src/components/Logo/Logo.tsx @@ -5,8 +5,8 @@ import Image from "next/image" import {useAppTheme} from "../Layout/ThemeContextProvider" const LOGOS = { - dark: "/assets/dark-complete-transparent-CROPPED.png", - light: "/assets/light-complete-transparent-CROPPED.png", + dark: "/assets/Agenta-logo-full-dark-accent.png", + light: "/assets/Agenta-logo-full-light.png", } const Logo: React.FC> & {isOnlyIconLogo?: boolean}> = ( diff --git a/web/oss/src/components/TestsetTable/TestsetTable.tsx b/web/oss/src/components/TestsetTable/TestsetTable.tsx index 4275a1e49d..17fa756fa9 100644 --- a/web/oss/src/components/TestsetTable/TestsetTable.tsx +++ b/web/oss/src/components/TestsetTable/TestsetTable.tsx @@ -1,5 +1,13 @@ // @ts-nocheck -import {type FC, type ChangeEvent, ReactNode, useEffect, useState, useMemo, useCallback} from "react" +import { + type FC, + type ChangeEvent, + ReactNode, + useEffect, + useState, + useMemo, + useCallback, +} from "react" import {type IHeaderParams} from "@ag-grid-community/core" import {CheckCircleFilled} from "@ant-design/icons" @@ -409,6 +417,7 @@ const TestsetTable: FC = ({mode}) => { onRowSelected={onRowSelectedOrDeselected} onRowDataUpdated={onRowSelectedOrDeselected} className="ph-no-capture" + suppressFieldDotNotation={true} />
diff --git a/web/oss/src/components/pages/app-management/modals/MaxAppModal.tsx b/web/oss/src/components/pages/app-management/modals/MaxAppModal.tsx index 8ee1f9dfc2..330ad640cc 100644 --- a/web/oss/src/components/pages/app-management/modals/MaxAppModal.tsx +++ b/web/oss/src/components/pages/app-management/modals/MaxAppModal.tsx @@ -43,7 +43,7 @@ const MaxAppModal: React.FC = ({...props}) => {
aenta-ai acc?.[key], item) + const value = getValueAtPath(item, mapping.data) formattedItem[targetKey] = value === undefined || value === null diff --git a/web/oss/src/components/pages/observability/drawer/TestsetDrawer/assets/helpers.ts b/web/oss/src/components/pages/observability/drawer/TestsetDrawer/assets/helpers.ts new file mode 100644 index 0000000000..9ffb36365a --- /dev/null +++ b/web/oss/src/components/pages/observability/drawer/TestsetDrawer/assets/helpers.ts @@ -0,0 +1,32 @@ +const splitPath = (path: string) => path.split(/(? p.replace(/\\\./g, ".")) + +export const getValueAtPath = (obj: any, rawPath: string) => { + if (obj == null || !rawPath) return undefined + + // quick direct hit (entire path is a literal key on the current object) + if (Object.prototype.hasOwnProperty.call(obj, rawPath)) return obj[rawPath] + + const parts = splitPath(rawPath) + let cur: any = obj + + for (let i = 0; i < parts.length; i++) { + if (cur == null) return undefined + + const key = parts[i] + + if (Object.prototype.hasOwnProperty.call(cur, key)) { + cur = cur[key] + continue + } + + // fallback: treat the remaining segments as one literal key containing dots + const remainder = parts.slice(i).join(".") + if (Object.prototype.hasOwnProperty.call(cur, remainder)) { + return cur[remainder] + } + + return undefined + } + + return cur +} diff --git a/web/oss/src/pages/auth/[[...path]].tsx b/web/oss/src/pages/auth/[[...path]].tsx index ef1ed9af39..2d93bdfcf7 100644 --- a/web/oss/src/pages/auth/[[...path]].tsx +++ b/web/oss/src/pages/auth/[[...path]].tsx @@ -123,7 +123,7 @@ const Auth = () => { )} >