cfd38d82fc
* refactor delegation system and add PR summary comments Delegation system: - replace mode-based delegation with select_mode → delegate two-step flow - orchestrator crafts self-contained subagent prompts (clean context — no system/repo/event instructions leak) - add role-based tool filtering via FastMCP authenticate hook (?role=subagent hides orchestrator-only tools) - add select_mode tool for orchestrator guidance per mode - add ask_question tool for lightweight research subagents - extract shared subagent lifecycle into subagent.ts (create, complete, stdout, instructions) - route set_output to per-subagent state when activeSubagentId is set - track per-subagent state (SubagentState Map) replacing boolean delegationActive flag - capture and aggregate AgentUsage across all agents (claude, codex, gemini, opencode) - write usage summary table to GitHub job summary - block built-in subagent spawning (Task for Claude, Task(*) for Cursor) - increase activity timeout from 60s to 300s (subagent thinking phases) - fix gh CLI misguidance in system prompt — explicitly forbid usage PR summary comments: - add prSummaryComment trigger (DB schema + migrations + Zod + UI toggle) - dispatch mini-effort summary job alongside PR review on pr.created - add update_pull_request_body MCP tool - add defaultEffort option to webhook dispatch Hardening: - rewrite delegate/selectMode tests with simulated state management - add toolFiltering.test.ts for role extraction, canAccess, set_output routing - remove non-null assertions for PULLFROG_TEMP_DIR (proper error throws) - use fetchWithRetry for direct tarball downloads - DRY fix for rate limit check in test runner Co-authored-by: Cursor <cursoragent@cursor.com> * fix: add type keyword to Effort import in handleWebhook.ts Co-authored-by: Cursor <cursoragent@cursor.com> * clean up delegation system, improve code quality across the codebase - simplify delegate tool to instructions + effort params with subagent lifecycle in subagent.ts - add select_mode and ask_question orchestrator-only tools with canAccess filtering - replace delegate.test.ts/selectMode.test.ts with toolFiltering.test.ts (live MCP integration) - add set_output routing for subagent context and AgentUsage tracking across all agents - add PR summary comment trigger (schema, UI, webhook dispatch with silent flag) - add update_pull_request_body MCP tool - fix changed-agents.sh to always include claude canary for non-agent action changes - fix cursor pagination bug in getSelectedInstallationReposPage - remove destructuring patterns, inline type definitions, and unsafe type casts - replace non-null assertions with explicit checks in install.ts - convert multi-param functions to single param objects (postCleanup, runActionLocal, etc.) - use isHttpError helper in API routes instead of catch-any patterns - add adhoc test fixtures for delegation scenarios (context isolation, error handling, synthesis, etc.) Co-authored-by: Cursor <cursoragent@cursor.com> * no subagent mutation, one mcp per subagent * address review feedback: parallel-safe usage tracking, subagent isolation, minor improvements * fix subagent state isolation: replace Object.freeze with shallow copy Object.freeze throws TypeErrors when subagent tools (checkout_pr, report_progress) write scalar properties to toolState. A shallow copy achieves the same isolation for scalar fields while allowing tools to work normally. Shared references (subagents Map, usageEntries array) remain shared for coordination. --------- Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: pullfrog[bot] <226033991+pullfrog[bot]@users.noreply.github.com>
90 lines
2.4 KiB
JSON
90 lines
2.4 KiB
JSON
{
|
|
"name": "@pullfrog/pullfrog",
|
|
"version": "0.0.167",
|
|
"type": "module",
|
|
"files": [
|
|
"index.js",
|
|
"index.cjs",
|
|
"index.d.ts",
|
|
"index.d.cts",
|
|
"agents",
|
|
"utils",
|
|
"main.js",
|
|
"main.d.ts"
|
|
],
|
|
"scripts": {
|
|
"test": "vitest",
|
|
"typecheck": "tsc --noEmit",
|
|
"build": "node esbuild.config.js",
|
|
"play": "node play.ts",
|
|
"runtest": "node test/run.ts",
|
|
"scratch": "node scratch.ts",
|
|
"upDeps": "pnpm up --latest",
|
|
"lock": "pnpm install --no-frozen-lockfile",
|
|
"postinstall": "node scripts/generate-proxies.ts",
|
|
"prepare": "cd .. && husky action/.husky"
|
|
},
|
|
"dependencies": {
|
|
"@actions/core": "^1.11.1",
|
|
"@anthropic-ai/claude-agent-sdk": "0.2.39",
|
|
"@ark/fs": "0.56.0",
|
|
"@ark/util": "0.56.0",
|
|
"@octokit/plugin-throttling": "^11.0.3",
|
|
"@octokit/rest": "^22.0.0",
|
|
"@octokit/webhooks-types": "^7.6.1",
|
|
"@openai/codex-sdk": "0.98.0",
|
|
"@opencode-ai/sdk": "^1.0.143",
|
|
"@standard-schema/spec": "1.0.0",
|
|
"@toon-format/toon": "^1.0.0",
|
|
"arkregex": "0.0.5",
|
|
"arktype": "2.1.29",
|
|
"dotenv": "^17.2.3",
|
|
"execa": "^9.6.0",
|
|
"fastmcp": "^3.26.8",
|
|
"file-type": "^21.3.0",
|
|
"package-manager-detector": "^1.6.0",
|
|
"semver": "^7.7.3",
|
|
"table": "^6.9.0",
|
|
"turndown": "^7.2.0"
|
|
},
|
|
"devDependencies": {
|
|
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
"@types/node": "^24.7.2",
|
|
"@types/semver": "^7.7.1",
|
|
"@types/turndown": "^5.0.5",
|
|
"arg": "^5.0.2",
|
|
"esbuild": "^0.25.9",
|
|
"husky": "^9.0.0",
|
|
"typescript": "^5.9.3",
|
|
"vitest": "^4.0.17",
|
|
"yaml": "^2.8.2"
|
|
},
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git+https://github.com/pullfrog/pullfrog.git"
|
|
},
|
|
"keywords": [],
|
|
"author": "",
|
|
"license": "MIT",
|
|
"bugs": {
|
|
"url": "https://github.com/pullfrog/pullfrog/issues"
|
|
},
|
|
"homepage": "https://github.com/pullfrog/pullfrog#readme",
|
|
"zshy": {
|
|
"exports": "./index.ts"
|
|
},
|
|
"main": "./dist/index.cjs",
|
|
"module": "./dist/index.js",
|
|
"types": "./dist/index.d.cts",
|
|
"exports": {
|
|
".": {
|
|
"types": "./dist/index.d.cts",
|
|
"import": "./dist/index.js",
|
|
"require": "./dist/index.cjs"
|
|
},
|
|
"./internal": "./dist/internal.js",
|
|
"./package.json": "./package.json"
|
|
},
|
|
"packageManager": "pnpm@10.27.0+sha512.72d699da16b1179c14ba9e64dc71c9a40988cbdc65c264cb0e489db7de917f20dcf4d64d8723625f2969ba52d4b7e2a1170682d9ac2a5dcaeaab732b7e16f04a"
|
|
}
|