diff --git a/package.json b/package.json index 444d694..1c9dbcd 100644 --- a/package.json +++ b/package.json @@ -158,6 +158,11 @@ "import": "./dist/web-react/index.js", "default": "./dist/web-react/index.js" }, + "./composer": { + "types": "./dist/composer/index.d.ts", + "import": "./dist/composer/index.js", + "default": "./dist/composer/index.js" + }, "./assistant": { "types": "./dist/assistant/index.d.ts", "import": "./dist/assistant/index.js", @@ -343,7 +348,7 @@ "@tangle-network/agent-knowledge": "^1.7.0", "@tangle-network/agent-runtime": "^0.76.0", "@tangle-network/sandbox": "^0.9.5", - "@tangle-network/sandbox-ui": "^0.44.0", + "@tangle-network/sandbox-ui": "^0.59.0", "@tangle-network/ui": "^4.1.0", "@testing-library/dom": "^10.4.1", "@testing-library/react": "^16.3.2", @@ -376,7 +381,7 @@ "@tangle-network/agent-knowledge": ">=1.7.0", "@tangle-network/agent-runtime": ">=0.76.0", "@tangle-network/sandbox": ">=0.9.4", - "@tangle-network/sandbox-ui": ">=0.44.0", + "@tangle-network/sandbox-ui": ">=0.59.0", "drizzle-orm": ">=0.36", "konva": ">=9", "lucide-react": ">=1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 532be35..d638752 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -34,8 +34,8 @@ importers: specifier: ^0.9.5 version: 0.9.5(viem@2.52.0(typescript@5.9.3)(zod@4.4.3)) '@tangle-network/sandbox-ui': - specifier: ^0.44.0 - version: 0.44.0(@tangle-network/agent-interface@0.15.0)(@tangle-network/ui@4.1.0(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react-router@7.18.0(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react@19.2.7))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + specifier: ^0.59.0 + version: 0.59.0(@shikijs/themes@4.3.0)(@tangle-network/agent-interface@0.15.0)(@tangle-network/ui@4.1.0(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react-router@7.18.0(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react@19.2.7))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@tangle-network/ui': specifier: ^4.1.0 version: 4.1.0(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react-router@7.18.0(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react@19.2.7) @@ -635,6 +635,36 @@ packages: cpu: [x64] os: [win32] + '@pierre/diffs@1.2.12': + resolution: {integrity: sha512-pY/gmgWL03WnagqCyCnBi3QtRXUv4hCIY6FYqd5b1ZGaoI6a4Bsji8j+yRl2RfzPh/8Hf19rCl1GE80G6a1cLQ==} + peerDependencies: + react: ^18.3.1 || ^19.0.0 + react-dom: ^18.3.1 || ^19.0.0 + + '@pierre/theme@1.1.0': + resolution: {integrity: sha512-GC2OWTAfTIIWWYhPCygwG8t2EtePQkRfON4MI2rwIkJylmiyqIttJID2dCL8sUD8cNdEvYkEyfEHHKMeCiDLoQ==} + engines: {vscode: ^1.0.0} + + '@pierre/theming@0.0.2': + resolution: {integrity: sha512-QM1M4stXfnzfaE8I8YbjXSApV8c+2dBsXJj8eYg9WTpBR/cTmCZIcfGnN4p13iRrYu2Br/R/OJfEL7uR8Qjctw==} + peerDependencies: + '@pierre/theme': ^1.1.0 + '@shikijs/themes': ^3.0.0 || ^4.0.0 + react: ^18.3.1 || ^19.0.0 + react-dom: ^18.3.1 || ^19.0.0 + shiki: ^3.0.0 || ^4.0.0 + peerDependenciesMeta: + '@pierre/theme': + optional: true + '@shikijs/themes': + optional: true + react: + optional: true + react-dom: + optional: true + shiki: + optional: true + '@pierre/trees@1.0.0-beta.3': resolution: {integrity: sha512-gfV7V1AoceIwTSFwiiWl/89gNtJROyo2dFeYYuAkT4F3AbE+ajCIGZEICBw1ygmVxVetF9Kq1Xpjz8BhXXZwTQ==} peerDependencies: @@ -1214,6 +1244,41 @@ packages: '@scure/bip39@2.2.0': resolution: {integrity: sha512-T/Bj/YvYMNkIPq6EENO6/rcs2e7qTNuyoUXf0KBFDmp0ZDu0H2X4Lq6yC3i0c8PcWkov5EbW+yQZZbdMmk154A==} + '@shikijs/core@4.3.0': + resolution: {integrity: sha512-EooU3i9F6IAE8kEu+AnGf9DFZWkQBZ+hJn3tLVbsH+61mtQiva5biai66fAA6nvFPXkLgvrh7BrR7YcJU83xQQ==} + engines: {node: '>=20'} + + '@shikijs/engine-javascript@4.3.0': + resolution: {integrity: sha512-hTv/KiFf2tpiqlACPiztGGurEARWIutB8YUhcrA1pUC7VzzwKO+g5crUocrLztrZ5ro5Z4hbXg7bYclETn3gSQ==} + engines: {node: '>=20'} + + '@shikijs/engine-oniguruma@4.3.0': + resolution: {integrity: sha512-1vMdN3gHfnKfLYwecUI2ITJI4RhHt96xEaJumVn7Heb0IlJ8WQMIH0Voak+2j22BpSNKdnOfB/pCTPnPm2gq7A==} + engines: {node: '>=20'} + + '@shikijs/langs@4.3.0': + resolution: {integrity: sha512-rnlqFbBRSys9bT4gl/5rw9RnS0W/I84ZldXPkO7cvlEMoV85TyF/aU01N7/NbSR776RNLjrJKjfFUXJR6wN1Cg==} + engines: {node: '>=20'} + + '@shikijs/primitive@4.3.0': + resolution: {integrity: sha512-CPkz64PTa5diRW1ggzMZH9VM/du4RNChYgVtgqrFcgruvIybmCvySv8GkiHSczUHXYuuR8TdKEwFx+UnZMpgdg==} + engines: {node: '>=20'} + + '@shikijs/themes@4.3.0': + resolution: {integrity: sha512-Avgt05YiT+Y3prjIc9lmQxhJzHBcCfR6cjiFW4OyaMBbt2A6trX5rfjUzx+Vj/mE9qpArYjatnqo9XPjQNW/AQ==} + engines: {node: '>=20'} + + '@shikijs/transformers@4.3.0': + resolution: {integrity: sha512-5/elhJEcUrxdyQ95SSx0HzrnbzVPuipk6TYiXZL67tHhw8J+4N5shzmrTYyCaudiSnpuuwPdpaVtciwRFwSA7A==} + engines: {node: '>=20'} + + '@shikijs/types@4.3.0': + resolution: {integrity: sha512-oc8b9U2SYvofKZk8e/737nIX0qwf6eV2vHFATeObAu7r+mUVpLs8Re0BmVkIjAWAYgkmG/CzLNo7rzuBzRu/wQ==} + engines: {node: '>=20'} + + '@shikijs/vscode-textmate@10.0.2': + resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} + '@stablelib/base64@1.0.1': resolution: {integrity: sha512-1bnPQqSxSuc3Ii6MhBysoWCg58j97aUjuCSZrGSmDxNqtytIi0k8utUenAwTZN4V5mXXYGsVUI9zeBqy+jBOSQ==} @@ -1298,11 +1363,11 @@ packages: playwright: optional: true - '@tangle-network/sandbox-ui@0.44.0': - resolution: {integrity: sha512-t8Uzmhlw0w0JifLkIl+a99k01riVaNK/9PY3rz4U5xtWZFvbcUeNf+d9/ZAwr+9mO7dfDiYS/9cBxof19fsO3Q==} + '@tangle-network/sandbox-ui@0.59.0': + resolution: {integrity: sha512-uyVRpScaU5h/u51r8Kwfyms/OKAxhzUm/AgCEFoX87Es+xj//XIM2UAtFcpyvKTW9bjzQvotI4ulemagOf7UUQ==} peerDependencies: - '@tangle-network/agent-interface': '>=0.10.0 <1.0.0' - '@tangle-network/brand': ^0.5.0 + '@tangle-network/agent-interface': '>=0.15.0 <1.0.0' + '@tangle-network/brand': ^0.6.0 '@tangle-network/ui': ^4.0.0 '@tanstack/react-query': '*' '@xterm/addon-fit': '*' @@ -1790,6 +1855,14 @@ packages: devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + diff@5.2.2: + resolution: {integrity: sha512-vtcDfH3TOjP8UekytvnHH1o1P4FcUdt4eQ1Y+Abap1tk/OB2MWQvcwS2ClCd1zuIhc3JKOx6p3kod8Vfys3E+A==} + engines: {node: '>=0.3.1'} + + diff@9.0.0: + resolution: {integrity: sha512-svtcdpS8CgJyqAjEQIXdb3OjhFVVYjzGAPO8WGCmRbrml64SPw/jJD4GoE98aR7r25A0XcgrK3F02yw9R/vhQw==} + engines: {node: '>=0.3.1'} + dom-accessibility-api@0.5.16: resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} @@ -1997,6 +2070,9 @@ packages: hast-util-sanitize@5.0.2: resolution: {integrity: sha512-3yTWghByc50aGS7JlGhk61SPenfE/p1oaFeNwkOOyrscaOkMGrcW9+Cy/QAIOBpZxP1yqDIzFMR0+Np0i0+usg==} + hast-util-to-html@9.0.5: + resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} + hast-util-to-jsx-runtime@2.3.6: resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==} @@ -2023,6 +2099,9 @@ packages: html-url-attributes@3.0.1: resolution: {integrity: sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==} + html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -2145,6 +2224,9 @@ packages: resolution: {integrity: sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==} engines: {node: 20 || >=22} + lru_map@0.4.1: + resolution: {integrity: sha512-I+lBvqMMFfqaV8CJCISjI3wbjmwVu/VyOoU7+qtu9d7ioW5klMgsTTiUOUp+DJvfTTzKXoPbyC6YfgkNcyPSOg==} + lucide-react@0.469.0: resolution: {integrity: sha512-28vvUnnKQ/dBwiCQtwJw7QauYnE7yd2Cyp4tTTJpvglX4EMpbflcdBgrgToX2j71B3YvugK/NH3BGUk+E/p/Fw==} peerDependencies: @@ -2369,6 +2451,12 @@ packages: once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + oniguruma-parser@0.12.2: + resolution: {integrity: sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==} + + oniguruma-to-es@4.3.6: + resolution: {integrity: sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==} + openapi3-ts@4.6.0: resolution: {integrity: sha512-a4sfn6L2sIShhtzJqmjGrARvxAW/3F2BJDdyRVvNF9VhAsZSh5hSyI3a9TNvmzBxXmq66nY5LNT5bQcBxYAZZg==} @@ -2587,6 +2675,15 @@ packages: refractor@5.0.0: resolution: {integrity: sha512-QXOrHQF5jOpjjLfiNk5GFnWhRXvxjUVnlFxkeDmewR5sXkr3iM46Zo+CnRR8B+MDVqkULW4EcLVcRBNOPXHosw==} + regex-recursion@6.0.2: + resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} + + regex-utilities@2.3.0: + resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} + + regex@6.1.0: + resolution: {integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==} + rehype-sanitize@6.0.0: resolution: {integrity: sha512-CsnhKNsyI8Tub6L4sm5ZFsme4puGfc6pYylvXo1AeqaGbjOYyzNv3qZPwvs0oMJ39eryyeOdmxwUIo94IpEhqg==} @@ -2655,6 +2752,10 @@ packages: set-cookie-parser@3.1.0: resolution: {integrity: sha512-kjnC1DXBHcxaOaOXBHBeRtltsDG2nUiUni+jP92M9gYdW12rsmx92UsfpH7o5tDRs7I1ZZPSQJQGv3UaRfCiuw==} + shiki@4.3.0: + resolution: {integrity: sha512-NKKjWzR6LIGL3sXBrWDw9sDS9cxx42/DkysaNqJEeOWE8Kix5gpak0bc00OfDVEO4oyXSyz8+aRaqKoBD1yo7A==} + engines: {node: '>=20'} + siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} @@ -3396,6 +3497,30 @@ snapshots: '@oxc-resolver/binding-win32-x64-msvc@11.21.2': optional: true + '@pierre/diffs@1.2.12(@shikijs/themes@4.3.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': + dependencies: + '@pierre/theme': 1.1.0 + '@pierre/theming': 0.0.2(@pierre/theme@1.1.0)(@shikijs/themes@4.3.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(shiki@4.3.0) + '@shikijs/transformers': 4.3.0 + diff: 9.0.0 + hast-util-to-html: 9.0.5 + lru_map: 0.4.1 + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) + shiki: 4.3.0 + transitivePeerDependencies: + - '@shikijs/themes' + + '@pierre/theme@1.1.0': {} + + '@pierre/theming@0.0.2(@pierre/theme@1.1.0)(@shikijs/themes@4.3.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(shiki@4.3.0)': + optionalDependencies: + '@pierre/theme': 1.1.0 + '@shikijs/themes': 4.3.0 + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) + shiki: 4.3.0 + '@pierre/trees@1.0.0-beta.3(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': dependencies: preact: 11.0.0-beta.0 @@ -3896,6 +4021,51 @@ snapshots: '@noble/hashes': 2.2.0 '@scure/base': 2.2.0 + '@shikijs/core@4.3.0': + dependencies: + '@shikijs/primitive': 4.3.0 + '@shikijs/types': 4.3.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.5 + + '@shikijs/engine-javascript@4.3.0': + dependencies: + '@shikijs/types': 4.3.0 + '@shikijs/vscode-textmate': 10.0.2 + oniguruma-to-es: 4.3.6 + + '@shikijs/engine-oniguruma@4.3.0': + dependencies: + '@shikijs/types': 4.3.0 + '@shikijs/vscode-textmate': 10.0.2 + + '@shikijs/langs@4.3.0': + dependencies: + '@shikijs/types': 4.3.0 + + '@shikijs/primitive@4.3.0': + dependencies: + '@shikijs/types': 4.3.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + + '@shikijs/themes@4.3.0': + dependencies: + '@shikijs/types': 4.3.0 + + '@shikijs/transformers@4.3.0': + dependencies: + '@shikijs/core': 4.3.0 + '@shikijs/types': 4.3.0 + + '@shikijs/types@4.3.0': + dependencies: + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + + '@shikijs/vscode-textmate@10.0.2': {} + '@stablelib/base64@1.0.1': {} '@standard-schema/spec@1.1.0': {} @@ -3992,19 +4162,22 @@ snapshots: '@tangle-network/agent-knowledge': 1.7.0(@tangle-network/sandbox@0.9.5(viem@2.52.0(typescript@5.9.3)(zod@4.4.3)))(typescript@5.9.3) '@tangle-network/sandbox': 0.9.5(viem@2.52.0(typescript@5.9.3)(zod@4.4.3)) - '@tangle-network/sandbox-ui@0.44.0(@tangle-network/agent-interface@0.15.0)(@tangle-network/ui@4.1.0(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react-router@7.18.0(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react@19.2.7))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': + '@tangle-network/sandbox-ui@0.59.0(@shikijs/themes@4.3.0)(@tangle-network/agent-interface@0.15.0)(@tangle-network/ui@4.1.0(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react-router@7.18.0(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react@19.2.7))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': dependencies: '@lobehub/icons-static-svg': 1.91.0 + '@pierre/diffs': 1.2.12(@shikijs/themes@4.3.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-dropdown-menu': 2.1.18(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-select': 2.3.1(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@tangle-network/agent-interface': 0.15.0 '@tangle-network/ui': 4.1.0(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react-router@7.18.0(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react@19.2.7) + diff: 5.2.2 lucide-react: 0.469.0(react@19.2.7) nanostores: 1.3.0 react: 19.2.7 react-dom: 19.2.7(react@19.2.7) yaml: 2.9.0 transitivePeerDependencies: + - '@shikijs/themes' - '@types/react' - '@types/react-dom' @@ -4395,6 +4568,10 @@ snapshots: dependencies: dequal: 2.0.3 + diff@5.2.2: {} + + diff@9.0.0: {} + dom-accessibility-api@0.5.16: {} drizzle-orm@0.45.2(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.10.0)(kysely@0.29.2): @@ -4528,6 +4705,20 @@ snapshots: '@ungap/structured-clone': 1.3.1 unist-util-position: 5.0.0 + hast-util-to-html@9.0.5: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.1 + property-information: 7.2.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.4 + zwitch: 2.0.4 + hast-util-to-jsx-runtime@2.3.6: dependencies: '@types/estree': 1.0.9 @@ -4574,6 +4765,8 @@ snapshots: html-url-attributes@3.0.1: {} + html-void-elements@3.0.0: {} + ieee754@1.2.1: {} inherits@2.0.4: {} @@ -4697,6 +4890,8 @@ snapshots: lru-cache@11.5.1: {} + lru_map@0.4.1: {} + lucide-react@0.469.0(react@19.2.7): dependencies: react: 19.2.7 @@ -5116,6 +5311,14 @@ snapshots: dependencies: wrappy: 1.0.2 + oniguruma-parser@0.12.2: {} + + oniguruma-to-es@4.3.6: + dependencies: + oniguruma-parser: 0.12.2 + regex: 6.1.0 + regex-recursion: 6.0.2 + openapi3-ts@4.6.0: dependencies: yaml: 2.9.0 @@ -5381,6 +5584,16 @@ snapshots: hastscript: 9.0.1 parse-entities: 4.0.2 + regex-recursion@6.0.2: + dependencies: + regex-utilities: 2.3.0 + + regex-utilities@2.3.0: {} + + regex@6.1.0: + dependencies: + regex-utilities: 2.3.0 + rehype-sanitize@6.0.0: dependencies: '@types/hast': 3.0.4 @@ -5482,6 +5695,17 @@ snapshots: set-cookie-parser@3.1.0: {} + shiki@4.3.0: + dependencies: + '@shikijs/core': 4.3.0 + '@shikijs/engine-javascript': 4.3.0 + '@shikijs/engine-oniguruma': 4.3.0 + '@shikijs/langs': 4.3.0 + '@shikijs/themes': 4.3.0 + '@shikijs/types': 4.3.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + siginfo@2.0.0: {} simple-concat@1.0.1: {} diff --git a/src/composer/index.ts b/src/composer/index.ts new file mode 100644 index 0000000..81abf82 --- /dev/null +++ b/src/composer/index.ts @@ -0,0 +1,35 @@ +/** + * The canonical agent chat composer, re-exported from `@tangle-network/sandbox-ui` + * so agent-app apps adopt the one shared input box — model · harness · effort · + * agent-profile, with harness↔model snapping — without each wiring sandbox-ui + * directly. Opt-in subpath: importing it requires the (otherwise optional) + * `@tangle-network/sandbox-ui` peer, so apps that don't use the composer pay + * nothing. Prefer this over agent-app's legacy `web-react` composer for new UI. + */ +export { + AgentComposer, + type AgentComposerProps, + AgentProfilePicker, + type AgentProfilePickerProps, + type AgentProfileOption, + type AgentProfileCapability, + type AgentProfileDraft, + AgentSessionControls, + type AgentSessionControlsProps, + type AgentSessionHarnessControl, + type AgentSessionModelControl, + type AgentSessionProfileControl, + type AgentSessionReasoningControl, + ReasoningLevelPicker, + type ReasoningLevel, + type ReasoningLevelOption, + DEFAULT_REASONING_LEVEL_OPTIONS, + snapModelToHarness, + snapHarnessToModel, + isModelCompatibleWithHarness, +} from "@tangle-network/sandbox-ui/chat"; + +export { + type ModelInfo, + type HarnessType, +} from "@tangle-network/sandbox-ui/dashboard"; diff --git a/tsup.config.ts b/tsup.config.ts index 52c3dd8..1a1da39 100644 --- a/tsup.config.ts +++ b/tsup.config.ts @@ -27,6 +27,7 @@ export default defineConfig({ 'platform/index': 'src/platform/index.ts', 'web/index': 'src/web/index.ts', 'web-react/index': 'src/web-react/index.tsx', + 'composer/index': 'src/composer/index.ts', 'assistant/index': 'src/assistant/index.ts', 'brand/index': 'src/brand/index.tsx', 'redact/index': 'src/redact/index.ts',