@cursor/july 0.1.114 → 0.2.0
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/channels/slack/inbound.d.ts +7 -0
- package/dist/channels/slack/inbound.d.ts.map +1 -1
- package/dist/channels/slack/inbound.js +23 -0
- package/dist/channels/slack/slack-channel.d.ts.map +1 -1
- package/dist/channels/slack/slack-channel.js +83 -4
- package/dist/docs/404.html +2 -2
- package/dist/docs/assets/{app.BqkJwOZ-.js → app.9eAtsjAM.js} +4 -4
- package/dist/docs/assets/chunks/@localSearchIndexroot.DjNBgxTF.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.BJAi2KiV.js → VPLocalSearchBox.C9s69nxj.js} +1 -1
- package/dist/docs/assets/chunks/{arc.BZpXTgvV.js → arc.DmWDRaF-.js} +1 -1
- package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.WYI-7F-Y.js → architectureDiagram-Q4EWVU46.BE1Wj4f3.js} +1 -1
- package/dist/docs/assets/chunks/{baseUniq.CZaUPpg0.js → baseUniq.pmEZGnWu.js} +1 -1
- package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.D6UES2pD.js → blockDiagram-DXYQGD6D.D6mM-5XN.js} +1 -1
- package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.cwebIe4i.js → c4Diagram-AHTNJAMY.ZQYTPC1b.js} +1 -1
- package/dist/docs/assets/chunks/channel.BNF8VK-B.js +1 -0
- package/dist/docs/assets/chunks/{chunk-4BX2VUAB.fVyFnjxg.js → chunk-4BX2VUAB.CKJ7gaK8.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-4TB4RGXK.BanufG1c.js → chunk-4TB4RGXK.CL61HnvB.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-55IACEB6.VaSMz5-2.js → chunk-55IACEB6.DsA4XA1m.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-EDXVE4YY.CN2diZOM.js → chunk-EDXVE4YY.BODHCHFW.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-FMBD7UC4.g4ivypu3.js → chunk-FMBD7UC4.D6NBaZTa.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-OYMX7WX6.GZXKn9JJ.js → chunk-OYMX7WX6.BLPuqFXg.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-QZHKN3VN.itXxJZCd.js → chunk-QZHKN3VN.BFs_ML8Z.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-YZCP3GAM.-rw2GfvX.js → chunk-YZCP3GAM.BDjuFyZv.js} +1 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.iViHzfrK.js +1 -0
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.iViHzfrK.js +1 -0
- package/dist/docs/assets/chunks/clone.CJoR2BBM.js +1 -0
- package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.CmaI5br0.js → cose-bilkent-S5V4N54A.D85HNEsi.js} +1 -1
- package/dist/docs/assets/chunks/{dagre-KV5264BT.4wY9S4Kt.js → dagre-KV5264BT.V463KlSF.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-5BDNPKRD.Pc3c0u9W.js → diagram-5BDNPKRD.DhBDu1ab.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.CYrWz-nj.js → diagram-G4DWMVQ6.v6sC68zl.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-MMDJMWI5.Bgj5hukb.js → diagram-MMDJMWI5.DhHsdXYv.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-TYMM5635.DGMEXalS.js → diagram-TYMM5635.BPWNSFZc.js} +1 -1
- package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.GepTV9Im.js → erDiagram-SMLLAGMA.Cq0wTMPL.js} +1 -1
- package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.DVKywg3j.js → flowDiagram-DWJPFMVM.MveMtucC.js} +1 -1
- package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.C7qt9Mlo.js → ganttDiagram-T4ZO3ILL.BzKfGUSf.js} +1 -1
- package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.U30_r82P.js → gitGraphDiagram-UUTBAWPF.OToXTSW_.js} +1 -1
- package/dist/docs/assets/chunks/{graph.CyyMyAWv.js → graph.D82tam-l.js} +1 -1
- package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.Dn9ACW3y.js → infoDiagram-42DDH7IO.DzFlRmcE.js} +1 -1
- package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.DlIdIGOA.js → ishikawaDiagram-UXIWVN3A.CVPRJiKe.js} +1 -1
- package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.DZj4vy4E.js → journeyDiagram-VCZTEJTY.CQvNTfQC.js} +1 -1
- package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.Dl63eMUV.js → kanban-definition-6JOO6SKY.BwywywUl.js} +1 -1
- package/dist/docs/assets/chunks/{layout.BLHZLWPH.js → layout.C4BkPPba.js} +1 -1
- package/dist/docs/assets/chunks/{linear.aXKGKaNw.js → linear.FoSfGKD4.js} +1 -1
- package/dist/docs/assets/chunks/{min.zWnFcpcc.js → min.yLh8jqfl.js} +1 -1
- package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.Qs4MQBea.js → mindmap-definition-QFDTVHPH.C9Dq2_CN.js} +1 -1
- package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.BmPHgsk7.js → pieDiagram-DEJITSTG.CiGyBcES.js} +1 -1
- package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.D5MQ3gwA.js → quadrantDiagram-34T5L4WZ.1FWea9nj.js} +1 -1
- package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.CkdUFrO7.js → requirementDiagram-MS252O5E.B1q7ntiV.js} +1 -1
- package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.KZrljrAV.js → sankeyDiagram-XADWPNL6.Cpr4oU_k.js} +1 -1
- package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.XMoEW-Lx.js → sequenceDiagram-FGHM5R23.CUK68STn.js} +1 -1
- package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.BmTzePLj.js → stateDiagram-FHFEXIEX.zU0yL2m4.js} +1 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.nV8Nl-td.js +1 -0
- package/dist/docs/assets/chunks/{theme.BfQzpxsg.js → theme.DhnKd0CD.js} +2 -2
- package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.Dug0oamp.js → timeline-definition-GMOUNBTQ.CNYoXo3F.js} +1 -1
- package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.BOTHrEFu.js → vennDiagram-DHZGUBPP.DFWH3G9s.js} +1 -1
- package/dist/docs/assets/chunks/{wardley-RL74JXVD.DXy2i1LS.js → wardley-RL74JXVD.Do4PwzeN.js} +1 -1
- package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.CoXKdfi6.js → wardleyDiagram-NUSXRM2D.7WLkqM7s.js} +1 -1
- package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.DXoSCjAW.js → xychartDiagram-5P7HB3ND.-SyUNgWw.js} +1 -1
- package/dist/docs/assets/{guides_slack.md.Bo96y42E.js → guides_slack.md.DVjNyqq5.js} +3 -3
- package/dist/docs/assets/{guides_slack.md.Bo96y42E.lean.js → guides_slack.md.DVjNyqq5.lean.js} +1 -1
- package/dist/docs/assets/reference_cli.md.BvnQM8wd.js +97 -0
- package/dist/docs/assets/reference_cli.md.BvnQM8wd.lean.js +1 -0
- package/dist/docs/building-with-agents.html +35 -35
- package/dist/docs/deployment.html +35 -35
- package/dist/docs/evals.html +35 -35
- package/dist/docs/guides/agent-to-agent.html +35 -35
- package/dist/docs/guides/bitbucket.html +35 -35
- package/dist/docs/guides/cloud-agents.html +35 -35
- package/dist/docs/guides/convert-automation.html +35 -35
- package/dist/docs/guides/github.html +35 -35
- package/dist/docs/guides/gitlab.html +35 -35
- package/dist/docs/guides/grokbot-agents.html +35 -35
- package/dist/docs/guides/hooks.html +35 -35
- package/dist/docs/guides/improve.html +35 -35
- package/dist/docs/guides/jev.html +35 -35
- package/dist/docs/guides/mcp-oauth.html +35 -35
- package/dist/docs/guides/opentelemetry.html +35 -35
- package/dist/docs/guides/slack.html +37 -37
- package/dist/docs/guides/slack.md +7 -0
- package/dist/docs/guides/webhooks.html +35 -35
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +35 -35
- package/dist/docs/index.html +35 -35
- package/dist/docs/llms-full.txt +690 -751
- package/dist/docs/llms.txt +1 -1
- package/dist/docs/quickstart.html +35 -35
- package/dist/docs/reference/agent-config.html +35 -35
- package/dist/docs/reference/artifacts.html +35 -35
- package/dist/docs/reference/channels.html +35 -35
- package/dist/docs/reference/cli.html +127 -125
- package/dist/docs/reference/cli.md +685 -753
- package/dist/docs/reference/connections.html +35 -35
- package/dist/docs/reference/evals.html +35 -35
- package/dist/docs/reference/extensions.html +35 -35
- package/dist/docs/reference/hooks.html +35 -35
- package/dist/docs/reference/http-api.html +35 -35
- package/dist/docs/reference/instructions.html +35 -35
- package/dist/docs/reference/playground.html +35 -35
- package/dist/docs/reference/project-layout.html +35 -35
- package/dist/docs/reference/prompt.html +35 -35
- package/dist/docs/reference/schedules.html +35 -35
- package/dist/docs/reference/sessions.html +35 -35
- package/dist/docs/reference/skills.html +35 -35
- package/dist/docs/reference/subagents.html +35 -35
- package/dist/docs/reference/tools.html +35 -35
- package/dist/docs/templates/agentic-owners.html +35 -35
- package/dist/docs/templates/pr-autofixer.html +35 -35
- package/dist/docs/templates/security-reviewer.html +35 -35
- package/dist/docs/templates/thermo-quality-review.html +35 -35
- package/dist/docs/templates/thermo-review.html +35 -35
- package/dist/docs/templates/triage.html +35 -35
- package/dist/docs/troubleshooting.html +35 -35
- package/dist/internal/cli-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +9 -1
- package/dist/internal/deploy-client.d.ts +6 -0
- package/dist/internal/deploy-client.d.ts.map +1 -1
- package/dist/internal/deploy-client.js +3 -0
- package/dist/internal/discovery/agent-config.d.ts +3 -1
- package/dist/internal/discovery/agent-config.d.ts.map +1 -1
- package/dist/internal/discovery/agent-config.js +7 -4
- package/dist/internal/framework-storage-selection.d.ts +1 -1
- package/dist/internal/framework-storage-selection.d.ts.map +1 -1
- package/dist/internal/platform-timers.d.ts.map +1 -1
- package/dist/internal/platform-timers.js +20 -2
- package/dist/internal/reminder-runner.d.ts +79 -1
- package/dist/internal/reminder-runner.d.ts.map +1 -1
- package/dist/internal/reminder-runner.js +276 -44
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +7 -0
- package/dist/memory.d.ts +4 -0
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +28 -4
- package/dist/playground/assets/index-DLwnR9ys.css +1 -0
- package/dist/playground/index.html +2 -2
- package/dist/types.d.ts +16 -9
- package/dist/types.d.ts.map +1 -1
- package/docs/guides/slack.md +7 -0
- package/docs/reference/cli.md +686 -754
- package/package.json +1 -1
- package/src/channels/slack/inbound.ts +24 -0
- package/src/channels/slack/slack-channel.ts +123 -1
- package/src/internal/cli-deploy.ts +12 -1
- package/src/internal/deploy-client.ts +9 -0
- package/src/internal/discovery/agent-config.ts +8 -6
- package/src/internal/framework-storage-selection.ts +1 -1
- package/src/internal/platform-timers.ts +24 -2
- package/src/internal/reminder-runner.ts +426 -63
- package/src/internal/server.ts +8 -0
- package/src/memory.ts +37 -3
- package/src/types.ts +16 -9
- package/dist/docs/assets/chunks/@localSearchIndexroot.BnSgidYE.js +0 -1
- package/dist/docs/assets/chunks/channel.DdM5EfNW.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CjfGHeg2.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CjfGHeg2.js +0 -1
- package/dist/docs/assets/chunks/clone.wSOICb_f.js +0 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.Cu5X28zZ.js +0 -1
- package/dist/docs/assets/reference_cli.md.DLWDz9ij.js +0 -95
- package/dist/docs/assets/reference_cli.md.DLWDz9ij.lean.js +0 -1
- package/dist/playground/assets/index-C61EWMBK.css +0 -1
- /package/dist/playground/assets/{index-CrMWlgUU.js → index-CX6oTKwz.js} +0 -0
|
@@ -51,7 +51,7 @@ import type { AgentArchitecture } from "../types.js";
|
|
|
51
51
|
export interface FrameworkStorageSelectionInput {
|
|
52
52
|
/** `agent/storage.ts`, when the author wrote one (v1 only: discovery rejects it on v2). */
|
|
53
53
|
readonly authored: StorageDefinition | undefined;
|
|
54
|
-
/** {@link AgentConfig.architecture};
|
|
54
|
+
/** {@link AgentConfig.architecture}; discovery fills `"v2"` when omitted. */
|
|
55
55
|
readonly architecture?: AgentArchitecture | undefined;
|
|
56
56
|
/** Environment override for tests; defaults to `process.env`. */
|
|
57
57
|
readonly env?: Record<string, string | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"framework-storage-selection.d.ts","sourceRoot":"","sources":["../../src/internal/framework-storage-selection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAGH,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAMtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AASrD,MAAM,WAAW,8BAA8B;IAC7C,2FAA2F;IAC3F,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACjD,
|
|
1
|
+
{"version":3,"file":"framework-storage-selection.d.ts","sourceRoot":"","sources":["../../src/internal/framework-storage-selection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAGH,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAMtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AASrD,MAAM,WAAW,8BAA8B;IAC7C,2FAA2F;IAC3F,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACjD,6EAA6E;IAC7E,QAAQ,CAAC,YAAY,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACtD,iEAAiE;IACjE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CACnD;AAED;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,8BAA8B,GACpC,iBAAiB,GAAG,SAAS,CA0E/B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-timers.d.ts","sourceRoot":"","sources":["../../src/internal/platform-timers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAEL,KAAK,oBAAoB,EAK1B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAI5E,MAAM,WAAW,cAAc;IAC7B,cAAc,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IAC7D,aAAa,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC3C,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,iCAAiC;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAqED,wBAAgB,gCAAgC,CAC9C,OAAO,GAAE,iCAAsC,GAC9C,cAAc,CA0EhB;
|
|
1
|
+
{"version":3,"file":"platform-timers.d.ts","sourceRoot":"","sources":["../../src/internal/platform-timers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAEL,KAAK,oBAAoB,EAK1B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAI5E,MAAM,WAAW,cAAc;IAC7B,cAAc,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IAC7D,aAAa,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC3C,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,iCAAiC;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAqED,wBAAgB,gCAAgC,CAC9C,OAAO,GAAE,iCAAsC,GAC9C,cAAc,CA0EhB;AAgFD;;;;GAIG;AACH,wBAAgB,sCAAsC,CACpD,OAAO,GAAE,iCAAsC,GAC9C,oBAAoB,CAsHtB"}
|
|
@@ -162,6 +162,24 @@ function timedWorkJsonFetch(options, method, path, body) {
|
|
|
162
162
|
return fetchImpl(`${resolveBaseUrl(options)}${path}`, Object.assign({ method, headers: Object.assign({ Authorization: `Bearer ${resolveApiKey(options)}` }, (body === undefined ? {} : { "Content-Type": "application/json" })) }, (body === undefined ? {} : { body: JSON.stringify(body) })));
|
|
163
163
|
});
|
|
164
164
|
}
|
|
165
|
+
const CP_ERROR_BODY_LIMIT = 512;
|
|
166
|
+
/**
|
|
167
|
+
* Read failures carry status and a bounded body: the guest logs them once
|
|
168
|
+
* per process, and a 405 body names the route the caller should be on.
|
|
169
|
+
*/
|
|
170
|
+
function reminderCpReadError(what, response) {
|
|
171
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
172
|
+
let body = "";
|
|
173
|
+
try {
|
|
174
|
+
body = (yield response.text()).trim();
|
|
175
|
+
}
|
|
176
|
+
catch (_a) {
|
|
177
|
+
// Status-only detail.
|
|
178
|
+
}
|
|
179
|
+
const detail = body === "" ? "" : ` ${body.slice(0, CP_ERROR_BODY_LIMIT)}`;
|
|
180
|
+
return new Error(`reminder CP ${what} failed: HTTP ${response.status}${detail}`);
|
|
181
|
+
});
|
|
182
|
+
}
|
|
165
183
|
/**
|
|
166
184
|
* Cursor-hosted HTTP ReminderControlPlane for architecture v2.
|
|
167
185
|
* Speaks factory `/internal/agentsdk/reminders` (ELB → factory ECS).
|
|
@@ -191,7 +209,7 @@ export function createCursorHostedReminderControlPlane(options = {}) {
|
|
|
191
209
|
return undefined;
|
|
192
210
|
}
|
|
193
211
|
if (!response.ok) {
|
|
194
|
-
throw
|
|
212
|
+
throw yield reminderCpReadError("get", response);
|
|
195
213
|
}
|
|
196
214
|
const parsed = yield response.json();
|
|
197
215
|
return isReminderRecord(parsed) ? parsed : undefined;
|
|
@@ -201,7 +219,7 @@ export function createCursorHostedReminderControlPlane(options = {}) {
|
|
|
201
219
|
return __awaiter(this, void 0, void 0, function* () {
|
|
202
220
|
const response = yield timedWorkJsonFetch(options, "GET", `${AGENTSDK_REMINDERS_PREFIX}/reminders`);
|
|
203
221
|
if (!response.ok) {
|
|
204
|
-
throw
|
|
222
|
+
throw yield reminderCpReadError("list", response);
|
|
205
223
|
}
|
|
206
224
|
const parsed = yield response.json();
|
|
207
225
|
if (parsed === null ||
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* prompt XOR named handler XOR run, every/cron/delay/at schedules, and
|
|
4
4
|
* until as function XOR prompt.
|
|
5
5
|
*/
|
|
6
|
-
import type { DiscoveredReminder, ReminderCreateInput, ReminderInfo, ReminderStatus } from "../types.js";
|
|
6
|
+
import type { AuthContext, DiscoveredReminder, ReminderCreateInput, ReminderInfo, ReminderStatus } from "../types.js";
|
|
7
7
|
import type { PlatformTimers } from "./platform-timers.js";
|
|
8
8
|
import { type ReminderControlPlane, type ReminderExecutionOutcome, type ReminderFireDescriptor } from "./reminder-control-plane-protocol.js";
|
|
9
9
|
import { type SessionEngine } from "./session-engine.js";
|
|
@@ -30,7 +30,41 @@ export interface ReminderRunnerOptions {
|
|
|
30
30
|
controlPlane?: ReminderControlPlane;
|
|
31
31
|
/** Agent architecture; used with {@link controlPlane} for v2 protocol path. */
|
|
32
32
|
architecture?: "v1" | "v2";
|
|
33
|
+
/**
|
|
34
|
+
* Hosted v2 guest (`--no-control-plane`, architecture v2). A pod starts
|
|
35
|
+
* for one delivery and stops when it settles, so a fire usually lands on
|
|
36
|
+
* a pod that holds no session for the reminder's continuation, and the
|
|
37
|
+
* pod may stop as soon as the fire's outcome is applied. The runner then
|
|
38
|
+
* opens a session on the stored continuation key and waits for the turn.
|
|
39
|
+
*/
|
|
40
|
+
hostedGuest?: ReminderHostedGuestOptions;
|
|
41
|
+
}
|
|
42
|
+
export interface ReminderHostedGuestOptions {
|
|
43
|
+
/**
|
|
44
|
+
* Principal for the session a prompt fire opens when the pod holds none.
|
|
45
|
+
* Hosted admissions open sessions with the same value, so a session the
|
|
46
|
+
* engine restores from durable storage keeps its principal. Return
|
|
47
|
+
* `undefined` when no principal applies; the fire then skips with a
|
|
48
|
+
* reschedule so the control plane keeps the reminder armed.
|
|
49
|
+
*/
|
|
50
|
+
fireAuth: () => AuthContext | null | undefined;
|
|
33
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Reschedule applied when a hosted fire cannot open a session (no
|
|
54
|
+
* principal). A one-shot `skipped` outcome without a reschedule completes
|
|
55
|
+
* the reminder, which would lose the check-in for good.
|
|
56
|
+
*/
|
|
57
|
+
export declare const REMINDER_SESSION_OPEN_RETRY_DELAY = "5m";
|
|
58
|
+
/**
|
|
59
|
+
* `reason` tag on `agent_sdk.reminder.fire_outcome`. Prompt fires report
|
|
60
|
+
* how the session was reached: `session_joined` (held by this pod),
|
|
61
|
+
* `session_restored` (read back from durable storage), `session_opened`
|
|
62
|
+
* (fresh session on the stored key), `session_gone` (no session and none
|
|
63
|
+
* could be opened). `fire_threw` pairs with kind `error`: the fire raised
|
|
64
|
+
* and the hosted admission retries it.
|
|
65
|
+
*/
|
|
66
|
+
export type ReminderFireOutcomeReason = "session_gone" | "session_opened" | "session_restored" | "session_joined" | "handler_missing" | "handler_lost_on_restart" | "missing_handler" | "run_stop" | "run_skip" | "run_delivered" | "until_fn" | "busy" | "followup_failed" | "fire_threw";
|
|
67
|
+
export declare const REMINDER_FIRE_OUTCOME_METRIC = "agent_sdk.reminder.fire_outcome";
|
|
34
68
|
/**
|
|
35
69
|
* Server wiring for {@link ReminderRunnerOptions.rejectAnonymousHandlers}:
|
|
36
70
|
* architecture v2 always rejects anonymous run/until (local or hosted).
|
|
@@ -55,9 +89,23 @@ export declare class ReminderRunner {
|
|
|
55
89
|
private readonly rejectAnonymousHandlers;
|
|
56
90
|
private readonly controlPlane;
|
|
57
91
|
private readonly architecture;
|
|
92
|
+
private readonly hostedGuest;
|
|
93
|
+
/**
|
|
94
|
+
* A control-plane read failure is logged once per outage, not per call.
|
|
95
|
+
* The next successful read re-arms the log.
|
|
96
|
+
*/
|
|
97
|
+
private controlPlaneReadFailureLogged;
|
|
58
98
|
constructor(engine: SessionEngine, logger?: (line: string) => void, platformTimers?: PlatformTimers | undefined, options?: ReminderRunnerOptions);
|
|
59
99
|
/** True when create/cancel/rekey/fire go through the CP protocol. */
|
|
60
100
|
private get usesControlPlaneProtocol();
|
|
101
|
+
/**
|
|
102
|
+
* Where reminder documents are read from. Under the CP protocol that is
|
|
103
|
+
* the v2 control-plane client; the v1 timed-work route answers 405 for a
|
|
104
|
+
* v2 deployment, which used to leave `list()` with only this process's
|
|
105
|
+
* in-memory map (breaking arm idempotence and `cancelForContinuation`).
|
|
106
|
+
*/
|
|
107
|
+
private get reminderReader();
|
|
108
|
+
private logControlPlaneReadFailure;
|
|
61
109
|
/**
|
|
62
110
|
* Load reminder documents from the control plane into memory. Does not
|
|
63
111
|
* arm in-process timers — the CP owns clocks.
|
|
@@ -67,6 +115,11 @@ export declare class ReminderRunner {
|
|
|
67
115
|
start(): Promise<void>;
|
|
68
116
|
private persist;
|
|
69
117
|
private getRecord;
|
|
118
|
+
/**
|
|
119
|
+
* Under the CP protocol a list failure propagates: the in-memory map is
|
|
120
|
+
* only what this process created, and returning it would let a caller
|
|
121
|
+
* arm duplicates or miss rows to cancel. v1 keeps the best-effort form.
|
|
122
|
+
*/
|
|
70
123
|
private allRecords;
|
|
71
124
|
stop(): void;
|
|
72
125
|
create(input: ReminderCreateInput): Promise<ReminderInfo>;
|
|
@@ -99,6 +152,14 @@ export declare class ReminderRunner {
|
|
|
99
152
|
* authoritative status/fireCount — the control plane applies the outcome.
|
|
100
153
|
*/
|
|
101
154
|
executeFire(descriptor: ReminderFireDescriptor): Promise<ReminderExecutionOutcome>;
|
|
155
|
+
private runFire;
|
|
156
|
+
/**
|
|
157
|
+
* One structured line and one `agent_sdk.reminder.fire_outcome` count per
|
|
158
|
+
* fire. Emitted through the host OTel meter, the same path hosted v2
|
|
159
|
+
* exports turn/tool metrics on, so a fire that ends in `stop` is visible
|
|
160
|
+
* beside the control plane's `timed_work.fire` count.
|
|
161
|
+
*/
|
|
162
|
+
private recordFireOutcome;
|
|
102
163
|
private recordFromDescriptor;
|
|
103
164
|
private armTimer;
|
|
104
165
|
private clearTimer;
|
|
@@ -112,6 +173,16 @@ export declare class ReminderRunner {
|
|
|
112
173
|
*/
|
|
113
174
|
private resolveFollowupAuth;
|
|
114
175
|
private deliverPrompt;
|
|
176
|
+
/**
|
|
177
|
+
* Where a prompt fire joins. The pod's own store first; on a hosted guest
|
|
178
|
+
* the durable mirror next, because the pod that armed the reminder is
|
|
179
|
+
* usually gone and the session lives only in storage. A restored session
|
|
180
|
+
* keeps its own principal (channel admissions may carry a sender), so the
|
|
181
|
+
* fire joins under that, never under {@link ReminderHostedGuestOptions.fireAuth}.
|
|
182
|
+
*/
|
|
183
|
+
private resolveFollowupTarget;
|
|
184
|
+
private deliverPromptFire;
|
|
185
|
+
private promptDelivery;
|
|
115
186
|
/**
|
|
116
187
|
* Join the reminder's existing session. Control-plane (`/v2`) channels
|
|
117
188
|
* refuse authored `continuationToken`; pass the stored key as
|
|
@@ -120,6 +191,13 @@ export declare class ReminderRunner {
|
|
|
120
191
|
*/
|
|
121
192
|
private followupSendOptions;
|
|
122
193
|
private channelUsesControlPlaneContinuation;
|
|
194
|
+
/**
|
|
195
|
+
* Local and v1 track the turn in the background: the process outlives the
|
|
196
|
+
* fire. A hosted v2 guest waits for the turn and its durable writes first,
|
|
197
|
+
* because the control plane may stop the pod as soon as the fire's
|
|
198
|
+
* outcome is applied, and `delivered` must mean the turn ran.
|
|
199
|
+
*/
|
|
200
|
+
private settleFollowup;
|
|
123
201
|
private sendFollowup;
|
|
124
202
|
private buildFireContext;
|
|
125
203
|
private buildUntilContext;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reminder-runner.d.ts","sourceRoot":"","sources":["../../src/internal/reminder-runner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"reminder-runner.d.ts","sourceRoot":"","sources":["../../src/internal/reminder-runner.ts"],"names":[],"mappings":"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"}
|