Files
plane/apps/runners/node-runner/package.json
T
07e2316dcb [SILO-990] feat: runner - system functions, node runner tests, and editor enhancements (#5989)
* Add vitest test suite for runInIsolate in node-runner

Adds 9 tests covering AutomationEventInput data flow, PlaneClient
injection, Functions library, execution timeout, domain-restricted
fetch, ENV exposure, and missing-main error handling.

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* Add TypeScript parsing support and replace console with structured logger

- Use acorn-typescript plugin for AST-based code validation and function
  detection so user scripts can include TypeScript syntax
- Build user code as index.ts instead of index.js via esbuild
- Replace all console.log/error/warn calls with @plane/logger
- Add logger middleware to Express server
- Add dd-trace initialization via tracer module

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: split tsconfig into build and base configs for test compatibility

Move rootDir/outDir into tsconfig.build.json so the base tsconfig.json
can include tests/**/* for ESLint and IDE support without breaking tsc.

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* remove environment variables from scripts

* update tsconfig for tests

* fix bug in scripts UI to render code properly

* add 6 system functions and inject Plane/workspaceSlug into function factory

Expand buildFunctionsLibrary to pass Plane client and workspaceSlug into
the function factory so system functions can call the Plane SDK. Populate
the system_functions fixture with httpRequest, postToSlack, getChildren,
getSiblings, addComment, and addLabel.

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: add created_at/updated_at to system functions fixture

Django's auto_now_add/auto_now fields are not auto-populated when
loading fixtures via loaddata, causing a NOT NULL constraint violation.

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* add parent_id filter and use advancedSearch in system functions

Add parent_id filter to ExtendedIssueFilterSet so work items can be
queried by parent. Update getChildren and getSiblings system functions
to use Plane.workItems.advancedSearch with parent_id filter instead of
the list endpoint which does not support parent filtering.

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* Revert "feat: add pagination support to WorkItemAdvancedSearchEndpoint"

This reverts commit 9820a1d16e571c14539c7a7139aa269df9baece4.

* add system script: mark parent as done if all children are done

Populates system_scripts fixture with a script that triggers when a
work item enters a completed state group, checks all siblings, and
updates the parent to completed if every child is done.

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* Add script - Create linked work item in another project on state change

* fix: form data + title width

* fix: implemented full screen editor + handled is_system

* fix: handled is_system

* disable error highlighting in code editor

* feat: add redirect url support for runner

- add is_internal to all the internal plane apps

* invalidate app credentials in cache when app got updated

* fix: pass workspace context for system script execution in automations

System scripts have workspace=None, so accessing script.workspace.id
would fail. Now the automation passes its own workspace_id/workspace_slug
and script_executor falls back to caller-provided values.

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* refactor: extract shared TypeScript parser into ts-parser module

Move duplicated acorn + tsPlugin initialization from code-validator.ts
and server.ts into a single shared ts-parser.ts module.

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: type errors for acorn node

---------

Co-authored-by: Claude Opus 4.6 <[email protected]>
Co-authored-by: gakshita <[email protected]>
2026-02-21 17:39:52 +05:30

33 lines
883 B
JSON

{
"name": "plane-runner-host",
"version": "2.3.0",
"description": "Plane Runner Host for executing isolated JS/TS scripts",
"main": "dist/index.mjs",
"scripts": {
"build": "tsc -p tsconfig.build.json",
"start": "node dist/index.mjs",
"dev": "PORT=3300 tsdown --watch --onSuccess \"node --env-file=.env .\"",
"test": "vitest run",
"test:watch": "vitest"
},
"dependencies": {
"@makeplane/plane-node-sdk": "0.2.8",
"@plane/logger": "workspace:*",
"@sveltejs/acorn-typescript": "^1.0.5",
"acorn": "^8.15.0",
"acorn-walk": "^8.3.4",
"axios": "catalog:",
"dd-trace": "^5.45.0",
"dotenv": "^16.3.1",
"express": "4.22.0",
"zod": "^3.22.4"
},
"devDependencies": {
"@types/express": "catalog:",
"@types/node": "catalog:",
"tsdown": "catalog:",
"typescript": "catalog:",
"vitest": "^4.0.8"
}
}