015106d7fa
📚 Publish docs / publish (push) Has been cancelled
🚀 Publish Trigger.dev Docker / typecheck (push) Failing after 4s
🚀 Publish Trigger.dev Docker / publish-worker-v4 (push) Has been skipped
🚀 Publish Trigger.dev Docker / scan-webapp (push) Has been skipped
🚀 Publish Trigger.dev Docker / publish-webapp (push) Has been skipped
🚀 Publish Trigger.dev Docker / publish-worker (push) Has been skipped
🚀 Publish Trigger.dev Docker / units (push) Failing after 5s
🧭 Helm Chart Release / lint-and-test (push) Has been cancelled
🧭 Helm Chart Release / release (push) Has been cancelled
🚀 Publish Trigger.dev Docker / 📣 Dispatch main image (push) Has been cancelled
## Summary 7 improvements. ## Improvements - `@trigger.dev/sdk` now bundles the Trigger.dev agent skills and a curated snapshot of the docs those skills reference. The skills that `trigger skills` installs into your coding agent read this content from node_modules, so the guidance your AI assistant follows is pinned to the SDK version installed in your project and stays current across upgrades instead of going stale until the next reinstall. ([#3937](https://github.com/triggerdotdev/trigger.dev/pull/3937)) - Running a CLI command like `dev`, `deploy`, `preview`, or `update` before initializing a project no longer crashes with a raw `Cannot find matching package.json` stack trace. The CLI now detects the missing project and points you to `npx trigger.dev@latest init` instead. ([#3929](https://github.com/triggerdotdev/trigger.dev/pull/3929)) - The agent skills installed by `trigger skills` are now namespaced with a `trigger-` prefix (e.g. `trigger-authoring-tasks`, `trigger-getting-started`) so they don't collide with unrelated skills in your coding agent's skills directory. Adds a `trigger-cost-savings` skill for auditing and reducing compute spend (right-sizing machines, `maxDuration`, batching, debounce), and `@trigger.dev/sdk` now bundles the full Trigger.dev documentation so your agent can read the complete, version-pinned reference directly from node_modules. ([#3970](https://github.com/triggerdotdev/trigger.dev/pull/3970)) - The run span API response now includes `cachedCost` and `cacheCreationCost` on the `ai` object, alongside the existing `inputCost` / `outputCost` / `totalCost`. `inputCost` reflects only the non-cached input, so these fields let you reconstruct the full cost breakdown for prompt-cached calls. ([#3958](https://github.com/triggerdotdev/trigger.dev/pull/3958)) - `chat.headStart` now works with the `chat.customAgent` and `chat.createSession` backends, not only `chat.agent`. The warm step-1 response hands over to your loop the same way it does for a managed agent. ([#3963](https://github.com/triggerdotdev/trigger.dev/pull/3963)) In a `chat.customAgent` loop, consume the handover on turn 0: ```ts const conversation = new chat.MessageAccumulator(); const { isFinal, skipped } = await conversation.consumeHandover({ payload }); if (skipped) return; // warm handler aborted, so exit without a turn if (isFinal) { await chat.writeTurnComplete(); // step 1 is the response, no streamText } else { const result = streamText({ model, messages: conversation.modelMessages, tools }); // Pass originalMessages so the handed-over tool round merges into the // step-1 assistant instead of starting a new message. const response = await chat.pipeAndCapture(result, { originalMessages: conversation.uiMessages, }); if (response) await conversation.addResponse(response); } ``` With `chat.createSession`, the iterator surfaces it as `turn.handover`; call `turn.complete()` with no argument on a final handover. The lower-level `chat.waitForHandover()` and `accumulator.applyHandover()` are also exported for hand-rolled loops. - Cache your chat agent's system prompt with Anthropic prompt caching. `chat.toStreamTextOptions()` now emits the system prompt as a cacheable message when you opt in, so a large, stable system block is billed at cache-read rates on every turn instead of full price. ([#3952](https://github.com/triggerdotdev/trigger.dev/pull/3952)) ```ts // at the streamText call site (Anthropic sugar) streamText({ ...chat.toStreamTextOptions({ cacheControl: { type: "ephemeral" } }), messages, }); // provider-agnostic equivalent chat.toStreamTextOptions({ systemProviderOptions: { anthropic: { cacheControl: { type: "ephemeral" } } }, }); // or where the prompt is defined chat.prompt.set(SYSTEM_PROMPT, { providerOptions: { anthropic: { cacheControl: { type: "ephemeral" } } }, }); ``` Without an option, `system` stays a plain string. Pairs with a `prepareMessages` cache breakpoint to cache the conversation prefix across turns too. - Three fixes for custom agent loops (`chat.customAgent`, `chat.createSession`, and hand-rolled `MessageAccumulator` loops): ([#3936](https://github.com/triggerdotdev/trigger.dev/pull/3936)) - Continuation runs no longer replay already-answered user messages into the first turn. The `.in` resume cursor is now seeded before any listener attaches (the same boot logic `chat.agent` uses), so a chat that continues after a cancel, crash, or upgrade only sees genuinely new messages. - Steering a hand-rolled loop mid-stream no longer wipes the in-flight assistant response. `chat.pipeAndCapture` now stamps a server-generated message id on the stream, so a `prepareStep` injection keeps the partial text instead of replacing the message. - Task-backed tools (`ai.toolExecute`) now work from custom agent loops: the parent's session is threaded to the child run, so child tasks can stream progress into the chat with `chat.stream.writer({ target: "root" })` instead of failing with "session handle is not initialized". <details> <summary>Raw changeset output</summary> ⚠️⚠️⚠️⚠️⚠️⚠️ `main` is currently in **pre mode** so this branch has prereleases rather than normal releases. If you want to exit prereleases, run `changeset pre exit` on `main`. ⚠️⚠️⚠️⚠️⚠️⚠️ # Releases ## @trigger.dev/build@4.5.0-rc.7 ### Patch Changes - Updated dependencies: - `@trigger.dev/core@4.5.0-rc.7` ## trigger.dev@4.5.0-rc.7 ### Patch Changes - `@trigger.dev/sdk` now bundles the Trigger.dev agent skills and a curated snapshot of the docs those skills reference. The skills that `trigger skills` installs into your coding agent read this content from node_modules, so the guidance your AI assistant follows is pinned to the SDK version installed in your project and stays current across upgrades instead of going stale until the next reinstall. ([#3937](https://github.com/triggerdotdev/trigger.dev/pull/3937)) - Running a CLI command like `dev`, `deploy`, `preview`, or `update` before initializing a project no longer crashes with a raw `Cannot find matching package.json` stack trace. The CLI now detects the missing project and points you to `npx trigger.dev@latest init` instead. ([#3929](https://github.com/triggerdotdev/trigger.dev/pull/3929)) - The agent skills installed by `trigger skills` are now namespaced with a `trigger-` prefix (e.g. `trigger-authoring-tasks`, `trigger-getting-started`) so they don't collide with unrelated skills in your coding agent's skills directory. Adds a `trigger-cost-savings` skill for auditing and reducing compute spend (right-sizing machines, `maxDuration`, batching, debounce), and `@trigger.dev/sdk` now bundles the full Trigger.dev documentation so your agent can read the complete, version-pinned reference directly from node_modules. ([#3970](https://github.com/triggerdotdev/trigger.dev/pull/3970)) - Updated dependencies: - `@trigger.dev/core@4.5.0-rc.7` - `@trigger.dev/build@4.5.0-rc.7` - `@trigger.dev/schema-to-json@4.5.0-rc.7` ## @trigger.dev/core@4.5.0-rc.7 ### Patch Changes - The run span API response now includes `cachedCost` and `cacheCreationCost` on the `ai` object, alongside the existing `inputCost` / `outputCost` / `totalCost`. `inputCost` reflects only the non-cached input, so these fields let you reconstruct the full cost breakdown for prompt-cached calls. ([#3958](https://github.com/triggerdotdev/trigger.dev/pull/3958)) ## @trigger.dev/python@4.5.0-rc.7 ### Patch Changes - Updated dependencies: - `@trigger.dev/sdk@4.5.0-rc.7` - `@trigger.dev/core@4.5.0-rc.7` - `@trigger.dev/build@4.5.0-rc.7` ## @trigger.dev/react-hooks@4.5.0-rc.7 ### Patch Changes - Updated dependencies: - `@trigger.dev/core@4.5.0-rc.7` ## @trigger.dev/redis-worker@4.5.0-rc.7 ### Patch Changes - Updated dependencies: - `@trigger.dev/core@4.5.0-rc.7` ## @trigger.dev/rsc@4.5.0-rc.7 ### Patch Changes - Updated dependencies: - `@trigger.dev/core@4.5.0-rc.7` ## @trigger.dev/schema-to-json@4.5.0-rc.7 ### Patch Changes - Updated dependencies: - `@trigger.dev/core@4.5.0-rc.7` ## @trigger.dev/sdk@4.5.0-rc.7 ### Patch Changes - `@trigger.dev/sdk` now bundles the Trigger.dev agent skills and a curated snapshot of the docs those skills reference. The skills that `trigger skills` installs into your coding agent read this content from node_modules, so the guidance your AI assistant follows is pinned to the SDK version installed in your project and stays current across upgrades instead of going stale until the next reinstall. ([#3937](https://github.com/triggerdotdev/trigger.dev/pull/3937)) - `chat.headStart` now works with the `chat.customAgent` and `chat.createSession` backends, not only `chat.agent`. The warm step-1 response hands over to your loop the same way it does for a managed agent. ([#3963](https://github.com/triggerdotdev/trigger.dev/pull/3963)) In a `chat.customAgent` loop, consume the handover on turn 0: ```ts const conversation = new chat.MessageAccumulator(); const { isFinal, skipped } = await conversation.consumeHandover({ payload }); if (skipped) return; // warm handler aborted, so exit without a turn if (isFinal) { await chat.writeTurnComplete(); // step 1 is the response, no streamText } else { const result = streamText({ model, messages: conversation.modelMessages, tools }); // Pass originalMessages so the handed-over tool round merges into the // step-1 assistant instead of starting a new message. const response = await chat.pipeAndCapture(result, { originalMessages: conversation.uiMessages, }); if (response) await conversation.addResponse(response); } ``` With `chat.createSession`, the iterator surfaces it as `turn.handover`; call `turn.complete()` with no argument on a final handover. The lower-level `chat.waitForHandover()` and `accumulator.applyHandover()` are also exported for hand-rolled loops. - Add `triggerConfig` support to `chat.headStart()` and `chat.openSession()`, so the auto-triggered handover-prepare run inherits tags, queue, machine, and other session trigger options the same way `chat.createStartSessionAction()` does. The `chat:{chatId}` tag is prepended automatically. ([#3963](https://github.com/triggerdotdev/trigger.dev/pull/3963)) ```ts export const POST = chat.headStart({ agentId: "my-agent", triggerConfig: { tags: ["org:acme"], queue: "chat" }, run: async ({ chat }) => streamText({ ...chat.toStreamTextOptions(), model }), }); ``` Because the session is created once on the first head-start turn and is idempotent on the chat id, this is the only place to set those options for a head-start chat's lifetime. `chat.createStartSessionAction()` now also forwards `maxDuration`, `region`, and `lockToVersion` so both session entry points stay consistent. - Cache your chat agent's system prompt with Anthropic prompt caching. `chat.toStreamTextOptions()` now emits the system prompt as a cacheable message when you opt in, so a large, stable system block is billed at cache-read rates on every turn instead of full price. ([#3952](https://github.com/triggerdotdev/trigger.dev/pull/3952)) ```ts // at the streamText call site (Anthropic sugar) streamText({ ...chat.toStreamTextOptions({ cacheControl: { type: "ephemeral" } }), messages, }); // provider-agnostic equivalent chat.toStreamTextOptions({ systemProviderOptions: { anthropic: { cacheControl: { type: "ephemeral" } } }, }); // or where the prompt is defined chat.prompt.set(SYSTEM_PROMPT, { providerOptions: { anthropic: { cacheControl: { type: "ephemeral" } } }, }); ``` Without an option, `system` stays a plain string. Pairs with a `prepareMessages` cache breakpoint to cache the conversation prefix across turns too. - Three fixes for custom agent loops (`chat.customAgent`, `chat.createSession`, and hand-rolled `MessageAccumulator` loops): ([#3936](https://github.com/triggerdotdev/trigger.dev/pull/3936)) - Continuation runs no longer replay already-answered user messages into the first turn. The `.in` resume cursor is now seeded before any listener attaches (the same boot logic `chat.agent` uses), so a chat that continues after a cancel, crash, or upgrade only sees genuinely new messages. - Steering a hand-rolled loop mid-stream no longer wipes the in-flight assistant response. `chat.pipeAndCapture` now stamps a server-generated message id on the stream, so a `prepareStep` injection keeps the partial text instead of replacing the message. - Task-backed tools (`ai.toolExecute`) now work from custom agent loops: the parent's session is threaded to the child run, so child tasks can stream progress into the chat with `chat.stream.writer({ target: "root" })` instead of failing with "session handle is not initialized". - The agent skills installed by `trigger skills` are now namespaced with a `trigger-` prefix (e.g. `trigger-authoring-tasks`, `trigger-getting-started`) so they don't collide with unrelated skills in your coding agent's skills directory. Adds a `trigger-cost-savings` skill for auditing and reducing compute spend (right-sizing machines, `maxDuration`, batching, debounce), and `@trigger.dev/sdk` now bundles the full Trigger.dev documentation so your agent can read the complete, version-pinned reference directly from node_modules. ([#3970](https://github.com/triggerdotdev/trigger.dev/pull/3970)) - Updated dependencies: - `@trigger.dev/core@4.5.0-rc.7` ## @trigger.dev/plugins@4.5.0-rc.7 ### Patch Changes - Updated dependencies: - `@trigger.dev/core@4.5.0-rc.7` </details> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
167 lines
4.4 KiB
JSON
167 lines
4.4 KiB
JSON
{
|
|
"name": "trigger.dev",
|
|
"version": "4.5.0-rc.7",
|
|
"description": "A Command-Line Interface for Trigger.dev projects",
|
|
"type": "module",
|
|
"license": "MIT",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://github.com/triggerdotdev/trigger.dev",
|
|
"directory": "packages/cli-v3"
|
|
},
|
|
"publishConfig": {
|
|
"access": "public"
|
|
},
|
|
"mcpName": "io.github.triggerdotdev/trigger.dev",
|
|
"keywords": [
|
|
"typescript",
|
|
"trigger.dev",
|
|
"workflows",
|
|
"orchestration",
|
|
"events",
|
|
"webhooks",
|
|
"integrations",
|
|
"apis",
|
|
"jobs",
|
|
"background jobs",
|
|
"nextjs",
|
|
"tanstack-intent"
|
|
],
|
|
"files": [
|
|
"dist",
|
|
"skills"
|
|
],
|
|
"bin": {
|
|
"trigger": "./dist/esm/index.js"
|
|
},
|
|
"tshy": {
|
|
"selfLink": false,
|
|
"main": false,
|
|
"module": false,
|
|
"dialects": [
|
|
"esm"
|
|
],
|
|
"project": "./tsconfig.src.json",
|
|
"exclude": [
|
|
"**/*.test.ts"
|
|
],
|
|
"exports": {
|
|
"./package.json": "./package.json",
|
|
".": "./src/index.ts"
|
|
}
|
|
},
|
|
"devDependencies": {
|
|
"@epic-web/test-server": "^0.1.0",
|
|
"@types/eventsource": "^1.1.15",
|
|
"@types/gradient-string": "^1.1.2",
|
|
"@types/ini": "^4.1.1",
|
|
"@types/object-hash": "3.0.6",
|
|
"@types/polka": "^0.5.7",
|
|
"@types/react": "^18.2.48",
|
|
"@types/resolve": "^1.20.6",
|
|
"@types/rimraf": "^4.0.5",
|
|
"@types/semver": "^7.5.0",
|
|
"@types/source-map-support": "0.5.10",
|
|
"@types/ws": "^8.5.3",
|
|
"cpy-cli": "^5.0.0",
|
|
"execa": "^8.0.1",
|
|
"find-up": "^7.0.0",
|
|
"rimraf": "^6.0.1",
|
|
"ts-essentials": "10.0.1",
|
|
"tshy": "^3.0.2",
|
|
"tsx": "4.17.0"
|
|
},
|
|
"scripts": {
|
|
"clean": "rimraf dist .tshy .tshy-build .turbo",
|
|
"typecheck": "tsc -p tsconfig.src.json --noEmit",
|
|
"build": "tshy && pnpm run update-version",
|
|
"dev": "tshy --watch",
|
|
"test": "vitest",
|
|
"test:e2e": "vitest --run -c ./e2e/vitest.config.ts",
|
|
"update-version": "tsx ../../scripts/updateVersion.ts",
|
|
"install-mcp": "./install-mcp.sh",
|
|
"inspector": "npx @modelcontextprotocol/inspector dist/esm/index.js mcp --log-file .mcp.log --api-url http://localhost:3030",
|
|
"mcp:test": "tsx src/mcp/tools.test.ts",
|
|
"mcp:smoke": "tsx src/mcp/smoke.test.ts"
|
|
},
|
|
"dependencies": {
|
|
"@clack/prompts": "0.11.0",
|
|
"@depot/cli": "0.0.1-cli.2.80.0",
|
|
"@modelcontextprotocol/sdk": "^1.25.2",
|
|
"@opentelemetry/api": "1.9.1",
|
|
"@opentelemetry/api-logs": "0.218.0",
|
|
"@opentelemetry/exporter-trace-otlp-http": "0.218.0",
|
|
"@opentelemetry/instrumentation": "0.218.0",
|
|
"@opentelemetry/instrumentation-fetch": "0.218.0",
|
|
"@opentelemetry/resources": "2.7.1",
|
|
"@opentelemetry/sdk-trace-node": "2.7.1",
|
|
"@opentelemetry/semantic-conventions": "1.41.1",
|
|
"@s2-dev/streamstore": "^0.22.10",
|
|
"@trigger.dev/build": "workspace:4.5.0-rc.7",
|
|
"@trigger.dev/core": "workspace:4.5.0-rc.7",
|
|
"@trigger.dev/schema-to-json": "workspace:4.5.0-rc.7",
|
|
"ansi-escapes": "^7.0.0",
|
|
"braces": "^3.0.3",
|
|
"c12": "^1.11.1",
|
|
"chalk": "^5.2.0",
|
|
"chokidar": "^3.6.0",
|
|
"cli-table3": "^0.6.3",
|
|
"commander": "^9.4.1",
|
|
"confbox": "^0.2.2",
|
|
"defu": "^6.1.4",
|
|
"dotenv": "^16.4.5",
|
|
"esbuild": "^0.23.0",
|
|
"eventsource": "^3.0.2",
|
|
"evt": "^2.4.13",
|
|
"fast-npm-meta": "^0.2.2",
|
|
"git-last-commit": "^1.0.1",
|
|
"gradient-string": "^2.0.2",
|
|
"has-flag": "^5.0.1",
|
|
"ignore": "^7.0.5",
|
|
"import-in-the-middle": "3.0.1",
|
|
"import-meta-resolve": "^4.1.0",
|
|
"ini": "^5.0.0",
|
|
"json-stable-stringify": "^1.3.0",
|
|
"jsonc-parser": "3.2.1",
|
|
"magicast": "^0.3.4",
|
|
"minimatch": "^10.0.1",
|
|
"mlly": "^1.7.1",
|
|
"nypm": "^0.5.4",
|
|
"object-hash": "^3.0.0",
|
|
"open": "^10.0.3",
|
|
"p-limit": "^6.2.0",
|
|
"p-retry": "^6.1.0",
|
|
"partysocket": "^1.0.2",
|
|
"pkg-types": "^1.1.3",
|
|
"polka": "^0.5.2",
|
|
"resolve": "^1.22.8",
|
|
"semver": "^7.5.0",
|
|
"signal-exit": "^4.1.0",
|
|
"socket.io-client": "4.7.5",
|
|
"source-map-support": "0.5.21",
|
|
"std-env": "^3.7.0",
|
|
"strip-ansi": "^7.1.0",
|
|
"supports-color": "^10.0.0",
|
|
"tar": "^7.5.13",
|
|
"tiny-invariant": "^1.2.0",
|
|
"tinyexec": "^0.3.1",
|
|
"tinyglobby": "^0.2.10",
|
|
"ws": "^8.18.0",
|
|
"xdg-app-paths": "^8.3.0",
|
|
"zod": "3.25.76",
|
|
"zod-validation-error": "^1.5.0"
|
|
},
|
|
"engines": {
|
|
"node": ">=18.20.0"
|
|
},
|
|
"exports": {
|
|
"./package.json": "./package.json",
|
|
".": {
|
|
"import": {
|
|
"types": "./dist/esm/index.d.ts",
|
|
"default": "./dist/esm/index.js"
|
|
}
|
|
}
|
|
}
|
|
}
|