tarsk 0.6.87 → 0.6.89
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +63 -24
- package/dist/bundled-skills/email-me/SKILL.md +15 -0
- package/dist/bundled-skills/email-me/scripts/__tests__/email_me.test.js +64 -0
- package/dist/bundled-skills/email-me/scripts/email_me.js +45 -0
- package/dist/bundled-skills/handoff/SKILL.md +19 -0
- package/dist/bundled-skills/tarsk-agent/SKILL.md +372 -0
- package/dist/bundled-skills/tarsk-ask-user/SKILL.md +18 -0
- package/dist/bundled-skills/tarsk-ask-user/scripts/ask_user.js +101 -0
- package/dist/bundled-skills/tarsk-bash/SKILL.md +17 -0
- package/dist/bundled-skills/tarsk-bash/scripts/bash.js +248 -0
- package/dist/bundled-skills/tarsk-browser/SKILL.md +17 -0
- package/dist/bundled-skills/tarsk-browser/scripts/browser.js +252 -0
- package/dist/bundled-skills/tarsk-chat-title/SKILL.md +14 -0
- package/dist/bundled-skills/tarsk-chat-title/scripts/chat_title.js +37 -0
- package/dist/bundled-skills/tarsk-connect-mcp/SKILL.md +23 -0
- package/dist/bundled-skills/tarsk-connect-mcp/scripts/__tests__/connect_mcp.test.js +68 -0
- package/dist/bundled-skills/tarsk-connect-mcp/scripts/connect_mcp.js +119 -0
- package/dist/bundled-skills/tarsk-create-project/SKILL.md +25 -0
- package/dist/bundled-skills/tarsk-create-project/scripts/__tests__/create_project.test.js +94 -0
- package/dist/bundled-skills/tarsk-create-project/scripts/create_project.js +88 -0
- package/dist/bundled-skills/tarsk-edit/SKILL.md +18 -0
- package/dist/bundled-skills/tarsk-edit/scripts/edit.js +118 -0
- package/dist/bundled-skills/tarsk-execute-skill-script/SKILL.md +19 -0
- package/dist/bundled-skills/tarsk-execute-skill-script/scripts/execute_skill_script.js +77 -0
- package/dist/bundled-skills/tarsk-fetch/SKILL.md +18 -0
- package/dist/bundled-skills/tarsk-fetch/scripts/fetch.js +38 -0
- package/dist/bundled-skills/tarsk-find/SKILL.md +16 -0
- package/dist/bundled-skills/tarsk-find/scripts/find.js +78 -0
- package/dist/bundled-skills/tarsk-find-images/SKILL.md +18 -0
- package/dist/bundled-skills/tarsk-find-images/scripts/find_images.js +78 -0
- package/dist/bundled-skills/tarsk-generate-image/SKILL.md +18 -0
- package/dist/bundled-skills/tarsk-generate-image/scripts/generate_image.js +55 -0
- package/dist/bundled-skills/tarsk-get-observation/SKILL.md +19 -0
- package/dist/bundled-skills/tarsk-get-observation/scripts/get_observation.js +293 -0
- package/dist/bundled-skills/tarsk-grep/SKILL.md +16 -0
- package/dist/bundled-skills/tarsk-grep/scripts/grep.js +174 -0
- package/dist/bundled-skills/tarsk-history/SKILL.md +15 -0
- package/dist/bundled-skills/tarsk-history/scripts/history.js +68 -0
- package/dist/bundled-skills/tarsk-improve/SKILL.md +232 -0
- package/dist/bundled-skills/tarsk-improve/references/signals.md +16 -0
- package/dist/bundled-skills/tarsk-improve/scripts/durable-runs.ts +635 -0
- package/dist/bundled-skills/tarsk-improve/scripts/ensure-exported.ts +238 -0
- package/dist/bundled-skills/tarsk-improve/scripts/export-tool-skills-lib.ts +299 -0
- package/dist/bundled-skills/tarsk-improve/scripts/summarize-session.ts +126 -0
- package/dist/bundled-skills/tarsk-jobs/SKILL.md +18 -0
- package/dist/bundled-skills/tarsk-jobs/scripts/job_kill.js +45 -0
- package/dist/bundled-skills/tarsk-jobs/scripts/job_list.js +64 -0
- package/dist/bundled-skills/tarsk-jobs/scripts/job_output.js +66 -0
- package/dist/bundled-skills/tarsk-notes/SKILL.md +17 -0
- package/dist/bundled-skills/tarsk-notes/scripts/notes.js +86 -0
- package/dist/bundled-skills/tarsk-projects/SKILL.md +18 -0
- package/dist/bundled-skills/tarsk-projects/scripts/projects.js +54 -0
- package/dist/bundled-skills/tarsk-prompt-project/SKILL.md +18 -0
- package/dist/bundled-skills/tarsk-prompt-project/scripts/prompt_project.js +58 -0
- package/dist/bundled-skills/tarsk-propose-branch/SKILL.md +16 -0
- package/dist/bundled-skills/tarsk-propose-branch/scripts/propose_branch.js +45 -0
- package/dist/bundled-skills/tarsk-read/SKILL.md +17 -0
- package/dist/bundled-skills/tarsk-read/scripts/read.js +331 -0
- package/dist/bundled-skills/tarsk-read-skill/SKILL.md +16 -0
- package/dist/bundled-skills/tarsk-read-skill/scripts/read_skill.js +37 -0
- package/dist/bundled-skills/tarsk-read-skill-reference/SKILL.md +19 -0
- package/dist/bundled-skills/tarsk-read-skill-reference/scripts/read_skill_reference.js +60 -0
- package/dist/bundled-skills/tarsk-run-js/SKILL.md +18 -0
- package/dist/bundled-skills/tarsk-run-js/scripts/run_js.js +192 -0
- package/dist/bundled-skills/tarsk-tasks/SKILL.md +18 -0
- package/dist/bundled-skills/tarsk-tasks/scripts/tasks.js +96 -0
- package/dist/bundled-skills/tarsk-todo/SKILL.md +16 -0
- package/dist/bundled-skills/tarsk-todo/scripts/todo.js +165 -0
- package/dist/bundled-skills/tarsk-web-search/SKILL.md +15 -0
- package/dist/bundled-skills/tarsk-web-search/scripts/web_search.js +120 -0
- package/dist/bundled-skills/tarsk-write/SKILL.md +16 -0
- package/dist/bundled-skills/tarsk-write/scripts/write.js +57 -0
- package/dist/index.js +217754 -211927
- package/dist/public/assets/{alert-dialog-DVaEQlVa.js → alert-dialog-BcZULJsX.js} +1 -1
- package/dist/public/assets/api-8Rp2LlXt.js +1 -0
- package/dist/public/assets/api-Cp9I7CxD.js +2 -0
- package/dist/public/assets/{async-error-boundary-DH6Sqgmt.js → async-error-boundary-CFVUPiuG.js} +1 -1
- package/dist/public/assets/browser-tab-CPPorbL6.js +12 -0
- package/dist/public/assets/button-DDaJhJP1.js +1 -0
- package/dist/public/assets/{card-BkOGFps5.js → card-DAc45J1v.js} +1 -1
- package/dist/public/assets/chat-dock-context-DbiJNr3O.js +1 -0
- package/dist/public/assets/chat-handlers-context-DYU2LQ5V.js +9 -0
- package/dist/public/assets/commit-dialog-DPaci3dp.js +1 -0
- package/dist/public/assets/{commit-error-dialog-D3S6kRVr.js → commit-error-dialog-Dnlkgb_H.js} +1 -1
- package/dist/public/assets/{commit-method-fields-BEKfSRyW.js → commit-method-fields-Xt3vbwUg.js} +1 -1
- package/dist/public/assets/conversation-history-view-CqIugfyO.js +1 -0
- package/dist/public/assets/{create-project-dialog-nquqlloK.js → create-project-dialog-DStWPoDE.js} +2 -2
- package/dist/public/assets/{create-project-workspace-C4tXAUWJ.js → create-project-workspace-CJ94yHAB.js} +2 -2
- package/dist/public/assets/create-repo-dialog-B_QiEz-v.js +1 -0
- package/dist/public/assets/{delete-confirm-dialog-SpYpU1AX.js → delete-confirm-dialog-D1N86piR.js} +1 -1
- package/dist/public/assets/dialog-D_12AsZd.js +1 -0
- package/dist/public/assets/diff-view-4koPcOcE.js +4 -0
- package/dist/public/assets/{dist-NcyjV9Gu.js → dist-2xH_pFmV.js} +1 -1
- package/dist/public/assets/{dist-BTu7PDzc.js → dist-AbkJBHH5.js} +1 -1
- package/dist/public/assets/{dist-lFBinzor.js → dist-B-h6Wj39.js} +1 -1
- package/dist/public/assets/dist-CgbWuuq4.js +1 -0
- package/dist/public/assets/{dist-f54JuzFV.js → dist-DOz2WXwX.js} +1 -1
- package/dist/public/assets/{dist-CqrmQxmV.js → dist-DfnQ9YJh.js} +1 -1
- package/dist/public/assets/{dist-BOfRC57H.js → dist-JGbQ_EJY.js} +1 -1
- package/dist/public/assets/{dist-ButPmyjr.js → dist-pCVg1Jdl.js} +1 -1
- package/dist/public/assets/dist-v_MvKS2-.js +2 -0
- package/dist/public/assets/{es2015-CE7VcoOH.js → es2015-eNVkKfFF.js} +1 -1
- package/dist/public/assets/{explorer-file-drop-CEbBlDEp.js → explorer-file-drop-DAP7ha-E.js} +1 -1
- package/dist/public/assets/{explorer-monaco-editor-Bgo9Y1cP.js → explorer-monaco-editor-ChJZBFy5.js} +1 -1
- package/dist/public/assets/explorer-tab-view-Bt9hRZUm.js +2 -0
- package/dist/public/assets/explorer-tree-CAs89lPz.js +1 -0
- package/dist/public/assets/{explorer-view-BuTa_0Uq.js → explorer-view-B1JuejkU.js} +3 -3
- package/dist/public/assets/git-history-dialog-Dqj1p35g.js +1 -0
- package/dist/public/assets/index-CcAwxnT5.js +97 -0
- package/dist/public/assets/index-dNrgKdYv.css +1 -0
- package/dist/public/assets/{label-C31qF5zZ.js → label-BCs5CZEs.js} +1 -1
- package/dist/public/assets/markdown-renderer-DQONI6WG.js +10 -0
- package/dist/public/assets/{mcp-manager-C3K_62H2.js → mcp-manager-D2FG-h2e.js} +1 -1
- package/dist/public/assets/{minus-l6BdrAEk.js → minus-CgQcbBQT.js} +1 -1
- package/dist/public/assets/{model-list-controls-DwW8S18v.js → model-list-controls-B6ofHWh3.js} +1 -1
- package/dist/public/assets/onboarding-dialog-DAut3X4K.js +1 -0
- package/dist/public/assets/{pill-tabs-CmvvHdKG.js → pill-tabs-BAhOHad7.js} +1 -1
- package/dist/public/assets/progress-indicator-hJ74ac5W.js +1 -0
- package/dist/public/assets/project-coding-view-B2FpHeiO.js +1 -0
- package/dist/public/assets/{project-danger-zone-view-D18k4pUF.js → project-danger-zone-view-BqP1dcRT.js} +1 -1
- package/dist/public/assets/{project-env-vars-view-BWFqoaFD.js → project-env-vars-view-zhigkQFG.js} +1 -1
- package/dist/public/assets/project-model-aliases-view-APAVFfym.js +1 -0
- package/dist/public/assets/project-settings-view-FnK-LRsv.js +1 -0
- package/dist/public/assets/project-tools-view-Dmp5ViRC.js +1 -0
- package/dist/public/assets/providers-list-view-Clbp73Hh.js +1 -0
- package/dist/public/assets/pull-request-dialog-D40BQPMk.js +1 -0
- package/dist/public/assets/pull-with-changes-dialog-pkXK-VP2.js +1 -0
- package/dist/public/assets/push-before-pr-dialog-DH91JHEC.js +1 -0
- package/dist/public/assets/query-keys-CcnonAAG.js +1 -0
- package/dist/public/assets/remote-media-url-C-GdJb-D.js +1 -0
- package/dist/public/assets/{scroll-area-BWc4OPsj.js → scroll-area-DGF9wUqQ.js} +1 -1
- package/dist/public/assets/{select-B6RizwDW.js → select-DMcNYwgt.js} +1 -1
- package/dist/public/assets/settings-general-tabs-view-DBZQbihJ.js +2 -0
- package/dist/public/assets/settings-general-view-0dhBET2R.js +1 -0
- package/dist/public/assets/{settings-list-D35rpAof.js → settings-list-Co3JPr9w.js} +1 -1
- package/dist/public/assets/settings-logs-view-DvHXUDko.js +5 -0
- package/dist/public/assets/settings-mcp-servers-view-414Dt5py.js +5 -0
- package/dist/public/assets/settings-models-view-ByeR7Enb.js +1 -0
- package/dist/public/assets/settings-plugins-view-8te2MPyh.js +2 -0
- package/dist/public/assets/settings-providers-view-BAuv9gam.js +2 -0
- package/dist/public/assets/settings-remote-machines-view-CHyywazU.js +1 -0
- package/dist/public/assets/settings-setup-view-Btp46Vh_.js +2 -0
- package/dist/public/assets/settings-skills-view-BNVx4bZl.js +2 -0
- package/dist/public/assets/{settings-slack-view-DkclyaBc.js → settings-slack-view-Caly5yGt.js} +1 -1
- package/dist/public/assets/settings-slash-commands-view-m6mp1knu.js +1 -0
- package/dist/public/assets/{settings-statistics-view-B03ZZjEy.js → settings-statistics-view-BnOxr4sZ.js} +1 -1
- package/dist/public/assets/settings-storage-view-Dg8xfpTG.js +1 -0
- package/dist/public/assets/settings-subagents-view-CucwEk2A.js +2 -0
- package/dist/public/assets/settings-system-prompt-view-CEDU2saT.js +1 -0
- package/dist/public/assets/{settings-tab-bar-ajzyt79U.js → settings-tab-bar-CdIbQ0WI.js} +1 -1
- package/dist/public/assets/settings-view-XcJhRclT.js +2 -0
- package/dist/public/assets/{slug-utils-D2jhPz-o.js → slug-utils-CO6nui1C.js} +1 -1
- package/dist/public/assets/square-CtxvwmM2.js +1 -0
- package/dist/public/assets/store-W78TGOIO.js +8 -0
- package/dist/public/assets/{table-C3Hc0Gwy.js → table-CQMqIW_-.js} +1 -1
- package/dist/public/assets/task-utils-Cnq9Eszt.js +1 -0
- package/dist/public/assets/tasks-view-B8_jkq_a.js +1 -0
- package/dist/public/assets/{terminal-panel-DCKqScJu.js → terminal-panel-xoLVfA-h.js} +2 -2
- package/dist/public/assets/{toggle-group-DqSxGqvP.js → toggle-group-CPmseZfb.js} +1 -1
- package/dist/public/assets/{tooltip-CJKJfu0l.js → tooltip-CqwCZ7wt.js} +1 -1
- package/dist/public/assets/{use-account-settings-query-AUeOqKvo.js → use-account-settings-query-D_qL1I4w.js} +1 -1
- package/dist/public/assets/{use-active-dock-panel-instance-BvAhUd_V.js → use-active-dock-panel-instance-kmJOnmL7.js} +1 -1
- package/dist/public/assets/use-browser-overlay-block-CO1pUEAZ.js +1 -0
- package/dist/public/assets/{use-git-check-B_5Jak2s.js → use-git-check-BD9gdXpK.js} +1 -1
- package/dist/public/assets/{use-installed-ai-files-iy_AB0dN.js → use-installed-ai-files-Nn-sN_V2.js} +1 -1
- package/dist/public/assets/use-open-chat-dock-panel-CXzpgxVs.js +1 -0
- package/dist/public/assets/{use-projects-BmhAMgxB.js → use-projects-B0xTjTaA.js} +2 -2
- package/dist/public/assets/utils-CqsIXqSC.js +1 -0
- package/dist/public/assets/web-BNWoiS4w.js +1 -0
- package/dist/public/assets/web-C1tBQoCB.js +1 -0
- package/dist/public/assets/web-Dlo3GwCf.js +1 -0
- package/dist/public/assets/web-cJXG33sT.js +1 -0
- package/dist/public/fonts/schibsted-grotesk-latin-ext-wght-normal.woff2 +0 -0
- package/dist/public/fonts/schibsted-grotesk-latin-wght-normal.woff2 +0 -0
- package/dist/public/index.html +46 -46
- package/package.json +9 -9
- package/dist/public/assets/account-view-5q3pHEHY.js +0 -1
- package/dist/public/assets/ai-spinner-DHwhlk4j.js +0 -1
- package/dist/public/assets/api-BdebJfuN.js +0 -1
- package/dist/public/assets/api-COO2LfdU.js +0 -2
- package/dist/public/assets/browser-overlay-block-CiDtkfup.js +0 -1
- package/dist/public/assets/browser-tab-CVdYLmW5.js +0 -12
- package/dist/public/assets/button-Dp5XDZNR.js +0 -1
- package/dist/public/assets/chat-dock-context-ymLoO90X.js +0 -1
- package/dist/public/assets/checkbox-D-BV8-Z_.js +0 -1
- package/dist/public/assets/commit-dialog-CEbCFh1x.js +0 -1
- package/dist/public/assets/conversation-history-view-CVMD8hUU.js +0 -1
- package/dist/public/assets/create-repo-dialog-B5IE3pUJ.js +0 -1
- package/dist/public/assets/dialog-pHPeIGaB.js +0 -1
- package/dist/public/assets/diff-view-Cy6nPdX-.js +0 -4
- package/dist/public/assets/dist-D5vgS4RP.js +0 -2
- package/dist/public/assets/explorer-tab-view-C-8QZO9S.js +0 -2
- package/dist/public/assets/explorer-tree-HrLSFgcI.js +0 -1
- package/dist/public/assets/git-history-dialog-ClfF5IOn.js +0 -1
- package/dist/public/assets/index-BBLA5zVt.css +0 -1
- package/dist/public/assets/index-CalVAwXj.js +0 -104
- package/dist/public/assets/markdown-renderer-DXRBG7uP.js +0 -10
- package/dist/public/assets/onboarding-dialog-BtLy0wjC.js +0 -1
- package/dist/public/assets/progress-indicator-4zQXqOqP.js +0 -1
- package/dist/public/assets/project-coding-view-CyJwnJes.js +0 -1
- package/dist/public/assets/project-model-aliases-view-D3tYNkkM.js +0 -1
- package/dist/public/assets/project-settings-view-0oN9vFvD.js +0 -1
- package/dist/public/assets/project-tools-view-DT87KPjE.js +0 -1
- package/dist/public/assets/providers-list-view-DCnh0W-5.js +0 -1
- package/dist/public/assets/pull-request-dialog-BdJxYQwu.js +0 -1
- package/dist/public/assets/pull-with-changes-dialog-Do9x9neW.js +0 -1
- package/dist/public/assets/push-before-pr-dialog-C-9z2O0-.js +0 -1
- package/dist/public/assets/query-keys-BwswkbMn.js +0 -1
- package/dist/public/assets/remote-media-url-B8OFqxOM.js +0 -1
- package/dist/public/assets/settings-general-tabs-view-Dcek-ysB.js +0 -2
- package/dist/public/assets/settings-general-view-DhA2N6G5.js +0 -1
- package/dist/public/assets/settings-logs-view-eEUTIMeb.js +0 -5
- package/dist/public/assets/settings-mcp-servers-view-_oeuVkUe.js +0 -5
- package/dist/public/assets/settings-models-view-DW-ZmVup.js +0 -1
- package/dist/public/assets/settings-plugins-view-DTooco_c.js +0 -2
- package/dist/public/assets/settings-providers-view-CEeJkhg9.js +0 -2
- package/dist/public/assets/settings-remote-machines-view--UB8GlCK.js +0 -1
- package/dist/public/assets/settings-setup-view-DFL6DlYS.js +0 -2
- package/dist/public/assets/settings-skills-view-xS569-Kb.js +0 -2
- package/dist/public/assets/settings-slash-commands-view-DrCiayfq.js +0 -1
- package/dist/public/assets/settings-storage-view-CQnaVOt_.js +0 -1
- package/dist/public/assets/settings-subagents-view-DIctUJcE.js +0 -2
- package/dist/public/assets/settings-system-prompt-view-BMDbrFRR.js +0 -1
- package/dist/public/assets/settings-view-8M6sbGiX.js +0 -2
- package/dist/public/assets/store-CxUwqrZ5.js +0 -8
- package/dist/public/assets/task-utils-WAei2PDi.js +0 -1
- package/dist/public/assets/tasks-view-DKyqgGdE.js +0 -1
- package/dist/public/assets/use-browser-overlay-block-z9imTmiZ.js +0 -1
- package/dist/public/assets/use-open-chat-dock-panel-w3hc5Vxn.js +0 -1
- package/dist/public/assets/utils-mYB1USG6.js +0 -1
- package/dist/public/assets/web-C6Gm4nQ0.js +0 -1
- package/dist/public/assets/web-DFlyNg8o.js +0 -1
- package/dist/public/assets/web-DlEPs8Xe.js +0 -1
- package/dist/public/assets/web-Gx3xReQH.js +0 -1
- package/dist/public/backgrounds/arctic-tundra.avif +0 -0
- package/dist/public/backgrounds/autumn-leaves.avif +0 -0
- package/dist/public/backgrounds/coastal-cliff.avif +0 -0
- package/dist/public/backgrounds/floating-waterfall.avif +0 -0
- package/dist/public/backgrounds/forest-path.avif +0 -0
- package/dist/public/backgrounds/garden-path.avif +0 -0
- package/dist/public/backgrounds/glow-marsh.avif +0 -0
- package/dist/public/backgrounds/golden-wheat.avif +0 -0
- package/dist/public/backgrounds/moon-desert.avif +0 -0
- package/dist/public/backgrounds/night-pond.avif +0 -0
- package/dist/public/backgrounds/prairie-grassland.avif +0 -0
- package/dist/public/backgrounds/river-winding.avif +0 -0
- package/dist/public/backgrounds/salt-flat.avif +0 -0
- package/dist/public/backgrounds/salt-marsh.avif +0 -0
- package/dist/public/backgrounds/sandy-beach.avif +0 -0
- package/dist/public/backgrounds/snow-river.avif +0 -0
- package/dist/public/backgrounds/sunset-pond.avif +0 -0
- package/dist/public/fonts/plus-jakarta-sans-cyrillic-ext-wght-normal.woff2 +0 -0
- package/dist/public/fonts/plus-jakarta-sans-latin-ext-wght-normal.woff2 +0 -0
- package/dist/public/fonts/plus-jakarta-sans-latin-wght-normal.woff2 +0 -0
- package/dist/public/fonts/plus-jakarta-sans-vietnamese-wght-normal.woff2 +0 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* execute_skill_script — STDOUT/STDERR / miss copy in the Skill; host holds
|
|
3
|
+
* permission gate, sandbox, and spawn.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
export const description =
|
|
7
|
+
"Execute a script from an activated skill. Skills provide executable scripts in their scripts/ directory.";
|
|
8
|
+
|
|
9
|
+
export const parameters = {
|
|
10
|
+
type: "object",
|
|
11
|
+
required: ["skillName", "scriptName"],
|
|
12
|
+
properties: {
|
|
13
|
+
skillName: {
|
|
14
|
+
description: "Name of the skill",
|
|
15
|
+
type: "string",
|
|
16
|
+
},
|
|
17
|
+
scriptName: {
|
|
18
|
+
description: "Name of the script to execute (without path)",
|
|
19
|
+
type: "string",
|
|
20
|
+
},
|
|
21
|
+
args: {
|
|
22
|
+
description: "Arguments to pass to the script",
|
|
23
|
+
type: "array",
|
|
24
|
+
items: {
|
|
25
|
+
type: "string",
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
timeout: {
|
|
29
|
+
description: "Timeout in seconds (default: 30)",
|
|
30
|
+
type: "number",
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
function formatOk(result) {
|
|
36
|
+
const parts = [];
|
|
37
|
+
if (result.stdout) {
|
|
38
|
+
parts.push(`STDOUT:\n${result.stdout}`);
|
|
39
|
+
}
|
|
40
|
+
if (result.stderr) {
|
|
41
|
+
parts.push(`STDERR:\n${result.stderr}`);
|
|
42
|
+
}
|
|
43
|
+
parts.push(`Exit code: ${result.exitCode}`);
|
|
44
|
+
return `${parts.join("\n")}\n`;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function formatError(result) {
|
|
48
|
+
switch (result.reason) {
|
|
49
|
+
case "skill_not_found":
|
|
50
|
+
return `Skill not found: ${result.skillName}. Available skills: ${result.available.join(", ")}`;
|
|
51
|
+
case "no_scripts":
|
|
52
|
+
return `Skill '${result.skillName}' has no scripts directory`;
|
|
53
|
+
case "invalid_path":
|
|
54
|
+
return `Invalid script path: ${result.scriptName}`;
|
|
55
|
+
case "script_not_found":
|
|
56
|
+
return result.available.length > 0
|
|
57
|
+
? `Script '${result.scriptName}' not found in skill '${result.skillName}'. Available scripts: ${result.available.join(", ")}`
|
|
58
|
+
: `Script '${result.scriptName}' not found in skill '${result.skillName}'`;
|
|
59
|
+
case "cancelled":
|
|
60
|
+
return "Failed to execute script: Script execution cancelled";
|
|
61
|
+
case "timeout":
|
|
62
|
+
return `Failed to execute script: Script execution timed out after ${result.timeoutSeconds}s`;
|
|
63
|
+
case "execute_error":
|
|
64
|
+
return `Failed to execute script: ${result.message}`;
|
|
65
|
+
default:
|
|
66
|
+
return "Failed to execute script";
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/** @param {Record<string, unknown>} args @param {import("../../../../src/tools/agent-runtime/types.js").AgentRuntime} context @param {{ signal?: AbortSignal, toolCallId?: string }} [options] */
|
|
71
|
+
export async function execute(args, context, options) {
|
|
72
|
+
const result = await context.skillsCatalog.executeScript(args, options);
|
|
73
|
+
return {
|
|
74
|
+
content: [{ type: "text", text: result.ok ? formatOk(result) : formatError(result) }],
|
|
75
|
+
details: undefined,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tarsk-fetch
|
|
3
|
+
description: >-
|
|
4
|
+
Tarsk Tool skill publishing: fetch.
|
|
5
|
+
version: 2.0.0
|
|
6
|
+
tools:
|
|
7
|
+
- fetch
|
|
8
|
+
deferred-tools:
|
|
9
|
+
- fetch
|
|
10
|
+
disable-model-invocation: true
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# tarsk-fetch
|
|
14
|
+
|
|
15
|
+
Publishes: fetch.
|
|
16
|
+
|
|
17
|
+
Result JSON in `scripts/fetch.js`. Host `context.web.fetch` (allowlist + extract).
|
|
18
|
+
Progress notices still emit from the host during the request.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* fetch — progress/result JSON copy in the Skill; host holds allowlist + extract.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
export const description =
|
|
6
|
+
"Fetch public HTTP(S) URL; extract/summarize via prompt. Read-only—not for auth/private pages (use MCP/browser). Unknown domains need permission; docs sites pre-approved.";
|
|
7
|
+
|
|
8
|
+
export const parameters = {
|
|
9
|
+
type: "object",
|
|
10
|
+
required: ["url", "prompt"],
|
|
11
|
+
properties: {
|
|
12
|
+
url: {
|
|
13
|
+
description: "HTTP(S) URL to fetch",
|
|
14
|
+
type: "string",
|
|
15
|
+
},
|
|
16
|
+
prompt: {
|
|
17
|
+
description: "What to extract or summarize",
|
|
18
|
+
type: "string",
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
/** @param {Record<string, unknown>} args @param {import("../../../../src/tools/agent-runtime/types.js").AgentRuntime} context @param {{ signal?: AbortSignal, onUpdate?: Function, toolCallId?: string }} [options] */
|
|
24
|
+
export async function execute(args, context, options) {
|
|
25
|
+
const result = await context.web.fetch(args, options);
|
|
26
|
+
if (result.status === "aborted") {
|
|
27
|
+
return { content: [], details: undefined };
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
content: [
|
|
31
|
+
{
|
|
32
|
+
type: "text",
|
|
33
|
+
text: JSON.stringify({ ...result.details, result: result.result }),
|
|
34
|
+
},
|
|
35
|
+
],
|
|
36
|
+
details: result.details,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tarsk-find
|
|
3
|
+
description: >-
|
|
4
|
+
Tarsk Tool skill publishing: find.
|
|
5
|
+
version: 2.0.0
|
|
6
|
+
tools:
|
|
7
|
+
- find
|
|
8
|
+
disable-model-invocation: true
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# tarsk-find
|
|
12
|
+
|
|
13
|
+
Publishes: find.
|
|
14
|
+
|
|
15
|
+
Formatting lives in `scripts/find.js`. Secure glob (cwd check, home denial,
|
|
16
|
+
ignore list) is `context.fs.glob`; listing compression is `context.util`.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* find — formatting in the Skill; secure glob via context.fs (host).
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
export const description =
|
|
6
|
+
"Find files by path glob (not file contents; use grep for text). Paths are relative to the search dir. Read the file directly when its path is known. `dir/{a,b}.tsx` is shallow — use `**/` for nested. Grouped as `dir/: file1, file2`. Truncated to 1000 results / 50KB.";
|
|
7
|
+
|
|
8
|
+
export const parameters = {
|
|
9
|
+
type: "object",
|
|
10
|
+
required: ["pattern"],
|
|
11
|
+
properties: {
|
|
12
|
+
pattern: {
|
|
13
|
+
description: "Glob pattern, e.g. '*.ts' or '**/*.json'",
|
|
14
|
+
type: "string",
|
|
15
|
+
},
|
|
16
|
+
path: {
|
|
17
|
+
description: "Directory to search (default: current directory)",
|
|
18
|
+
type: "string",
|
|
19
|
+
},
|
|
20
|
+
limit: {
|
|
21
|
+
description: "Maximum results (default: 1000)",
|
|
22
|
+
type: "number",
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
/** @param {Record<string, unknown>} args @param {import("../../../../src/tools/agent-runtime/types.js").AgentRuntime} context @param {{ signal?: AbortSignal }} [options] */
|
|
28
|
+
export async function execute(args, context, options) {
|
|
29
|
+
const pattern = String(args.pattern ?? "");
|
|
30
|
+
const searchDir = typeof args.path === "string" ? args.path : undefined;
|
|
31
|
+
const limit = typeof args.limit === "number" ? args.limit : undefined;
|
|
32
|
+
|
|
33
|
+
const result = await context.util.withAbort(options?.signal, async function runFind() {
|
|
34
|
+
return context.fs.glob(pattern, {
|
|
35
|
+
path: searchDir,
|
|
36
|
+
limit,
|
|
37
|
+
signal: options?.signal,
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
if (result.paths.length === 0) {
|
|
42
|
+
return {
|
|
43
|
+
content: [{ type: "text", text: "No files found matching pattern" }],
|
|
44
|
+
details: undefined,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
const compressed = context.util.compressFindPaths(result.paths);
|
|
49
|
+
const truncation = context.util.truncateHead(compressed.text, {
|
|
50
|
+
maxLines: Number.MAX_SAFE_INTEGER,
|
|
51
|
+
});
|
|
52
|
+
let resultOutput = truncation.content;
|
|
53
|
+
const details = {};
|
|
54
|
+
const notices = [];
|
|
55
|
+
|
|
56
|
+
if (compressed.applied) {
|
|
57
|
+
resultOutput = `${compressed.banner}\n${resultOutput}`;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if (result.resultLimitReached) {
|
|
61
|
+
notices.push(
|
|
62
|
+
`${result.limit} results limit reached. Use limit=${result.limit * 2} for more, or refine pattern`,
|
|
63
|
+
);
|
|
64
|
+
details.resultLimitReached = result.limit;
|
|
65
|
+
}
|
|
66
|
+
if (truncation.truncated) {
|
|
67
|
+
notices.push(`${context.util.formatSize(context.util.maxBytes)} limit reached`);
|
|
68
|
+
details.truncation = truncation;
|
|
69
|
+
}
|
|
70
|
+
if (notices.length > 0) {
|
|
71
|
+
resultOutput += `\n\n[${notices.join(". ")}]`;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
return {
|
|
75
|
+
content: [{ type: "text", text: resultOutput }],
|
|
76
|
+
details: Object.keys(details).length > 0 ? details : undefined,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tarsk-find-images
|
|
3
|
+
description: >-
|
|
4
|
+
Tarsk Tool skill publishing: find_images.
|
|
5
|
+
version: 2.0.0
|
|
6
|
+
tools:
|
|
7
|
+
- find_images
|
|
8
|
+
deferred-tools:
|
|
9
|
+
- find_images
|
|
10
|
+
disable-model-invocation: true
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# tarsk-find-images
|
|
14
|
+
|
|
15
|
+
Publishes: find_images.
|
|
16
|
+
|
|
17
|
+
Success/error copy in `scripts/find_images.js`. Host
|
|
18
|
+
`context.images.searchAndSave` (network + cwd-safe save).
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* find_images — success/error copy in the Skill; host searches + saves.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
export const description =
|
|
6
|
+
"Find a stock image matching a search query. Returns a URL served by the Tarsk API and optionally saves the image to a file. " +
|
|
7
|
+
"Use this when the user needs an image and the user has not requested it be generated.";
|
|
8
|
+
|
|
9
|
+
export const parameters = {
|
|
10
|
+
type: "object",
|
|
11
|
+
required: ["query"],
|
|
12
|
+
properties: {
|
|
13
|
+
query: {
|
|
14
|
+
description: "Image search query, e.g. 'sunset over mountains'",
|
|
15
|
+
type: "string",
|
|
16
|
+
},
|
|
17
|
+
size: {
|
|
18
|
+
description:
|
|
19
|
+
"Image size variant: original, large2x, large, medium (default), small, portrait, landscape, tiny",
|
|
20
|
+
type: "string",
|
|
21
|
+
},
|
|
22
|
+
save_to_file: {
|
|
23
|
+
description:
|
|
24
|
+
"File path relative to the project root to save the image to (e.g. 'assets/hero.jpg'). " +
|
|
25
|
+
"Parent directories are created automatically. " +
|
|
26
|
+
"If omitted the image is saved under .tarsk/tmp-images/.",
|
|
27
|
+
type: "string",
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
/** @param {Record<string, unknown>} args @param {import("../../../../src/tools/agent-runtime/types.js").AgentRuntime} context @param {{ signal?: AbortSignal }} [options] */
|
|
33
|
+
export async function execute(args, context, options) {
|
|
34
|
+
const result = await context.images.searchAndSave(args, options);
|
|
35
|
+
if (!result.ok) {
|
|
36
|
+
if (result.reason === "aborted") {
|
|
37
|
+
return { content: [], details: undefined };
|
|
38
|
+
}
|
|
39
|
+
if (result.reason === "search_failed") {
|
|
40
|
+
return {
|
|
41
|
+
content: [{ type: "text", text: `Image search failed: ${result.message}` }],
|
|
42
|
+
details: undefined,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
if (result.reason === "no_cwd") {
|
|
46
|
+
return {
|
|
47
|
+
content: [
|
|
48
|
+
{
|
|
49
|
+
type: "text",
|
|
50
|
+
text: "Image search succeeded but no project directory is available to save the image.",
|
|
51
|
+
},
|
|
52
|
+
],
|
|
53
|
+
details: undefined,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
content: [
|
|
58
|
+
{
|
|
59
|
+
type: "text",
|
|
60
|
+
text: `Image was found but failed to save to "${result.message}"`,
|
|
61
|
+
},
|
|
62
|
+
],
|
|
63
|
+
details: undefined,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const payload = {
|
|
68
|
+
contentType: result.contentType,
|
|
69
|
+
savedPath: result.savedPath,
|
|
70
|
+
sizeInBytes: result.sizeInBytes,
|
|
71
|
+
};
|
|
72
|
+
if (result.imageUrl) payload.imageUrl = result.imageUrl;
|
|
73
|
+
|
|
74
|
+
return {
|
|
75
|
+
content: [{ type: "text", text: JSON.stringify(payload) }],
|
|
76
|
+
details: result.imageUrl ? { imageUrl: result.imageUrl } : undefined,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tarsk-generate-image
|
|
3
|
+
description: >-
|
|
4
|
+
Tarsk Tool skill publishing: generate_image.
|
|
5
|
+
version: 2.0.0
|
|
6
|
+
tools:
|
|
7
|
+
- generate_image
|
|
8
|
+
deferred-tools:
|
|
9
|
+
- generate_image
|
|
10
|
+
disable-model-invocation: true
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# tarsk-generate-image
|
|
14
|
+
|
|
15
|
+
Publishes: generate_image.
|
|
16
|
+
|
|
17
|
+
Success/error copy in `scripts/generate_image.js`. Host
|
|
18
|
+
`context.images.generate` (API keys + cwd-safe save).
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* generate_image — success/error copy in the Skill; host holds credentials + save.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
export const description =
|
|
6
|
+
"Generate an image from a text prompt. Returns a URL or base64 data for the generated image. Use this when the user asks you to create, draw, design, or generate an image. Use the save_to_file parameter to save the image directly to a file in the project (e.g. 'assets/hero.png').";
|
|
7
|
+
|
|
8
|
+
export const parameters = {
|
|
9
|
+
type: "object",
|
|
10
|
+
required: ["prompt", "save_to_file"],
|
|
11
|
+
properties: {
|
|
12
|
+
prompt: {
|
|
13
|
+
description: "Image description",
|
|
14
|
+
type: "string",
|
|
15
|
+
},
|
|
16
|
+
model: {
|
|
17
|
+
description:
|
|
18
|
+
"Image model name or ID to use (e.g. 'dall-e-3', 'gpt-image-1', 'google/gemini-2.5-flash-image'). If omitted the first enabled image model is used.",
|
|
19
|
+
type: "string",
|
|
20
|
+
},
|
|
21
|
+
save_to_file: {
|
|
22
|
+
description:
|
|
23
|
+
"File path (relative to the project root) to save the generated image to, e.g. 'assets/logo.png' or 'docs/diagram.png'. The file and any parent directories will be created automatically. The image is also returned as data so it can be displayed.",
|
|
24
|
+
type: "string",
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
function stripImageBytes(payload) {
|
|
30
|
+
const next = { ...payload };
|
|
31
|
+
delete next.imageData;
|
|
32
|
+
delete next.image_data;
|
|
33
|
+
if (typeof next.imageUrl === "string" && next.imageUrl.startsWith("data:")) {
|
|
34
|
+
delete next.imageUrl;
|
|
35
|
+
}
|
|
36
|
+
return next;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/** @param {Record<string, unknown>} args @param {import("../../../../src/tools/agent-runtime/types.js").AgentRuntime} context @param {{ signal?: AbortSignal }} [options] */
|
|
40
|
+
export async function execute(args, context, options) {
|
|
41
|
+
const result = await context.images.generate(args, options);
|
|
42
|
+
if (!result.ok) {
|
|
43
|
+
if (result.reason === "aborted") {
|
|
44
|
+
return { content: [], details: undefined };
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
content: [{ type: "text", text: result.message }],
|
|
48
|
+
details: result.details,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
content: [{ type: "text", text: JSON.stringify(stripImageBytes(result.payload)) }],
|
|
53
|
+
details: result.details,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tarsk-get-observation
|
|
3
|
+
description: >-
|
|
4
|
+
Tarsk Tool skill publishing: get_observation.
|
|
5
|
+
version: 2.0.2
|
|
6
|
+
tools:
|
|
7
|
+
- get_observation
|
|
8
|
+
disable-model-invocation: true
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# tarsk-get-observation
|
|
12
|
+
|
|
13
|
+
Publishes: get_observation.
|
|
14
|
+
|
|
15
|
+
Paging, JSON-path selection, miss/continuation copy, and batching live in
|
|
16
|
+
`scripts/get_observation.js` (edit to tune tokens / turn guidance).
|
|
17
|
+
|
|
18
|
+
Host (`context.observations`): `resolveId`, `fetch`, `recordRetrieved`, `limits`
|
|
19
|
+
— DB and telemetry only.
|