@cursor/july 0.1.38 → 0.1.39

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.
Files changed (70) hide show
  1. package/dist/bin/agent-serve.js +0 -0
  2. package/dist/channels/slack/post-update-delivery.d.ts +85 -0
  3. package/dist/channels/slack/post-update-delivery.d.ts.map +1 -0
  4. package/dist/docs/404.html +1 -1
  5. package/dist/docs/ab.html +2 -2
  6. package/dist/docs/assets/{app.B4nJHNwO.js → app.BQ8Hihdf.js} +1 -1
  7. package/dist/docs/assets/chunks/@localSearchIndexroot.B-VTH4As.js +1 -0
  8. package/dist/docs/assets/chunks/{VPLocalSearchBox.DHrr3pLB.js → VPLocalSearchBox.BBCr8Yuy.js} +1 -1
  9. package/dist/docs/assets/chunks/{theme.DQNgSMha.js → theme.CK_NiGC-.js} +2 -2
  10. package/dist/docs/building-with-agents.html +2 -2
  11. package/dist/docs/concepts.html +2 -2
  12. package/dist/docs/deployment.html +2 -2
  13. package/dist/docs/evals.html +2 -2
  14. package/dist/docs/example-agents/approval-buddy.html +2 -2
  15. package/dist/docs/example-agents/benny.html +2 -2
  16. package/dist/docs/example-agents/bugbot.html +2 -2
  17. package/dist/docs/example-agents/codebase-wiki.html +2 -2
  18. package/dist/docs/example-agents/codeowners-review.html +2 -2
  19. package/dist/docs/example-agents/concierge.html +2 -2
  20. package/dist/docs/example-agents/fsd.html +2 -2
  21. package/dist/docs/example-agents/index.html +2 -2
  22. package/dist/docs/example-agents/knowledge-base.html +2 -2
  23. package/dist/docs/example-agents/oncall.html +2 -2
  24. package/dist/docs/example-agents/security-reviewer.html +2 -2
  25. package/dist/docs/example-agents/slack-agent.html +2 -2
  26. package/dist/docs/example-agents/weather-agent.html +2 -2
  27. package/dist/docs/guides/agent-to-agent.html +2 -2
  28. package/dist/docs/guides/cloud-runtime.html +2 -2
  29. package/dist/docs/guides/github.html +2 -2
  30. package/dist/docs/guides/human-in-the-loop.html +2 -2
  31. package/dist/docs/guides/mcp-oauth.html +2 -2
  32. package/dist/docs/guides/slack.html +2 -2
  33. package/dist/docs/guides/webhooks.html +2 -2
  34. package/dist/docs/hillclimbing.html +2 -2
  35. package/dist/docs/index.html +2 -2
  36. package/dist/docs/quickstart.html +2 -2
  37. package/dist/docs/reference/agent-config.html +2 -2
  38. package/dist/docs/reference/artifacts.html +2 -2
  39. package/dist/docs/reference/channels.html +2 -2
  40. package/dist/docs/reference/cli.html +2 -2
  41. package/dist/docs/reference/connections.html +2 -2
  42. package/dist/docs/reference/hooks.html +2 -2
  43. package/dist/docs/reference/http-api.html +2 -2
  44. package/dist/docs/reference/instructions.html +2 -2
  45. package/dist/docs/reference/playground.html +2 -2
  46. package/dist/docs/reference/project-layout.html +2 -2
  47. package/dist/docs/reference/prompt.html +2 -2
  48. package/dist/docs/reference/schedules.html +2 -2
  49. package/dist/docs/reference/sessions.html +2 -2
  50. package/dist/docs/reference/skills.html +2 -2
  51. package/dist/docs/reference/subagents.html +2 -2
  52. package/dist/docs/reference/tools.html +2 -2
  53. package/dist/docs/scaffolding-agents.html +2 -2
  54. package/dist/docs/storage.html +2 -2
  55. package/dist/docs/troubleshooting.html +2 -2
  56. package/dist/internal/json-dir-store.d.ts +32 -0
  57. package/dist/internal/json-dir-store.d.ts.map +1 -0
  58. package/dist/internal/persistence-coordinator.d.ts +127 -0
  59. package/dist/internal/persistence-coordinator.d.ts.map +1 -0
  60. package/dist/multi-tenant.d.ts +80 -0
  61. package/dist/multi-tenant.d.ts.map +1 -0
  62. package/dist/multi-tenant.js +69 -0
  63. package/dist/persistence.d.ts +184 -0
  64. package/dist/persistence.d.ts.map +1 -0
  65. package/dist/playground/assets/index-BRhBbnd4.css +1 -0
  66. package/dist/playground/assets/{index-DLtPsWuV.js → index-_2WKw9a-.js} +44 -44
  67. package/dist/playground/index.html +2 -2
  68. package/package.json +1 -1
  69. package/dist/docs/assets/chunks/@localSearchIndexroot.B6oHmJzD.js +0 -1
  70. package/dist/playground/assets/index-Bs6TgymR.css +0 -1
