开发者工具¶
终端、堆栈、测试、文件、提交与依赖信息。
终端输出¶
展示命令输出的颜色、进度重绘和链接。

| API | Terminal(output, title, status, exitCode) |
| AI Elements | Terminal |
| 依赖模块 | ai-elements-ui |
| API 文档 | Terminal |
传入累计输出。支持 ANSI 样式和有界滚动历史;这是输出视图,不是可交互终端。
import androidx.compose.runtime.Composable
import dev.ai.elements.ui.code.Terminal
import dev.ai.elements.ui.code.TerminalStatus
@Composable
fun TerminalExample() {
Terminal("Tests passed\n", title = "Test output", status = TerminalStatus.SUCCESS, exitCode = 0)
}
异常堆栈¶
区分应用与依赖的堆栈帧,支持折叠。

| API | StackTrace(trace) |
| AI Elements | StackTrace |
| 依赖模块 | ai-elements-ui |
| API 文档 | StackTrace |
传入原始堆栈文字。组件只展示信息,不会上报崩溃报告。
@Composable
fun StackTraceExample() {
StackTrace("java.lang.IllegalStateException: Missing input\n at example.App.run(App.kt:12)")
}
测试结果¶
展示测试套件中的成功、失败与跳过项目。

| API | TestResults(suites, durationMs) |
| AI Elements | TestResults |
| 依赖模块 | ai-elements-ui |
| API 文档 | TestResults |
提供实际结果和毫秒耗时;组件本身不会运行测试。
import androidx.compose.runtime.Composable
import dev.ai.elements.ui.code.TestCaseResult
import dev.ai.elements.ui.code.TestResults
import dev.ai.elements.ui.code.TestStatus
import dev.ai.elements.ui.code.TestSuiteResult
@Composable
fun TestResultsExample() {
TestResults(listOf(TestSuiteResult("Example", listOf(TestCaseResult("loads", TestStatus.PASSED, 25)))), durationMs = 25)
}
文件树¶
展示项目目录、选中文件和变更标记。

| API | FileTree(nodes, expanded, selectedPath, onSelect) |
| AI Elements | FileTree |
| 依赖模块 | ai-elements-ui |
| API 文档 | FileTree |
节点由调用方提供,选择节点不会读取文件。需要初始展开状态时传入 expanded 路径集合。
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
import dev.ai.elements.ui.code.FileNode
import dev.ai.elements.ui.code.FileTree
@Composable
fun FileTreeExample() {
var selected by rememberSaveable { mutableStateOf<String?>(null) }
FileTree(listOf(FileNode("README.md", "README.md")), selectedPath = selected, onSelect = { selected = it.path })
}
提交信息¶
展示 Git 提交说明和文件变更。

| API | Commit(hash, message, author, timestampMs, files) |
| AI Elements | Commit |
| 依赖模块 | ai-elements-ui |
| API 文档 | Commit |
哈希、说明与文件列表来自你的源码管理工具;该卡片不会执行 Git 操作。
import androidx.compose.runtime.Composable
import dev.ai.elements.ui.code.Commit
import dev.ai.elements.ui.code.CommitFile
import dev.ai.elements.ui.code.FileChange
@Composable
fun CommitExample() {
Commit(hash = "abcdef1234", message = "Document the API", files = listOf(CommitFile("README.md", FileChange.MODIFIED, 10, 2)))
}
接口结构¶
展示接口参数、请求体和响应示例。

| API | SchemaDisplay(method, path, parameters, requestBody, responseBody) |
| AI Elements | SchemaDisplay |
| 依赖模块 | ai-elements-ui |
| API 文档 | SchemaDisplay |
这是结构说明,不会验证或调用接口。requestBody 与 responseBody 是示例文字。
import androidx.compose.runtime.Composable
import dev.ai.elements.ui.code.SchemaDisplay
import dev.ai.elements.ui.code.SchemaParameter
@Composable
fun SchemaDisplayExample() {
SchemaDisplay(method = "POST", path = "/chat", parameters = listOf(SchemaParameter("messages", "array", required = true)))
}
依赖信息¶
展示依赖版本变化与大小。

| API | PackageInfo(name, fromVersion, toVersion, change) |
| AI Elements | PackageInfo |
| 依赖模块 | ai-elements-ui |
| API 文档 | PackageInfo |
变更分类和大小由应用提供;组件不执行依赖解析或升级。
import androidx.compose.runtime.Composable
import dev.ai.elements.ui.code.PackageChange
import dev.ai.elements.ui.code.PackageInfo
@Composable
fun PackageInfoExample() {
PackageInfo("example:library", fromVersion = "1.0.0", toVersion = "1.1.0", change = PackageChange.MINOR)
}
环境变量¶
展示环境变量,并默认遮挡敏感值。

| API | EnvironmentVariables(variables) |
| AI Elements | EnvironmentVariables |
| 依赖模块 | ai-elements-ui |
| API 文档 | EnvironmentVariables |
secret 只影响视觉遮挡,不提供加密。示例和截图中不要放真实凭据。
import androidx.compose.runtime.Composable
import dev.ai.elements.ui.code.EnvironmentVariable
import dev.ai.elements.ui.code.EnvironmentVariables
@Composable
fun EnvironmentVariablesExample() {
EnvironmentVariables(listOf(EnvironmentVariable("MODEL", "local", secret = false)))
}
代码与运行结果¶
通过标签页展示代码及其输出。

| API | Sandbox(title, tabs) |
| AI Elements | Sandbox |
| 依赖模块 | ai-elements-ui |
| API 文档 | Sandbox |
该组件只提供展示。实际执行由 harness-shell 或你的 backend 完成。
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import dev.ai.elements.ui.code.Sandbox
import dev.ai.elements.ui.code.SandboxTab
import dev.ai.elements.ui.markdown.CodeBlock
@Composable
fun SandboxExample() {
Sandbox("Example", listOf(SandboxTab("Code") { CodeBlock("println(42)", "kotlin") }, SandboxTab("Output") { Text("42") }))
}
可复制命令¶
展示一行便于复制的命令。

| API | Snippet(text, prefix) |
| AI Elements | Snippet |
| 依赖模块 | ai-elements-ui |
| API 文档 | Snippet |
点击复制不会执行命令。