🍒 [v1.201] feat(uipath-functions): teach JS/TS Coded Functions in the one functions skill (references/js + references/python) - #2996
Open
github-actions[bot] wants to merge 3 commits into
Conversation
…ons skill (references/js + references/python) (#2951)
github-actions
Bot
requested review from
AlexBizon,
AlexandruCGhimisi,
AlvinStanescu,
RaduAna-Maria,
Raina451,
al3xanndru,
andreitava-uip,
charlesliu9,
dmetzgar,
gozhang2,
marius-bughiu,
ninja-shreyash,
roalexandru,
rockymadden,
smflorentino and
swati354
September 2, 2026 10:29
github-actions
Bot
requested review from
Sandeepan-Ghosh-0312,
andreibalas-uipath and
uipreliga
September 2, 2026 10:29
github-actions
Bot
requested review from
deepeshrai-tech,
lucarachiteanu and
vldcmp-uipath
September 2, 2026 10:29
github-actions
Bot
requested review from
Raina451 and
deepeshrai-tech
as code owners
September 2, 2026 10:29
github-actions
Bot
requested review from
a team,
AlexBizon,
AlexandruCGhimisi,
RaduAna-Maria,
Sandeepan-Ghosh-0312,
abhiram-vad,
al3xanndru,
andreibalas-uipath,
andreitava-uip,
charlesliu9,
dmetzgar,
gozhang2,
marius-bughiu,
ninja-shreyash,
rockymadden,
smflorentino,
song-zhao-25,
swati354 and
uipreliga
as code owners
September 2, 2026 10:29
lucarachiteanu
requested review from
akshaylive and
bai-uipath
as code owners
September 2, 2026 11:46
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Teach JS/TS Coded Functions in the one
uipath-functionsskill. Per review feedback, the skill keeps a single identity with language subfolders:skills/uipath-functions/SKILL.md— merged entry point: language split (project signals, contracts, calling modes), shared + per-language Critical Rules, per-language Quick Starts, merged CLI reference, anti-patternsskills/uipath-functions/references/js/— 8 guides: authoring (defineFunction, schema-first contracts, ctx, errors), local dev, HTTP semantics + deployed limits, job mode, deployment/cold start, bindings, calling UiPath APIs in-function, Coded App FE↔BE wiringskills/uipath-functions/references/python/— the Python workflow (scaffold → schema → logic → registration → deps → init → SDK → pack/publish, packOptions), moved out of SKILL.md verbatimWhy: the skill was Python-only and its JS claims went stale when run-as-job shipped (HDENS-7342). HDENS-7284. The invoice-processing vertical is waiting to adopt this in place of their custom skill. (The PR's first commits built this as a sibling
uipath-functions-jsskill; restructured to one skill per @gabrielavaduva's review — which also eliminates the sibling cross-activation problem entirely.)Calling-mode model (per platform owner): a JS/TS function declares exactly one calling mode —
method+path→ HTTP endpoint; omitted → plain run-as-job. Today's permissiveness (an HTTP function can be started as a plain job) is an enforcement gap, documented as such, never a pattern. Dual-surface logic = two thin entries sharing a_-helper.Also in this PR
uipath-functionsis unchanged):uipath-agentsRule 1 + quickstart now show both entrypoint shapes and noteinitis Python-only;uipath-coded-appsgets an explicit JS-function-backend redirect;uipath-plannercapability row covers both languages + apackage.json+uipath.json[functions]detection row;uipath-reviewdetection row for JS function projects;uipath-solutioninit-prerequisite corrected (JS has nouip function init— theuipath.jsonmap is the marker)uipath-functions.jsonl(rows 026–050, ids renumbered), 2 adversarial negatives (Azure Function TS, AWS Lambda). The original 25 Python rows are byte-for-byte untouched. @AlexBizon: the gate now measures recall over 50 rows against the 25-row-era baseline of 95 — call out if you'd rather baseline the JS rows separately.js_smoke(5 JS-signal rows, recall-rate graded) +js_http_authorauthoring e2e (fixture seeds an exactuip function newscaffold; offline by design — the SDK package is still private, HDENS-7283)function_redirecteval prompt pinned to Python (its graders are Python-only; the skill now legitimately covers JS too)Passing-run claims (local coder-eval 0.11.5, agent claude-code / claude-sonnet-5, 2026-09-01, against the merged skill)
tests/tasks/uipath-functions/js_smoke/js_smoke_trigger.yaml— PASSED 5/5 rows, recall.yes 1.0 (threshold 0.66): every JS-signal prompt triggered the mergeduipath-functions.tests/tasks/uipath-functions/js_http_author/js_http_author.yaml— PASSED 3/3 criteria, weighted 1.0: compliantdefineFunction(schema-first contracts,FunctionError422, hand-synceduipath.json, SDK kept in devDependencies), zero install attempts, checker exit 0. Windows-local caveat, disclosed:$SKILLS_REPO_PATH/$TASK_DIRdon't expand under cmd.exe, so the local run inlined those two paths; the committed YAML uses the canonical vars CI's Linux shell expands.Notes for reviewers
UiPath/coded-functions-jsandUiPath/clisources (file:line), including corrections to folklore (the 303 long-poll recovery is undocumented;ctx.userIS decoded from a Bearer JWT under local serve; job runs may set a legacyctx.usercompat object — testctx.user?.accessToken, never!ctx.user).references/python/workflow-guide.mdis the former SKILL.md Workflow section verbatim.studiowebinherits all edits;skills:validate+skills:buildpass for both trees (27 skills each).🤖 Generated with Claude Code
Automatically cherry-picked from #2951 to
release/v1.201by @lucarachiteanu.Conflicted files:
skills/uipath-functions/SKILL.mdskills/uipath-review/SKILL.md