File without changes
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Live-reply delivery strategies for the Slack default handlers.
3
+ *
4
+ * A single strategy owns how an in-progress reply is opened, updated,
5
+ * finalized, and cleaned up so the handlers in `defaults.ts` don't fork on the
6
+ * delivery mode at every event:
7
+ *
8
+ * - `stream`: Slack chat.startStream / appendStream / stopStream.
9
+ * - `post-update`: a chat.postMessage skeleton edited with chat.update. This is
10
+ * the only path that preserves Cursor-account identity pinning (which only
11
+ * covers postMessage).
12
+ *
13
+ * `buildDefaultEvents` selects one via {@link selectLiveDeliveryStrategy} up
14
+ * front and calls into it. All calls keep the same soft-fail / log behavior as
15
+ * the inlined logic they replaced.
16
+ */
17
+ import type { ChannelEventContext } from "../../types.js";
18
+ import type { SlackLog } from "./log.js";
19
+ import type { SlackBotToken, SlackChannelState } from "./types.js";
20
+ type SlackChannel = ChannelEventContext<SlackChannelState>;
21
+ export interface LiveDeliveryDeps {
22
+ botToken: SlackBotToken | undefined;
23
+ getLog: () => SlackLog;
24
+ }
25
+ /**
26
+ * How the default handlers deliver an in-progress reply. Methods write live
27
+ * delivery state (`streamTs`, `streamChannelId`, `lastPostedText`,
28
+ * `lastPostUpdateAtMs`, `streamingUnavailable`) on `channel.state` directly.
29
+ */
30
+ export interface LiveDeliveryStrategy {
31
+ /** True when tool-call thinking steps can be appended to the live message. */
32
+ readonly inlineToolSteps: boolean;
33
+ /** Open the live message (skeleton post / stream start). */
34
+ start(args: {
35
+ channel: SlackChannel;
36
+ channelId: string;
37
+ threadTs: string;
38
+ sessionId: string;
39
+ }): Promise<void>;
40
+ /** Push the latest cumulative text to the live message (throttled). */
41
+ append(args: {
42
+ channel: SlackChannel;
43
+ channelId: string;
44
+ streamTs: string;
45
+ text: string;
46
+ sessionId: string;
47
+ }): Promise<void>;
48
+ /**
49
+ * Flush the final reply text. `delivered` is false only when the caller must
50
+ * post the full reply as a fresh message (finalize failed on partial text).
51
+ */
52
+ finalize(args: {
53
+ channel: SlackChannel;
54
+ channelId: string;
55
+ streamTs: string;
56
+ text: string;
57
+ sessionId: string;
58
+ }): Promise<{
59
+ delivered: boolean;
60
+ }>;
61
+ /** Close the live message when the turn produced no final text. */
62
+ finalizeEmpty(args: {
63
+ channel: SlackChannel;
64
+ channelId: string;
65
+ streamTs: string;
66
+ }): Promise<void>;
67
+ /** Best-effort remove a live message left open after the turn ended. */
68
+ cleanupOrphan(args: {
69
+ channel: SlackChannel;
70
+ }): Promise<void>;
71
+ /** Deliver the error text into the live message; `delivered` gates a fallback post. */
72
+ fail(args: {
73
+ channel: SlackChannel;
74
+ channelId: string;
75
+ streamTs: string;
76
+ errorText: string;
77
+ sessionId: string;
78
+ }): Promise<{
79
+ delivered: boolean;
80
+ }>;
81
+ }
82
+ /** Pick the live-reply delivery strategy for a `buildDefaultEvents` instance. */
83
+ export declare function selectLiveDeliveryStrategy(deps: LiveDeliveryDeps, usePostUpdate: boolean): LiveDeliveryStrategy;
84
+ export {};
85
+ //# sourceMappingURL=post-update-delivery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post-update-delivery.d.ts","sourceRoot":"","sources":["../../../src/channels/slack/post-update-delivery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAW1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEnE,KAAK,YAAY,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;AAE3D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,aAAa,GAAG,SAAS,CAAC;IACpC,MAAM,EAAE,MAAM,QAAQ,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,8EAA8E;IAC9E,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,4DAA4D;IAC5D,KAAK,CAAC,IAAI,EAAE;QACV,OAAO,EAAE,YAAY,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClB,uEAAuE;IACvE,MAAM,CAAC,IAAI,EAAE;QACX,OAAO,EAAE,YAAY,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE;QACb,OAAO,EAAE,YAAY,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACpC,mEAAmE;IACnE,aAAa,CAAC,IAAI,EAAE;QAClB,OAAO,EAAE,YAAY,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClB,wEAAwE;IACxE,aAAa,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,YAAY,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,uFAAuF;IACvF,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,EAAE,YAAY,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACrC;AA6RD,iFAAiF;AACjF,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,gBAAgB,EACtB,aAAa,EAAE,OAAO,GACrB,oBAAoB,CAItB"}
@@ -9,7 +9,7 @@
9
9
  <link rel="preload stylesheet" href="/docs/assets/style.CK3hwt6q.css" as="style">
