Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .agents/skills/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Generated skills

Do not edit these files. They are copied byte for byte from
`plugins/dreamlayer/skills/`, the canonical source, so that Cursor, OpenCode, GitHub Copilot and the npx skills installer load the same
workflows as every other host.

Change a workflow in the canonical source, then regenerate:

```sh
python3 scripts/sync_skills.py
```

`python3 scripts/sync_skills.py --check` fails when any copy has drifted, and
`python3 scripts/validate.py` runs that check.
14 changes: 14 additions & 0 deletions .cline/skills/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Generated skills

Do not edit these files. They are copied byte for byte from
`plugins/dreamlayer/skills/`, the canonical source, so that Cline load the same
workflows as every other host.

Change a workflow in the canonical source, then regenerate:

```sh
python3 scripts/sync_skills.py
```

`python3 scripts/sync_skills.py --check` fails when any copy has drifted, and
`python3 scripts/validate.py` runs that check.
11 changes: 11 additions & 0 deletions .cline/skills/batch-photo-editing/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
name: batch-photo-editing
description: "Apply a specified edit, background removal or upscaling task to a list of local images with DreamLayer. Use for a bounded batch with per-file results and a total credit budget."
---

# batch photo editing

Read [the workflow contract](references/workflow-contract.md) for setup, billing, recovery and output checks.

Enumerate input files and assign unique new outputs before uploading. Estimate total operations from current capabilities; an edit plus cutout is two paid operations per image. Maintain a per-item ledger of input, asset ID, saved request, idempotency key, execution ID, status and output. Process sequentially initially; stop new submissions on insufficient credits or exhausted budget. Resume existing executions after interruption. Skip already completed outputs rather than changing paths and charging again. Inspect a sample first and all outputs for tasks where fidelity matters. The batch is orchestration over individual operations, not a separate DreamLayer batch endpoint.

46 changes: 46 additions & 0 deletions .cline/skills/batch-photo-editing/references/workflow-contract.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# DreamLayer workflow contract

Use the installed DreamLayer MCP tools, or the pinned CLI when MCP is unavailable.
Read the actual tool schema before calling. Never pass fields a client does not expose.

## Setup
Requires Node.js >=22.12 and a DreamLayer API key from https://platform.dreamlayer.io.
Install the supported sprite-capable beta: `npm install -g dreamlayer@0.4.0-beta.3`.
MCP: `npx -y @dreamlayer/mcp@0.4.0-beta.4`. Supply DREAMLAYER_API_KEY to the server process using the host's secret settings. Never commit keys or put them in prompts.
The stable npm tag remains 0.3.0. Do not claim it supports this complete workflow.

## Before paid work
1. Read dreamlayer_capabilities and dreamlayer_balance (or CLI capabilities/balance --json). If either fails, resolve it before spending.
2. Confirm the requested operation is advertised. Ordinary completed image operations currently cost one credit each; obtain the live cost from capabilities. A multi-step edit and cutout costs two operations.
3. Use the user's already-authorized operation, number of outputs and credit budget. Ask only if missing. Never buy credits or expand the batch implicitly.
4. For file operations, verify input readability and a new output path before submitting. Upload once using dreamlayer_upload_image; preserve its input_asset_id.
5. Save a unique idempotency_key and the complete request locally before each generation. Do not store credentials in the job record.

## Execute and recover
Select operation explicitly: text_to_image; image_to_image; background_remove; upscale; sprite_sheet.
All except text_to_image require input_asset_id. Generate returns execution_id, status, asset, question and last_event_id.
Preserve IDs/cursor after each response. For running work, call dreamlayer_execution or dreamlayer_events; do not generate a replacement after a timeout.
A needs_input result is a question, not a failed generation. Continue using conversation_id and respond.
For completed work, dreamlayer_download writes an absolute new local path. Never treat a returned asset URL as proof that the local file exists.
On a local download error, repair the destination and download the same execution.
File-based CLI retries upload a new asset; use status and download after uncertainty rather than rerunning the paid command.
Stop at insufficient credits, invalid request, unsupported operation, or an unresolved contract error. Keep recoverable state; do not loop paid retries.

## Output acceptance
Inspect the saved image or preview. Check dimensions, transparency if requested, text spelling, reference fidelity and the intended use. Label uninspected outputs.
PNG output does not establish SVG/vector structure, pixel-perfect art, trademark clearance, print compliance, exact product fidelity or consistent animation.
API documentation: https://docs.dreamlayer.io/agent-api
Recovery: https://docs.dreamlayer.io/agent-api/jobs-and-events

