본문으로 건너뛰기
cccskills
무료GitHub에 공개

create-script-handler

Create a custom script handler for an unsupported scripting language

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

연동 도구Docker
설치 방법 보기

포함된 파일(1)

  • SKILL.md4.4 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Create Script Handler

Help the user register a custom script handler so Datagrok can run scripts in a language not natively supported.

Usage

/create-script-handler [language-name] [--package <package-name>]

Instructions

1. Define the handler function

Create a TypeScript function that accepts a DG.FuncCall and executes the script, setting output parameters on completion:

export async function myLanguageHandler(call: DG.FuncCall): Promise<void> {
  // Read input parameters from call.inputs
  // Execute the script (e.g., via WebAssembly or a Docker container)
  // Set output parameters on call.outputs
}

The implementation can use any execution strategy: WebAssembly, a Docker container, a remote API, etc.

2. Add mandatory annotations

Place these multi-line comments above the function declaration:

//tags: scriptHandler
//meta.scriptHandler.language: clojure
//meta.scriptHandler.extensions: clj,cljs,cljr
//meta.scriptHandler.commentStart: ;
//input: funccall scriptCall
export async function clojureScriptHandler(call: DG.FuncCall): Promise<void> {
  // implement handler
}

Mandatory annotations

AnnotationDescription
tags: scriptHandlerMarks the function as a script handler for registration
meta.scriptHandler.languageLanguage name (shown in UI when creating scripts)
meta.scriptHandler.extensionsComma-separated file extensions (e.g., py, js, clj,cljs,cljr)
input: funccall scriptCallThe handler must accept exactly one input of type funccall

Optional annotations

AnnotationDescription
meta.scriptHandler.templateScriptTemplate code added to newly created scripts in this language
meta.scriptHandler.codeEditorModeCodeMirror editor mode for syntax highlighting (available modes)
meta.iconPath to icon inside package files, used in UI for all scripts of this language
meta.scriptHandler.vectorizationFunctionFunction in form <namespace>:<function name> for vectorizing DG.Script. Accepts DG.Script, returns string with vectorized code.
meta.scriptHandler.commentStartComment character(s) for the language (e.g., ; for Clojure, # for Python)

3. Publish the package

Build and publish the package:

webpack
grok publish dev

After publishing, the language appears in the script creation UI. The platform recognizes scripts with a matching language annotation and routes them to this handler.

Complete example

import * as DG from 'datagrok-api/dg';

//tags: scriptHandler
//meta.scriptHandler.language: clojure
//meta.scriptHandler.extensions: clj,cljs,cljr
//meta.scriptHandler.commentStart: ;
//meta.scriptHandler.codeEditorMode: clojure
//meta.scriptHandler.templateScript: (println "Hello, World!")
//meta.icon: images/clojure-icon.png
//input: funccall scriptCall
export async function clojureScriptHandler(call: DG.FuncCall): Promise<void> {
  const script = call.inputs['scriptCall'];
  // Execute the Clojure code
  // Set outputs: call.setParamValue('result', value);
}

Behavior

  • Ask the user which programming language they want to support.
  • Ask for the file extensions associated with that language.
  • Determine the execution strategy (WebAssembly, Docker container, remote service, etc.).
  • Generate the handler function with all mandatory annotations.
  • Add optional annotations (template, icon, editor mode) if the user provides them.
  • If Docker execution is needed, suggest also using the /create-docker-container skill.
  • Ensure the function signature has exactly one funccall input parameter.
  • Follow project coding conventions: no excessive comments, no curly brackets for one-line if/for, catch/else if on new lines.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Add support for a new curve data format in the Curves package converter system

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

datagrok-ai/public742026년 10월 19일 업데이트

Create info panels that appear in the context panel based on semantic types

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

datagrok-ai/public742026년 10월 19일 업데이트

Add a new single-objective optimization algorithm to the sci-comp library. Use when the user asks to implement a new optimizer (e.g. gradient descent, BFGS, simulated annealing, differential evolution).

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

datagrok-ai/public742026년 10월 19일 업데이트

Add unit tests to a Datagrok package

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

datagrok-ai/public742026년 10월 19일 업데이트

Answer a "how do I …" question about the platform with a Gherkin scenario on @datagrok-libraries/bdd that is filmed into a how-to video (grok-bdd guide), so the answer is demonstrated, sent as a video plus numbered steps, and kept as a regression test; the same scenarios, filmed in help mode, are the GIFs of the help pages

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

datagrok-ai/public742026년 10월 19일 업데이트

Translate hand-written Playwright specs (or any existing UI tests) into Gherkin features on @datagrok-libraries/bdd, then prove the features test what they claim by backward-matching them against the originals with independent reviewers, and fix the gaps in the core, the library and the features

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

datagrok-ai/public742026년 10월 19일 업데이트

datagrok-ai의 스킬 모두 보기

이 스킬의 문제 신고