@cursor/july 0.1.25 → 0.1.27
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/dist/ab.d.ts +6 -0
- package/dist/ab.d.ts.map +1 -1
- package/dist/ab.js +1 -0
- package/dist/artifacts.d.ts +34 -0
- package/dist/artifacts.d.ts.map +1 -0
- package/dist/artifacts.js +57 -0
- package/dist/bin/agent-serve.js +31 -9
- package/dist/channels/github/github-channel.d.ts +1 -1
- package/dist/channels/github/github-channel.d.ts.map +1 -1
- package/dist/channels/github/github-channel.js +14 -1
- package/dist/channels/github/types.d.ts +6 -1
- package/dist/channels/github/types.d.ts.map +1 -1
- package/dist/channels/slack/api.d.ts +2 -1
- package/dist/channels/slack/api.d.ts.map +1 -1
- package/dist/channels/slack/api.js +1 -0
- package/dist/channels/slack/cursor-account.d.ts +2 -1
- package/dist/channels/slack/cursor-account.d.ts.map +1 -1
- package/dist/channels/slack/cursor-account.js +1 -1
- package/dist/channels/slack/dispatch.d.ts +4 -1
- package/dist/channels/slack/dispatch.d.ts.map +1 -1
- package/dist/channels/slack/dispatch.js +3 -3
- package/dist/channels/slack/interactive.d.ts +2 -1
- package/dist/channels/slack/interactive.d.ts.map +1 -1
- package/dist/channels/slack/interactive.js +1 -0
- package/dist/channels/slack/slack-channel.d.ts.map +1 -1
- package/dist/channels/slack/slack-channel.js +4 -3
- package/dist/channels/slack/types.d.ts +6 -1
- package/dist/channels/slack/types.d.ts.map +1 -1
- package/dist/docs/404.html +1 -1
- package/dist/docs/ab.html +2 -2
- package/dist/docs/assets/{app.DYcC9FY-.js → app.BICLoJYF.js} +1 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.CQJytDwU.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.o4N_knTV.js → VPLocalSearchBox.wN4Ko9dT.js} +1 -1
- package/dist/docs/assets/chunks/{theme.DQ-njyo0.js → theme.dnnTE-Co.js} +2 -2
- package/dist/docs/building-with-agents.html +2 -2
- package/dist/docs/concepts.html +2 -2
- package/dist/docs/deployment.html +2 -2
- package/dist/docs/evals.html +2 -2
- package/dist/docs/example-agents/approval-buddy.html +2 -2
- package/dist/docs/example-agents/benny.html +2 -2
- package/dist/docs/example-agents/bugbot.html +2 -2
- package/dist/docs/example-agents/codebase-wiki.html +2 -2
- package/dist/docs/example-agents/codeowners-review.html +2 -2
- package/dist/docs/example-agents/concierge.html +2 -2
- package/dist/docs/example-agents/fsd.html +2 -2
- package/dist/docs/example-agents/index.html +2 -2
- package/dist/docs/example-agents/knowledge-base.html +2 -2
- package/dist/docs/example-agents/oncall.html +2 -2
- package/dist/docs/example-agents/security-reviewer.html +2 -2
- package/dist/docs/example-agents/slack-agent.html +2 -2
- package/dist/docs/example-agents/weather-agent.html +2 -2
- package/dist/docs/guides/agent-to-agent.html +2 -2
- package/dist/docs/guides/cloud-runtime.html +2 -2
- package/dist/docs/guides/github.html +2 -2
- package/dist/docs/guides/human-in-the-loop.html +2 -2
- package/dist/docs/guides/mcp-oauth.html +2 -2
- package/dist/docs/guides/slack.html +2 -2
- package/dist/docs/guides/webhooks.html +2 -2
- package/dist/docs/hillclimbing.html +2 -2
- package/dist/docs/index.html +2 -2
- package/dist/docs/quickstart.html +2 -2
- package/dist/docs/reference/agent-config.html +2 -2
- package/dist/docs/reference/channels.html +2 -2
- package/dist/docs/reference/cli.html +2 -2
- package/dist/docs/reference/connections.html +2 -2
- package/dist/docs/reference/hooks.html +2 -2
- package/dist/docs/reference/http-api.html +2 -2
- package/dist/docs/reference/instructions.html +2 -2
- package/dist/docs/reference/playground.html +2 -2
- package/dist/docs/reference/project-layout.html +2 -2
- package/dist/docs/reference/prompt.html +2 -2
- package/dist/docs/reference/schedules.html +2 -2
- package/dist/docs/reference/sessions.html +2 -2
- package/dist/docs/reference/skills.html +2 -2
- package/dist/docs/reference/subagents.html +2 -2
- package/dist/docs/reference/tools.html +2 -2
- package/dist/docs/scaffolding-agents.html +2 -2
- package/dist/docs/storage.html +2 -2
- package/dist/docs/troubleshooting.html +2 -2
- package/dist/evals/assertions.d.ts +10 -1
- package/dist/evals/assertions.d.ts.map +1 -1
- package/dist/evals/assertions.js +12 -0
- package/dist/evals.d.ts +1 -1
- package/dist/evals.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/internal/ab-fold.d.ts.map +1 -1
- package/dist/internal/ab-fold.js +4 -0
- package/dist/internal/ab-snapshot.d.ts.map +1 -1
- package/dist/internal/ab-snapshot.js +1 -0
- package/dist/internal/artifacts-store.d.ts +45 -0
- package/dist/internal/artifacts-store.d.ts.map +1 -0
- package/dist/internal/artifacts-store.js +250 -0
- package/dist/internal/builtin-tools/artifacts.d.ts +10 -0
- package/dist/internal/builtin-tools/artifacts.d.ts.map +1 -0
- package/dist/internal/builtin-tools/artifacts.js +73 -0
- package/dist/internal/builtin-tools/index.d.ts +8 -1
- package/dist/internal/builtin-tools/index.d.ts.map +1 -1
- package/dist/internal/builtin-tools/index.js +15 -0
- package/dist/internal/cli-ax.d.ts +11 -0
- package/dist/internal/cli-ax.d.ts.map +1 -1
- package/dist/internal/cli-ax.js +80 -0
- package/dist/internal/cli-slack.d.ts.map +1 -1
- package/dist/internal/cli-slack.js +14 -6
- package/dist/internal/discovery.d.ts.map +1 -1
- package/dist/internal/discovery.js +83 -2
- package/dist/internal/distribution.d.ts.map +1 -1
- package/dist/internal/distribution.js +1 -0
- package/dist/internal/model-pricing.d.ts +49 -0
- package/dist/internal/model-pricing.d.ts.map +1 -0
- package/dist/internal/model-pricing.js +377 -0
- package/dist/internal/reminder-runner.d.ts.map +1 -1
- package/dist/internal/reminder-runner.js +1 -0
- package/dist/internal/schedule-runner.d.ts.map +1 -1
- package/dist/internal/schedule-runner.js +1 -0
- package/dist/internal/sdk-runner.d.ts.map +1 -1
- package/dist/internal/sdk-runner.js +9 -1
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +39 -0
- package/dist/internal/session-cost.d.ts +49 -0
- package/dist/internal/session-cost.d.ts.map +1 -0
- package/dist/internal/session-cost.js +175 -0
- package/dist/internal/session-engine.d.ts +35 -1
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +128 -7
- package/dist/internal/storage-coordinator.d.ts +15 -0
- package/dist/internal/storage-coordinator.d.ts.map +1 -1
- package/dist/internal/storage-coordinator.js +52 -0
- package/dist/internal/trajectory.d.ts +9 -1
- package/dist/internal/trajectory.d.ts.map +1 -1
- package/dist/internal/trajectory.js +32 -5
- package/dist/playground/assets/index-BDCeW4uc.js +86 -0
- package/dist/playground/assets/index-Bul1WfrB.css +1 -0
- package/dist/playground/index.html +2 -2
- package/dist/storage.d.ts +4 -0
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +4 -0
- package/dist/types.d.ts +164 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +26 -26
- package/src/ab.ts +7 -0
- package/src/bin/agent-serve.ts +30 -2
- package/src/channels/github/github-channel.ts +19 -2
- package/src/channels/github/types.ts +6 -0
- package/src/channels/slack/api.ts +3 -1
- package/src/channels/slack/cursor-account.ts +3 -1
- package/src/channels/slack/dispatch.ts +12 -1
- package/src/channels/slack/interactive.ts +3 -0
- package/src/channels/slack/slack-channel.ts +6 -0
- package/src/channels/slack/types.ts +6 -0
- package/src/internal/ab-fold.ts +4 -0
- package/src/internal/ab-snapshot.ts +1 -0
- package/src/internal/cli-ax.ts +95 -0
- package/src/internal/model-pricing.ts +426 -0
- package/src/internal/reminder-runner.ts +1 -0
- package/src/internal/schedule-runner.ts +1 -0
- package/src/internal/sdk-runner.ts +10 -2
- package/src/internal/server.ts +2 -0
- package/src/internal/session-cost.ts +231 -0
- package/src/internal/session-engine.ts +32 -1
- package/src/internal/trajectory.ts +45 -3
- package/src/types.ts +42 -2
- package/dist/channels/github/instrument.d.ts +0 -20
- package/dist/channels/github/instrument.d.ts.map +0 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.BQTzJjR_.js +0 -1
- package/dist/internal/json-dir-store.d.ts +0 -32
- package/dist/internal/json-dir-store.d.ts.map +0 -1
- package/dist/internal/json-dir-store.js +0 -100
- package/dist/playground/assets/index-CjOQ4hN9.css +0 -1
- package/dist/playground/assets/index-DqXdAFGa.js +0 -85
- package/src/bin/agent-serve.version.test.ts +0 -64
- package/src/channels/github/api.test.ts +0 -64
- package/src/channels/github/auth.test.ts +0 -105
- package/src/channels/github/cursor-account.test.ts +0 -204
- package/src/channels/github/forward.test.ts +0 -457
- package/src/channels/github/github.test.ts +0 -943
- package/src/channels/github/replay.test.ts +0 -179
- package/src/channels/slack/api.post-message.test.ts +0 -148
- package/src/channels/slack/approvals.test.ts +0 -328
- package/src/channels/slack/block-actions.test.ts +0 -452
- package/src/channels/slack/bot-mentions.test.ts +0 -267
- package/src/channels/slack/channel-watch.test.ts +0 -363
- package/src/channels/slack/cursor-account.test.ts +0 -253
- package/src/channels/slack/defaults.final-post.test.ts +0 -182
- package/src/channels/slack/dispatch.test.ts +0 -795
- package/src/channels/slack/eval-directive.test.ts +0 -273
- package/src/channels/slack/message-body.test.ts +0 -54
- package/src/channels/slack/nudge-store.test.ts +0 -143
- package/src/channels/slack/slack.test.ts +0 -391
- package/src/channels/slack/stop.test.ts +0 -23
- package/src/channels/slack/thread-context.test.ts +0 -202
- package/src/evals/assertions.test.ts +0 -617
- package/src/evals/expect.test.ts +0 -144
- package/src/evals/judge.test.ts +0 -181
- package/src/evals/loaders.test.ts +0 -132
- package/src/evals/matchers.test.ts +0 -95
- package/src/evals/reporters.test.ts +0 -303
- package/src/evals/run-facts.test.ts +0 -259
- package/src/internal/ab-snapshot.test.ts +0 -325
- package/src/internal/approval-gate.test.ts +0 -49
- package/src/internal/approvals.integration.test.ts +0 -383
- package/src/internal/artifacts-store.test.ts +0 -283
- package/src/internal/authored-loaders.test.ts +0 -31
- package/src/internal/builtin-tools/artifacts.test.ts +0 -247
- package/src/internal/builtin-tools/reminders.test.ts +0 -201
- package/src/internal/channel-route-schema.test.ts +0 -294
- package/src/internal/chat-attach.test.ts +0 -262
- package/src/internal/cli-deploy.test.ts +0 -1991
- package/src/internal/cli-docs.test.ts +0 -161
- package/src/internal/cli-mcp.test.ts +0 -789
- package/src/internal/cli-skills.test.ts +0 -133
- package/src/internal/cli-slack.test.ts +0 -1654
- package/src/internal/cloud-merge.test.ts +0 -74
- package/src/internal/cron.test.ts +0 -22
- package/src/internal/cursor/account-mcp.test.ts +0 -807
- package/src/internal/cursor/backend-client.test.ts +0 -591
- package/src/internal/cursor/credentials.test.ts +0 -351
- package/src/internal/cursor/github-credentials.test.ts +0 -136
- package/src/internal/cursor-account-mcp-auth.test.ts +0 -310
- package/src/internal/cursor-account.integration.test.ts +0 -441
- package/src/internal/cursor-event-relay.test.ts +0 -746
- package/src/internal/cursor-github-credentials.integration.test.ts +0 -271
- package/src/internal/cursor-slack-relay.test.ts +0 -525
- package/src/internal/deploy-source.test.ts +0 -111
- package/src/internal/discovery.artifact-tool.test.ts +0 -136
- package/src/internal/discovery.artifacts.test.ts +0 -119
- package/src/internal/discovery.builtin-tools.test.ts +0 -94
- package/src/internal/discovery.concurrency.test.ts +0 -60
- package/src/internal/discovery.cursor-account.test.ts +0 -133
- package/src/internal/discovery.cwd.test.ts +0 -83
- package/src/internal/discovery.hosting.test.ts +0 -80
- package/src/internal/discovery.identity.test.ts +0 -44
- package/src/internal/docs-site.test.ts +0 -66
- package/src/internal/duration.test.ts +0 -29
- package/src/internal/eval-judge-model.test.ts +0 -187
- package/src/internal/eval-run-store.cancel.test.ts +0 -142
- package/src/internal/eval-run-store.storage.test.ts +0 -211
- package/src/internal/eval-runner.http.test.ts +0 -403
- package/src/internal/eval-runner.run.test.ts +0 -928
- package/src/internal/evals-client.test.ts +0 -307
- package/src/internal/event-mapper.test.ts +0 -243
- package/src/internal/github-fanout.test.ts +0 -213
- package/src/internal/handleAgentServeTrigger.test.ts +0 -185
- package/src/internal/host-kv.test.ts +0 -82
- package/src/internal/host-platforms.test.ts +0 -126
- package/src/internal/http-channel.test.ts +0 -402
- package/src/internal/init-project.test.ts +0 -270
- package/src/internal/install-cursor-skills.test.ts +0 -262
- package/src/internal/local-env.test.ts +0 -120
- package/src/internal/log-ring.test.ts +0 -31
- package/src/internal/logs-client.test.ts +0 -350
- package/src/internal/mcp-endpoint.test.ts +0 -436
- package/src/internal/mcp-host.test.ts +0 -298
- package/src/internal/mcp-oauth.test.ts +0 -148
- package/src/internal/net.test.ts +0 -17
- package/src/internal/peer-connections.test.ts +0 -128
- package/src/internal/peer-mcp.integration.test.ts +0 -289
- package/src/internal/playground/toolchain.test.ts +0 -53
- package/src/internal/playground-cli.test.ts +0 -187
- package/src/internal/playground-proxy.test.ts +0 -376
- package/src/internal/prompt-context.integration.test.ts +0 -232
- package/src/internal/prompt-context.test.ts +0 -127
- package/src/internal/reminder-runner.test.ts +0 -390
- package/src/internal/reminder-store.test.ts +0 -53
- package/src/internal/request-headers.test.ts +0 -27
- package/src/internal/resolve-prod-target.test.ts +0 -787
- package/src/internal/resolved-connections.test.ts +0 -295
- package/src/internal/router.test.ts +0 -57
- package/src/internal/sdk-runner.test.ts +0 -290
- package/src/internal/server.artifacts.test.ts +0 -303
- package/src/internal/session-engine.artifacts.test.ts +0 -243
- package/src/internal/session-engine.coalesce.test.ts +0 -169
- package/src/internal/session-engine.concurrency.test.ts +0 -250
- package/src/internal/session-engine.host-oauth-mcp.test.ts +0 -110
- package/src/internal/session-engine.interrupt.test.ts +0 -577
- package/src/internal/session-engine.storage.test.ts +0 -547
- package/src/internal/session-urls.test.ts +0 -28
- package/src/internal/sessions-client.test.ts +0 -518
- package/src/internal/storage-coordinator.test.ts +0 -517
- package/src/internal/tool-call.test.ts +0 -458
- package/src/internal/tool-result.test.ts +0 -52
- package/src/internal/trajectory.approvals.test.ts +0 -83
- package/src/internal/trajectory.subagents.test.ts +0 -198
- package/src/internal/turn-governor.test.ts +0 -137
- package/src/internal/update-check.test.ts +0 -485
- package/src/internal/workspace.test.ts +0 -207
- package/src/storage-backends/cursor-hosted.test.ts +0 -121
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedule-runner.d.ts","sourceRoot":"","sources":["../../src/internal/schedule-runner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EAGZ,MAAM,aAAa,CAAC;AAErB,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,qBAAqB,CAAC;AAE7B,eAAO,MAAM,QAAQ,EAAE,WAItB,CAAC;AAEF,qBAAa,oBAAqB,SAAQ,KAAK;IAG3C,QAAQ,CAAC,oBAAoB,EAAE,MAAM,EAAE;IAFzC,YACE,UAAU,EAAE,MAAM,EACT,oBAAoB,EAAE,MAAM,EAAE,EAIxC;CACF;AAQD,qBAAa,cAAc;IAMvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAPzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,eAAe,CAAM;IAE7B,YACmB,MAAM,EAAE,aAAa,EACtC,OAAO,EAAE,YAAY,EACJ,MAAM,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAe,EAO3D;IAED,IAAI,WAAW,IAAI,MAAM,EAAE,CAE1B;IAED,KAAK,IAAI,IAAI,CAKZ;IAED,IAAI,IAAI,IAAI,CAKX;IAED,OAAO,CAAC,GAAG;IAOX,OAAO,CAAC,IAAI;IAoBZ,2EAA2E;IACrE,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"schedule-runner.d.ts","sourceRoot":"","sources":["../../src/internal/schedule-runner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EAGZ,MAAM,aAAa,CAAC;AAErB,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,qBAAqB,CAAC;AAE7B,eAAO,MAAM,QAAQ,EAAE,WAItB,CAAC;AAEF,qBAAa,oBAAqB,SAAQ,KAAK;IAG3C,QAAQ,CAAC,oBAAoB,EAAE,MAAM,EAAE;IAFzC,YACE,UAAU,EAAE,MAAM,EACT,oBAAoB,EAAE,MAAM,EAAE,EAIxC;CACF;AAQD,qBAAa,cAAc;IAMvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAPzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,eAAe,CAAM;IAE7B,YACmB,MAAM,EAAE,aAAa,EACtC,OAAO,EAAE,YAAY,EACJ,MAAM,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAe,EAO3D;IAED,IAAI,WAAW,IAAI,MAAM,EAAE,CAE1B;IAED,KAAK,IAAI,IAAI,CAKZ;IAED,IAAI,IAAI,IAAI,CAKX;IAED,OAAO,CAAC,GAAG;IAOX,OAAO,CAAC,IAAI;IAoBZ,2EAA2E;IACrE,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAwDpE;CACF"}
|
|
@@ -115,6 +115,7 @@ export class ScheduleRunner {
|
|
|
115
115
|
},
|
|
116
116
|
appAuth: APP_AUTH,
|
|
117
117
|
host: this.engine.host,
|
|
118
|
+
artifacts: this.engine.artifacts,
|
|
118
119
|
});
|
|
119
120
|
// Collect ids from receive() calls the handler chose not to await
|
|
120
121
|
// (commonly wrapped in waitUntil); receive resolves at message accept,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk-runner.d.ts","sourceRoot":"","sources":["../../src/internal/sdk-runner.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAOL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,SAAS,EAEf,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,KAAK,YAAY,EAEjB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAEjB,MAAM,aAAa,CAAC;AAErB,2EAA2E;AAC3E,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1D;;;;;OAKG;IACH,OAAO,CAAC,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACjE,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,iBAAiB,EACf,cAAc,GACd,gBAAgB,GAChB,SAAS,GACT,YAAY,GACZ,WAAW,GACX,OAAO,CACV,CAAC;AAEF,6EAA6E;AAC7E,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAcxD,MAAM,WAAW,sBAAsB;IACrC,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAwBD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAKvE;AAED,qBAAa,eAAgB,YAAW,WAAW;IAKrC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;IAC/D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+C;IACtE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkC;IAElE,YAA6B,OAAO,GAAE,sBAA2B,EAAI;IAE/D,OAAO,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAkC9D;YAEa,cAAc;IAyE5B;;;;OAIG;IACG,OAAO,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,CAepE;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAY7B;IAED,OAAO,CAAC,QAAQ;IA0BhB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,GAAG;IAIX,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,kBAAkB;IAc1B;;;OAGG;YACW,iBAAiB;YAkBjB,SAAS;YAOT,cAAc;YA6Bd,cAAc;
|
|
1
|
+
{"version":3,"file":"sdk-runner.d.ts","sourceRoot":"","sources":["../../src/internal/sdk-runner.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAOL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,SAAS,EAEf,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,KAAK,YAAY,EAEjB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAEjB,MAAM,aAAa,CAAC;AAErB,2EAA2E;AAC3E,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1D;;;;;OAKG;IACH,OAAO,CAAC,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACjE,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,iBAAiB,EACf,cAAc,GACd,gBAAgB,GAChB,SAAS,GACT,YAAY,GACZ,WAAW,GACX,OAAO,CACV,CAAC;AAEF,6EAA6E;AAC7E,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAcxD,MAAM,WAAW,sBAAsB;IACrC,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAwBD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAKvE;AAED,qBAAa,eAAgB,YAAW,WAAW;IAKrC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;IAC/D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+C;IACtE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkC;IAElE,YAA6B,OAAO,GAAE,sBAA2B,EAAI;IAE/D,OAAO,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAkC9D;YAEa,cAAc;IAyE5B;;;;OAIG;IACG,OAAO,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,CAepE;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAY7B;IAED,OAAO,CAAC,QAAQ;IA0BhB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,GAAG;IAIX,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,kBAAkB;IAc1B;;;OAGG;YACW,iBAAiB;YAkBjB,SAAS;YAOT,cAAc;YA6Bd,cAAc;IA6C5B,OAAO,CAAC,QAAQ;CAUjB;AAED,4EAA4E;AAC5E,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAMT;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,GAAG,cAAc,CAQpE;AAmED,wBAAgB,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,MAAM,CAExE"}
|
|
@@ -310,7 +310,15 @@ export class CursorSdkRunner {
|
|
|
310
310
|
if (request.isFirstTurn) {
|
|
311
311
|
return Agent.create(options);
|
|
312
312
|
}
|
|
313
|
-
|
|
313
|
+
// A cloud session past its first turn should carry the bound agent id
|
|
314
|
+
// (the engine persists it via onSdkAgentId as soon as create() reports
|
|
315
|
+
// one). Reaching here means the binding turn failed before the server
|
|
316
|
+
// ever minted an agent — e.g. create() rejected its PR attach — so the
|
|
317
|
+
// session would otherwise fail every future turn. Mirror the local
|
|
318
|
+
// host-replacement path above: a fresh conversation beats failing this
|
|
319
|
+
// thread forever, and the new id binds to the session for later resumes.
|
|
320
|
+
this.log(`[agentkit] cloud session ${request.sessionId} has no bound cloud agent; creating a fresh one`);
|
|
321
|
+
return Agent.create(options);
|
|
314
322
|
});
|
|
315
323
|
}
|
|
316
324
|
getStore(stateDir) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/internal/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA4BH,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAOhB,YAAY,EACb,MAAM,aAAa,CAAC;AAqFrB,OAAO,EAAE,KAAK,WAAW,EAAmB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/internal/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA4BH,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAOhB,YAAY,EACb,MAAM,aAAa,CAAC;AAqFrB,OAAO,EAAE,KAAK,WAAW,EAAmB,MAAM,iBAAiB,CAAC;AAiBpE,8EAA8E;AAC9E,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,YAAY,CAAC;CACvB;AAYD,6EAA6E;AAC7E,MAAM,WAAW,0BAA0B;IACzC,oEAAoE;IACpE,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,UAAU,EAAE,EACpB,OAAO,GAAE,YAAY,GAAG,0BAA+B,GACtD,OAAO,CAAC,gBAAgB,CAAC,CA4pB3B"}
|
package/dist/internal/server.js
CHANGED
|
@@ -68,6 +68,9 @@ import { CursorSdkRunner } from "./sdk-runner.js";
|
|
|
68
68
|
import { SessionAuthError, SessionBusyError, SessionEngine, ToolInputError, ToolNotDirectlyCallableError, UnknownToolError, } from "./session-engine.js";
|
|
69
69
|
import { sessionUrlsForRequest } from "./session-urls.js";
|
|
70
70
|
const MAX_BODY_BYTES = 32 * 1024 * 1024;
|
|
71
|
+
/** `GET /v1/artifacts` limit defaults / ceiling. */
|
|
72
|
+
const ARTIFACTS_LIST_DEFAULT_LIMIT = 200;
|
|
73
|
+
const ARTIFACTS_LIST_MAX_LIMIT = 1000;
|
|
71
74
|
/**
|
|
72
75
|
* Start an HTTP server hosting one or more agents. A single agent with an
|
|
73
76
|
* empty slug serves at `/v1/*` and `/playground`; multiple agents each serve
|
|
@@ -319,6 +322,7 @@ export function startServer(mounts_1) {
|
|
|
319
322
|
getContinuationLastBotMessageTs: (continuationToken) => engine.getContinuationLastBotMessageTs(channel.id, continuationToken),
|
|
320
323
|
interruptContinuation: (continuationToken) => engine.interruptContinuation(channel.id, continuationToken),
|
|
321
324
|
logger,
|
|
325
|
+
artifacts: engine.artifacts,
|
|
322
326
|
};
|
|
323
327
|
try {
|
|
324
328
|
yield definition.onStart(startArgs);
|
|
@@ -765,6 +769,39 @@ function mountAgentRoutes(router, runtime, args) {
|
|
|
765
769
|
return jsonResponse(yield engine.abSnapshot(ctx.auth, { includeAll }));
|
|
766
770
|
}),
|
|
767
771
|
});
|
|
772
|
+
// Durable artifacts (ctx.artifacts / tag_artifact), newest-updated first.
|
|
773
|
+
router.add({
|
|
774
|
+
method: "GET",
|
|
775
|
+
pattern: `${base}/v1/artifacts`,
|
|
776
|
+
auth: httpAuth,
|
|
777
|
+
handler: (request, ctx) => __awaiter(this, void 0, void 0, function* () {
|
|
778
|
+
var _a, _b;
|
|
779
|
+
const url = new URL(request.url);
|
|
780
|
+
const limitRaw = url.searchParams.get("limit");
|
|
781
|
+
let limit = ARTIFACTS_LIST_DEFAULT_LIMIT;
|
|
782
|
+
if (limitRaw !== null && limitRaw !== "") {
|
|
783
|
+
const parsed = Number.parseInt(limitRaw, 10);
|
|
784
|
+
if (!Number.isInteger(parsed) || parsed < 1) {
|
|
785
|
+
return errorResponse(400, "invalid_request", "`limit` must be a positive integer.");
|
|
786
|
+
}
|
|
787
|
+
limit = Math.min(parsed, ARTIFACTS_LIST_MAX_LIMIT);
|
|
788
|
+
}
|
|
789
|
+
const kind = (_a = url.searchParams.get("kind")) !== null && _a !== void 0 ? _a : undefined;
|
|
790
|
+
const sessionId = (_b = url.searchParams.get("sessionId")) !== null && _b !== void 0 ? _b : undefined;
|
|
791
|
+
// Same includeAll gate as /v1/sessions: never with bearer or custom
|
|
792
|
+
// channel auth (strict per-principal isolation); otherwise session
|
|
793
|
+
// ownership applies (see SessionEngine.listArtifacts).
|
|
794
|
+
const includeAll = relaxSessionReadAuth &&
|
|
795
|
+
(relaxSessionReadAuthBeyondLoopback ||
|
|
796
|
+
(typeof ctx.requestIp === "string" &&
|
|
797
|
+
isLoopbackAddress(ctx.requestIp)));
|
|
798
|
+
const artifacts = yield engine.listArtifacts(ctx.auth, {
|
|
799
|
+
includeAll,
|
|
800
|
+
filter: { kind, sessionId },
|
|
801
|
+
});
|
|
802
|
+
return jsonResponse({ artifacts: artifacts.slice(0, limit) });
|
|
803
|
+
}),
|
|
804
|
+
});
|
|
768
805
|
// The agent's MCP surface: peers and external MCP clients delegate to
|
|
769
806
|
// this agent (ask / check / call_tool) over streamable HTTP. Stateless —
|
|
770
807
|
// POST only; GET/DELETE get a spec-compliant 405 from the endpoint.
|
|
@@ -1339,6 +1376,7 @@ function startCursorSlackRelay(input) {
|
|
|
1339
1376
|
envelope,
|
|
1340
1377
|
send: args.send,
|
|
1341
1378
|
host: args.host,
|
|
1379
|
+
artifacts: args.artifacts,
|
|
1342
1380
|
hasContinuationSession: (continuationToken) => target.runtime.engine.hasContinuationSession(target.channelId, continuationToken),
|
|
1343
1381
|
isContinuationBusy: (continuationToken) => target.runtime.engine.isContinuationBusy(target.channelId, continuationToken),
|
|
1344
1382
|
getContinuationLastBotMessageTs: (continuationToken) => target.runtime.engine.getContinuationLastBotMessageTs(target.channelId, continuationToken),
|
|
@@ -1375,6 +1413,7 @@ function buildChannelHandlerArgs(input) {
|
|
|
1375
1413
|
requestIp: (_c = input.requestIp) !== null && _c !== void 0 ? _c : null,
|
|
1376
1414
|
auth,
|
|
1377
1415
|
host: runtime.engine.host,
|
|
1416
|
+
artifacts: runtime.engine.artifacts,
|
|
1378
1417
|
send: (message, sendOptions = {}) => runtime.engine.send(channelId, message, Object.assign(Object.assign({}, sendOptions), { auth: sendOptions.auth !== undefined ? sendOptions.auth : auth })),
|
|
1379
1418
|
getSession: (sessionId) => runtime.engine.getChannelSession(channelId, sessionId),
|
|
1380
1419
|
receive: (target, inputReceive) => runtime.engine.receive(target, inputReceive),
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-session cost metrics folded from a durable session event stream.
|
|
3
|
+
*
|
|
4
|
+
* Powers `agent-serve cost [sessionId]`: each `turn.completed` event carries
|
|
5
|
+
* the turn's token usage and the estimated dollar cost recorded by the
|
|
6
|
+
* engine (see `model-pricing.ts`), so a session's spend is a pure fold over
|
|
7
|
+
* its `events.ndjson` — no server-side aggregation required.
|
|
8
|
+
*/
|
|
9
|
+
import type { SessionEvent, TurnCost, TurnUsage } from "../types.js";
|
|
10
|
+
/** One agent loop pass (turn) with its usage and estimated cost. */
|
|
11
|
+
export interface SessionCostTurn {
|
|
12
|
+
turnId: string;
|
|
13
|
+
failed: boolean;
|
|
14
|
+
usage?: TurnUsage;
|
|
15
|
+
cost?: TurnCost;
|
|
16
|
+
}
|
|
17
|
+
export interface SessionCostTotals {
|
|
18
|
+
turns: number;
|
|
19
|
+
turnFailures: number;
|
|
20
|
+
inputTokens: number;
|
|
21
|
+
outputTokens: number;
|
|
22
|
+
cacheReadTokens: number;
|
|
23
|
+
cacheWriteTokens: number;
|
|
24
|
+
/** Sum of per-turn estimated costs (USD). */
|
|
25
|
+
costUsd: number;
|
|
26
|
+
/** Turns that reported usage but had no known model rates. */
|
|
27
|
+
unpricedTurns: number;
|
|
28
|
+
}
|
|
29
|
+
export interface SessionCostReport {
|
|
30
|
+
sessionId: string;
|
|
31
|
+
turns: SessionCostTurn[];
|
|
32
|
+
totals: SessionCostTotals;
|
|
33
|
+
}
|
|
34
|
+
export declare function emptySessionCostTotals(): SessionCostTotals;
|
|
35
|
+
export declare function addSessionCostTotals(target: SessionCostTotals, delta: SessionCostTotals): void;
|
|
36
|
+
/** Fold a session event stream into per-turn and total cost metrics. */
|
|
37
|
+
export declare function buildSessionCostReport(events: readonly SessionEvent[]): SessionCostReport;
|
|
38
|
+
/** Per-turn table for `agent-serve cost <sessionId>`. */
|
|
39
|
+
export declare function formatSessionCostText(report: SessionCostReport): string;
|
|
40
|
+
export interface SessionCostRow {
|
|
41
|
+
sessionId: string;
|
|
42
|
+
channelId: string;
|
|
43
|
+
title?: string;
|
|
44
|
+
updatedAt?: string;
|
|
45
|
+
totals: SessionCostTotals;
|
|
46
|
+
}
|
|
47
|
+
/** All-sessions table for `agent-serve cost` (no session id). */
|
|
48
|
+
export declare function formatSessionsCostText(rows: SessionCostRow[]): string;
|
|
49
|
+
//# sourceMappingURL=session-cost.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-cost.d.ts","sourceRoot":"","sources":["../../src/internal/session-cost.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGrE,oEAAoE;AACpE,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAED,wBAAgB,sBAAsB,IAAI,iBAAiB,CAW1D;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,iBAAiB,EACzB,KAAK,EAAE,iBAAiB,GACvB,IAAI,CASN;AAED,wEAAwE;AACxE,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,YAAY,EAAE,GAC9B,iBAAiB,CAyCnB;AAMD,yDAAyD;AACzD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CA4CvE;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAED,iEAAiE;AACjE,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,MAAM,CAsCrE"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-session cost metrics folded from a durable session event stream.
|
|
3
|
+
*
|
|
4
|
+
* Powers `agent-serve cost [sessionId]`: each `turn.completed` event carries
|
|
5
|
+
* the turn's token usage and the estimated dollar cost recorded by the
|
|
6
|
+
* engine (see `model-pricing.ts`), so a session's spend is a pure fold over
|
|
7
|
+
* its `events.ndjson` — no server-side aggregation required.
|
|
8
|
+
*/
|
|
9
|
+
import { formatCostUsd, roundCostUsd } from "./trajectory.js";
|
|
10
|
+
export function emptySessionCostTotals() {
|
|
11
|
+
return {
|
|
12
|
+
turns: 0,
|
|
13
|
+
turnFailures: 0,
|
|
14
|
+
inputTokens: 0,
|
|
15
|
+
outputTokens: 0,
|
|
16
|
+
cacheReadTokens: 0,
|
|
17
|
+
cacheWriteTokens: 0,
|
|
18
|
+
costUsd: 0,
|
|
19
|
+
unpricedTurns: 0,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export function addSessionCostTotals(target, delta) {
|
|
23
|
+
target.turns += delta.turns;
|
|
24
|
+
target.turnFailures += delta.turnFailures;
|
|
25
|
+
target.inputTokens += delta.inputTokens;
|
|
26
|
+
target.outputTokens += delta.outputTokens;
|
|
27
|
+
target.cacheReadTokens += delta.cacheReadTokens;
|
|
28
|
+
target.cacheWriteTokens += delta.cacheWriteTokens;
|
|
29
|
+
target.costUsd = roundCostUsd(target.costUsd + delta.costUsd);
|
|
30
|
+
target.unpricedTurns += delta.unpricedTurns;
|
|
31
|
+
}
|
|
32
|
+
/** Fold a session event stream into per-turn and total cost metrics. */
|
|
33
|
+
export function buildSessionCostReport(events) {
|
|
34
|
+
var _a;
|
|
35
|
+
let sessionId = "";
|
|
36
|
+
const turns = [];
|
|
37
|
+
const totals = emptySessionCostTotals();
|
|
38
|
+
for (const event of events) {
|
|
39
|
+
if (sessionId === "" && typeof event.sessionId === "string") {
|
|
40
|
+
sessionId = event.sessionId;
|
|
41
|
+
}
|
|
42
|
+
if (event.type !== "turn.completed" && event.type !== "turn.failed") {
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
const turn = {
|
|
46
|
+
turnId: (_a = event.turnId) !== null && _a !== void 0 ? _a : `turn_${turns.length + 1}`,
|
|
47
|
+
failed: event.type === "turn.failed",
|
|
48
|
+
};
|
|
49
|
+
totals.turns += 1;
|
|
50
|
+
if (event.type === "turn.failed") {
|
|
51
|
+
totals.turnFailures += 1;
|
|
52
|
+
turns.push(turn);
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
const usage = event.data.usage;
|
|
56
|
+
if (usage !== undefined) {
|
|
57
|
+
turn.usage = usage;
|
|
58
|
+
totals.inputTokens += usage.inputTokens;
|
|
59
|
+
totals.outputTokens += usage.outputTokens;
|
|
60
|
+
totals.cacheReadTokens += usage.cacheReadTokens;
|
|
61
|
+
totals.cacheWriteTokens += usage.cacheWriteTokens;
|
|
62
|
+
}
|
|
63
|
+
const cost = event.data.cost;
|
|
64
|
+
if (cost !== undefined) {
|
|
65
|
+
turn.cost = cost;
|
|
66
|
+
totals.costUsd = roundCostUsd(totals.costUsd + cost.totalUsd);
|
|
67
|
+
}
|
|
68
|
+
else if (usage !== undefined) {
|
|
69
|
+
totals.unpricedTurns += 1;
|
|
70
|
+
}
|
|
71
|
+
turns.push(turn);
|
|
72
|
+
}
|
|
73
|
+
return { sessionId, turns, totals };
|
|
74
|
+
}
|
|
75
|
+
function formatCount(value) {
|
|
76
|
+
return String(value);
|
|
77
|
+
}
|
|
78
|
+
/** Per-turn table for `agent-serve cost <sessionId>`. */
|
|
79
|
+
export function formatSessionCostText(report) {
|
|
80
|
+
const lines = [];
|
|
81
|
+
lines.push(`session ${report.sessionId || "(unknown)"} est. cost: ${formatCostUsd(report.totals.costUsd)}`);
|
|
82
|
+
if (report.turns.length === 0) {
|
|
83
|
+
lines.push("No turns recorded.");
|
|
84
|
+
return `${lines.join("\n")}\n`;
|
|
85
|
+
}
|
|
86
|
+
const header = [
|
|
87
|
+
"TURN",
|
|
88
|
+
"IN",
|
|
89
|
+
"OUT",
|
|
90
|
+
"CACHE R",
|
|
91
|
+
"CACHE W",
|
|
92
|
+
"EST COST",
|
|
93
|
+
"MODEL",
|
|
94
|
+
"STATUS",
|
|
95
|
+
];
|
|
96
|
+
const rows = report.turns.map((turn) => { var _a; var _b; return [
|
|
97
|
+
turn.turnId,
|
|
98
|
+
turn.usage === undefined ? "—" : formatCount(turn.usage.inputTokens),
|
|
99
|
+
turn.usage === undefined ? "—" : formatCount(turn.usage.outputTokens),
|
|
100
|
+
turn.usage === undefined ? "—" : formatCount(turn.usage.cacheReadTokens),
|
|
101
|
+
turn.usage === undefined ? "—" : formatCount(turn.usage.cacheWriteTokens),
|
|
102
|
+
turn.cost === undefined ? "—" : formatCostUsd(turn.cost.totalUsd),
|
|
103
|
+
(_b = (_a = turn.cost) === null || _a === void 0 ? void 0 : _a.model) !== null && _b !== void 0 ? _b : "—",
|
|
104
|
+
turn.failed ? "failed" : "ok",
|
|
105
|
+
]; });
|
|
106
|
+
rows.push([
|
|
107
|
+
"total",
|
|
108
|
+
formatCount(report.totals.inputTokens),
|
|
109
|
+
formatCount(report.totals.outputTokens),
|
|
110
|
+
formatCount(report.totals.cacheReadTokens),
|
|
111
|
+
formatCount(report.totals.cacheWriteTokens),
|
|
112
|
+
formatCostUsd(report.totals.costUsd),
|
|
113
|
+
"",
|
|
114
|
+
report.totals.turnFailures > 0
|
|
115
|
+
? `${report.totals.turnFailures} failed`
|
|
116
|
+
: "",
|
|
117
|
+
]);
|
|
118
|
+
lines.push(renderTable(header, rows));
|
|
119
|
+
appendUnpricedNote(lines, report.totals.unpricedTurns);
|
|
120
|
+
return `${lines.join("\n")}\n`;
|
|
121
|
+
}
|
|
122
|
+
/** All-sessions table for `agent-serve cost` (no session id). */
|
|
123
|
+
export function formatSessionsCostText(rows) {
|
|
124
|
+
if (rows.length === 0) {
|
|
125
|
+
return "No sessions.\n";
|
|
126
|
+
}
|
|
127
|
+
const header = [
|
|
128
|
+
"SESSION",
|
|
129
|
+
"CHANNEL",
|
|
130
|
+
"TURNS",
|
|
131
|
+
"IN",
|
|
132
|
+
"OUT",
|
|
133
|
+
"EST COST",
|
|
134
|
+
"UPDATED",
|
|
135
|
+
];
|
|
136
|
+
const totals = emptySessionCostTotals();
|
|
137
|
+
const body = rows.map((row) => {
|
|
138
|
+
var _a;
|
|
139
|
+
addSessionCostTotals(totals, row.totals);
|
|
140
|
+
return [
|
|
141
|
+
row.sessionId,
|
|
142
|
+
row.channelId,
|
|
143
|
+
formatCount(row.totals.turns),
|
|
144
|
+
formatCount(row.totals.inputTokens),
|
|
145
|
+
formatCount(row.totals.outputTokens),
|
|
146
|
+
formatCostUsd(row.totals.costUsd),
|
|
147
|
+
(_a = row.updatedAt) !== null && _a !== void 0 ? _a : "",
|
|
148
|
+
];
|
|
149
|
+
});
|
|
150
|
+
body.push([
|
|
151
|
+
"total",
|
|
152
|
+
"",
|
|
153
|
+
formatCount(totals.turns),
|
|
154
|
+
formatCount(totals.inputTokens),
|
|
155
|
+
formatCount(totals.outputTokens),
|
|
156
|
+
formatCostUsd(totals.costUsd),
|
|
157
|
+
"",
|
|
158
|
+
]);
|
|
159
|
+
const lines = [renderTable(header, body)];
|
|
160
|
+
appendUnpricedNote(lines, totals.unpricedTurns);
|
|
161
|
+
return `${lines.join("\n")}\n`;
|
|
162
|
+
}
|
|
163
|
+
function appendUnpricedNote(lines, unpricedTurns) {
|
|
164
|
+
if (unpricedTurns > 0) {
|
|
165
|
+
lines.push(`note: ${unpricedTurns} turn(s) reported usage for a model with no known rates; est. cost excludes them.`);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
function renderTable(header, rows) {
|
|
169
|
+
const widths = header.map((h, i) => Math.max(h.length, ...rows.map((row) => { var _a; return ((_a = row[i]) !== null && _a !== void 0 ? _a : "").length; })));
|
|
170
|
+
const renderRow = (row) => row
|
|
171
|
+
.map((cell, i) => { var _a; return cell.padEnd((_a = widths[i]) !== null && _a !== void 0 ? _a : 0); })
|
|
172
|
+
.join(" ")
|
|
173
|
+
.trimEnd();
|
|
174
|
+
return [renderRow(header), ...rows.map(renderRow)].join("\n");
|
|
175
|
+
}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* event handlers and hooks.
|
|
8
8
|
*/
|
|
9
9
|
import { SlackAskDedupeStore, SlackNudgeStore } from "../channels/slack/nudge-store.js";
|
|
10
|
-
import { type AgentProject, type ApprovalDecision, type AuthContext, type CallToolOptions, type ChannelDefinition, type ChannelSession, type HostContext, type HttpChannelDefinition, type PendingApproval, type ReceiveInput, type SendMessageOptions, type SessionEvent, type SessionInfo, type SessionListSource, type SessionRecord, type SessionSummary, type ToolCallOutcome, type TurnOutcome } from "../types.js";
|
|
10
|
+
import { type AgentProject, type ApprovalDecision, type ArtifactListFilter, type ArtifactRecord, type ArtifactsApi, type AuthContext, type CallToolOptions, type ChannelDefinition, type ChannelSession, type HostContext, type HttpChannelDefinition, type PendingApproval, type ReceiveInput, type SendMessageOptions, type SessionEvent, type SessionInfo, type SessionListSource, type SessionRecord, type SessionSummary, type ToolCallOutcome, type TurnOutcome } from "../types.js";
|
|
11
11
|
import { type ABSnapshot } from "./ab-snapshot.js";
|
|
12
12
|
import { type HostPlatforms } from "./host-platforms.js";
|
|
13
13
|
import type { AgentRunner } from "./sdk-runner.js";
|
|
@@ -133,6 +133,8 @@ export declare class SessionEngine {
|
|
|
133
133
|
private reminderApi;
|
|
134
134
|
private evalsApi;
|
|
135
135
|
private readonly kvApi;
|
|
136
|
+
/** Engine-owned artifacts service behind every `ctx.artifacts` facade. */
|
|
137
|
+
private readonly artifactsStore;
|
|
136
138
|
/** Serve-time resolved connections (see {@link setResolvedConnections}). */
|
|
137
139
|
private resolvedConnections;
|
|
138
140
|
constructor(options: SessionEngineOptions);
|
|
@@ -145,6 +147,28 @@ export declare class SessionEngine {
|
|
|
145
147
|
setResolvedConnections(connections: EngineResolvedConnection[]): void;
|
|
146
148
|
/** Shared host services (MCP / GitHub / Slack / reminders / evals / kv / Slack nudges). */
|
|
147
149
|
get host(): HostContext;
|
|
150
|
+
/** Unbound `ctx.artifacts` facade (channel handlers, scratch tool calls). */
|
|
151
|
+
get artifacts(): ArtifactsApi;
|
|
152
|
+
/**
|
|
153
|
+
* Build one `ctx.artifacts` facade over the engine-owned artifacts
|
|
154
|
+
* service. With a `binding` (tools, hooks) `tag` auto-fills the bound
|
|
155
|
+
* session (and turn when known) and rejects a conflicting explicit
|
|
156
|
+
* `sessionId`; without one (channel handlers) callers may pass
|
|
157
|
+
* `sessionId` / `turnId` explicitly.
|
|
158
|
+
*/
|
|
159
|
+
artifactsApi(binding?: {
|
|
160
|
+
sessionId: string;
|
|
161
|
+
turnId?: string;
|
|
162
|
+
}): ArtifactsApi;
|
|
163
|
+
/**
|
|
164
|
+
* Single tag funnel: upsert the row, then — for session-bound tags —
|
|
165
|
+
* append `artifact.tagged` through {@link appendEvent} so persistence
|
|
166
|
+
* flush and hook fan-out are inherited. Session-less tags skip the event.
|
|
167
|
+
* An unknown `sessionId` rejects before the row is written (appending to
|
|
168
|
+
* a session that was never materialized here would mint an orphan local
|
|
169
|
+
* event log, breaking the local-over-sink restore invariant).
|
|
170
|
+
*/
|
|
171
|
+
private tagArtifact;
|
|
148
172
|
private slackNudgeHostApi;
|
|
149
173
|
/** Attach the serve-host reminder API (called from startServer). */
|
|
150
174
|
setReminders(api: HostContext["reminders"]): void;
|
|
@@ -322,6 +346,16 @@ export declare class SessionEngine {
|
|
|
322
346
|
listSessions(caller: AuthContext | null, options?: {
|
|
323
347
|
includeAll?: boolean;
|
|
324
348
|
}): Promise<SessionSummary[]>;
|
|
349
|
+
/**
|
|
350
|
+
* Artifacts for `GET /v1/artifacts`, newest-updated first. Without
|
|
351
|
+
* `includeAll`, the sessions-list ownership rule applies: only artifacts
|
|
352
|
+
* tagged on a session whose principal matches the caller. Session-less
|
|
353
|
+
* artifacts are agent-scoped and visible only with `includeAll`.
|
|
354
|
+
*/
|
|
355
|
+
listArtifacts(caller: AuthContext | null, options?: {
|
|
356
|
+
includeAll?: boolean;
|
|
357
|
+
filter?: ArtifactListFilter;
|
|
358
|
+
}): Promise<ArtifactRecord[]>;
|
|
325
359
|
/**
|
|
326
360
|
* Same as {@link listSessions}, plus which store answered
|
|
327
361
|
* (`cursor-hosted` = durable DB via the control-plane proxy; `local` =
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-engine.d.ts","sourceRoot":"","sources":["../../src/internal/session-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAYH,OAAO,EACL,mBAAmB,EACnB,eAAe,EAChB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EAEtB,KAAK,cAAc,
|
|
1
|
+
{"version":3,"file":"session-engine.d.ts","sourceRoot":"","sources":["../../src/internal/session-engine.ts"],"names":[],"mappings":"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"}
|