@cursor/july 0.1.100 → 0.1.102
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 +27 -0
- package/dist/bin/agent-serve.js +3 -2
- package/dist/channels/deployments/deployments-channel.d.ts +41 -5
- package/dist/channels/deployments/deployments-channel.d.ts.map +1 -1
- package/dist/channels/deployments/deployments-channel.js +88 -8
- package/dist/channels/deployments/types.d.ts +4 -3
- package/dist/channels/deployments/types.d.ts.map +1 -1
- package/dist/channels/origin/defaults.d.ts +43 -0
- package/dist/channels/origin/defaults.d.ts.map +1 -0
- package/dist/channels/origin/defaults.js +111 -0
- package/dist/channels/origin/index.d.ts +2 -0
- package/dist/channels/origin/index.d.ts.map +1 -1
- package/dist/channels/origin/index.js +2 -0
- package/dist/channels/origin/origin-channel.d.ts +2 -1
- package/dist/channels/origin/origin-channel.d.ts.map +1 -1
- package/dist/channels/origin/origin-channel.js +24 -3
- package/dist/channels/origin/state.d.ts +32 -0
- package/dist/channels/origin/state.d.ts.map +1 -0
- package/dist/channels/origin/state.js +23 -0
- package/dist/channels/origin/types.d.ts +23 -1
- package/dist/channels/origin/types.d.ts.map +1 -1
- package/dist/channels/slack/api.d.ts +1 -1
- package/dist/channels/slack/api.d.ts.map +1 -1
- package/dist/channels/slack/api.js +5 -2
- package/dist/channels/slack/assistant.d.ts +1 -1
- package/dist/channels/slack/assistant.d.ts.map +1 -1
- package/dist/channels/slack/code-fences.d.ts +17 -0
- package/dist/channels/slack/code-fences.d.ts.map +1 -0
- package/dist/channels/slack/code-fences.js +168 -0
- package/dist/channels/slack/dispatch.d.ts +3 -2
- package/dist/channels/slack/dispatch.d.ts.map +1 -1
- package/dist/channels/slack/dispatch.js +28 -8
- package/dist/channels/slack/inbound.d.ts +8 -0
- package/dist/channels/slack/inbound.d.ts.map +1 -1
- package/dist/channels/slack/inbound.js +28 -0
- package/dist/channels/slack/index.d.ts +1 -0
- package/dist/channels/slack/index.d.ts.map +1 -1
- package/dist/channels/slack/index.js +1 -0
- package/dist/channels/slack/live-delivery.d.ts.map +1 -1
- package/dist/channels/slack/live-delivery.js +11 -4
- package/dist/channels/slack/manifest.d.ts.map +1 -1
- package/dist/channels/slack/manifest.js +2 -1
- package/dist/connections.d.ts +18 -2
- package/dist/connections.d.ts.map +1 -1
- package/dist/connections.js +18 -2
- package/dist/docs/404.html +2 -2
- package/dist/docs/ab.html +4 -4
- package/dist/docs/assets/{app.DZ1e0Ycq.js → app.CLA03RCz.js} +1 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.FAqdWIXo.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.l8omwc6D.js → VPLocalSearchBox.ifxv-cJV.js} +1 -1
- package/dist/docs/assets/chunks/{theme.JVcD6gel.js → theme.DWCwM6p-.js} +2 -2
- package/dist/docs/assets/concepts.md.rPzW2HZN.js +1 -0
- package/dist/docs/assets/guides_cloud-agents.md.DumwWXba.js +9 -0
- package/dist/docs/assets/guides_cloud-agents.md.DumwWXba.lean.js +1 -0
- package/dist/docs/assets/{guides_cloud-runtime.md.CkYbjnAX.js → guides_cloud-runtime.md.BRirbRAN.js} +1 -1
- package/dist/docs/assets/index.md.Kiht7ell.js +5 -0
- package/dist/docs/assets/{index.md.Bb4k8kUm.lean.js → index.md.Kiht7ell.lean.js} +1 -1
- package/dist/docs/assets/{reference_connections.md.BiGoBAk2.js → reference_connections.md.Di6jJAXF.js} +12 -2
- package/dist/docs/assets/{reference_connections.md.BiGoBAk2.lean.js → reference_connections.md.Di6jJAXF.lean.js} +1 -1
- package/dist/docs/assets/reference_extensions.md.9WQMZe1l.js +56 -0
- package/dist/docs/assets/reference_extensions.md.9WQMZe1l.lean.js +1 -0
- package/dist/docs/assets/{reference_http-api.md.BEJx9XVj.js → reference_http-api.md.oySXBO8o.js} +1 -1
- package/dist/docs/assets/{reference_project-layout.md.Bv4KOtlB.js → reference_project-layout.md.CA6QP6Lw.js} +2 -2
- package/dist/docs/assets/{reference_project-layout.md.Bv4KOtlB.lean.js → reference_project-layout.md.CA6QP6Lw.lean.js} +1 -1
- package/dist/docs/assets/{reference_skills.md.BFW9retM.js → reference_skills.md.l2ezAcaN.js} +1 -1
- package/dist/docs/assets/{reference_tools.md.CvAHsdSp.js → reference_tools.md.B1up2r9W.js} +1 -1
- package/dist/docs/assets/skills_framework-map.md.DDa4MeEW.js +1 -0
- package/dist/docs/assets/{skills_framework-map.md.BTi817yv.lean.js → skills_framework-map.md.DDa4MeEW.lean.js} +1 -1
- package/dist/docs/building-with-agents.html +4 -4
- package/dist/docs/concepts.html +5 -5
- package/dist/docs/concepts.md +3 -3
- package/dist/docs/deployment.html +4 -4
- package/dist/docs/evals.html +4 -4
- package/dist/docs/guides/agent-to-agent.html +4 -4
- package/dist/docs/guides/cloud-agents.html +35 -0
- package/dist/docs/guides/cloud-agents.md +93 -0
- package/dist/docs/guides/cloud-runtime.html +6 -6
- package/dist/docs/guides/cloud-runtime.md +2 -0
- package/dist/docs/guides/convert-automation.html +4 -4
- package/dist/docs/guides/github.html +4 -4
- package/dist/docs/guides/human-in-the-loop.html +4 -4
- package/dist/docs/guides/mcp-oauth.html +4 -4
- package/dist/docs/guides/opentelemetry.html +5 -5
- package/dist/docs/guides/slack.html +4 -4
- package/dist/docs/guides/webhooks.html +4 -4
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +4 -4
- package/dist/docs/index.html +6 -6
- package/dist/docs/index.md +5 -1
- package/dist/docs/llms-full.txt +353 -5
- package/dist/docs/llms.txt +2 -0
- package/dist/docs/quickstart.html +4 -4
- package/dist/docs/reference/agent-config.html +4 -4
- package/dist/docs/reference/artifacts.html +4 -4
- package/dist/docs/reference/channels.html +5 -5
- package/dist/docs/reference/cli.html +4 -4
- package/dist/docs/reference/connections.html +16 -6
- package/dist/docs/reference/connections.md +31 -0
- package/dist/docs/reference/extensions.html +82 -0
- package/dist/docs/reference/extensions.md +200 -0
- package/dist/docs/reference/hooks.html +4 -4
- package/dist/docs/reference/http-api.html +6 -6
- package/dist/docs/reference/http-api.md +1 -1
- package/dist/docs/reference/instructions.html +4 -4
- package/dist/docs/reference/playground.html +4 -4
- package/dist/docs/reference/project-layout.html +6 -6
- package/dist/docs/reference/project-layout.md +3 -0
- package/dist/docs/reference/prompt.html +4 -4
- package/dist/docs/reference/schedules.html +4 -4
- package/dist/docs/reference/sessions.html +4 -4
- package/dist/docs/reference/skills.html +6 -6
- package/dist/docs/reference/skills.md +2 -0
- package/dist/docs/reference/subagents.html +5 -5
- package/dist/docs/reference/tools.html +6 -6
- package/dist/docs/reference/tools.md +2 -0
- package/dist/docs/scaffolding-agents.html +4 -4
- package/dist/docs/skills/ab.html +4 -4
- package/dist/docs/skills/create-agent.html +4 -4
- package/dist/docs/skills/debug.html +4 -4
- package/dist/docs/skills/evals.html +4 -4
- package/dist/docs/skills/framework-map.html +5 -5
- package/dist/docs/skills/framework-map.md +1 -0
- package/dist/docs/skills/github.html +4 -4
- package/dist/docs/skills/hillclimb.html +4 -4
- package/dist/docs/skills/index.html +4 -4
- package/dist/docs/skills/mcp-auth.html +4 -4
- package/dist/docs/skills/otel.html +4 -4
- package/dist/docs/skills/setup-slack.html +4 -4
- package/dist/docs/storage.html +4 -4
- package/dist/docs/templates/agentic-owners.html +4 -4
- package/dist/docs/templates/agents-md.html +4 -4
- package/dist/docs/templates/code-wiki.html +4 -4
- package/dist/docs/templates/demo.html +4 -4
- package/dist/docs/templates/pr-autofixer.html +4 -4
- package/dist/docs/templates/security-help.html +4 -4
- package/dist/docs/templates/security-reviewer.html +4 -4
- package/dist/docs/templates/triage.html +4 -4
- package/dist/docs/troubleshooting.html +4 -4
- package/dist/extensions/cursor-cloud-agents/extension.d.ts +57 -0
- package/dist/extensions/cursor-cloud-agents/extension.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/extension.js +66 -0
- package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts +78 -0
- package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/lib/backend.js +286 -0
- package/dist/extensions/cursor-cloud-agents/lib/fleet.d.ts +25 -0
- package/dist/extensions/cursor-cloud-agents/lib/fleet.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/lib/fleet.js +85 -0
- package/dist/extensions/cursor-cloud-agents/lib/inputs.d.ts +5 -0
- package/dist/extensions/cursor-cloud-agents/lib/inputs.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/lib/inputs.js +4 -0
- package/dist/extensions/cursor-cloud-agents/lib/repos.d.ts +15 -0
- package/dist/extensions/cursor-cloud-agents/lib/repos.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/lib/repos.js +55 -0
- package/dist/extensions/cursor-cloud-agents/lib/transcript.d.ts +8 -0
- package/dist/extensions/cursor-cloud-agents/lib/transcript.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/lib/transcript.js +15 -0
- package/dist/extensions/cursor-cloud-agents/skills/handoff.md +41 -0
- package/dist/extensions/cursor-cloud-agents/tools/cancel.d.ts +4 -0
- package/dist/extensions/cursor-cloud-agents/tools/cancel.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/tools/cancel.js +26 -0
- package/dist/extensions/cursor-cloud-agents/tools/dump.d.ts +4 -0
- package/dist/extensions/cursor-cloud-agents/tools/dump.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/tools/dump.js +54 -0
- package/dist/extensions/cursor-cloud-agents/tools/get.d.ts +4 -0
- package/dist/extensions/cursor-cloud-agents/tools/get.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/tools/get.js +25 -0
- package/dist/extensions/cursor-cloud-agents/tools/launch.d.ts +4 -0
- package/dist/extensions/cursor-cloud-agents/tools/launch.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/tools/launch.js +59 -0
- package/dist/extensions/cursor-cloud-agents/tools/list.d.ts +4 -0
- package/dist/extensions/cursor-cloud-agents/tools/list.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/tools/list.js +36 -0
- package/dist/extensions/cursor-cloud-agents/tools/reply.d.ts +4 -0
- package/dist/extensions/cursor-cloud-agents/tools/reply.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/tools/reply.js +35 -0
- package/dist/extensions.d.ts +73 -0
- package/dist/extensions.d.ts.map +1 -0
- package/dist/extensions.js +112 -0
- package/dist/files-backends/cursor-hosted.d.ts +0 -8
- package/dist/files-backends/cursor-hosted.d.ts.map +1 -1
- package/dist/files-backends/cursor-hosted.js +1 -11
- package/dist/files.d.ts +5 -1
- package/dist/files.d.ts.map +1 -1
- package/dist/files.js +22 -18
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/internal/advertise-tools.d.ts +4 -1
- package/dist/internal/advertise-tools.d.ts.map +1 -1
- package/dist/internal/advertise-tools.js +20 -1
- package/dist/internal/as-of.d.ts +18 -0
- package/dist/internal/as-of.d.ts.map +1 -1
- package/dist/internal/as-of.js +131 -0
- package/dist/internal/cli-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +64 -19
- package/dist/internal/continuation-identity.d.ts.map +1 -1
- package/dist/internal/continuation-identity.js +3 -1
- package/dist/internal/conversation-mirror.d.ts.map +1 -1
- package/dist/internal/conversation-mirror.js +13 -15
- package/dist/internal/cursor/backend-client.d.ts +8 -1
- package/dist/internal/cursor/backend-client.d.ts.map +1 -1
- package/dist/internal/cursor/backend-client.js +25 -9
- package/dist/internal/cursor/hosted-deployment-secrets.d.ts +16 -0
- package/dist/internal/cursor/hosted-deployment-secrets.d.ts.map +1 -0
- package/dist/internal/cursor/hosted-deployment-secrets.js +61 -0
- package/dist/internal/cursor/hosted-store-secrets.d.ts +11 -0
- package/dist/internal/cursor/hosted-store-secrets.d.ts.map +1 -1
- package/dist/internal/cursor/hosted-store-secrets.js +15 -0
- package/dist/internal/cursor-deployment-relay.d.ts +15 -1
- package/dist/internal/cursor-deployment-relay.d.ts.map +1 -1
- package/dist/internal/cursor-deployment-relay.js +46 -7
- package/dist/internal/deploy-client.d.ts +23 -0
- package/dist/internal/deploy-client.d.ts.map +1 -1
- package/dist/internal/deploy-client.js +54 -12
- package/dist/internal/discovery/ab.d.ts +9 -0
- package/dist/internal/discovery/ab.d.ts.map +1 -0
- package/dist/internal/discovery/ab.js +101 -0
- package/dist/internal/discovery/agent-config.d.ts +35 -0
- package/dist/internal/discovery/agent-config.d.ts.map +1 -0
- package/dist/internal/discovery/agent-config.js +173 -0
- package/dist/internal/discovery/agent.d.ts +11 -0
- package/dist/internal/discovery/agent.d.ts.map +1 -0
- package/dist/internal/discovery/agent.js +306 -0
- package/dist/internal/discovery/channels.d.ts +10 -0
- package/dist/internal/discovery/channels.d.ts.map +1 -0
- package/dist/internal/discovery/channels.js +97 -0
- package/dist/internal/discovery/connections.d.ts +17 -0
- package/dist/internal/discovery/connections.d.ts.map +1 -0
- package/dist/internal/discovery/connections.js +436 -0
- package/dist/internal/discovery/context.d.ts +20 -0
- package/dist/internal/discovery/context.d.ts.map +1 -0
- package/dist/internal/discovery/context.js +30 -0
- package/dist/internal/discovery/cursor-plugin.d.ts +25 -0
- package/dist/internal/discovery/cursor-plugin.d.ts.map +1 -0
- package/dist/internal/discovery/cursor-plugin.js +570 -0
- package/dist/internal/discovery/extensions.d.ts +19 -0
- package/dist/internal/discovery/extensions.d.ts.map +1 -0
- package/dist/internal/discovery/extensions.js +238 -0
- package/dist/internal/discovery/fs.d.ts +15 -0
- package/dist/internal/discovery/fs.d.ts.map +1 -0
- package/dist/internal/discovery/fs.js +115 -0
- package/dist/internal/discovery/hooks.d.ts +7 -0
- package/dist/internal/discovery/hooks.d.ts.map +1 -0
- package/dist/internal/discovery/hooks.js +48 -0
- package/dist/internal/discovery/info.d.ts +6 -0
- package/dist/internal/discovery/info.d.ts.map +1 -0
- package/dist/internal/discovery/info.js +141 -0
- package/dist/internal/discovery/instructions.d.ts +7 -0
- package/dist/internal/discovery/instructions.d.ts.map +1 -0
- package/dist/internal/discovery/instructions.js +95 -0
- package/dist/internal/discovery/modules.d.ts +20 -0
- package/dist/internal/discovery/modules.d.ts.map +1 -0
- package/dist/internal/discovery/modules.js +101 -0
- package/dist/internal/discovery/names.d.ts +12 -0
- package/dist/internal/discovery/names.d.ts.map +1 -0
- package/dist/internal/discovery/names.js +36 -0
- package/dist/internal/discovery/project.d.ts +53 -0
- package/dist/internal/discovery/project.d.ts.map +1 -0
- package/dist/internal/discovery/project.js +239 -0
- package/dist/internal/discovery/runtime.d.ts +34 -0
- package/dist/internal/discovery/runtime.d.ts.map +1 -0
- package/dist/internal/discovery/runtime.js +98 -0
- package/dist/internal/discovery/schedules.d.ts +7 -0
- package/dist/internal/discovery/schedules.d.ts.map +1 -0
- package/dist/internal/discovery/schedules.js +97 -0
- package/dist/internal/discovery/seed-files.d.ts +7 -0
- package/dist/internal/discovery/seed-files.d.ts.map +1 -0
- package/dist/internal/discovery/seed-files.js +41 -0
- package/dist/internal/discovery/services.d.ts +17 -0
- package/dist/internal/discovery/services.d.ts.map +1 -0
- package/dist/internal/discovery/services.js +104 -0
- package/dist/internal/discovery/skills.d.ts +16 -0
- package/dist/internal/discovery/skills.d.ts.map +1 -0
- package/dist/internal/discovery/skills.js +151 -0
- package/dist/internal/discovery/subagent.d.ts +13 -0
- package/dist/internal/discovery/subagent.d.ts.map +1 -0
- package/dist/internal/discovery/subagent.js +19 -0
- package/dist/internal/discovery/tools.d.ts +18 -0
- package/dist/internal/discovery/tools.d.ts.map +1 -0
- package/dist/internal/discovery/tools.js +159 -0
- package/dist/internal/discovery.d.ts +8 -62
- package/dist/internal/discovery.d.ts.map +1 -1
- package/dist/internal/discovery.js +8 -2210
- package/dist/internal/distribution.d.ts.map +1 -1
- package/dist/internal/distribution.js +5 -0
- package/dist/internal/framework-file-storage.d.ts +3 -3
- package/dist/internal/framework-file-storage.d.ts.map +1 -1
- package/dist/internal/framework-file-storage.js +38 -9
- package/dist/internal/framework-storage-selection.d.ts.map +1 -1
- package/dist/internal/framework-storage-selection.js +8 -7
- package/dist/internal/frontmatter.d.ts +11 -3
- package/dist/internal/frontmatter.d.ts.map +1 -1
- package/dist/internal/frontmatter.js +29 -3
- package/dist/internal/hosted-delivery.d.ts +3 -1
- package/dist/internal/hosted-delivery.d.ts.map +1 -1
- package/dist/internal/hosted-delivery.js +19 -32
- package/dist/internal/hosted-execution-diag.d.ts +5 -0
- package/dist/internal/hosted-execution-diag.d.ts.map +1 -1
- package/dist/internal/hosted-execution-diag.js +5 -0
- package/dist/internal/hosted-execution-flush.d.ts +46 -0
- package/dist/internal/hosted-execution-flush.d.ts.map +1 -0
- package/dist/internal/hosted-execution-flush.js +81 -0
- package/dist/internal/mcp-endpoint.js +1 -0
- package/dist/internal/mcp-host.d.ts +2 -1
- package/dist/internal/mcp-host.d.ts.map +1 -1
- package/dist/internal/mcp-host.js +66 -29
- package/dist/internal/otel/collector.d.ts +13 -0
- package/dist/internal/otel/collector.d.ts.map +1 -1
- package/dist/internal/otel/collector.js +84 -17
- package/dist/internal/otel/http.d.ts.map +1 -1
- package/dist/internal/otel/http.js +2 -10
- package/dist/internal/otel/mcp.d.ts +16 -0
- package/dist/internal/otel/mcp.d.ts.map +1 -0
- package/dist/internal/otel/mcp.js +68 -0
- package/dist/internal/otel/propagation.d.ts +6 -0
- package/dist/internal/otel/propagation.d.ts.map +1 -0
- package/dist/internal/otel/propagation.js +14 -0
- package/dist/internal/otel/runtime.d.ts.map +1 -1
- package/dist/internal/otel/runtime.js +2 -0
- package/dist/internal/review-comments.d.ts +1 -1
- package/dist/internal/review-comments.d.ts.map +1 -1
- package/dist/internal/review-comments.js +4 -4
- package/dist/internal/server.d.ts +3 -0
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +79 -104
- package/dist/internal/session-engine.d.ts +14 -7
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +113 -66
- package/dist/internal/session-run-log.d.ts +3 -1
- package/dist/internal/session-run-log.d.ts.map +1 -1
- package/dist/internal/session-run-log.js +14 -14
- package/dist/internal/start-log-store.d.ts +60 -0
- package/dist/internal/start-log-store.d.ts.map +1 -0
- package/dist/internal/start-log-store.js +149 -0
- package/dist/internal/storage-coordinator.d.ts +4 -1
- package/dist/internal/storage-coordinator.d.ts.map +1 -1
- package/dist/internal/storage-coordinator.js +15 -13
- package/dist/internal/tool-catalog.d.ts.map +1 -1
- package/dist/internal/tool-catalog.js +9 -6
- package/dist/internal/tool-policy.d.ts +8 -0
- package/dist/internal/tool-policy.d.ts.map +1 -1
- package/dist/internal/tool-policy.js +19 -7
- package/dist/internal/turn-cost.d.ts +14 -0
- package/dist/internal/turn-cost.d.ts.map +1 -1
- package/dist/internal/turn-cost.js +41 -9
- package/dist/internal/v2-hosting.d.ts +22 -0
- package/dist/internal/v2-hosting.d.ts.map +1 -0
- package/dist/internal/v2-hosting.js +23 -0
- package/dist/otel.d.ts +16 -0
- package/dist/otel.d.ts.map +1 -1
- package/dist/otel.js +26 -0
- package/dist/playground/assets/index-B6C9S9nG.css +1 -0
- package/dist/playground/assets/{index-DVs98vPL.js → index-ZqNoT8Ie.js} +45 -45
- package/dist/playground/index.html +2 -2
- package/dist/storage-protocol.d.ts +47 -22
- package/dist/storage-protocol.d.ts.map +1 -1
- package/dist/storage-protocol.js +90 -54
- package/dist/storage.d.ts +2 -2
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +1 -1
- package/dist/tools.d.ts +9 -0
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +9 -0
- package/dist/types.d.ts +154 -6
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +29 -1
- package/docs/README.md +5 -1
- package/docs/concepts.md +3 -3
- package/docs/guides/cloud-agents.md +98 -0
- package/docs/guides/cloud-runtime.md +2 -0
- package/docs/reference/connections.md +31 -0
- package/docs/reference/extensions.md +205 -0
- package/docs/reference/http-api.md +1 -1
- package/docs/reference/project-layout.md +3 -0
- package/docs/reference/skills.md +2 -0
- package/docs/reference/tools.md +2 -0
- package/package.json +18 -4
- package/skills/framework-map/SKILL.md +1 -0
- package/src/bin/agent-serve.ts +11 -2
- package/src/channels/deployments/deployments-channel.ts +117 -8
- package/src/channels/deployments/types.ts +4 -3
- package/src/channels/origin/defaults.ts +143 -0
- package/src/channels/origin/index.ts +2 -0
- package/src/channels/origin/origin-channel.ts +37 -1
- package/src/channels/origin/state.ts +54 -0
- package/src/channels/origin/types.ts +24 -0
- package/src/channels/slack/api.ts +6 -3
- package/src/channels/slack/assistant.ts +1 -1
- package/src/channels/slack/code-fences.ts +183 -0
- package/src/channels/slack/dispatch.ts +27 -2
- package/src/channels/slack/inbound.ts +37 -0
- package/src/channels/slack/index.ts +1 -0
- package/src/channels/slack/live-delivery.ts +16 -13
- package/src/channels/slack/manifest.ts +2 -1
- package/src/connections.ts +18 -1
- package/src/extensions/cursor-cloud-agents/extension.ts +120 -0
- package/src/extensions/cursor-cloud-agents/lib/backend.ts +395 -0
- package/src/extensions/cursor-cloud-agents/lib/fleet.ts +109 -0
- package/src/extensions/cursor-cloud-agents/lib/inputs.ts +5 -0
- package/src/extensions/cursor-cloud-agents/lib/repos.ts +81 -0
- package/src/extensions/cursor-cloud-agents/lib/transcript.ts +23 -0
- package/src/extensions/cursor-cloud-agents/skills/handoff.md +41 -0
- package/src/extensions/cursor-cloud-agents/tools/cancel.ts +19 -0
- package/src/extensions/cursor-cloud-agents/tools/dump.ts +51 -0
- package/src/extensions/cursor-cloud-agents/tools/get.ts +18 -0
- package/src/extensions/cursor-cloud-agents/tools/launch.ts +64 -0
- package/src/extensions/cursor-cloud-agents/tools/list.ts +31 -0
- package/src/extensions/cursor-cloud-agents/tools/reply.ts +34 -0
- package/src/extensions.ts +141 -0
- package/src/files-backends/cursor-hosted.ts +1 -17
- package/src/files.ts +43 -34
- package/src/index.ts +11 -0
- package/src/internal/advertise-tools.ts +37 -12
- package/src/internal/as-of.ts +163 -0
- package/src/internal/cli-deploy.ts +86 -23
- package/src/internal/continuation-identity.ts +3 -1
- package/src/internal/conversation-mirror.ts +23 -18
- package/src/internal/cursor/backend-client.ts +32 -10
- package/src/internal/cursor/hosted-deployment-secrets.ts +72 -0
- package/src/internal/cursor/hosted-store-secrets.ts +27 -0
- package/src/internal/cursor-deployment-relay.ts +65 -8
- package/src/internal/deploy-client.ts +73 -18
- package/src/internal/discovery/ab.ts +111 -0
- package/src/internal/discovery/agent-config.ts +222 -0
- package/src/internal/discovery/agent.ts +360 -0
- package/src/internal/discovery/channels.ts +103 -0
- package/src/internal/discovery/connections.ts +540 -0
- package/src/internal/discovery/context.ts +46 -0
- package/src/internal/discovery/cursor-plugin.ts +708 -0
- package/src/internal/discovery/extensions.ts +348 -0
- package/src/internal/discovery/fs.ts +108 -0
- package/src/internal/discovery/hooks.ts +45 -0
- package/src/internal/discovery/info.ts +179 -0
- package/src/internal/discovery/instructions.ts +113 -0
- package/src/internal/discovery/modules.ts +107 -0
- package/src/internal/discovery/names.ts +44 -0
- package/src/internal/discovery/project.ts +270 -0
- package/src/internal/discovery/runtime.ts +159 -0
- package/src/internal/discovery/schedules.ts +94 -0
- package/src/internal/discovery/seed-files.ts +37 -0
- package/src/internal/discovery/services.ts +124 -0
- package/src/internal/discovery/skills.ts +176 -0
- package/src/internal/discovery/subagent.ts +29 -0
- package/src/internal/discovery/tools.ts +182 -0
- package/src/internal/discovery.ts +20 -2724
- package/src/internal/distribution.ts +5 -0
- package/src/internal/framework-file-storage.ts +43 -9
- package/src/internal/framework-storage-selection.ts +9 -9
- package/src/internal/frontmatter.ts +36 -3
- package/src/internal/hosted-delivery.ts +38 -63
- package/src/internal/hosted-execution-diag.ts +6 -0
- package/src/internal/hosted-execution-flush.ts +142 -0
- package/src/internal/mcp-endpoint.ts +1 -0
- package/src/internal/mcp-host.ts +116 -37
- package/src/internal/otel/collector.ts +125 -25
- package/src/internal/otel/http.ts +2 -12
- package/src/internal/otel/mcp.ts +69 -0
- package/src/internal/otel/propagation.ts +17 -0
- package/src/internal/otel/runtime.ts +2 -0
- package/src/internal/review-comments.ts +5 -2
- package/src/internal/server.ts +81 -100
- package/src/internal/session-engine.ts +152 -39
- package/src/internal/session-run-log.ts +18 -16
- package/src/internal/start-log-store.ts +174 -0
- package/src/internal/storage-coordinator.ts +19 -16
- package/src/internal/tool-catalog.ts +9 -6
- package/src/internal/tool-policy.ts +39 -9
- package/src/internal/turn-cost.ts +47 -4
- package/src/internal/v2-hosting.ts +38 -0
- package/src/otel.ts +38 -0
- package/src/storage-protocol.ts +126 -79
- package/src/storage.ts +5 -0
- package/src/tools.ts +18 -0
- package/src/types.ts +213 -14
- package/dist/docs/assets/chunks/@localSearchIndexroot.j70vvPL4.js +0 -1
- package/dist/docs/assets/concepts.md.lwAgBIMI.js +0 -1
- package/dist/docs/assets/index.md.Bb4k8kUm.js +0 -5
- package/dist/docs/assets/skills_framework-map.md.BTi817yv.js +0 -1
- package/dist/playground/assets/index-BszoQDc6.css +0 -1
- /package/dist/docs/assets/{concepts.md.lwAgBIMI.lean.js → concepts.md.rPzW2HZN.lean.js} +0 -0
- /package/dist/docs/assets/{guides_cloud-runtime.md.CkYbjnAX.lean.js → guides_cloud-runtime.md.BRirbRAN.lean.js} +0 -0
- /package/dist/docs/assets/{reference_http-api.md.BEJx9XVj.lean.js → reference_http-api.md.oySXBO8o.lean.js} +0 -0
- /package/dist/docs/assets/{reference_skills.md.BFW9retM.lean.js → reference_skills.md.l2ezAcaN.lean.js} +0 -0
- /package/dist/docs/assets/{reference_tools.md.CvAHsdSp.lean.js → reference_tools.md.B1up2r9W.lean.js} +0 -0
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
* seam deliberately does not touch.
|
|
24
24
|
*/
|
|
25
25
|
import type { ABMetricSample } from "../ab.js";
|
|
26
|
-
import { type ResolvedStoragePolicy, type StorageContext, type StorageDefinition } from "../storage.js";
|
|
26
|
+
import { type ResolvedStoragePolicy, type StorageContext, type StorageDefinition, type StorageKeys } from "../storage.js";
|
|
27
27
|
import type { JsonValue, SessionEvent, SessionRecord } from "../types.js";
|
|
28
28
|
import type { ABSnapshot } from "./ab-snapshot.js";
|
|
29
29
|
import type { EvalRunStorage } from "./eval-run-store.js";
|
|
@@ -33,10 +33,13 @@ export interface StorageCoordinatorOptions {
|
|
|
33
33
|
agentName: string;
|
|
34
34
|
projectRoot: string;
|
|
35
35
|
logger: (line: string) => void;
|
|
36
|
+
/** Defaults to the architecture-v1 key contract. */
|
|
37
|
+
keys?: StorageKeys;
|
|
36
38
|
}
|
|
37
39
|
export declare class StorageCoordinator implements FrameworkSessionStore, AuthorKvStore, EvalAbStore {
|
|
38
40
|
readonly policy: ResolvedStoragePolicy;
|
|
39
41
|
private readonly definition;
|
|
42
|
+
private readonly keys;
|
|
40
43
|
private readonly agentName;
|
|
41
44
|
private readonly projectRoot;
|
|
42
45
|
private readonly logger;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage-coordinator.d.ts","sourceRoot":"","sources":["../../src/internal/storage-coordinator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,EACL,KAAK,qBAAqB,EAE1B,KAAK,cAAc,EACnB,KAAK,iBAAiB,
|
|
1
|
+
{"version":3,"file":"storage-coordinator.d.ts","sourceRoot":"","sources":["../../src/internal/storage-coordinator.ts"],"names":[],"mappings":"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"}
|
|
@@ -72,6 +72,7 @@ function sessionRecordsOf(entries) {
|
|
|
72
72
|
}
|
|
73
73
|
export class StorageCoordinator {
|
|
74
74
|
constructor(options) {
|
|
75
|
+
var _a;
|
|
75
76
|
/** Per-session pending state (events + coalesced record). */
|
|
76
77
|
this.buffers = new Map();
|
|
77
78
|
/**
|
|
@@ -88,6 +89,7 @@ export class StorageCoordinator {
|
|
|
88
89
|
this.lastAbSnapshotAt = 0;
|
|
89
90
|
this.closed = false;
|
|
90
91
|
this.definition = options.definition;
|
|
92
|
+
this.keys = (_a = options.keys) !== null && _a !== void 0 ? _a : storageKeys;
|
|
91
93
|
this.policy = resolveStoragePolicy(options.definition.policy);
|
|
92
94
|
this.agentName = options.agentName;
|
|
93
95
|
this.projectRoot = options.projectRoot;
|
|
@@ -155,10 +157,10 @@ export class StorageCoordinator {
|
|
|
155
157
|
const ops = [];
|
|
156
158
|
const first = buffer.events[0];
|
|
157
159
|
if (first !== undefined) {
|
|
158
|
-
ops.push(this.putOp(
|
|
160
|
+
ops.push(this.putOp(this.keys.sessionEvents(this.agentName, sessionId, first.index), buffer.events));
|
|
159
161
|
}
|
|
160
162
|
if (buffer.record !== undefined) {
|
|
161
|
-
ops.push(this.putOp(
|
|
163
|
+
ops.push(this.putOp(this.keys.session(this.agentName, sessionId), buffer.record));
|
|
162
164
|
ops.push(...this.continuationOps(buffer.record));
|
|
163
165
|
}
|
|
164
166
|
if (ops.length > 0) {
|
|
@@ -178,10 +180,10 @@ export class StorageCoordinator {
|
|
|
178
180
|
this.continuationIndex.set(record.sessionId, next);
|
|
179
181
|
const ops = [];
|
|
180
182
|
if (previous != null) {
|
|
181
|
-
ops.push(this.deleteOp(
|
|
183
|
+
ops.push(this.deleteOp(this.keys.continuation(this.agentName, record.channelId, previous)));
|
|
182
184
|
}
|
|
183
185
|
if (next != null) {
|
|
184
|
-
ops.push(this.putOp(
|
|
186
|
+
ops.push(this.putOp(this.keys.continuation(this.agentName, record.channelId, next), { sessionId: record.sessionId }));
|
|
185
187
|
}
|
|
186
188
|
return ops;
|
|
187
189
|
}
|
|
@@ -220,7 +222,7 @@ export class StorageCoordinator {
|
|
|
220
222
|
*/
|
|
221
223
|
listSessions() {
|
|
222
224
|
return __awaiter(this, void 0, void 0, function* () {
|
|
223
|
-
const entries = yield this.tryList(
|
|
225
|
+
const entries = yield this.tryList(this.keys.sessionPrefix(this.agentName));
|
|
224
226
|
return entries
|
|
225
227
|
.map((entry) => entry.value)
|
|
226
228
|
.filter((record) => record != null);
|
|
@@ -237,7 +239,7 @@ export class StorageCoordinator {
|
|
|
237
239
|
if (list === undefined) {
|
|
238
240
|
throw new Error("storage sink has no list");
|
|
239
241
|
}
|
|
240
|
-
const entries = yield list(
|
|
242
|
+
const entries = yield list(this.keys.sessionPrefix(this.agentName), this.context("restore"));
|
|
241
243
|
if (!Array.isArray(entries)) {
|
|
242
244
|
throw new Error("storage list returned a non-array");
|
|
243
245
|
}
|
|
@@ -256,7 +258,7 @@ export class StorageCoordinator {
|
|
|
256
258
|
if (listNewest === undefined) {
|
|
257
259
|
return undefined;
|
|
258
260
|
}
|
|
259
|
-
const entries = yield listNewest(
|
|
261
|
+
const entries = yield listNewest(this.keys.sessionPrefix(this.agentName), limit, this.context("restore"));
|
|
260
262
|
if (!Array.isArray(entries)) {
|
|
261
263
|
throw new Error("storage listNewest returned a non-array");
|
|
262
264
|
}
|
|
@@ -270,7 +272,7 @@ export class StorageCoordinator {
|
|
|
270
272
|
*/
|
|
271
273
|
listSessionEvents(sessionId) {
|
|
272
274
|
return __awaiter(this, void 0, void 0, function* () {
|
|
273
|
-
const entries = yield this.tryList(
|
|
275
|
+
const entries = yield this.tryList(this.keys.sessionEventsPrefix(this.agentName, sessionId));
|
|
274
276
|
const events = [];
|
|
275
277
|
for (const entry of entries) {
|
|
276
278
|
if (Array.isArray(entry.value)) {
|
|
@@ -296,7 +298,7 @@ export class StorageCoordinator {
|
|
|
296
298
|
return undefined;
|
|
297
299
|
}
|
|
298
300
|
const ctx = this.context("restore");
|
|
299
|
-
const record = (yield get(
|
|
301
|
+
const record = (yield get(this.keys.session(this.agentName, sessionId), ctx));
|
|
300
302
|
if (record == null) {
|
|
301
303
|
return undefined;
|
|
302
304
|
}
|
|
@@ -322,7 +324,7 @@ export class StorageCoordinator {
|
|
|
322
324
|
return undefined;
|
|
323
325
|
}
|
|
324
326
|
const ctx = this.context("restore");
|
|
325
|
-
const pointer = yield get(
|
|
327
|
+
const pointer = yield get(this.keys.continuation(this.agentName, channelId, continuationKey), ctx);
|
|
326
328
|
if (pointer == null) {
|
|
327
329
|
return undefined;
|
|
328
330
|
}
|
|
@@ -370,7 +372,7 @@ export class StorageCoordinator {
|
|
|
370
372
|
if (get === undefined) {
|
|
371
373
|
throw new Error("storage get is not configured");
|
|
372
374
|
}
|
|
373
|
-
const key =
|
|
375
|
+
const key = this.keys.kv(this.agentName, authorKey);
|
|
374
376
|
// Preserve stored JSON `null` (distinct from a missing key).
|
|
375
377
|
return yield get(key, this.context("restore"));
|
|
376
378
|
});
|
|
@@ -381,7 +383,7 @@ export class StorageCoordinator {
|
|
|
381
383
|
*/
|
|
382
384
|
kvPut(authorKey, value) {
|
|
383
385
|
return __awaiter(this, void 0, void 0, function* () {
|
|
384
|
-
const key =
|
|
386
|
+
const key = this.keys.kv(this.agentName, authorKey);
|
|
385
387
|
yield this.definition.put(key, value, this.context("policy"));
|
|
386
388
|
});
|
|
387
389
|
}
|
|
@@ -389,7 +391,7 @@ export class StorageCoordinator {
|
|
|
389
391
|
kvDelete(authorKey) {
|
|
390
392
|
return __awaiter(this, void 0, void 0, function* () {
|
|
391
393
|
var _a, _b;
|
|
392
|
-
const key =
|
|
394
|
+
const key = this.keys.kv(this.agentName, authorKey);
|
|
393
395
|
yield (_b = (_a = this.definition).delete) === null || _b === void 0 ? void 0 : _b.call(_a, key, this.context("policy"));
|
|
394
396
|
});
|
|
395
397
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-catalog.d.ts","sourceRoot":"","sources":["../../src/internal/tool-catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,aAAa,EACd,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-catalog.d.ts","sourceRoot":"","sources":["../../src/internal/tool-catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,aAAa,EACd,MAAM,aAAa,CAAC;AAuDrB,sEAAsE;AACtE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qDAAqD;AACrD,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,aAAa,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAChC,WAAW,EAAE,gBAAgB,CAAC;IAC9B,YAAY,CAAC,EAAE,gBAAgB,CAAC;CACjC;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc,GAAG,gBAAgB,CAMvE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,cAAc,GAAG,kBAAkB,CAU3E"}
|
|
@@ -15,13 +15,16 @@
|
|
|
15
15
|
* presentation concern is not worth the authoring surface).
|
|
16
16
|
*/
|
|
17
17
|
const WELL_KNOWN_TOOL_TITLES = {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
18
|
+
Delete: "Delete a file",
|
|
19
|
+
Diff: "Show change diffs",
|
|
20
|
+
Glob: "Find files by pattern",
|
|
21
|
+
Grep: "Search file contents",
|
|
22
|
+
LS: "List a directory",
|
|
23
|
+
Read: "Read a file",
|
|
24
|
+
StrReplace: "Replace text in a file",
|
|
25
|
+
Write: "Write a file",
|
|
26
|
+
script: "Run a TypeScript program",
|
|
23
27
|
search: "Search with a typed query",
|
|
24
|
-
write: "Write a file",
|
|
25
28
|
};
|
|
26
29
|
function catalogTitle(tool) {
|
|
27
30
|
var _a;
|
|
@@ -68,6 +68,14 @@ export interface ToolCallFacts {
|
|
|
68
68
|
asOf?: string;
|
|
69
69
|
/** The tool's declared time-bound argument names, if it made them. */
|
|
70
70
|
timeArgs?: readonly string[];
|
|
71
|
+
/**
|
|
72
|
+
* String-typed time-window property names a vendor tool's own input schema
|
|
73
|
+
* declares (`from`/`to`/`since`/...). In a frozen session a call that omits
|
|
74
|
+
* one is refused: the vendor fills an omitted window with a live default
|
|
75
|
+
* the argument walker can never see. Advertised/bridged MCP tools only —
|
|
76
|
+
* authored tools declare {@link timeArgs} instead.
|
|
77
|
+
*/
|
|
78
|
+
timeWindow?: readonly string[];
|
|
71
79
|
}
|
|
72
80
|
/**
|
|
73
81
|
* The effect of one specific call.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-policy.d.ts","sourceRoot":"","sources":["../../src/internal/tool-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAClB,UAAU,EACV,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-policy.d.ts","sourceRoot":"","sources":["../../src/internal/tool-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAClB,UAAU,EACV,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAOrB,6CAA6C;AAC7C,MAAM,MAAM,YAAY;AACtB,yBAAyB;AACvB;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE;AACjB,uDAAuD;GACrD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,iBAAiB,CAAA;CAAE;AAC/C;;;;;GAKG;GACD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACrC;;;GAGG;GACD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3C,2DAA2D;AAC3D,MAAM,WAAW,aAAa;IAC5B,0DAA0D;IAC1D,MAAM,EAAE,OAAO,CAAC;IAChB,8CAA8C;IAC9C,MAAM,EAAE,qBAAqB,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IACjD;;;;;;OAMG;IACH,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,kBAAkB,CAAA;KAAE,CAAC;IAC7D,yEAAyE;IACzE,YAAY,CAAC,EAAE,iBAAiB,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,iBAAiB,CAAC,CAAC;IACzE;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,qDAAqD;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAChC;AAUD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,qBAAqB,CAAC,KAAK,CAAC,GAAG,SAAS,EAChD,KAAK,EAAE,OAAO,GACb,UAAU,CAIZ;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,kBAAkB,GAAG,SAAS,GAC1C,UAAU,GAAG,SAAS,CAiBxB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,YAAY,GAAG,aAAa,GAAG,YAAY,CAAC,EACvE,KAAK,EAAE,OAAO,GACb,UAAU,GAAG,SAAS,CAKxB;AAkBD,4EAA4E;AAC5E,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,YAAY,CAyDjE"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* decision lives here, in one pure function, and every path asks it rather
|
|
9
9
|
* than re-implementing it.
|
|
10
10
|
*/
|
|
11
|
-
import { timeArgViolation } from "./as-of.js";
|
|
11
|
+
import { forwardTimeArgument, missingTimeWindow, timeArgViolation, } from "./as-of.js";
|
|
12
12
|
/**
|
|
13
13
|
* What a stubbed write answers. Deliberately not self-describing: a model told
|
|
14
14
|
* mid-turn that its writes are not real starts hedging its conclusions, and
|
|
@@ -82,12 +82,24 @@ function unclassifiedRefusal(toolName) {
|
|
|
82
82
|
export function decideToolCall(facts) {
|
|
83
83
|
// Before the dry-run split: a frozen session bounds its reads whether or
|
|
84
84
|
// not its writes are stubbed.
|
|
85
|
-
if (facts.asOf !== undefined
|
|
86
|
-
facts.timeArgs !== undefined &&
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
85
|
+
if (facts.asOf !== undefined) {
|
|
86
|
+
if (facts.timeArgs !== undefined && facts.timeArgs.length > 0) {
|
|
87
|
+
const violation = timeArgViolation(facts.input, facts.timeArgs, facts.asOf);
|
|
88
|
+
if (violation !== undefined) {
|
|
89
|
+
return { kind: "unbounded", message: violation };
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
const forward = forwardTimeArgument(facts.input, facts.asOf);
|
|
93
|
+
if (forward !== undefined) {
|
|
94
|
+
return { kind: "unbounded", message: forward };
|
|
95
|
+
}
|
|
96
|
+
// Present values are checked above; absent ones are the vendor's live
|
|
97
|
+
// default window, which no walker can see. Require them explicitly.
|
|
98
|
+
if (facts.timeWindow !== undefined) {
|
|
99
|
+
const omitted = missingTimeWindow(facts.input, facts.timeWindow, facts.asOf);
|
|
100
|
+
if (omitted !== undefined) {
|
|
101
|
+
return { kind: "unbounded", message: omitted };
|
|
102
|
+
}
|
|
91
103
|
}
|
|
92
104
|
}
|
|
93
105
|
if (!facts.dryRun) {
|
|
@@ -17,6 +17,20 @@ export interface EstimateTurnCostInput {
|
|
|
17
17
|
}
|
|
18
18
|
export type EstimateTurnCostFn = (input: EstimateTurnCostInput) => Promise<TurnCost | undefined>;
|
|
19
19
|
export declare function modelSettingId(model: ModelSetting): string;
|
|
20
|
+
/**
|
|
21
|
+
* This estimate-cost client treats OpenAI-compat usage as **provider-gross**
|
|
22
|
+
* (local playground: `prompt_tokens` includes `cachedPromptTokens`). Catalog
|
|
23
|
+
* `costForBaseTier` assumes Anthropic / billing-style disjoint nets and ADDs
|
|
24
|
+
* `cacheRead × cachedRate` on top of `input × inputRate`, so we send
|
|
25
|
+
* `input − cache` for Grok / xAI / GPT / o-series.
|
|
26
|
+
*
|
|
27
|
+
* Non-OpenAI-compat models are left alone. `input < cache` is only a
|
|
28
|
+
* defensive clamp (avoid a negative uncached count), not a detector for
|
|
29
|
+
* billed / openaiProxy-shaped tokens. Cloud catalog fallback with already-
|
|
30
|
+
* netted OpenAI-compat usage is out of scope here.
|
|
31
|
+
*/
|
|
32
|
+
export declare function isOpenAiCompatGrossCacheModel(model: ModelSetting): boolean;
|
|
33
|
+
export declare function toCatalogDisjointUsage(usage: TurnUsage, model?: ModelSetting): TurnUsage;
|
|
20
34
|
export declare function roundCostUsd(usd: number): number;
|
|
21
35
|
export declare function turnCostFromCents(args: {
|
|
22
36
|
model: string | ModelSetting;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turn-cost.d.ts","sourceRoot":"","sources":["../../src/internal/turn-cost.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGrE,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,kBAAkB,GAAG,CAC/B,KAAK,EAAE,qBAAqB,KACzB,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;AAEnC,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAE1D;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,KAAK,EAAE,MAAM,GAAG,YAAY,CAAC;IAC7B,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;CAC5B,GAAG,QAAQ,CAeX;AAQD,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"turn-cost.d.ts","sourceRoot":"","sources":["../../src/internal/turn-cost.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGrE,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,kBAAkB,GAAG,CAC/B,KAAK,EAAE,qBAAqB,KACzB,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;AAEnC,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAE1D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAQ1E;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,SAAS,EAChB,KAAK,CAAC,EAAE,YAAY,GACnB,SAAS,CAYX;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,KAAK,EAAE,MAAM,GAAG,YAAY,CAAC;IAC7B,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;CAC5B,GAAG,QAAQ,CAeX;AAQD,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAkD/B"}
|
|
@@ -16,6 +16,35 @@ import { cursorExternalApiUrl, resolveApiKey } from "./cursor/credentials.js";
|
|
|
16
16
|
export function modelSettingId(model) {
|
|
17
17
|
return typeof model === "string" ? model : model.id;
|
|
18
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* This estimate-cost client treats OpenAI-compat usage as **provider-gross**
|
|
21
|
+
* (local playground: `prompt_tokens` includes `cachedPromptTokens`). Catalog
|
|
22
|
+
* `costForBaseTier` assumes Anthropic / billing-style disjoint nets and ADDs
|
|
23
|
+
* `cacheRead × cachedRate` on top of `input × inputRate`, so we send
|
|
24
|
+
* `input − cache` for Grok / xAI / GPT / o-series.
|
|
25
|
+
*
|
|
26
|
+
* Non-OpenAI-compat models are left alone. `input < cache` is only a
|
|
27
|
+
* defensive clamp (avoid a negative uncached count), not a detector for
|
|
28
|
+
* billed / openaiProxy-shaped tokens. Cloud catalog fallback with already-
|
|
29
|
+
* netted OpenAI-compat usage is out of scope here.
|
|
30
|
+
*/
|
|
31
|
+
export function isOpenAiCompatGrossCacheModel(model) {
|
|
32
|
+
const id = modelSettingId(model).toLowerCase();
|
|
33
|
+
return (id.includes("grok") ||
|
|
34
|
+
id.includes("xai") ||
|
|
35
|
+
id.includes("gpt") ||
|
|
36
|
+
/(^|[-_/])o[1-9]/.test(id));
|
|
37
|
+
}
|
|
38
|
+
export function toCatalogDisjointUsage(usage, model) {
|
|
39
|
+
if (model === undefined || !isOpenAiCompatGrossCacheModel(model)) {
|
|
40
|
+
return usage;
|
|
41
|
+
}
|
|
42
|
+
const cachedTokens = usage.cacheReadTokens + usage.cacheWriteTokens;
|
|
43
|
+
if (cachedTokens === 0 || usage.inputTokens < cachedTokens) {
|
|
44
|
+
return usage;
|
|
45
|
+
}
|
|
46
|
+
return Object.assign(Object.assign({}, usage), { inputTokens: usage.inputTokens - cachedTokens });
|
|
47
|
+
}
|
|
19
48
|
export function roundCostUsd(usd) {
|
|
20
49
|
return Math.round(usd * 1e6) / 1e6;
|
|
21
50
|
}
|
|
@@ -36,13 +65,16 @@ export function turnCostFromCents(args) {
|
|
|
36
65
|
}
|
|
37
66
|
export function estimateTurnCostFromApi(input) {
|
|
38
67
|
return __awaiter(this, void 0, void 0, function* () {
|
|
39
|
-
var _a
|
|
40
|
-
var
|
|
68
|
+
var _a;
|
|
69
|
+
var _b;
|
|
41
70
|
const resolved = yield resolveApiKey();
|
|
42
71
|
if (resolved === undefined) {
|
|
43
72
|
return undefined;
|
|
44
73
|
}
|
|
45
74
|
const model = modelSettingId(input.model);
|
|
75
|
+
const catalogUsage = input.usage === undefined
|
|
76
|
+
? undefined
|
|
77
|
+
: toCatalogDisjointUsage(input.usage, input.model);
|
|
46
78
|
const response = yield fetch(`${cursorExternalApiUrl()}/v1/models/estimate-cost`, {
|
|
47
79
|
method: "POST",
|
|
48
80
|
headers: {
|
|
@@ -51,10 +83,10 @@ export function estimateTurnCostFromApi(input) {
|
|
|
51
83
|
},
|
|
52
84
|
body: JSON.stringify({
|
|
53
85
|
model,
|
|
54
|
-
inputTokens:
|
|
55
|
-
outputTokens:
|
|
56
|
-
cacheReadTokens:
|
|
57
|
-
cacheWriteTokens:
|
|
86
|
+
inputTokens: catalogUsage === null || catalogUsage === void 0 ? void 0 : catalogUsage.inputTokens,
|
|
87
|
+
outputTokens: catalogUsage === null || catalogUsage === void 0 ? void 0 : catalogUsage.outputTokens,
|
|
88
|
+
cacheReadTokens: catalogUsage === null || catalogUsage === void 0 ? void 0 : catalogUsage.cacheReadTokens,
|
|
89
|
+
cacheWriteTokens: catalogUsage === null || catalogUsage === void 0 ? void 0 : catalogUsage.cacheWriteTokens,
|
|
58
90
|
agentId: input.agentId,
|
|
59
91
|
conversationId: input.conversationId,
|
|
60
92
|
runId: input.runId,
|
|
@@ -67,15 +99,15 @@ export function estimateTurnCostFromApi(input) {
|
|
|
67
99
|
try {
|
|
68
100
|
body = (yield response.json());
|
|
69
101
|
}
|
|
70
|
-
catch (
|
|
102
|
+
catch (_c) {
|
|
71
103
|
return undefined;
|
|
72
104
|
}
|
|
73
|
-
if (typeof ((
|
|
105
|
+
if (typeof ((_a = body.cost) === null || _a === void 0 ? void 0 : _a.rawCostCents) !== "number" ||
|
|
74
106
|
typeof body.cost.chargedCents !== "number") {
|
|
75
107
|
return undefined;
|
|
76
108
|
}
|
|
77
109
|
return turnCostFromCents({
|
|
78
|
-
model: (
|
|
110
|
+
model: (_b = body.model) !== null && _b !== void 0 ? _b : model,
|
|
79
111
|
cost: body.cost,
|
|
80
112
|
source: body.source === "usage" ? "usage" : "catalog",
|
|
81
113
|
});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { AgentArchitecture } from "../types.js";
|
|
2
|
+
import { type CursorManagedV2StoreIds } from "./cursor/hosted-store-secrets.js";
|
|
3
|
+
export type AgentV2Hosting = {
|
|
4
|
+
kind: "not-v2";
|
|
5
|
+
} | {
|
|
6
|
+
kind: "self-hosted";
|
|
7
|
+
} | {
|
|
8
|
+
kind: "cursor-managed";
|
|
9
|
+
resolveStoreIds: () => CursorManagedV2StoreIds;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Close the architecture/hosting inputs into a compiler-owned union.
|
|
13
|
+
*
|
|
14
|
+
* Managed freeze processes exist before task bind, so store resolution stays
|
|
15
|
+
* lazy. Consumers can branch once on `kind`; managed storage operations then
|
|
16
|
+
* receive a resolver whose successful result always contains both ids.
|
|
17
|
+
*/
|
|
18
|
+
export declare function resolveAgentV2Hosting(input: {
|
|
19
|
+
architecture: AgentArchitecture | undefined;
|
|
20
|
+
env?: NodeJS.ProcessEnv;
|
|
21
|
+
}): AgentV2Hosting;
|
|
22
|
+
//# sourceMappingURL=v2-hosting.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v2-hosting.d.ts","sourceRoot":"","sources":["../../src/internal/v2-hosting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,kCAAkC,CAAC;AAG1C,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IACE,IAAI,EAAE,gBAAgB,CAAC;IACvB,eAAe,EAAE,MAAM,uBAAuB,CAAC;CAChD,CAAC;AAEN;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,YAAY,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,GAAG,cAAc,CAYjB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { requireCursorManagedV2StoreIdsSync, } from "./cursor/hosted-store-secrets.js";
|
|
2
|
+
import { AGENT_SERVE_GENERATION_ENV_VAR } from "./cursor-relay-core.js";
|
|
3
|
+
/**
|
|
4
|
+
* Close the architecture/hosting inputs into a compiler-owned union.
|
|
5
|
+
*
|
|
6
|
+
* Managed freeze processes exist before task bind, so store resolution stays
|
|
7
|
+
* lazy. Consumers can branch once on `kind`; managed storage operations then
|
|
8
|
+
* receive a resolver whose successful result always contains both ids.
|
|
9
|
+
*/
|
|
10
|
+
export function resolveAgentV2Hosting(input) {
|
|
11
|
+
var _a;
|
|
12
|
+
if (input.architecture !== "v2") {
|
|
13
|
+
return { kind: "not-v2" };
|
|
14
|
+
}
|
|
15
|
+
const env = (_a = input.env) !== null && _a !== void 0 ? _a : process.env;
|
|
16
|
+
if (env[AGENT_SERVE_GENERATION_ENV_VAR] === undefined) {
|
|
17
|
+
return { kind: "self-hosted" };
|
|
18
|
+
}
|
|
19
|
+
return {
|
|
20
|
+
kind: "cursor-managed",
|
|
21
|
+
resolveStoreIds: () => requireCursorManagedV2StoreIdsSync(env),
|
|
22
|
+
};
|
|
23
|
+
}
|
package/dist/otel.d.ts
CHANGED
|
@@ -85,4 +85,20 @@ export type OtelDefinition = OtelConfig & {
|
|
|
85
85
|
};
|
|
86
86
|
/** Author OpenTelemetry export under `agent/otel.ts`. */
|
|
87
87
|
export declare function defineOtel(config?: OtelConfig): OtelDefinition;
|
|
88
|
+
export declare const TRACEPARENT_HEADER = "traceparent";
|
|
89
|
+
/** Cursor backend prefers this; `remoteSpanContextFromRequest` falls back to W3C. */
|
|
90
|
+
export declare const BACKEND_TRACEPARENT_HEADER = "backend-traceparent";
|
|
91
|
+
export declare function formatTraceparent(spanContext: {
|
|
92
|
+
traceId: string;
|
|
93
|
+
spanId: string;
|
|
94
|
+
traceFlags: number;
|
|
95
|
+
}): string | undefined;
|
|
96
|
+
/**
|
|
97
|
+
* Copy the active span onto outbound headers as W3C `traceparent` and
|
|
98
|
+
* Cursor `backend-traceparent`. No-op when no valid span is active.
|
|
99
|
+
*/
|
|
100
|
+
export declare function injectActiveTraceContext(headers: {
|
|
101
|
+
get(name: string): string | null;
|
|
102
|
+
set(name: string, value: string): void;
|
|
103
|
+
}): void;
|
|
88
104
|
//# sourceMappingURL=otel.d.ts.map
|
package/dist/otel.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otel.d.ts","sourceRoot":"","sources":["../src/otel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"otel.d.ts","sourceRoot":"","sources":["../src/otel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAEvD,sDAAsD;AACtD,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;;;OAGG;IACH,QAAQ,CAAC,EAAE,WAAW,GAAG,eAAe,CAAC;IACzC;;;;OAIG;IACH,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,8CAA8C;IAC9C,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iDAAiD;IACjD,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C;;;OAGG;IACH,SAAS,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACjC,4CAA4C;IAC5C,MAAM,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAAC;IACpC,6CAA6C;IAC7C,OAAO,CAAC,EAAE,OAAO,GAAG,iBAAiB,CAAC;IACtC,4DAA4D;IAC5D,IAAI,CAAC,EAAE,OAAO,GAAG,cAAc,CAAC;CACjC;AAED,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG;IAAE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5E,yDAAyD;AACzD,wBAAgB,UAAU,CAAC,MAAM,GAAE,UAAe,GAAG,cAAc,CA+BlE;AA+BD,eAAO,MAAM,kBAAkB,gBAAgB,CAAC;AAChD,qFAAqF;AACrF,eAAO,MAAM,0BAA0B,wBAAwB,CAAC;AAEhE,wBAAgB,iBAAiB,CAAC,WAAW,EAAE;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,MAAM,GAAG,SAAS,CAOrB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAChD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACjC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC,GAAG,IAAI,CAWP"}
|
package/dist/otel.js
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
* });
|
|
12
12
|
* ```
|
|
13
13
|
*/
|
|
14
|
+
import { context, trace } from "@opentelemetry/api";
|
|
14
15
|
import { brandDefinition } from "./internal/brand.js";
|
|
15
16
|
/** Author OpenTelemetry export under `agent/otel.ts`. */
|
|
16
17
|
export function defineOtel(config = {}) {
|
|
@@ -62,3 +63,28 @@ function assertSampleRatio(traces) {
|
|
|
62
63
|
throw new Error("defineOtel: traces.sampleRatio must be in [0, 1]");
|
|
63
64
|
}
|
|
64
65
|
}
|
|
66
|
+
export const TRACEPARENT_HEADER = "traceparent";
|
|
67
|
+
/** Cursor backend prefers this; `remoteSpanContextFromRequest` falls back to W3C. */
|
|
68
|
+
export const BACKEND_TRACEPARENT_HEADER = "backend-traceparent";
|
|
69
|
+
export function formatTraceparent(spanContext) {
|
|
70
|
+
if (!trace.isSpanContextValid(spanContext)) {
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
73
|
+
return `00-${spanContext.traceId}-${spanContext.spanId}-${spanContext.traceFlags.toString(16).padStart(2, "0")}`;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Copy the active span onto outbound headers as W3C `traceparent` and
|
|
77
|
+
* Cursor `backend-traceparent`. No-op when no valid span is active.
|
|
78
|
+
*/
|
|
79
|
+
export function injectActiveTraceContext(headers) {
|
|
80
|
+
const span = trace.getSpan(context.active());
|
|
81
|
+
if (span === undefined) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
const traceparent = formatTraceparent(span.spanContext());
|
|
85
|
+
if (traceparent === undefined) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
headers.set(TRACEPARENT_HEADER, traceparent);
|
|
89
|
+
headers.set(BACKEND_TRACEPARENT_HEADER, traceparent);
|
|
90
|
+
}
|