From 2b315263d9b6ab699080b8bcc547a0a38cd687df Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 17 Jan 2026 18:02:31 +0000 Subject: [PATCH 1/2] Add Figma brand guidelines disclaimer to README Add disclaimer section clarifying that this project is not affiliated with, sponsored by, or endorsed by Figma, Inc., as recommended by Figma Legal for brand guideline compliance. --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index a8017fe..2a8da35 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,11 @@ > [!TIP] > This project is a Kotlin Compose Desktop application ported from [@sonnylazuardi](https://github.com/sonnylazuardi)'s [**cursor-talk-to-figma-mcp**](https://github.com/sonnylazuardi/cursor-talk-to-figma-mcp) project, enabling direct WebSocket and MCP server capabilities. We deeply appreciate the innovative ideas and implementation of the original project. +## ⚠️ Disclaimer + +> [!IMPORTANT] +> **This project is not affiliated with, sponsored by, or endorsed by Figma, Inc.** This is an independent, community-developed open source project that provides interoperability with Figma's platform. "Figma" is a trademark of Figma, Inc. The use of the Figma name in this project is purely descriptive, indicating the software's functionality to interact with Figma files and the Figma API. + ## Features - 🚀 **Start/Stop Servers**: Control WebSocket and MCP servers from tray menu From f0a05e3fb33741866771d448f116e001bd613c88 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 25 Jan 2026 17:58:21 +0000 Subject: [PATCH 2/2] Add open source licensing headers and update LICENSE - Update LICENSE file with Grabtaxi Holdings copyright - Add copyright headers to all 24 Kotlin source files - Headers reference MIT license as per legal requirements --- LICENSE | 4 ++-- app/src/main/kotlin/kr/co/metadata/mcp/App.kt | 8 +++++++- .../kr/co/metadata/mcp/analytics/AnalyticsConfig.kt | 8 +++++++- .../kotlin/kr/co/metadata/mcp/analytics/CrashHandler.kt | 8 +++++++- .../co/metadata/mcp/analytics/GoogleAnalyticsService.kt | 6 ++++++ .../kotlin/kr/co/metadata/mcp/mcp/AnnotationService.kt | 8 +++++++- .../kotlin/kr/co/metadata/mcp/mcp/BaseFigmaService.kt | 8 +++++++- .../kotlin/kr/co/metadata/mcp/mcp/ComponentService.kt | 8 +++++++- .../main/kotlin/kr/co/metadata/mcp/mcp/CreationService.kt | 8 +++++++- .../main/kotlin/kr/co/metadata/mcp/mcp/DocumentService.kt | 8 +++++++- .../main/kotlin/kr/co/metadata/mcp/mcp/ExportService.kt | 8 +++++++- .../main/kotlin/kr/co/metadata/mcp/mcp/FigmaMcpTools.kt | 8 +++++++- .../kotlin/kr/co/metadata/mcp/mcp/FigmaPromptService.kt | 8 +++++++- .../kr/co/metadata/mcp/mcp/LayoutManagementService.kt | 8 +++++++- .../main/kotlin/kr/co/metadata/mcp/mcp/LayoutService.kt | 8 +++++++- .../kotlin/kr/co/metadata/mcp/mcp/PrototypeService.kt | 8 +++++++- .../main/kotlin/kr/co/metadata/mcp/mcp/StyleService.kt | 8 +++++++- app/src/main/kotlin/kr/co/metadata/mcp/mcp/TextService.kt | 8 +++++++- .../metadata/mcp/mcp/validation/FigmaValidationModels.kt | 8 +++++++- .../main/kotlin/kr/co/metadata/mcp/server/McpServer.kt | 8 +++++++- .../kotlin/kr/co/metadata/mcp/server/WebSocketServer.kt | 8 +++++++- .../main/kotlin/kr/co/metadata/mcp/ui/OpenSourceDialog.kt | 6 ++++++ .../kotlin/kr/co/metadata/mcp/ui/ServerErrorDialog.kt | 8 +++++++- .../main/kotlin/kr/co/metadata/mcp/ui/TutorialDialog.kt | 8 +++++++- app/src/test/kotlin/kr/co/metadata/mcp/AppTest.kt | 8 +++++++- 25 files changed, 168 insertions(+), 24 deletions(-) diff --git a/LICENSE b/LICENSE index 86bc4e6..2ab9c57 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2025 FigmaAI +Copyright 2026 Grabtaxi Holdings Pte Ltd (GRAB), All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file +SOFTWARE. diff --git a/app/src/main/kotlin/kr/co/metadata/mcp/App.kt b/app/src/main/kotlin/kr/co/metadata/mcp/App.kt index 01f9511..32e1fea 100644 --- a/app/src/main/kotlin/kr/co/metadata/mcp/App.kt +++ b/app/src/main/kotlin/kr/co/metadata/mcp/App.kt @@ -1,3 +1,9 @@ +/* + * Copyright 2026 Grabtaxi Holdings Pte Ltd (GRAB), All rights reserved. + * + * Use of this source code is governed by an MIT-style license that can be found in the LICENSE file + */ + package kr.co.metadata.mcp import androidx.compose.runtime.* @@ -1345,4 +1351,4 @@ fun main() { analyticsService = analyticsService ) } -} \ No newline at end of file +} diff --git a/app/src/main/kotlin/kr/co/metadata/mcp/analytics/AnalyticsConfig.kt b/app/src/main/kotlin/kr/co/metadata/mcp/analytics/AnalyticsConfig.kt index 16da501..09a632d 100644 --- a/app/src/main/kotlin/kr/co/metadata/mcp/analytics/AnalyticsConfig.kt +++ b/app/src/main/kotlin/kr/co/metadata/mcp/analytics/AnalyticsConfig.kt @@ -1,3 +1,9 @@ +/* + * Copyright 2026 Grabtaxi Holdings Pte Ltd (GRAB), All rights reserved. + * + * Use of this source code is governed by an MIT-style license that can be found in the LICENSE file + */ + package kr.co.metadata.mcp.analytics import mu.KotlinLogging @@ -113,4 +119,4 @@ class AnalyticsConfig { val arch = System.getProperty("os.arch") return "$os $osVersion ($arch)" } -} \ No newline at end of file +} diff --git a/app/src/main/kotlin/kr/co/metadata/mcp/analytics/CrashHandler.kt b/app/src/main/kotlin/kr/co/metadata/mcp/analytics/CrashHandler.kt index 6a0d936..b419efb 100644 --- a/app/src/main/kotlin/kr/co/metadata/mcp/analytics/CrashHandler.kt +++ b/app/src/main/kotlin/kr/co/metadata/mcp/analytics/CrashHandler.kt @@ -1,3 +1,9 @@ +/* + * Copyright 2026 Grabtaxi Holdings Pte Ltd (GRAB), All rights reserved. + * + * Use of this source code is governed by an MIT-style license that can be found in the LICENSE file + */ + package kr.co.metadata.mcp.analytics import mu.KotlinLogging @@ -40,4 +46,4 @@ class CrashHandler(private val analytics: GoogleAnalyticsService? = null) { fun cleanup() { logger.info { "Crash handler cleaned up" } } -} \ No newline at end of file +} diff --git a/app/src/main/kotlin/kr/co/metadata/mcp/analytics/GoogleAnalyticsService.kt b/app/src/main/kotlin/kr/co/metadata/mcp/analytics/GoogleAnalyticsService.kt index d510326..c02f854 100644 --- a/app/src/main/kotlin/kr/co/metadata/mcp/analytics/GoogleAnalyticsService.kt +++ b/app/src/main/kotlin/kr/co/metadata/mcp/analytics/GoogleAnalyticsService.kt @@ -1,3 +1,9 @@ +/* + * Copyright 2026 Grabtaxi Holdings Pte Ltd (GRAB), All rights reserved. + * + * Use of this source code is governed by an MIT-style license that can be found in the LICENSE file + */ + package kr.co.metadata.mcp.analytics import java.awt.Toolkit diff --git a/app/src/main/kotlin/kr/co/metadata/mcp/mcp/AnnotationService.kt b/app/src/main/kotlin/kr/co/metadata/mcp/mcp/AnnotationService.kt index 6dc03cd..11d3df4 100644 --- a/app/src/main/kotlin/kr/co/metadata/mcp/mcp/AnnotationService.kt +++ b/app/src/main/kotlin/kr/co/metadata/mcp/mcp/AnnotationService.kt @@ -1,3 +1,9 @@ +/* + * Copyright 2026 Grabtaxi Holdings Pte Ltd (GRAB), All rights reserved. + * + * Use of this source code is governed by an MIT-style license that can be found in the LICENSE file + */ + package kr.co.metadata.mcp.mcp import io.modelcontextprotocol.kotlin.sdk.* @@ -359,4 +365,4 @@ object AnnotationService : BaseFigmaService() { } } } -} \ No newline at end of file +} diff --git a/app/src/main/kotlin/kr/co/metadata/mcp/mcp/BaseFigmaService.kt b/app/src/main/kotlin/kr/co/metadata/mcp/mcp/BaseFigmaService.kt index 857c771..d9075b3 100644 --- a/app/src/main/kotlin/kr/co/metadata/mcp/mcp/BaseFigmaService.kt +++ b/app/src/main/kotlin/kr/co/metadata/mcp/mcp/BaseFigmaService.kt @@ -1,3 +1,9 @@ +/* + * Copyright 2026 Grabtaxi Holdings Pte Ltd (GRAB), All rights reserved. + * + * Use of this source code is governed by an MIT-style license that can be found in the LICENSE file + */ + package kr.co.metadata.mcp.mcp import kr.co.metadata.mcp.mcp.validation.ValidationResult @@ -382,4 +388,4 @@ abstract class BaseFigmaService { if (default != null) put("default", default) } } -} \ No newline at end of file +} diff --git a/app/src/main/kotlin/kr/co/metadata/mcp/mcp/ComponentService.kt b/app/src/main/kotlin/kr/co/metadata/mcp/mcp/ComponentService.kt index 3680a03..16a22bf 100644 --- a/app/src/main/kotlin/kr/co/metadata/mcp/mcp/ComponentService.kt +++ b/app/src/main/kotlin/kr/co/metadata/mcp/mcp/ComponentService.kt @@ -1,3 +1,9 @@ +/* + * Copyright 2026 Grabtaxi Holdings Pte Ltd (GRAB), All rights reserved. + * + * Use of this source code is governed by an MIT-style license that can be found in the LICENSE file + */ + package kr.co.metadata.mcp.mcp import io.modelcontextprotocol.kotlin.sdk.* @@ -188,4 +194,4 @@ object ComponentService : BaseFigmaService() { } } } -} \ No newline at end of file +} diff --git a/app/src/main/kotlin/kr/co/metadata/mcp/mcp/CreationService.kt b/app/src/main/kotlin/kr/co/metadata/mcp/mcp/CreationService.kt index ba784d3..f31680c 100644 --- a/app/src/main/kotlin/kr/co/metadata/mcp/mcp/CreationService.kt +++ b/app/src/main/kotlin/kr/co/metadata/mcp/mcp/CreationService.kt @@ -1,3 +1,9 @@ +/* + * Copyright 2026 Grabtaxi Holdings Pte Ltd (GRAB), All rights reserved. + * + * Use of this source code is governed by an MIT-style license that can be found in the LICENSE file + */ + package kr.co.metadata.mcp.mcp import io.modelcontextprotocol.kotlin.sdk.* @@ -329,4 +335,4 @@ object CreationService : BaseFigmaService() { } } } -} \ No newline at end of file +} diff --git a/app/src/main/kotlin/kr/co/metadata/mcp/mcp/DocumentService.kt b/app/src/main/kotlin/kr/co/metadata/mcp/mcp/DocumentService.kt index dd4c587..f4af5fa 100644 --- a/app/src/main/kotlin/kr/co/metadata/mcp/mcp/DocumentService.kt +++ b/app/src/main/kotlin/kr/co/metadata/mcp/mcp/DocumentService.kt @@ -1,3 +1,9 @@ +/* + * Copyright 2026 Grabtaxi Holdings Pte Ltd (GRAB), All rights reserved. + * + * Use of this source code is governed by an MIT-style license that can be found in the LICENSE file + */ + package kr.co.metadata.mcp.mcp import io.modelcontextprotocol.kotlin.sdk.* @@ -217,4 +223,4 @@ object DocumentService : BaseFigmaService() { } } } -} \ No newline at end of file +} diff --git a/app/src/main/kotlin/kr/co/metadata/mcp/mcp/ExportService.kt b/app/src/main/kotlin/kr/co/metadata/mcp/mcp/ExportService.kt index ed84414..1b39b3f 100644 --- a/app/src/main/kotlin/kr/co/metadata/mcp/mcp/ExportService.kt +++ b/app/src/main/kotlin/kr/co/metadata/mcp/mcp/ExportService.kt @@ -1,3 +1,9 @@ +/* + * Copyright 2026 Grabtaxi Holdings Pte Ltd (GRAB), All rights reserved. + * + * Use of this source code is governed by an MIT-style license that can be found in the LICENSE file + */ + package kr.co.metadata.mcp.mcp import io.modelcontextprotocol.kotlin.sdk.Tool @@ -72,4 +78,4 @@ object ExportService : BaseFigmaService() { } } } -} \ No newline at end of file +} diff --git a/app/src/main/kotlin/kr/co/metadata/mcp/mcp/FigmaMcpTools.kt b/app/src/main/kotlin/kr/co/metadata/mcp/mcp/FigmaMcpTools.kt index 2ea33a9..59a3b60 100644 --- a/app/src/main/kotlin/kr/co/metadata/mcp/mcp/FigmaMcpTools.kt +++ b/app/src/main/kotlin/kr/co/metadata/mcp/mcp/FigmaMcpTools.kt @@ -1,3 +1,9 @@ +/* + * Copyright 2026 Grabtaxi Holdings Pte Ltd (GRAB), All rights reserved. + * + * Use of this source code is governed by an MIT-style license that can be found in the LICENSE file + */ + package kr.co.metadata.mcp.mcp import io.modelcontextprotocol.kotlin.sdk.* @@ -104,4 +110,4 @@ object FigmaMcpTools { logger.info { "All Figma MCP prompts registered successfully" } } -} \ No newline at end of file +} diff --git a/app/src/main/kotlin/kr/co/metadata/mcp/mcp/FigmaPromptService.kt b/app/src/main/kotlin/kr/co/metadata/mcp/mcp/FigmaPromptService.kt index 523842d..69b34d2 100644 --- a/app/src/main/kotlin/kr/co/metadata/mcp/mcp/FigmaPromptService.kt +++ b/app/src/main/kotlin/kr/co/metadata/mcp/mcp/FigmaPromptService.kt @@ -1,3 +1,9 @@ +/* + * Copyright 2026 Grabtaxi Holdings Pte Ltd (GRAB), All rights reserved. + * + * Use of this source code is governed by an MIT-style license that can be found in the LICENSE file + */ + package kr.co.metadata.mcp.mcp import io.modelcontextprotocol.kotlin.sdk.* @@ -628,4 +634,4 @@ This detailed process ensures you correctly interpret the reaction data, prepare } } */ -} \ No newline at end of file +} diff --git a/app/src/main/kotlin/kr/co/metadata/mcp/mcp/LayoutManagementService.kt b/app/src/main/kotlin/kr/co/metadata/mcp/mcp/LayoutManagementService.kt index 650a379..f0bdd79 100644 --- a/app/src/main/kotlin/kr/co/metadata/mcp/mcp/LayoutManagementService.kt +++ b/app/src/main/kotlin/kr/co/metadata/mcp/mcp/LayoutManagementService.kt @@ -1,3 +1,9 @@ +/* + * Copyright 2026 Grabtaxi Holdings Pte Ltd (GRAB), All rights reserved. + * + * Use of this source code is governed by an MIT-style license that can be found in the LICENSE file + */ + package kr.co.metadata.mcp.mcp import io.modelcontextprotocol.kotlin.sdk.* @@ -192,4 +198,4 @@ object LayoutManagementService : BaseFigmaService() { } } } -} \ No newline at end of file +} diff --git a/app/src/main/kotlin/kr/co/metadata/mcp/mcp/LayoutService.kt b/app/src/main/kotlin/kr/co/metadata/mcp/mcp/LayoutService.kt index 8f77008..672aac4 100644 --- a/app/src/main/kotlin/kr/co/metadata/mcp/mcp/LayoutService.kt +++ b/app/src/main/kotlin/kr/co/metadata/mcp/mcp/LayoutService.kt @@ -1,3 +1,9 @@ +/* + * Copyright 2026 Grabtaxi Holdings Pte Ltd (GRAB), All rights reserved. + * + * Use of this source code is governed by an MIT-style license that can be found in the LICENSE file + */ + package kr.co.metadata.mcp.mcp import io.modelcontextprotocol.kotlin.sdk.* @@ -258,4 +264,4 @@ object LayoutService : BaseFigmaService() { } } } -} \ No newline at end of file +} diff --git a/app/src/main/kotlin/kr/co/metadata/mcp/mcp/PrototypeService.kt b/app/src/main/kotlin/kr/co/metadata/mcp/mcp/PrototypeService.kt index 1bbb3eb..0ece7ae 100644 --- a/app/src/main/kotlin/kr/co/metadata/mcp/mcp/PrototypeService.kt +++ b/app/src/main/kotlin/kr/co/metadata/mcp/mcp/PrototypeService.kt @@ -1,3 +1,9 @@ +/* + * Copyright 2026 Grabtaxi Holdings Pte Ltd (GRAB), All rights reserved. + * + * Use of this source code is governed by an MIT-style license that can be found in the LICENSE file + */ + package kr.co.metadata.mcp.mcp import io.modelcontextprotocol.kotlin.sdk.* @@ -130,4 +136,4 @@ object PrototypeService : BaseFigmaService() { } } */ -} \ No newline at end of file +} diff --git a/app/src/main/kotlin/kr/co/metadata/mcp/mcp/StyleService.kt b/app/src/main/kotlin/kr/co/metadata/mcp/mcp/StyleService.kt index 5385d20..6aa9e9a 100644 --- a/app/src/main/kotlin/kr/co/metadata/mcp/mcp/StyleService.kt +++ b/app/src/main/kotlin/kr/co/metadata/mcp/mcp/StyleService.kt @@ -1,3 +1,9 @@ +/* + * Copyright 2026 Grabtaxi Holdings Pte Ltd (GRAB), All rights reserved. + * + * Use of this source code is governed by an MIT-style license that can be found in the LICENSE file + */ + package kr.co.metadata.mcp.mcp import io.modelcontextprotocol.kotlin.sdk.* @@ -226,4 +232,4 @@ object StyleService : BaseFigmaService() { } } } -} \ No newline at end of file +} diff --git a/app/src/main/kotlin/kr/co/metadata/mcp/mcp/TextService.kt b/app/src/main/kotlin/kr/co/metadata/mcp/mcp/TextService.kt index 6b930b1..03248fb 100644 --- a/app/src/main/kotlin/kr/co/metadata/mcp/mcp/TextService.kt +++ b/app/src/main/kotlin/kr/co/metadata/mcp/mcp/TextService.kt @@ -1,3 +1,9 @@ +/* + * Copyright 2026 Grabtaxi Holdings Pte Ltd (GRAB), All rights reserved. + * + * Use of this source code is governed by an MIT-style license that can be found in the LICENSE file + */ + package kr.co.metadata.mcp.mcp import io.modelcontextprotocol.kotlin.sdk.* @@ -246,4 +252,4 @@ object TextService : BaseFigmaService() { } } } -} \ No newline at end of file +} diff --git a/app/src/main/kotlin/kr/co/metadata/mcp/mcp/validation/FigmaValidationModels.kt b/app/src/main/kotlin/kr/co/metadata/mcp/mcp/validation/FigmaValidationModels.kt index 210c173..6a40be5 100644 --- a/app/src/main/kotlin/kr/co/metadata/mcp/mcp/validation/FigmaValidationModels.kt +++ b/app/src/main/kotlin/kr/co/metadata/mcp/mcp/validation/FigmaValidationModels.kt @@ -1,3 +1,9 @@ +/* + * Copyright 2026 Grabtaxi Holdings Pte Ltd (GRAB), All rights reserved. + * + * Use of this source code is governed by an MIT-style license that can be found in the LICENSE file + */ + package kr.co.metadata.mcp.mcp.validation import kotlinx.serialization.Serializable @@ -433,4 +439,4 @@ val exportNodeAsImageValidator = validator { request - } } - \ No newline at end of file + diff --git a/app/src/main/kotlin/kr/co/metadata/mcp/server/McpServer.kt b/app/src/main/kotlin/kr/co/metadata/mcp/server/McpServer.kt index 5cf3c7d..437ca23 100644 --- a/app/src/main/kotlin/kr/co/metadata/mcp/server/McpServer.kt +++ b/app/src/main/kotlin/kr/co/metadata/mcp/server/McpServer.kt @@ -1,3 +1,9 @@ +/* + * Copyright 2026 Grabtaxi Holdings Pte Ltd (GRAB), All rights reserved. + * + * Use of this source code is governed by an MIT-style license that can be found in the LICENSE file + */ + package kr.co.metadata.mcp.server import io.modelcontextprotocol.kotlin.sdk.* @@ -696,4 +702,4 @@ class McpServer { throw e } } -} \ No newline at end of file +} diff --git a/app/src/main/kotlin/kr/co/metadata/mcp/server/WebSocketServer.kt b/app/src/main/kotlin/kr/co/metadata/mcp/server/WebSocketServer.kt index 0a876dc..66d0d0b 100644 --- a/app/src/main/kotlin/kr/co/metadata/mcp/server/WebSocketServer.kt +++ b/app/src/main/kotlin/kr/co/metadata/mcp/server/WebSocketServer.kt @@ -1,3 +1,9 @@ +/* + * Copyright 2026 Grabtaxi Holdings Pte Ltd (GRAB), All rights reserved. + * + * Use of this source code is governed by an MIT-style license that can be found in the LICENSE file + */ + package kr.co.metadata.mcp.server import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper @@ -222,4 +228,4 @@ class WebSocketServer(port: Int = DEFAULT_PORT) : WebSocketServer(InetSocketAddr override fun onStart() { logger.info { "🚀 WebSocket server started on port $port" } } -} \ No newline at end of file +} diff --git a/app/src/main/kotlin/kr/co/metadata/mcp/ui/OpenSourceDialog.kt b/app/src/main/kotlin/kr/co/metadata/mcp/ui/OpenSourceDialog.kt index bdc4c2f..8c364e0 100644 --- a/app/src/main/kotlin/kr/co/metadata/mcp/ui/OpenSourceDialog.kt +++ b/app/src/main/kotlin/kr/co/metadata/mcp/ui/OpenSourceDialog.kt @@ -1,3 +1,9 @@ +/* + * Copyright 2026 Grabtaxi Holdings Pte Ltd (GRAB), All rights reserved. + * + * Use of this source code is governed by an MIT-style license that can be found in the LICENSE file + */ + package kr.co.metadata.mcp.ui import androidx.compose.foundation.layout.* diff --git a/app/src/main/kotlin/kr/co/metadata/mcp/ui/ServerErrorDialog.kt b/app/src/main/kotlin/kr/co/metadata/mcp/ui/ServerErrorDialog.kt index 7db1270..9affddc 100644 --- a/app/src/main/kotlin/kr/co/metadata/mcp/ui/ServerErrorDialog.kt +++ b/app/src/main/kotlin/kr/co/metadata/mcp/ui/ServerErrorDialog.kt @@ -1,3 +1,9 @@ +/* + * Copyright 2026 Grabtaxi Holdings Pte Ltd (GRAB), All rights reserved. + * + * Use of this source code is governed by an MIT-style license that can be found in the LICENSE file + */ + package kr.co.metadata.mcp.ui import androidx.compose.foundation.layout.* @@ -248,4 +254,4 @@ fun ServerErrorDialog( } } } -} \ No newline at end of file +} diff --git a/app/src/main/kotlin/kr/co/metadata/mcp/ui/TutorialDialog.kt b/app/src/main/kotlin/kr/co/metadata/mcp/ui/TutorialDialog.kt index 953b61e..07c3d5a 100644 --- a/app/src/main/kotlin/kr/co/metadata/mcp/ui/TutorialDialog.kt +++ b/app/src/main/kotlin/kr/co/metadata/mcp/ui/TutorialDialog.kt @@ -1,3 +1,9 @@ +/* + * Copyright 2026 Grabtaxi Holdings Pte Ltd (GRAB), All rights reserved. + * + * Use of this source code is governed by an MIT-style license that can be found in the LICENSE file + */ + package kr.co.metadata.mcp.ui import androidx.compose.foundation.* @@ -469,4 +475,4 @@ fun SelectableText( style = style ) } -} \ No newline at end of file +} diff --git a/app/src/test/kotlin/kr/co/metadata/mcp/AppTest.kt b/app/src/test/kotlin/kr/co/metadata/mcp/AppTest.kt index f6351cf..80c0ea8 100644 --- a/app/src/test/kotlin/kr/co/metadata/mcp/AppTest.kt +++ b/app/src/test/kotlin/kr/co/metadata/mcp/AppTest.kt @@ -1,3 +1,9 @@ +/* + * Copyright 2026 Grabtaxi Holdings Pte Ltd (GRAB), All rights reserved. + * + * Use of this source code is governed by an MIT-style license that can be found in the LICENSE file + */ + package kr.co.metadata.mcp import org.junit.jupiter.api.Test @@ -17,4 +23,4 @@ class AppTest { assertTrue(true) } -} \ No newline at end of file +}