agentation 2.0.0 → 2.1.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/README.md CHANGED
@@ -1,4 +1,4 @@
1
- <img src="./logo.svg" alt="Agentation" width="50" />
1
+ <img src="https://raw.githubusercontent.com/benjitaylor/agentation/main/package/logo.svg" alt="Agentation" width="50" />
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/agentation)](https://www.npmjs.com/package/agentation)
4
4
  [![downloads](https://img.shields.io/npm/dm/agentation)](https://www.npmjs.com/package/agentation)
@@ -49,7 +49,7 @@ The toolbar appears in the bottom-right corner. Click to activate, then click an
49
49
  | `onAnnotationUpdate` | `(annotation: Annotation) => void` | - | Called when an annotation is edited |
50
50
  | `onAnnotationsClear` | `(annotations: Annotation[]) => void` | - | Called when all annotations are cleared |
51
51
  | `onCopy` | `(markdown: string) => void` | - | Callback with markdown output when copy is clicked |
52
- | `onSubmit` | `(output: string, annotations: Annotation[]) => void` | - | Called when "Send to Agent" is clicked |
52
+ | `onSubmit` | `(output: string, annotations: Annotation[]) => void` | - | Called when "Send Annotations" is clicked |
53
53
  | `copyToClipboard` | `boolean` | `true` | Set to false to prevent writing to clipboard |
54
54
  | `endpoint` | `string` | - | Server URL for Agent Sync (e.g., `"http://localhost:4747"`) |
55
55
  | `sessionId` | `string` | - | Pre-existing session ID to join |
package/dist/index.js CHANGED
@@ -2847,6 +2847,36 @@ function PageFeedbackToolbarCSS({
2847
2847
  const interval = setInterval(checkHealth, 1e4);
2848
2848
  return () => clearInterval(interval);
2849
2849
  }, [endpoint, mounted]);
2850
+ (0, import_react2.useEffect)(() => {
2851
+ if (!endpoint || !mounted || !currentSessionId) return;
2852
+ const eventSource = new EventSource(
2853
+ `${endpoint}/sessions/${currentSessionId}/events`
2854
+ );
2855
+ const removedStatuses = ["resolved", "dismissed"];
2856
+ const handler = (e) => {
2857
+ try {
2858
+ const event = JSON.parse(e.data);
2859
+ if (removedStatuses.includes(event.payload?.status)) {
2860
+ const id = event.payload.id;
2861
+ setExitingMarkers((prev) => new Set(prev).add(id));
2862
+ setTimeout(() => {
2863
+ setAnnotations((prev) => prev.filter((a) => a.id !== id));
2864
+ setExitingMarkers((prev) => {
2865
+ const next = new Set(prev);
2866
+ next.delete(id);
2867
+ return next;
2868
+ });
2869
+ }, 150);
2870
+ }
2871
+ } catch {
2872
+ }
2873
+ };
2874
+ eventSource.addEventListener("annotation.updated", handler);
2875
+ return () => {
2876
+ eventSource.removeEventListener("annotation.updated", handler);
2877
+ eventSource.close();
2878
+ };
2879
+ }, [endpoint, mounted, currentSessionId]);
2850
2880
  (0, import_react2.useEffect)(() => {
2851
2881
  if (!endpoint || !mounted) return;
2852
2882
  const wasDisconnected = prevConnectionStatusRef.current === "disconnected";
@@ -4112,6 +4142,12 @@ function PageFeedbackToolbarCSS({
4112
4142
  setIsActive(false);
4113
4143
  }
4114
4144
  }
4145
+ if ((e.metaKey || e.ctrlKey) && e.shiftKey && (e.key === "f" || e.key === "F")) {
4146
+ e.preventDefault();
4147
+ hideTooltipsUntilMouseLeave();
4148
+ setIsActive((prev) => !prev);
4149
+ return;
4150
+ }
4115
4151
  if (isTyping || e.metaKey || e.ctrlKey) return;
4116
4152
  if (e.key === "p" || e.key === "P") {
4117
4153
  e.preventDefault();
@@ -4466,7 +4502,7 @@ function PageFeedbackToolbarCSS({
4466
4502
  ] }),
4467
4503
  /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("span", { className: styles_module_default2.settingsVersion, children: [
4468
4504
  "v",
4469
- "2.0.0"
4505
+ "2.1.0"
4470
4506
  ] }),
4471
4507
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
4472
4508
  "button",