@cursor/july 0.1.104 → 0.1.107
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/bin/agent-serve.js +1 -8
- package/dist/channels/bitbucket/types.d.ts +2 -4
- package/dist/channels/bitbucket/types.d.ts.map +1 -1
- package/dist/channels/deployments/deployments-channel.d.ts.map +1 -1
- package/dist/channels/deployments/deployments-channel.js +1 -0
- package/dist/channels/deployments/types.d.ts +7 -8
- package/dist/channels/deployments/types.d.ts.map +1 -1
- package/dist/channels/github/types.d.ts +2 -4
- package/dist/channels/github/types.d.ts.map +1 -1
- package/dist/channels/gitlab/types.d.ts +2 -5
- package/dist/channels/gitlab/types.d.ts.map +1 -1
- package/dist/channels/origin/types.d.ts +2 -3
- package/dist/channels/origin/types.d.ts.map +1 -1
- package/dist/channels/slack/defaults.d.ts.map +1 -1
- package/dist/channels/slack/defaults.js +3 -0
- package/dist/channels/slack/dispatch.d.ts.map +1 -1
- package/dist/channels/slack/dispatch.js +1 -1
- package/dist/channels/slack/live-delivery.d.ts.map +1 -1
- package/dist/channels/slack/live-delivery.js +48 -11
- package/dist/channels/slack/types.d.ts +4 -3
- package/dist/channels/slack/types.d.ts.map +1 -1
- package/dist/docs/404.html +3 -3
- package/dist/docs/ab.html +6 -6
- package/dist/docs/assets/{app.DbMWUyGb.js → app.CtuckIiL.js} +1 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.DXXZxiMv.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.DcNeTh9o.js → VPLocalSearchBox.Bkkhnu8K.js} +2 -2
- package/dist/docs/assets/chunks/{theme.DMjhY3gl.js → theme.DhpIe0Pa.js} +2 -2
- package/dist/docs/assets/guides_grokbot-agents.md.DVqdhBKb.js +9 -0
- package/dist/docs/assets/guides_grokbot-agents.md.DVqdhBKb.lean.js +1 -0
- package/dist/docs/assets/{guides_opentelemetry.md.COh9jFVg.js → guides_opentelemetry.md.SCRMskno.js} +3 -3
- package/dist/docs/assets/{guides_opentelemetry.md.COh9jFVg.lean.js → guides_opentelemetry.md.SCRMskno.lean.js} +1 -1
- package/dist/docs/assets/index.md.BW_6tOgR.js +5 -0
- package/dist/docs/assets/index.md.BW_6tOgR.lean.js +1 -0
- package/dist/docs/assets/{reference_channels.md.DBGcaB7m.js → reference_channels.md.D-qTqwcq.js} +2 -2
- package/dist/docs/assets/{reference_channels.md.DBGcaB7m.lean.js → reference_channels.md.D-qTqwcq.lean.js} +1 -1
- package/dist/docs/assets/{reference_cli.md.CJNc_xYK.js → reference_cli.md.Dm67hd2D.js} +3 -2
- package/dist/docs/assets/{reference_extensions.md.DykHW3qL.js → reference_extensions.md.CGmMLblt.js} +1 -1
- package/dist/docs/assets/{skills_otel.md.CqhobH3B.js → skills_otel.md.B5Ddv1xH.js} +1 -1
- package/dist/docs/assets/{style.BRuM8477.css → style.DCD_zyg3.css} +1 -1
- package/dist/docs/assets/templates_grokbot-agents.md.c1s6Flp9.js +3 -0
- package/dist/docs/assets/templates_grokbot-agents.md.c1s6Flp9.lean.js +1 -0
- package/dist/docs/building-with-agents.html +6 -6
- package/dist/docs/concepts.html +5 -5
- package/dist/docs/deployment.html +6 -6
- package/dist/docs/evals.html +6 -6
- package/dist/docs/guides/agent-to-agent.html +6 -6
- package/dist/docs/guides/cloud-agents.html +6 -6
- package/dist/docs/guides/convert-automation.html +6 -6
- package/dist/docs/guides/github.html +6 -6
- package/dist/docs/guides/grokbot-agents.html +35 -0
- package/dist/docs/guides/grokbot-agents.md +88 -0
- package/dist/docs/guides/human-in-the-loop.html +6 -6
- package/dist/docs/guides/mcp-oauth.html +6 -6
- package/dist/docs/guides/opentelemetry.html +8 -8
- package/dist/docs/guides/opentelemetry.md +3 -4
- package/dist/docs/guides/slack.html +6 -6
- package/dist/docs/guides/webhooks.html +6 -6
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +6 -6
- package/dist/docs/index.html +8 -8
- package/dist/docs/index.md +6 -1
- package/dist/docs/llms-full.txt +178 -30
- package/dist/docs/llms.txt +2 -0
- package/dist/docs/quickstart.html +6 -6
- package/dist/docs/reference/agent-config.html +6 -6
- package/dist/docs/reference/artifacts.html +6 -6
- package/dist/docs/reference/channels.html +7 -7
- package/dist/docs/reference/channels.md +11 -19
- package/dist/docs/reference/cli.html +10 -9
- package/dist/docs/reference/cli.md +7 -3
- package/dist/docs/reference/connections.html +6 -6
- package/dist/docs/reference/extensions.html +7 -7
- package/dist/docs/reference/extensions.md +2 -0
- package/dist/docs/reference/hooks.html +6 -6
- package/dist/docs/reference/http-api.html +6 -6
- package/dist/docs/reference/instructions.html +6 -6
- package/dist/docs/reference/playground.html +5 -5
- package/dist/docs/reference/project-layout.html +6 -6
- package/dist/docs/reference/prompt.html +6 -6
- package/dist/docs/reference/result.html +6 -6
- package/dist/docs/reference/schedules.html +6 -6
- package/dist/docs/reference/sessions.html +5 -5
- package/dist/docs/reference/skills.html +6 -6
- package/dist/docs/reference/subagents.html +6 -6
- package/dist/docs/reference/tools.html +6 -6
- package/dist/docs/scaffolding-agents.html +5 -5
- package/dist/docs/skills/ab.html +6 -6
- package/dist/docs/skills/create-agent.html +6 -6
- package/dist/docs/skills/debug.html +5 -5
- package/dist/docs/skills/evals.html +6 -6
- package/dist/docs/skills/framework-map.html +5 -5
- package/dist/docs/skills/github.html +6 -6
- package/dist/docs/skills/hillclimb.html +6 -6
- package/dist/docs/skills/index.html +5 -5
- package/dist/docs/skills/mcp-auth.html +6 -6
- package/dist/docs/skills/otel.html +8 -8
- package/dist/docs/skills/otel.md +3 -3
- package/dist/docs/skills/setup-slack.html +6 -6
- package/dist/docs/storage.html +6 -6
- package/dist/docs/templates/agentic-owners.html +6 -6
- package/dist/docs/templates/agents-md.html +6 -6
- package/dist/docs/templates/code-wiki.html +6 -6
- package/dist/docs/templates/demo.html +6 -6
- package/dist/docs/templates/grokbot-agents.html +29 -0
- package/dist/docs/templates/grokbot-agents.md +48 -0
- package/dist/docs/templates/pr-autofixer.html +6 -6
- package/dist/docs/templates/security-help.html +6 -6
- package/dist/docs/templates/security-reviewer.html +6 -6
- package/dist/docs/templates/triage.html +6 -6
- package/dist/docs/troubleshooting.html +5 -5
- package/dist/files.d.ts +7 -2
- package/dist/files.d.ts.map +1 -1
- package/dist/files.js +7 -2
- package/dist/index.d.ts +4 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -4
- package/dist/internal/cli-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +23 -11
- package/dist/internal/cursor/backend-client.d.ts +25 -0
- package/dist/internal/cursor/backend-client.d.ts.map +1 -1
- package/dist/internal/cursor/backend-client.js +57 -2
- package/dist/internal/cursor-agent-template.d.ts +1 -1
- package/dist/internal/cursor-agent-template.d.ts.map +1 -1
- package/dist/internal/cursor-agent-template.js +1 -0
- package/dist/internal/deploy-client.d.ts +8 -0
- package/dist/internal/deploy-client.d.ts.map +1 -1
- package/dist/internal/deploy-client.js +14 -0
- package/dist/internal/deploy-manifest.d.ts +3 -0
- package/dist/internal/deploy-manifest.d.ts.map +1 -1
- package/dist/internal/deploy-manifest.js +15 -12
- package/dist/internal/discovery/agent.d.ts.map +1 -1
- package/dist/internal/discovery/agent.js +1 -0
- package/dist/internal/discovery/info.d.ts.map +1 -1
- package/dist/internal/discovery/info.js +7 -3
- package/dist/internal/discovery/modules.d.ts +1 -1
- package/dist/internal/discovery/modules.d.ts.map +1 -1
- package/dist/internal/discovery/modules.js +1 -0
- package/dist/internal/discovery/project.d.ts.map +1 -1
- package/dist/internal/discovery/project.js +3 -0
- package/dist/internal/discovery/reminders.d.ts +7 -0
- package/dist/internal/discovery/reminders.d.ts.map +1 -0
- package/dist/internal/discovery/reminders.js +65 -0
- package/dist/internal/discovery/subagent.js +1 -0
- package/dist/internal/distribution.d.ts +5 -0
- package/dist/internal/distribution.d.ts.map +1 -1
- package/dist/internal/distribution.js +17 -0
- package/dist/internal/framework-file-storage.d.ts +3 -1
- package/dist/internal/framework-file-storage.d.ts.map +1 -1
- package/dist/internal/framework-file-storage.js +3 -1
- package/dist/internal/framework-storage-selection.d.ts +14 -3
- package/dist/internal/framework-storage-selection.d.ts.map +1 -1
- package/dist/internal/framework-storage-selection.js +36 -6
- package/dist/internal/guest-network.d.ts.map +1 -1
- package/dist/internal/guest-network.js +2 -0
- package/dist/internal/hosted-delivery-protocol.d.ts +48 -0
- package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -1
- package/dist/internal/hosted-delivery-protocol.js +60 -0
- package/dist/internal/hosted-delivery.d.ts +17 -0
- package/dist/internal/hosted-delivery.d.ts.map +1 -1
- package/dist/internal/hosted-delivery.js +112 -19
- package/dist/internal/hosted-managed-automation.d.ts.map +1 -1
- package/dist/internal/hosted-managed-automation.js +27 -2
- package/dist/internal/init-project.d.ts.map +1 -1
- package/dist/internal/init-project.js +4 -1
- package/dist/internal/local-control-plane.d.ts +18 -2
- package/dist/internal/local-control-plane.d.ts.map +1 -1
- package/dist/internal/local-control-plane.js +199 -17
- package/dist/internal/reminder-control-plane-protocol.d.ts +187 -0
- package/dist/internal/reminder-control-plane-protocol.d.ts.map +1 -0
- package/dist/internal/reminder-control-plane-protocol.js +244 -0
- package/dist/internal/reminder-runner.d.ts +48 -6
- package/dist/internal/reminder-runner.d.ts.map +1 -1
- package/dist/internal/reminder-runner.js +336 -48
- package/dist/internal/reminder-schedule.d.ts +5 -2
- package/dist/internal/reminder-schedule.d.ts.map +1 -1
- package/dist/internal/reminder-schedule.js +8 -6
- package/dist/internal/reminder-store.d.ts +24 -7
- package/dist/internal/reminder-store.d.ts.map +1 -1
- package/dist/internal/reminder-store.js +6 -5
- package/dist/internal/request-error-status.d.ts +2 -0
- package/dist/internal/request-error-status.d.ts.map +1 -1
- package/dist/internal/request-error-status.js +22 -3
- package/dist/internal/scm/pr-url.d.ts +40 -0
- package/dist/internal/scm/pr-url.d.ts.map +1 -1
- package/dist/internal/scm/pr-url.js +93 -14
- package/dist/internal/sdk-runner.d.ts +12 -0
- package/dist/internal/sdk-runner.d.ts.map +1 -1
- package/dist/internal/sdk-runner.js +18 -0
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +78 -30
- package/dist/internal/session-engine.d.ts +12 -0
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +137 -52
- package/dist/internal/store-mirror.d.ts +2 -2
- package/dist/internal/store-mirror.js +2 -2
- package/dist/internal/tenant-slack/relay.d.ts +2 -0
- package/dist/internal/tenant-slack/relay.d.ts.map +1 -1
- package/dist/internal/tenant-slack/relay.js +18 -8
- package/dist/internal/workspace-sync.d.ts +31 -6
- package/dist/internal/workspace-sync.d.ts.map +1 -1
- package/dist/internal/workspace-sync.js +67 -12
- package/dist/internal/workspace.d.ts +9 -0
- package/dist/internal/workspace.d.ts.map +1 -1
- package/dist/internal/workspace.js +16 -0
- package/dist/playground/assets/index-Bq2HpEQB.js +67 -0
- package/dist/playground/assets/index-CZKKNlmb.css +1 -0
- package/dist/playground/index.html +2 -2
- package/dist/reminders.d.ts +24 -5
- package/dist/reminders.d.ts.map +1 -1
- package/dist/reminders.js +28 -5
- package/dist/types.d.ts +98 -28
- package/dist/types.d.ts.map +1 -1
- package/docs/README.md +6 -1
- package/docs/guides/grokbot-agents.md +93 -0
- package/docs/guides/opentelemetry.md +3 -4
- package/docs/reference/channels.md +11 -19
- package/docs/reference/cli.md +7 -3
- package/docs/reference/extensions.md +2 -0
- package/docs/templates/grokbot-agents.md +53 -0
- package/package.json +12 -3
- package/skills/otel/SKILL.md +3 -3
- package/src/bin/agent-serve.ts +1 -9
- package/src/channels/bitbucket/types.ts +2 -4
- package/src/channels/deployments/deployments-channel.ts +1 -0
- package/src/channels/deployments/types.ts +7 -8
- package/src/channels/github/types.ts +2 -4
- package/src/channels/gitlab/types.ts +2 -5
- package/src/channels/origin/types.ts +2 -3
- package/src/channels/slack/defaults.ts +3 -0
- package/src/channels/slack/dispatch.ts +1 -0
- package/src/channels/slack/live-delivery.ts +53 -12
- package/src/channels/slack/types.ts +4 -3
- package/src/files.ts +9 -2
- package/src/index.ts +6 -3
- package/src/internal/cli-deploy.ts +30 -12
- package/src/internal/cursor/backend-client.ts +90 -2
- package/src/internal/cursor-agent-template.ts +1 -0
- package/src/internal/deploy-client.ts +16 -0
- package/src/internal/deploy-manifest.ts +16 -11
- package/src/internal/discovery/agent.ts +1 -0
- package/src/internal/discovery/info.ts +6 -0
- package/src/internal/discovery/modules.ts +2 -4
- package/src/internal/discovery/project.ts +3 -0
- package/src/internal/discovery/reminders.ts +65 -0
- package/src/internal/discovery/subagent.ts +1 -0
- package/src/internal/distribution.ts +20 -0
- package/src/internal/framework-file-storage.ts +3 -1
- package/src/internal/framework-storage-selection.ts +43 -6
- package/src/internal/guest-network.ts +3 -0
- package/src/internal/hosted-delivery-protocol.ts +96 -0
- package/src/internal/hosted-delivery.ts +207 -28
- package/src/internal/hosted-managed-automation.ts +49 -5
- package/src/internal/init-project.ts +4 -1
- package/src/internal/local-control-plane.ts +281 -22
- package/src/internal/reminder-control-plane-protocol.ts +499 -0
- package/src/internal/reminder-runner.ts +421 -48
- package/src/internal/reminder-schedule.ts +11 -6
- package/src/internal/reminder-store.ts +27 -7
- package/src/internal/request-error-status.ts +27 -3
- package/src/internal/scm/pr-url.ts +167 -20
- package/src/internal/sdk-runner.ts +19 -0
- package/src/internal/server.ts +85 -16
- package/src/internal/session-engine.ts +173 -56
- package/src/internal/store-mirror.ts +2 -2
- package/src/internal/tenant-slack/relay.ts +28 -4
- package/src/internal/workspace-sync.ts +84 -12
- package/src/internal/workspace.ts +20 -0
- package/src/reminders.ts +35 -4
- package/src/types.ts +104 -28
- package/templates/grokbot-agents/README.md +26 -0
- package/templates/grokbot-agents/agent/agent.ts +6 -0
- package/templates/grokbot-agents/agent/extensions/grokbot.ts +5 -0
- package/templates/grokbot-agents/agent/instructions.md +7 -0
- package/templates/grokbot-agents/evals/evals.config.ts +5 -0
- package/templates/grokbot-agents/evals/grokbot-agents.eval.ts +18 -0
- package/templates/grokbot-agents/init.json +18 -0
- package/templates/grokbot-agents/package.json +17 -0
- package/templates/grokbot-agents/tsconfig.json +12 -0
- package/dist/docs/assets/chunks/@localSearchIndexroot.Bqsulb9K.js +0 -1
- package/dist/docs/assets/index.md.D75GWhPl.js +0 -5
- package/dist/docs/assets/index.md.D75GWhPl.lean.js +0 -1
- package/dist/playground/assets/index-8YiozU89.js +0 -67
- package/dist/playground/assets/index-MbMxXg-y.css +0 -1
- /package/dist/docs/assets/{reference_cli.md.CJNc_xYK.lean.js → reference_cli.md.Dm67hd2D.lean.js} +0 -0
- /package/dist/docs/assets/{reference_extensions.md.DykHW3qL.lean.js → reference_extensions.md.CGmMLblt.lean.js} +0 -0
- /package/dist/docs/assets/{skills_otel.md.CqhobH3B.lean.js → skills_otel.md.B5Ddv1xH.lean.js} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Mirror an authored file tree onto an Agent Store prefix. Shared by the
|
|
3
|
-
* skills
|
|
4
|
-
* discipline and the same path refusals.
|
|
3
|
+
* skills, workspace seed, and session workspaceFile syncs so they keep the
|
|
4
|
+
* same write-then-sweep discipline and the same path refusals.
|
|
5
5
|
*/
|
|
6
6
|
import { type FileSink } from "../files.js";
|
|
7
7
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Mirror an authored file tree onto an Agent Store prefix. Shared by the
|
|
3
|
-
* skills
|
|
4
|
-
* discipline and the same path refusals.
|
|
3
|
+
* skills, workspace seed, and session workspaceFile syncs so they keep the
|
|
4
|
+
* same write-then-sweep discipline and the same path refusals.
|
|
5
5
|
*/
|
|
6
6
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
7
7
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
@@ -69,5 +69,7 @@ export declare function postRelaySlackMessage(args: {
|
|
|
69
69
|
resolve?: () => RelaySlackPostTarget | undefined;
|
|
70
70
|
fetchImpl?: typeof fetch;
|
|
71
71
|
timeoutMs?: number;
|
|
72
|
+
/** Diagnostic sink; defaults to `console.info`. */
|
|
73
|
+
log?: (line: string) => void;
|
|
72
74
|
}): Promise<RelaySlackPostResult>;
|
|
73
75
|
//# sourceMappingURL=relay.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../../../src/internal/tenant-slack/relay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAOH;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,gDACC,CAAC;AAEhD,kFAAkF;AAClF,eAAO,MAAM,uCAAuC,QAAS,CAAC;AAI9D;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;CACxB,GAAG,MAAM,CAKT;AAED,MAAM,MAAM,oBAAoB,GAC5B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9D;IACE,EAAE,EAAE,KAAK,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEN,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,yEAAyE;AACzE,wBAAgB,uBAAuB,IAAI,oBAAoB,GAAG,SAAS,CAM1E;AAmBD;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAChD,iEAAiE;IACjE,cAAc,EAAE,MAAM,CAAC;IACvB,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,oBAAoB,GAAG,SAAS,CAAC;IACjD,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../../../src/internal/tenant-slack/relay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAOH;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,gDACC,CAAC;AAEhD,kFAAkF;AAClF,eAAO,MAAM,uCAAuC,QAAS,CAAC;AAI9D;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;CACxB,GAAG,MAAM,CAKT;AAED,MAAM,MAAM,oBAAoB,GAC5B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9D;IACE,EAAE,EAAE,KAAK,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEN,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,yEAAyE;AACzE,wBAAgB,uBAAuB,IAAI,oBAAoB,GAAG,SAAS,CAM1E;AAmBD;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAChD,iEAAiE;IACjE,cAAc,EAAE,MAAM,CAAC;IACvB,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,oBAAoB,GAAG,SAAS,CAAC;IACjD,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAyFhC"}
|
|
@@ -76,13 +76,16 @@ function describeError(error) {
|
|
|
76
76
|
*/
|
|
77
77
|
export function postRelaySlackMessage(args) {
|
|
78
78
|
return __awaiter(this, void 0, void 0, function* () {
|
|
79
|
-
var _a, _b, _c;
|
|
79
|
+
var _a, _b, _c, _d, _e;
|
|
80
80
|
const channel = args.channel.trim();
|
|
81
|
+
const log = (_a = args.log) !== null && _a !== void 0 ? _a : ((line) => console.info(line));
|
|
81
82
|
if (channel === "") {
|
|
83
|
+
log(`[agent-sdk-slack-relay-client] refusing post automationUuid=${args.automationUuid}: empty channel`);
|
|
82
84
|
return { ok: false, channel, status: 0, error: "empty channel" };
|
|
83
85
|
}
|
|
84
|
-
const target = ((
|
|
86
|
+
const target = ((_b = args.resolve) !== null && _b !== void 0 ? _b : resolveRelaySlackTarget)();
|
|
85
87
|
if (target === undefined) {
|
|
88
|
+
log(`[agent-sdk-slack-relay-client] refusing post automationUuid=${args.automationUuid} channel=${channel}: no Cursor credential resolved (CURSOR_API_KEY / pod credential absent)`);
|
|
86
89
|
return {
|
|
87
90
|
ok: false,
|
|
88
91
|
channel,
|
|
@@ -90,11 +93,14 @@ export function postRelaySlackMessage(args) {
|
|
|
90
93
|
error: "no Cursor credential for the Slack relay",
|
|
91
94
|
};
|
|
92
95
|
}
|
|
93
|
-
const fetchImpl = (
|
|
96
|
+
const fetchImpl = (_c = args.fetchImpl) !== null && _c !== void 0 ? _c : fetch;
|
|
94
97
|
const url = relaySlackPostUrl({
|
|
95
98
|
baseUrl: target.relayBaseUrl,
|
|
96
99
|
automationUuid: args.automationUuid,
|
|
97
100
|
});
|
|
101
|
+
const messageChars = args.message.length;
|
|
102
|
+
log(`[agent-sdk-slack-relay-client] POST ${url} channel=${channel} messageChars=${String(messageChars)} truncated=${String(messageChars > AGENT_SDK_SLACK_RELAY_MAX_MESSAGE_CHARS)} threaded=${String(args.threadTs !== undefined)} timeoutMs=${String((_d = args.timeoutMs) !== null && _d !== void 0 ? _d : DEFAULT_TIMEOUT_MS)}`);
|
|
103
|
+
const startedAt = Date.now();
|
|
98
104
|
let response;
|
|
99
105
|
try {
|
|
100
106
|
response = yield fetchImpl(url, {
|
|
@@ -105,32 +111,36 @@ export function postRelaySlackMessage(args) {
|
|
|
105
111
|
accept: "application/json",
|
|
106
112
|
},
|
|
107
113
|
body: JSON.stringify(Object.assign({ channel, message: truncateMessage(args.message) }, (args.threadTs === undefined ? {} : { threadTs: args.threadTs }))),
|
|
108
|
-
signal: AbortSignal.timeout((
|
|
114
|
+
signal: AbortSignal.timeout((_e = args.timeoutMs) !== null && _e !== void 0 ? _e : DEFAULT_TIMEOUT_MS),
|
|
109
115
|
});
|
|
110
116
|
}
|
|
111
117
|
catch (error) {
|
|
118
|
+
log(`[agent-sdk-slack-relay-client] request failed before a response channel=${channel} automationUuid=${args.automationUuid} elapsedMs=${String(Date.now() - startedAt)}: ${describeError(error)}`);
|
|
112
119
|
return { ok: false, channel, status: 0, error: describeError(error) };
|
|
113
120
|
}
|
|
114
121
|
let body;
|
|
115
122
|
try {
|
|
116
123
|
body = yield response.json();
|
|
117
124
|
}
|
|
118
|
-
catch (
|
|
125
|
+
catch (_f) {
|
|
119
126
|
body = undefined;
|
|
120
127
|
}
|
|
121
128
|
const record = typeof body === "object" && body !== null && !Array.isArray(body)
|
|
122
129
|
? body
|
|
123
130
|
: {};
|
|
124
131
|
if (!response.ok || record.ok !== true) {
|
|
132
|
+
const error = typeof record.error === "string" && record.error !== ""
|
|
133
|
+
? record.error
|
|
134
|
+
: `relay responded ${response.status}`;
|
|
135
|
+
log(`[agent-sdk-slack-relay-client] relay denied channel=${channel} automationUuid=${args.automationUuid} status=${String(response.status)} bodyOk=${String(record.ok)} elapsedMs=${String(Date.now() - startedAt)}: ${error}`);
|
|
125
136
|
return {
|
|
126
137
|
ok: false,
|
|
127
138
|
channel,
|
|
128
139
|
status: response.status,
|
|
129
|
-
error
|
|
130
|
-
? record.error
|
|
131
|
-
: `relay responded ${response.status}`,
|
|
140
|
+
error,
|
|
132
141
|
};
|
|
133
142
|
}
|
|
143
|
+
log(`[agent-sdk-slack-relay-client] relay posted channel=${typeof record.channel === "string" ? record.channel : channel} automationUuid=${args.automationUuid} status=${String(response.status)} ts=${typeof record.ts === "string" ? record.ts : "<none>"} elapsedMs=${String(Date.now() - startedAt)}`);
|
|
134
144
|
return Object.assign(Object.assign({ ok: true, channel: typeof record.channel === "string" ? record.channel : channel }, (typeof record.ts === "string" ? { ts: record.ts } : {})), (typeof record.permalink === "string"
|
|
135
145
|
? { permalink: record.permalink }
|
|
136
146
|
: {}));
|
|
@@ -1,13 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Sync
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
2
|
+
* Sync workspace trees onto an Agent Store so cloud-runtime turns read
|
|
3
|
+
* them from the store mount. Authored `agent/sandbox/workspace/**` seeds
|
|
4
|
+
* land at store-root `workspace/<path>` (see `buildCloudWorkspaceSection`).
|
|
5
|
+
* Per-turn `workspaceFiles` land at `sessions/<sessionId>/workspace/<path>`
|
|
6
|
+
* (see `buildCloudSessionWorkspaceSection`). Personal-key local+cloud
|
|
7
|
+
* nests both under `agent-serve/<agent>/`.
|
|
8
8
|
*/
|
|
9
9
|
import { type FileSink } from "../files.js";
|
|
10
10
|
import type { SeedFile } from "../types.js";
|
|
11
|
+
export type WorkspaceFileBody = string | {
|
|
12
|
+
encoding: "base64";
|
|
13
|
+
data: string;
|
|
14
|
+
mimeType?: string;
|
|
15
|
+
};
|
|
16
|
+
/** Path or encoding that can never land. Distinct from a store outage. */
|
|
17
|
+
export declare class WorkspaceFileRefusal extends Error {
|
|
18
|
+
readonly name = "WorkspaceFileRefusal";
|
|
19
|
+
}
|
|
11
20
|
/**
|
|
12
21
|
* Mirror the seed tree onto the store at its authored relative paths and
|
|
13
22
|
* delete keys no seed claims so redeploys drop removed files. Every seed
|
|
@@ -19,4 +28,20 @@ export declare function syncWorkspaceToStore(args: {
|
|
|
19
28
|
/** Store-root directory that holds the seed tree. Defaults to `workspace/`. */
|
|
20
29
|
workspacePrefix?: string;
|
|
21
30
|
}): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* Replace the session workspace prefix with this turn's `workspaceFiles`.
|
|
33
|
+
* Keys the map does not claim are deleted so a later send cannot leave a
|
|
34
|
+
* stale `pr.json`. Every path validates before the store is touched.
|
|
35
|
+
* Returns the relative paths that landed, in send order.
|
|
36
|
+
*/
|
|
37
|
+
export declare function syncSessionWorkspaceFiles(args: {
|
|
38
|
+
sink: FileSink;
|
|
39
|
+
files: Record<string, WorkspaceFileBody>;
|
|
40
|
+
workspacePrefix: string;
|
|
41
|
+
}): Promise<string[]>;
|
|
42
|
+
/** Delete every key under the session workspace prefix. */
|
|
43
|
+
export declare function wipeSessionWorkspace(args: {
|
|
44
|
+
sink: FileSink;
|
|
45
|
+
workspacePrefix: string;
|
|
46
|
+
}): Promise<void>;
|
|
22
47
|
//# sourceMappingURL=workspace-sync.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-sync.d.ts","sourceRoot":"","sources":["../../src/internal/workspace-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC/C,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;IAC/B,+EAA+E;IAC/E,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG,OAAO,CAAC,IAAI,CAAC,CAchB"}
|
|
1
|
+
{"version":3,"file":"workspace-sync.d.ts","sourceRoot":"","sources":["../../src/internal/workspace-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C,MAAM,MAAM,iBAAiB,GACzB,MAAM,GACN;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5D,0EAA0E;AAC1E,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,SAAkB,IAAI,0BAA0B;CACjD;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC/C,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;IAC/B,+EAA+E;IAC/E,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG,OAAO,CAAC,IAAI,CAAC,CAchB;AAED;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAAC,IAAI,EAAE;IACpD,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACzC,eAAe,EAAE,MAAM,CAAC;CACzB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAiBpB;AAED,2DAA2D;AAC3D,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC/C,IAAI,EAAE,QAAQ,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;CACzB,GAAG,OAAO,CAAC,IAAI,CAAC,CAMhB"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Sync
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
2
|
+
* Sync workspace trees onto an Agent Store so cloud-runtime turns read
|
|
3
|
+
* them from the store mount. Authored `agent/sandbox/workspace/**` seeds
|
|
4
|
+
* land at store-root `workspace/<path>` (see `buildCloudWorkspaceSection`).
|
|
5
|
+
* Per-turn `workspaceFiles` land at `sessions/<sessionId>/workspace/<path>`
|
|
6
|
+
* (see `buildCloudSessionWorkspaceSection`). Personal-key local+cloud
|
|
7
|
+
* nests both under `agent-serve/<agent>/`.
|
|
8
8
|
*/
|
|
9
9
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
10
10
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
@@ -19,6 +19,13 @@ import { readFile } from "node:fs/promises";
|
|
|
19
19
|
import { agentStoreKeys } from "../files.js";
|
|
20
20
|
import { MEMORY_DIR_NAME } from "../memory.js";
|
|
21
21
|
import { mirrorToStore, storeRelPath } from "./store-mirror.js";
|
|
22
|
+
/** Path or encoding that can never land. Distinct from a store outage. */
|
|
23
|
+
export class WorkspaceFileRefusal extends Error {
|
|
24
|
+
constructor() {
|
|
25
|
+
super(...arguments);
|
|
26
|
+
this.name = "WorkspaceFileRefusal";
|
|
27
|
+
}
|
|
28
|
+
}
|
|
22
29
|
/**
|
|
23
30
|
* Mirror the seed tree onto the store at its authored relative paths and
|
|
24
31
|
* delete keys no seed claims so redeploys drop removed files. Every seed
|
|
@@ -30,20 +37,68 @@ export function syncWorkspaceToStore(args) {
|
|
|
30
37
|
const workspacePrefix = (_a = args.workspacePrefix) !== null && _a !== void 0 ? _a : agentStoreKeys.workspacePrefix();
|
|
31
38
|
const desired = new Map();
|
|
32
39
|
for (const seed of args.seedFiles) {
|
|
33
|
-
desired.set(agentStoreKeys.workspaceFile(
|
|
40
|
+
desired.set(agentStoreKeys.workspaceFile(workspaceRelPath(seed.relativePath), workspacePrefix), yield readFile(seed.sourcePath));
|
|
34
41
|
}
|
|
35
42
|
yield mirrorToStore({ sink: args.sink, prefix: workspacePrefix, desired });
|
|
36
43
|
});
|
|
37
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Replace the session workspace prefix with this turn's `workspaceFiles`.
|
|
47
|
+
* Keys the map does not claim are deleted so a later send cannot leave a
|
|
48
|
+
* stale `pr.json`. Every path validates before the store is touched.
|
|
49
|
+
* Returns the relative paths that landed, in send order.
|
|
50
|
+
*/
|
|
51
|
+
export function syncSessionWorkspaceFiles(args) {
|
|
52
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
53
|
+
const desired = new Map();
|
|
54
|
+
const relPaths = [];
|
|
55
|
+
for (const [relativePath, contents] of Object.entries(args.files)) {
|
|
56
|
+
const rel = workspaceRelPath(relativePath);
|
|
57
|
+
desired.set(agentStoreKeys.workspaceFile(rel, args.workspacePrefix), workspaceFileBytes(relativePath, contents));
|
|
58
|
+
relPaths.push(rel);
|
|
59
|
+
}
|
|
60
|
+
yield mirrorToStore({
|
|
61
|
+
sink: args.sink,
|
|
62
|
+
prefix: args.workspacePrefix,
|
|
63
|
+
desired,
|
|
64
|
+
});
|
|
65
|
+
return relPaths;
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
/** Delete every key under the session workspace prefix. */
|
|
69
|
+
export function wipeSessionWorkspace(args) {
|
|
70
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
71
|
+
yield mirrorToStore({
|
|
72
|
+
sink: args.sink,
|
|
73
|
+
prefix: args.workspacePrefix,
|
|
74
|
+
desired: new Map(),
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
}
|
|
38
78
|
/**
|
|
39
79
|
* Same reservation as local materialization's `resolveWorkspaceWritePath`:
|
|
40
|
-
* `memory/` is the shared cross-session journal, so a seed under it
|
|
41
|
-
* the sync exactly as it fails a local first turn.
|
|
80
|
+
* `memory/` is the shared cross-session journal, so a seed or send under it
|
|
81
|
+
* fails the sync exactly as it fails a local first turn.
|
|
42
82
|
*/
|
|
43
|
-
function
|
|
44
|
-
|
|
83
|
+
function workspaceRelPath(relPath) {
|
|
84
|
+
let rel;
|
|
85
|
+
try {
|
|
86
|
+
rel = storeRelPath(relPath, "workspace file");
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
throw new WorkspaceFileRefusal(error instanceof Error ? error.message : String(error));
|
|
90
|
+
}
|
|
45
91
|
if (rel.split("/", 1)[0] === MEMORY_DIR_NAME) {
|
|
46
|
-
throw new
|
|
92
|
+
throw new WorkspaceFileRefusal(`"${MEMORY_DIR_NAME}" is reserved for shared session memory; refusing to sync ${relPath}`);
|
|
47
93
|
}
|
|
48
94
|
return rel;
|
|
49
95
|
}
|
|
96
|
+
function workspaceFileBytes(relativePath, contents) {
|
|
97
|
+
if (typeof contents === "string") {
|
|
98
|
+
return new TextEncoder().encode(contents);
|
|
99
|
+
}
|
|
100
|
+
if (contents.encoding === "base64") {
|
|
101
|
+
return new Uint8Array(Buffer.from(contents.data, "base64"));
|
|
102
|
+
}
|
|
103
|
+
throw new WorkspaceFileRefusal(`Unsupported workspace file encoding for ${relativePath}`);
|
|
104
|
+
}
|
|
@@ -37,6 +37,15 @@ export declare function buildCloudMemorySection(agentName: string): string;
|
|
|
37
37
|
* `syncWorkspaceToStore`), so the model has to be told where they are.
|
|
38
38
|
*/
|
|
39
39
|
export declare function buildCloudWorkspaceSection(dir: string): string;
|
|
40
|
+
/**
|
|
41
|
+
* Per-turn preamble for cloud `workspaceFiles` after they land on the
|
|
42
|
+
* session store prefix (see `syncSessionWorkspaceFiles`). Omitted when
|
|
43
|
+
* the sync did not land.
|
|
44
|
+
*
|
|
45
|
+
* Same shared Agent Store mount as authored seeds — the session path is
|
|
46
|
+
* replace-per-send / task-end wipe lifetime, not a separate mount ACL.
|
|
47
|
+
*/
|
|
48
|
+
export declare function buildCloudSessionWorkspaceSection(dir: string, relPaths: readonly string[]): string;
|
|
40
49
|
/** Relative path of an agent-side tool script inside the session workspace. */
|
|
41
50
|
export declare function agentToolScriptPath(toolName: string): string;
|
|
42
51
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/internal/workspace.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAmBH,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,aAAa,EACd,MAAM,aAAa,CAAC;AAMrB,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,aAAa,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,IAAI,EAAE,OAAO,CAAC;IACd;;;;;;;OAOG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAOjE;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAM9D;AAED,+EAA+E;AAC/E,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,mBAAmB,CAAC;AAE7D;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM1D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,MAAM,GAAG,SAAS,CAapB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,GAAE;IAAE,cAAc,EAAE,OAAO,CAAA;CAA8B,GAC/D,MAAM,CA8CR;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,EAAE;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,GACjC,MAAM,CA6BR;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE;IAAE,cAAc,EAAE,OAAO,CAAC;IAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAAE,GAChE,MAAM,CAeR;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAcrE;AAED,6DAA6D;AAC7D,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAUpE;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,IAAI,CAAC,CAkCf;AAqGD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAO3D;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,CACX,MAAM,EACN,MAAM,GAAG;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CACjE,GACA,OAAO,CAAC,IAAI,CAAC,CAcf"}
|
|
1
|
+
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/internal/workspace.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAmBH,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,aAAa,EACd,MAAM,aAAa,CAAC;AAMrB,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,aAAa,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,IAAI,EAAE,OAAO,CAAC;IACd;;;;;;;OAOG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAOjE;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAM9D;AAED;;;;;;;GAOG;AACH,wBAAgB,iCAAiC,CAC/C,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,SAAS,MAAM,EAAE,GAC1B,MAAM,CAOR;AAED,+EAA+E;AAC/E,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,mBAAmB,CAAC;AAE7D;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM1D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,MAAM,GAAG,SAAS,CAapB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,GAAE;IAAE,cAAc,EAAE,OAAO,CAAA;CAA8B,GAC/D,MAAM,CA8CR;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,EAAE;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,GACjC,MAAM,CA6BR;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE;IAAE,cAAc,EAAE,OAAO,CAAC;IAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAAE,GAChE,MAAM,CAeR;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAcrE;AAED,6DAA6D;AAC7D,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAUpE;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,IAAI,CAAC,CAkCf;AAqGD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAO3D;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,CACX,MAAM,EACN,MAAM,GAAG;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CACjE,GACA,OAAO,CAAC,IAAI,CAAC,CAcf"}
|
|
@@ -50,6 +50,22 @@ export function buildCloudWorkspaceSection(dir) {
|
|
|
50
50
|
`The agent's authored workspace files live at \`${dir}\` on this machine. Relative paths in your instructions that name these files resolve under that directory rather than your working directory. Read them with your normal file tools. The directory is shared across sessions, so copy a file into your working directory before editing it.`,
|
|
51
51
|
].join("\n");
|
|
52
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* Per-turn preamble for cloud `workspaceFiles` after they land on the
|
|
55
|
+
* session store prefix (see `syncSessionWorkspaceFiles`). Omitted when
|
|
56
|
+
* the sync did not land.
|
|
57
|
+
*
|
|
58
|
+
* Same shared Agent Store mount as authored seeds — the session path is
|
|
59
|
+
* replace-per-send / task-end wipe lifetime, not a separate mount ACL.
|
|
60
|
+
*/
|
|
61
|
+
export function buildCloudSessionWorkspaceSection(dir, relPaths) {
|
|
62
|
+
const listed = relPaths.map((path) => `\`${path}\``).join(", ");
|
|
63
|
+
return [
|
|
64
|
+
"## Session workspace files",
|
|
65
|
+
"",
|
|
66
|
+
`This turn's workspace files live at \`${dir}\` on this machine (${listed}). Read them with your normal file tools. They sit on the same shared Agent Store mount as authored workspace seeds; the session directory is replaced on the next send for this session, and task sessions remove it when they finish.`,
|
|
67
|
+
].join("\n");
|
|
68
|
+
}
|
|
53
69
|
/** Relative path of an agent-side tool script inside the session workspace. */
|
|
54
70
|
export function agentToolScriptPath(toolName) {
|
|
55
71
|
return `.agent-serve/tools/${toolName}.sh`;
|