## CLI examples
```sh
dreamlayer capabilities --json
dreamlayer balance --json
dreamlayer generate "Original image brief" --aspect 1:1 --idempotency-key UNIQUE_SAVED_KEY --out concept.png --json
dreamlayer edit reference.png "Change the background to a simple studio scene" --idempotency-key UNIQUE_SAVED_KEY --out edited.png --json
dreamlayer cutout reference.png --idempotency-key UNIQUE_SAVED_KEY --out cutout.png --json
dreamlayer status EXECUTION_ID --json
dreamlayer download EXECUTION_ID --out recovered.png --json
```
Placeholder IDs and keys must be replaced. Check CLI --help for supported flags; --max-credits is for sprite jobs.

11 changes: 11 additions & 0 deletions .cline/skills/generate-or-edit-image/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
name: generate-or-edit-image
description: "Generate an original image, edit a local reference, remove a background, or upscale an image with DreamLayer. Use for visual assets in an app, website or creative project when the user wants image files."
---

# generate or edit image

Read [the workflow contract](references/workflow-contract.md) for setup, billing, recovery and output checks.

Establish the visual brief, output count, aspect ratio, destination and authorized credits. Select the operation by the requested change; an edit needs a reference, a new image does not. Use background_remove for transparency rather than assuming a prompt creates alpha. Upscale doubles both dimensions; input longest side must be <=2048 and output is capped at 4096. Supported aspect ratios: 1:1, 16:9, 9:16, 4:3, 3:4. Save files into the project, inspect, and report dimensions and remaining limitations. For logos, product photos, marketing and print artwork, read the matching installed task skill if present.

Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# DreamLayer workflow contract

Use the installed DreamLayer MCP tools, or the pinned CLI when MCP is unavailable.
Read the actual tool schema before calling. Never pass fields a client does not expose.

## Setup
Requires Node.js >=22.12 and a DreamLayer API key from https://platform.dreamlayer.io.
Install the supported sprite-capable beta: `npm install -g dreamlayer@0.4.0-beta.3`.
MCP: `npx -y @dreamlayer/mcp@0.4.0-beta.4`. Supply DREAMLAYER_API_KEY to the server process using the host's secret settings. Never commit keys or put them in prompts.
The stable npm tag remains 0.3.0. Do not claim it supports this complete workflow.

## Before paid work
1. Read dreamlayer_capabilities and dreamlayer_balance (or CLI capabilities/balance --json). If either fails, resolve it before spending.
2. Confirm the requested operation is advertised. Ordinary completed image operations currently cost one credit each; obtain the live cost from capabilities. A multi-step edit and cutout costs two operations.
3. Use the user's already-authorized operation, number of outputs and credit budget. Ask only if missing. Never buy credits or expand the batch implicitly.
4. For file operations, verify input readability and a new output path before submitting. Upload once using dreamlayer_upload_image; preserve its input_asset_id.
5. Save a unique idempotency_key and the complete request locally before each generation. Do not store credentials in the job record.

## Execute and recover
Select operation explicitly: text_to_image; image_to_image; background_remove; upscale; sprite_sheet.
All except text_to_image require input_asset_id. Generate returns execution_id, status, asset, question and last_event_id.
Preserve IDs/cursor after each response. For running work, call dreamlayer_execution or dreamlayer_events; do not generate a replacement after a timeout.
A needs_input result is a question, not a failed generation. Continue using conversation_id and respond.
For completed work, dreamlayer_download writes an absolute new local path. Never treat a returned asset URL as proof that the local file exists.
On a local download error, repair the destination and download the same execution.
File-based CLI retries upload a new asset; use status and download after uncertainty rather than rerunning the paid command.
Stop at insufficient credits, invalid request, unsupported operation, or an unresolved contract error. Keep recoverable state; do not loop paid retries.

## Output acceptance
Inspect the saved image or preview. Check dimensions, transparency if requested, text spelling, reference fidelity and the intended use. Label uninspected outputs.
PNG output does not establish SVG/vector structure, pixel-perfect art, trademark clearance, print compliance, exact product fidelity or consistent animation.
API documentation: https://docs.dreamlayer.io/agent-api
Recovery: https://docs.dreamlayer.io/agent-api/jobs-and-events

## CLI examples
```sh
dreamlayer capabilities --json
dreamlayer balance --json
dreamlayer generate "Original image brief" --aspect 1:1 --idempotency-key UNIQUE_SAVED_KEY --out concept.png --json
dreamlayer edit reference.png "Change the background to a simple studio scene" --idempotency-key UNIQUE_SAVED_KEY --out edited.png --json
dreamlayer cutout reference.png --idempotency-key UNIQUE_SAVED_KEY --out cutout.png --json
dreamlayer status EXECUTION_ID --json
dreamlayer download EXECUTION_ID --out recovered.png --json
```
Placeholder IDs and keys must be replaced. Check CLI --help for supported flags; --max-credits is for sprite jobs.

