home / skills / openharmonyinsight / openharmony-skills / arkts-sta-playground

arkts-sta-playground skill

/skills/arkts-sta-playground

This skill lets you run ArkTS-Sta code snippets via a fast HTTP API for quick testing, learning, and debugging results.

npx playbooks add skill openharmonyinsight/openharmony-skills --skill arkts-sta-playground

Review the files below or copy the command above to add this skill to your agents.

Files (4)
SKILL.md
4.5 KB
---
name: arkts-sta-playground
description: Execute ArkTS-Sta code snippets and files via the Playground HTTP API. Use this for testing ArkTS syntax, learning ArkTS features, verifying code logic, or demonstrating code execution results.
---

# ArkTS-Sta Playground Runner

## Overview

This skill runs ArkTS-Sta code using the ArkTS-Sta Playground HTTP API, providing fast and reliable code execution without browser automation.

## Quick Start

### Basic Usage

Run an ArkTS-Sta file:

```bash
python3 scripts/run_playground.py path/to/code.ets
```

Run code directly as a string:

```bash
python3 scripts/run_playground.py --code "let x: number = 42; console.log(x);"
```

Get JSON output for programmatic parsing:

```bash
python3 scripts/run_playground.py --json --code "console.log('Hello');"
```

## Setup Requirements

Install Python dependencies:

```bash
pip install -r scripts/requirements.txt
```

Required package: `requests>=2.31.0`

## Usage Patterns

### Pattern 1: Quick Code Testing

When testing ArkTS-Sta syntax or verifying code logic:

```bash
python3 scripts/run_playground.py --code "
enum Numbers {
  A = 10,
  B = 2.57,
  C = 0x2B7F,
  D = -1.5,
  E = 12
}
"
```

### Pattern 2: Batch Testing

For testing multiple files:

```bash
for file in test/*.ets; do
    python3 scripts/run_playground.py --json "$file" > "results/$(basename $file .ets).json"
done
```

## How It Works

The script uses the HTTP API endpoint:

1. Sends your ArkTS-Sta code to `https://arkts-play.cn.bz-openlab.ru:10443/compile`
2. Receives compilation results and output
3. Returns formatted results (success status, output, errors)

## API Endpoint

**Base URL:** `https://arkts-play.cn.bz-openlab.ru:10443/compile`

**Method:** POST

**Request:**
```json
{
  "code": "your ArkTS-Sta code here"
}
```

**Response:**
```json
{
  "output": "execution output or empty",
  "error": "error message if compilation failed, null otherwise"
}
```

## Troubleshooting

### Connection issues

If you get connection errors:

1. Check internet connectivity
2. Verify the API endpoint is accessible
3. Check firewall settings

```bash
# Test connectivity
curl -X POST https://arkts-play.cn.bz-openlab.ru:10443/compile \
  -H "Content-Type: application/json" \
  -d '{"code":"let x: number = 42;"}'
```

### Timeout issues

Increase timeout if the API is slow:

```bash
python3 scripts/run_playground.py --timeout 60 path/to/code.ets
```

### SSL certificate errors

If you encounter SSL certificate issues, you may need to:
- Ensure your system's CA certificates are up to date
- Or modify the script to disable SSL verification (not recommended for production)

## Common Use Cases

### Learn ArkTS Syntax

Test and explore ArkTS language features:

```bash
python3 scripts/run_playground.py --code "
// Test union types
let value: string | number = 'hello';
value = 42;
console.log(value);
"
```

### Quick Prototype Verification

Verify code logic before integrating into your project:

```bash
python3 scripts/run_playground.py --code "
function calculateSum(a: number, b: number): number {
    return a + b;
}
console.log('Sum:', calculateSum(10, 20));
"
```

### Debug Code Snippets

Find compilation errors in your code:

```bash
# Run with JSON output for programmatic checking
python3 scripts/run_playground.py --json problem.ets

# Check exit status
if python3 scripts/run_playground.py code.ets; then
    echo "Compilation successful"
else
    echo "Compilation failed"
fi
```

## Script Output

The script returns a JSON structure (with `--json` flag):

```json
{
  "success": true,
  "output": "Execution result here...",
  "error": null,
  "has_error": false
}
```

Fields:
- `success`: Boolean indicating if the API request succeeded
- `output`: Code output or compilation output
- `error`: Error message if compilation failed, `null` otherwise
- `has_error`: Boolean indicating if the code has compilation errors

## Example: Testing Enum with Floating Point

Test if enum with non-integer values causes errors:

```bash
python3 scripts/run_playground.py --code "
enum Numbers {
  A = 10,
  B = 2.57,
  C = 0x2B7F,
  D = -1.5,
  E = 12
}
"
```

Expected result: Should fail with an error about enum values needing to be integers.

## Limitations

- Requires internet access to the API endpoint
- API rate limiting may apply
- Compilation output format depends on the API response

## Tips for Efficient Usage

1. **Use JSON output** for programmatic processing (`--json`)
2. **Batch test** multiple files using shell loops
3. **Check exit codes** in scripts for success/failure

Overview

This skill executes ArkTS-Sta code snippets and files via the ArkTS-Sta Playground HTTP API, providing a fast, scriptable way to run and verify ArkTS code without browser automation. It returns compilation and runtime results as human-readable text or structured JSON for programmatic use. Use it for learning language features, debugging, or automated test runs.

How this skill works

The runner posts your ArkTS-Sta source to the Playground compile endpoint and receives compilation and execution results. It parses the API JSON response and prints a concise summary or returns a richer JSON payload when requested. Options include running a file, executing inline code, adjusting timeouts, and enabling machine-friendly JSON output.

When to use it

  • Quickly test small ArkTS code snippets or language features
  • Verify logic and outputs before committing code
  • Batch-validate many .ets files in CI or local scripts
  • Collect structured results for automated test suites
  • Debug compilation errors with JSON-formatted responses

Best practices

  • Use the --json flag for automated parsing and CI integration
  • Batch files with shell loops to generate per-file result artifacts
  • Increase the timeout for long-running compilations using --timeout
  • Keep sensitive code off public endpoints; the API is remote and requires network access
  • Check exit codes in scripts to gate CI steps on compilation success

Example use cases

  • Run a single ArkTS file: python3 scripts/run_playground.py path/to/code.ets
  • Execute inline code for quick experiments: python3 scripts/run_playground.py --code "console.log('hi');"
  • Produce JSON output for CI: python3 scripts/run_playground.py --json test/problem.ets > results/problem.json
  • Batch test a directory: for f in test/*.ets; do python3 scripts/run_playground.py --json "$f" > results/$(basename "$f" .ets).json; done
  • Investigate compile-time errors for enums and type checks by running failing examples and inspecting the error field

FAQ

Do I need anything besides Python and requests?

You only need Python and the requests package (requests>=2.31.0). Install dependencies with pip install -r scripts/requirements.txt.

What happens if the API is unreachable?

The script will report connection errors; verify network access, the endpoint URL, and firewall/SSL settings. You can increase the timeout or test the endpoint via curl to diagnose connectivity.