10
10
  <link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
11
11
 
12
- <script type="module" src="/docs/assets/app.B4nJHNwO.js"></script>
12
+ <script type="module" src="/docs/assets/app.BQ8Hihdf.js"></script>
13
13
  <link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
14
  <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
15
15
  <script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
package/dist/docs/ab.html CHANGED
@@ -9,9 +9,9 @@
9
9
  <link rel="preload stylesheet" href="/docs/assets/style.CK3hwt6q.css" as="style">
10
10
  <link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
11
11
 
12
- <script type="module" src="/docs/assets/app.B4nJHNwO.js"></script>
12
+ <script type="module" src="/docs/assets/app.BQ8Hihdf.js"></script>
13
13
  <link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
- <link rel="modulepreload" href="/docs/assets/chunks/theme.DQNgSMha.js">
14
+ <link rel="modulepreload" href="/docs/assets/chunks/theme.CK_NiGC-.js">
15
15
  <link rel="modulepreload" href="/docs/assets/chunks/framework.CAZyNGu9.js">
16
16
  <link rel="modulepreload" href="/docs/assets/ab.md.6cLOW7--.lean.js">
17
17
  <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
@@ -1 +1 @@
1
- import{t as p}from"./chunks/theme.DQNgSMha.js";import{R as s,a2 as i,a3 as u,a4 as c,a5 as l,a6 as f,a7 as d,a8 as m,a9 as h,aa as g,ab as A,d as v,u as y,v as C,s as P,ac as b,ad as w,ae as R,af as E}from"./chunks/framework.CAZyNGu9.js";function r(e){if(e.extends){const a=r(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const n=r(p),S=v({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=y();return C(()=>{P(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&b(),w(),R(),n.setup&&n.setup(),()=>E(n.Layout)}});async function T(){globalThis.__VITEPRESS__=!0;const e=_(),a=D();a.provide(u,e);const t=c(e.route);return a.provide(l,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),n.enhanceApp&&await n.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function D(){return A(S)}function _(){let e=s;return h(a=>{let t=g(a),o=null;return t&&(e&&(t=t.replace(/\.js$/,".lean.js")),o=import(t)),s&&(e=!1),o},n.NotFound)}s&&T().then(({app:e,router:a,data:t})=>{a.go().then(()=>{i(a.route,t.site),e.mount("#app")})});export{T as createApp};
1
+ import{t as p}from"./chunks/theme.CK_NiGC-.js";import{R as s,a2 as i,a3 as u,a4 as c,a5 as l,a6 as f,a7 as d,a8 as m,a9 as h,aa as g,ab as A,d as v,u as y,v as C,s as P,ac as b,ad as w,ae as R,af as E}from"./chunks/framework.CAZyNGu9.js";function r(e){if(e.extends){const a=r(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const n=r(p),S=v({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=y();return C(()=>{P(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&b(),w(),R(),n.setup&&n.setup(),()=>E(n.Layout)}});async function T(){globalThis.__VITEPRESS__=!0;const e=_(),a=D();a.provide(u,e);const t=c(e.route);return a.provide(l,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),n.enhanceApp&&await n.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function D(){return A(S)}function _(){let e=s;return h(a=>{let t=g(a),o=null;return t&&(e&&(t=t.replace(/\.js$/,".lean.js")),o=import(t)),s&&(e=!1),o},n.NotFound)}s&&T().then(({app:e,router:a,data:t})=>{a.go().then(()=>{i(a.route,t.site),e.mount("#app")})});export{T as createApp};