11 changes: 11 additions & 0 deletions .cline/skills/godot-sprite-import/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
name: godot-sprite-import
description: "Import an existing DreamLayer sprite ZIP into a Godot 4 demo and play the animation. Use when the user already has generated frames and wants a runnable game-engine example."
---

# godot sprite import

Read [the workflow contract](references/workflow-contract.md) for setup, billing, recovery and output checks.

This is local import and spends no credits. Use scripts/import_sprite.py with --engine godot --zip /absolute/walk.zip --out /absolute/new-demo. It reads PNG frames and atlas durations from the bundle, validates them and creates a Godot 4 project with AnimatedSprite2D. Run godot --headless --path /absolute/new-demo --editor --quit, then open the project and inspect playback. Preserve returned frame durations; do not assume constant FPS. Use the generated demo as a reference when importing into an existing project, keeping existing settings intact. If Godot is unavailable, mark engine validation pending; successful file generation alone does not prove engine playback.

46 changes: 46 additions & 0 deletions .cline/skills/godot-sprite-import/references/workflow-contract.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# DreamLayer workflow contract

Use the installed DreamLayer MCP tools, or the pinned CLI when MCP is unavailable.
Read the actual tool schema before calling. Never pass fields a client does not expose.

## Setup
Requires Node.js >=22.12 and a DreamLayer API key from https://platform.dreamlayer.io.
Install the supported sprite-capable beta: `npm install -g dreamlayer@0.4.0-beta.3`.
MCP: `npx -y @dreamlayer/mcp@0.4.0-beta.4`. Supply DREAMLAYER_API_KEY to the server process using the host's secret settings. Never commit keys or put them in prompts.
The stable npm tag remains 0.3.0. Do not claim it supports this complete workflow.

## Before paid work
1. Read dreamlayer_capabilities and dreamlayer_balance (or CLI capabilities/balance --json). If either fails, resolve it before spending.
2. Confirm the requested operation is advertised. Ordinary completed image operations currently cost one credit each; obtain the live cost from capabilities. A multi-step edit and cutout costs two operations.
3. Use the user's already-authorized operation, number of outputs and credit budget. Ask only if missing. Never buy credits or expand the batch implicitly.
4. For file operations, verify input readability and a new output path before submitting. Upload once using dreamlayer_upload_image; preserve its input_asset_id.
5. Save a unique idempotency_key and the complete request locally before each generation. Do not store credentials in the job record.

## Execute and recover
Select operation explicitly: text_to_image; image_to_image; background_remove; upscale; sprite_sheet.
All except text_to_image require input_asset_id. Generate returns execution_id, status, asset, question and last_event_id.
Preserve IDs/cursor after each response. For running work, call dreamlayer_execution or dreamlayer_events; do not generate a replacement after a timeout.
A needs_input result is a question, not a failed generation. Continue using conversation_id and respond.
For completed work, dreamlayer_download writes an absolute new local path. Never treat a returned asset URL as proof that the local file exists.
On a local download error, repair the destination and download the same execution.
File-based CLI retries upload a new asset; use status and download after uncertainty rather than rerunning the paid command.
Stop at insufficient credits, invalid request, unsupported operation, or an unresolved contract error. Keep recoverable state; do not loop paid retries.

## Output acceptance
Inspect the saved image or preview. Check dimensions, transparency if requested, text spelling, reference fidelity and the intended use. Label uninspected outputs.
PNG output does not establish SVG/vector structure, pixel-perfect art, trademark clearance, print compliance, exact product fidelity or consistent animation.
API documentation: https://docs.dreamlayer.io/agent-api
Recovery: https://docs.dreamlayer.io/agent-api/jobs-and-events

## CLI examples
```sh
dreamlayer capabilities --json
dreamlayer balance --json
dreamlayer generate "Original image brief" --aspect 1:1 --idempotency-key UNIQUE_SAVED_KEY --out concept.png --json
dreamlayer edit reference.png "Change the background to a simple studio scene" --idempotency-key UNIQUE_SAVED_KEY --out edited.png --json
dreamlayer cutout reference.png --idempotency-key UNIQUE_SAVED_KEY --out cutout.png --json
dreamlayer status EXECUTION_ID --json
dreamlayer download EXECUTION_ID --out recovered.png --json
```
Placeholder IDs and keys must be replaced. Check CLI --help for supported flags; --max-credits is for sprite jobs.

Loading
Loading