@agent-native/core-corpus 0.203.0-nightly-20261007064822 → 0.203.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.
Files changed (63) hide show
  1. package/corpus/README.md +1 -1
  2. package/corpus/templates/analytics/CHANGELOG.md +11 -0
  3. package/corpus/templates/assets/CHANGELOG.md +6 -0
  4. package/corpus/templates/brain/CHANGELOG.md +1 -0
  5. package/corpus/templates/calendar/CHANGELOG.md +7 -0
  6. package/corpus/templates/clips/CHANGELOG.md +10 -0
  7. package/corpus/templates/clips/app/components/player/video-player.tsx +80 -30
  8. package/corpus/templates/clips/changelog/2026-10-06-fixed-clips-freezing-when-you-hit-play-while-the-recording-w.md +6 -0
  9. package/corpus/templates/content/CHANGELOG.md +27 -0
  10. package/corpus/templates/content/actions/create-document.ts +1 -1
  11. package/corpus/templates/content/actions/get-preview-document-draft.ts +1 -0
  12. package/corpus/templates/content/agent-native.app-skill.json +5 -5
  13. package/corpus/templates/content/app/components/editor/DocumentEditor.tsx +301 -116
  14. package/corpus/templates/content/app/components/editor/PageDraftRecovery.tsx +73 -39
  15. package/corpus/templates/content/app/components/editor/authored-content-base.ts +8 -0
  16. package/corpus/templates/content/app/components/editor/document-save-rebase.ts +4 -0
  17. package/corpus/templates/content/app/components/editor/document-save-retry.ts +4 -2
  18. package/corpus/templates/content/app/components/editor/page-draft-journal.ts +56 -0
  19. package/corpus/templates/content/app/components/editor/pageSession.ts +25 -2
  20. package/corpus/templates/content/app/components/layout/Layout.tsx +37 -33
  21. package/corpus/templates/content/app/hooks/use-content-spaces.ts +4 -1
  22. package/corpus/templates/content/app/hooks/use-documents.ts +15 -0
  23. package/corpus/templates/content/app/root.tsx +16 -1
  24. package/corpus/templates/content/changelog/2026-10-06-chatgpt-can-open-content-document-and-database-editors-in-th.md +6 -0
  25. package/corpus/templates/content/changelog/2026-10-06-chatgpt-content-editors-open-without-sign-in.md +6 -0
  26. package/corpus/templates/content/changelog/2026-10-06-content-preserves-collaborator-renames-when-a-save-is-delaye.md +6 -0
  27. package/corpus/templates/content/changelog/2026-10-06-keep-adopted-collaborator-titles-when-recovering-an-unsaved-.md +6 -0
  28. package/corpus/templates/content/changelog/2026-10-06-keep-collaborator-title-recovery-aligned-across-rapid-rename.md +6 -0
  29. package/corpus/templates/content/changelog/2026-10-06-page-recovery-keeps-local-title-edits-when-a-collaborator-re.md +6 -0
  30. package/corpus/templates/content/changelog/2026-10-06-preserve-the-editor-s-authored-base-until-external-edits-rea.md +6 -0
  31. package/corpus/templates/content/changelog/2026-10-07-documents-opened-in-chatgpt-show-their-saved-content-right-a.md +6 -0
  32. package/corpus/templates/content/changelog/2026-10-07-fixed-content-pages-that-opened-to-an-error-in-chatgpt-widge.md +6 -0
  33. package/corpus/templates/content/e2e/helpers.ts +8 -1
  34. package/corpus/templates/content/server/lib/chatgpt-directory-tools.ts +36 -3
  35. package/corpus/templates/crm/CHANGELOG.md +6 -0
  36. package/corpus/templates/design/CHANGELOG.md +14 -0
  37. package/corpus/templates/dispatch/.agents/skills/turn-into-app/SKILL.md +284 -461
  38. package/corpus/templates/dispatch/.agents/skills/turn-into-app/agents/openai.yaml +2 -2
  39. package/corpus/templates/dispatch/.agents/skills/turn-into-app/references/fresh-project.md +65 -90
  40. package/corpus/templates/dispatch/.agents/skills/turn-into-app/references/local-run-and-deploy.md +161 -0
  41. package/corpus/templates/dispatch/.agents/skills/turn-into-app/references/review-loop.md +384 -0
  42. package/corpus/templates/dispatch/.agents/skills/turn-into-app/references/source-brief.md +116 -0
  43. package/corpus/templates/dispatch/.agents/skills/turn-into-app/references/spreadsheet-source.md +206 -190
  44. package/corpus/templates/dispatch/.agents/skills/turn-into-app/references/ui-archetypes.md +381 -0
  45. package/corpus/templates/dispatch/.agents/skills/turn-into-app/references/ui-direction.md +323 -0
  46. package/corpus/templates/dispatch/.agents/skills/turn-into-app/references/ui-palettes.md +564 -0
  47. package/corpus/templates/dispatch/CHANGELOG.md +7 -0
  48. package/corpus/templates/factory/.agents/skills/review-latest-feedback/SKILL.md +26 -24
  49. package/corpus/templates/factory/.agents/skills/review-latest-feedback/references/deployment-recovery.md +53 -0
  50. package/corpus/templates/factory/.agents/skills/review-latest-feedback/references/documentation-proof.md +7 -0
  51. package/corpus/templates/factory/.agents/skills/turn-into-app/SKILL.md +284 -461
  52. package/corpus/templates/factory/.agents/skills/turn-into-app/agents/openai.yaml +2 -2
  53. package/corpus/templates/factory/.agents/skills/turn-into-app/references/fresh-project.md +65 -90
  54. package/corpus/templates/factory/.agents/skills/turn-into-app/references/local-run-and-deploy.md +161 -0
  55. package/corpus/templates/factory/.agents/skills/turn-into-app/references/review-loop.md +384 -0
  56. package/corpus/templates/factory/.agents/skills/turn-into-app/references/source-brief.md +116 -0
  57. package/corpus/templates/factory/.agents/skills/turn-into-app/references/spreadsheet-source.md +206 -190
  58. package/corpus/templates/factory/.agents/skills/turn-into-app/references/ui-archetypes.md +381 -0
  59. package/corpus/templates/factory/.agents/skills/turn-into-app/references/ui-direction.md +323 -0
  60. package/corpus/templates/factory/.agents/skills/turn-into-app/references/ui-palettes.md +564 -0
  61. package/corpus/templates/mail/CHANGELOG.md +10 -0
  62. package/corpus/templates/slides/CHANGELOG.md +11 -0
  63. package/package.json +1 -1
package/corpus/README.md CHANGED
@@ -32,4 +32,4 @@ rg -n "defineAction|useActionQuery" node_modules/@agent-native/core-corpus/corpu
32
32
 
33
33
  ## Generated Counts
34
34
 
35
- - template files: 11291
35
+ - template files: 11315
@@ -5,8 +5,19 @@ time from the command menu (Cmd+K → "What's new") or from Settings.
5
5
 
6
6
  ## 2026-10-06
7
7
 
8
+ ### Added
9
+
10
+ - Save a screenshot of any visible moment in a session replay.
11
+ - Save exact session replay screens as PNG screenshots.
12
+ - Session replays can be saved as screenshots without the replay controls.
13
+
8
14
  ### Fixed
9
15
 
16
+ - Collaborators see a consistent dashboard after simultaneous edits
17
+ - Dashboard edits stay in sync when simultaneous updates occur.
18
+ - Dashboard filter "Mine" now lists every dashboard you own (including ones you've shared) and no longer includes installed demos or items shared with you
19
+ - Return each dashboard mutation's own written value even when another update lands immediately afterward
20
+ - Sign-in pages show the ocean wave without a fallback flash and keep it clear of the marketing copy.
10
21
  - Dashboard edits now report no change when the selected panels already match the requested values or order.
11
22
  - Dashboard mutation results now report only changes that were actually saved.
12
23
  - Refreshing a BigQuery dashboard panel now fetches current data.
@@ -3,6 +3,12 @@
3
3
  All notable user-facing changes to Assets are documented here. Open it any
4
4
  time from the command menu (Cmd+K → "What's new") or from Settings.
5
5
 
6
+ ## 2026-10-06
7
+
8
+ ### Fixed
9
+
10
+ - Sign-in pages show the ocean wave without a fallback flash and keep it clear of the marketing copy.
11
+
6
12
  ## 2026-10-05
7
13
 
8
14
  ### Fixed
@@ -18,6 +18,7 @@ time from the command menu (Cmd+K → "What's new") or from Settings.
18
18
 
19
19
  ### Fixed
20
20
 
21
+ - Zoom transcripts now import. Zoom's account-wide recording list leaves out download links, so Brain now looks up each matching meeting to get its transcript. Each Zoom sync also lists which meetings matched or were skipped, and which files Zoom returned, to make problems easier to spot.
21
22
  - Zoom transcript imports work with the standard admin recording scope again instead of failing with a master-account scope error. Brain chat can now change a source's settings, such as a Zoom meeting filter; before, its updates were silently saved as empty.
22
23
 
23
24
  ## 2026-10-05
@@ -3,6 +3,13 @@
3
3
  All notable user-facing changes to Agent-Native Calendar are documented here. Open it any
4
4
  time from the command menu (Cmd+K → "What's new") or from Settings.
5
5
 
6
+ ## 2026-10-06
7
+
8
+ ### Fixed
9
+
10
+ - Builder.io setup details render immediately, and model settings hide disconnected defaults and upgrade outdated GPT selections.
11
+ - Sign-in pages show the ocean wave without a fallback flash and keep it clear of the marketing copy.
12
+
6
13
  ## 2026-10-05
7
14
 
8
15
  ### Fixed
@@ -3,6 +3,16 @@
3
3
  All notable user-facing changes to Clips are documented here. Open it any time
4
4
  from the command menu (Cmd+K → "What's new") or from Settings.
5
5
 
6
+ ## 2026-10-06
7
+
8
+ ### Fixed
9
+
10
+ - Fixed arrow-key selection in comment mentions
11
+ - Fixed attached images missing from visual analysis.
12
+ - Fixed clips freezing when you hit play while the recording was still being optimized
13
+ - Fixed returning to shared clips after email verification
14
+ - Sign-in pages show the ocean wave without a fallback flash and keep it clear of the marketing copy.
15
+
6
16
  ## 2026-10-05
7
17
 
8
18
  ### Improved
@@ -82,6 +82,7 @@ function resolveLocalUrl(url: string | null | undefined): string | undefined {
82
82
  const VOLATILE_VIDEO_QUERY_PARAMS = new Set([
83
83
  "t",
84
84
  "cb",
85
+ "media",
85
86
  LOOM_START_MS_QUERY_PARAM,
86
87
  "password",
87
88
  "X-Amz-Algorithm",
@@ -97,24 +98,53 @@ const VOLATILE_VIDEO_QUERY_PARAMS = new Set([
97
98
  ]);
98
99
 
99
100
  const PLAY_ATTEMPT_TIMEOUT_MS = 15_000;
101
+ // The file behind a clip's URL can be replaced while a viewer has it open
102
+ // (post-finalize compression). One retry is spent on the first failure, so a
103
+ // second is what lets a later swap recover instead of surfacing an error.
104
+ const MAX_AUTO_ERROR_RETRIES = 2;
100
105
 
101
- function videoSourceIdentity(url: string | undefined): string {
102
- if (!url) return "";
106
+ function parseVideoUrl(url: string): URL | null {
103
107
  try {
104
108
  const base =
105
109
  typeof window === "undefined"
106
110
  ? "http://clips.local"
107
111
  : window.location.href;
108
- const parsed = new URL(url, base);
109
- parsed.hash = "";
110
- for (const key of VOLATILE_VIDEO_QUERY_PARAMS) {
111
- parsed.searchParams.delete(key);
112
- }
113
- parsed.searchParams.sort();
114
- return `${parsed.origin}${parsed.pathname}${parsed.search}`;
112
+ return new URL(url, base);
115
113
  } catch {
116
- return url;
114
+ // coercion-ok: Callers distinguish unparseable URLs and retain the raw source.
115
+ return null;
116
+ }
117
+ }
118
+
119
+ function videoSourceIdentity(url: string | undefined): string {
120
+ if (!url) return "";
121
+ const parsed = parseVideoUrl(url);
122
+ if (!parsed) return url;
123
+ parsed.hash = "";
124
+ for (const key of VOLATILE_VIDEO_QUERY_PARAMS) {
125
+ parsed.searchParams.delete(key);
126
+ }
127
+ parsed.searchParams.sort();
128
+ return `${parsed.origin}${parsed.pathname}${parsed.search}`;
129
+ }
130
+
131
+ function videoMediaVersion(url: string | undefined): string | null {
132
+ return url ? (parseVideoUrl(url)?.searchParams.get("media") ?? null) : null;
133
+ }
134
+
135
+ // The file behind a recording's URL is rewritten after finalize (webm
136
+ // seekable repair, compression, edits) and `media` carries that version. It is
137
+ // volatile for identity, so a bump must be applied as an explicit hot swap or
138
+ // a playing element would keep streaming the stale file.
139
+ export function isMediaVersionRefresh(
140
+ activeSrc: string | undefined,
141
+ incomingSrc: string | undefined,
142
+ ): boolean {
143
+ if (!activeSrc || !incomingSrc) return false;
144
+ if (videoSourceIdentity(activeSrc) !== videoSourceIdentity(incomingSrc)) {
145
+ return false;
117
146
  }
147
+ return videoMediaVersion(activeSrc) !== videoMediaVersion(incomingSrc);
118
148
  }
119
149
 
120
150
  function clampLoomSeek(ms: number, durationMs: number): number {
@@ -292,7 +322,7 @@ export const VideoPlayer = forwardRef<VideoPlayerHandle, VideoPlayerProps>(
292
322
  null,
293
323
  );
294
324
  const resumeAfterReloadMsRef = useRef<number | null>(null);
295
- const autoRetriedErrorRef = useRef(false);
325
+ const autoErrorRetriesRef = useRef(0);
296
326
  const recoveringFromErrorRef = useRef(false);
297
327
  const prevMseModeRef = useRef("");
298
328
  const currentMsRef = useRef(startMs ?? 0);
@@ -368,6 +398,15 @@ export const VideoPlayer = forwardRef<VideoPlayerHandle, VideoPlayerProps>(
368
398
  },
369
399
  [autoPlay, clearPlayAttemptWatchdog, recordingId],
370
400
  );
401
+
402
+ const beginPlayAttempt = useCallback(() => {
403
+ const nextId = playAttemptIdRef.current + 1;
404
+ playAttemptIdRef.current = nextId;
405
+ playAttemptPendingRef.current = true;
406
+ setIsPlayPending(true);
407
+ setIsBuffering(true);
408
+ armPlayAttemptWatchdog(nextId);
409
+ }, [armPlayAttemptWatchdog]);
371
410
  const [resolvedDurationMs, setResolvedDurationMs] = useState<number>(
372
411
  Number.isFinite(durationMs) && durationMs > 0 ? durationMs : 0,
373
412
  );
@@ -614,12 +653,7 @@ export const VideoPlayer = forwardRef<VideoPlayerHandle, VideoPlayerProps>(
614
653
  }
615
654
 
616
655
  if (wasPlaying) {
617
- const nextId = playAttemptIdRef.current + 1;
618
- playAttemptIdRef.current = nextId;
619
- playAttemptPendingRef.current = true;
620
- setIsPlayPending(true);
621
- setIsBuffering(true);
622
- armPlayAttemptWatchdog(nextId);
656
+ beginPlayAttempt();
623
657
  } else {
624
658
  clearPlayAttemptWatchdog();
625
659
  setIsPlaying(false);
@@ -627,12 +661,7 @@ export const VideoPlayer = forwardRef<VideoPlayerHandle, VideoPlayerProps>(
627
661
  }
628
662
  setIsPreparing(true);
629
663
  setCanPlay(false);
630
- }, [
631
- activeVideoSrc,
632
- armPlayAttemptWatchdog,
633
- clearPlayAttemptWatchdog,
634
- mse.mode,
635
- ]);
664
+ }, [activeVideoSrc, beginPlayAttempt, clearPlayAttemptWatchdog, mse.mode]);
636
665
 
637
666
  useEffect(() => {
638
667
  if (!resolvedVideoSrc) {
@@ -647,20 +676,35 @@ export const VideoPlayer = forwardRef<VideoPlayerHandle, VideoPlayerProps>(
647
676
  const v = videoRef.current;
648
677
  const sameResource =
649
678
  activeVideoSourceIdentity === incomingVideoSourceIdentity;
650
- if (recoveringFromErrorRef.current && sameResource) return;
651
-
652
679
  const playbackActive =
653
680
  playAttemptPendingRef.current ||
654
681
  isPlayPending ||
655
682
  isPlaying ||
656
683
  Boolean(v && !v.paused && !v.ended);
657
684
 
685
+ if (isMediaVersionRefresh(activeVideoSrc, resolvedVideoSrc)) {
686
+ autoErrorRetriesRef.current = 0;
687
+ const posMs = currentMsRef.current > 0 ? currentMsRef.current : null;
688
+ if (posMs != null) resumeAfterReloadMsRef.current = posMs;
689
+ recoveringFromErrorRef.current = true;
690
+ autoPlayAttemptedSourceRef.current = resolvedVideoSrc ?? "";
691
+
692
+ if (playbackActive) beginPlayAttempt();
693
+ setIsPreparing(true);
694
+ setCanPlay(false);
695
+ setActiveVideoSrc(resolvedVideoSrc);
696
+ return;
697
+ }
698
+
699
+ if (recoveringFromErrorRef.current && sameResource) return;
700
+
658
701
  if (!sameResource || !playbackActive) {
659
702
  setActiveVideoSrc(resolvedVideoSrc);
660
703
  }
661
704
  }, [
662
705
  activeVideoSourceIdentity,
663
706
  activeVideoSrc,
707
+ beginPlayAttempt,
664
708
  incomingVideoSourceIdentity,
665
709
  isPlayPending,
666
710
  isPlaying,
@@ -1177,7 +1221,7 @@ export const VideoPlayer = forwardRef<VideoPlayerHandle, VideoPlayerProps>(
1177
1221
  thumbnailCapturedRef.current = false;
1178
1222
  initialVisibleFrameSeekedRef.current = false;
1179
1223
  loomInitialStartAppliedRef.current = "";
1180
- autoRetriedErrorRef.current = false;
1224
+ autoErrorRetriesRef.current = 0;
1181
1225
  recoveringFromErrorRef.current = false;
1182
1226
  setLoomStartMs(null);
1183
1227
  playAttemptIdRef.current += 1;
@@ -1766,6 +1810,8 @@ export const VideoPlayer = forwardRef<VideoPlayerHandle, VideoPlayerProps>(
1766
1810
  onEnded?.();
1767
1811
  }}
1768
1812
  onError={(e) => {
1813
+ const wasPlaying =
1814
+ playAttemptPendingRef.current || isPlayingRef.current;
1769
1815
  clearPlayAttemptWatchdog();
1770
1816
  playAttemptPendingRef.current = false;
1771
1817
  setIsPlayPending(false);
@@ -1778,8 +1824,11 @@ export const VideoPlayer = forwardRef<VideoPlayerHandle, VideoPlayerProps>(
1778
1824
  return;
1779
1825
  }
1780
1826
 
1781
- if (!autoRetriedErrorRef.current && activeVideoSrc) {
1782
- autoRetriedErrorRef.current = true;
1827
+ if (
1828
+ autoErrorRetriesRef.current < MAX_AUTO_ERROR_RETRIES &&
1829
+ activeVideoSrc
1830
+ ) {
1831
+ autoErrorRetriesRef.current += 1;
1783
1832
  recoveringFromErrorRef.current = true;
1784
1833
  const v = e.currentTarget;
1785
1834
  const cacheBustedSrc = setUrlSearchParam(
@@ -1789,7 +1838,8 @@ export const VideoPlayer = forwardRef<VideoPlayerHandle, VideoPlayerProps>(
1789
1838
  );
1790
1839
  resumeAfterReloadMsRef.current =
1791
1840
  currentMs > 0 ? currentMs : null;
1792
- setIsBuffering(false);
1841
+ if (wasPlaying) beginPlayAttempt();
1842
+ else setIsBuffering(false);
1793
1843
  setIsPreparing(true);
1794
1844
  setCanPlay(false);
1795
1845
  v.src = cacheBustedSrc;
@@ -1809,7 +1859,7 @@ export const VideoPlayer = forwardRef<VideoPlayerHandle, VideoPlayerProps>(
1809
1859
  {
1810
1860
  recordingId,
1811
1861
  videoSrc: activeVideoSrc,
1812
- autoRetried: autoRetriedErrorRef.current,
1862
+ autoRetries: autoErrorRetriesRef.current,
1813
1863
  },
1814
1864
  );
1815
1865
  setPlayError(
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: fixed
3
+ date: 2026-10-06
4
+ ---
5
+
6
+ Fixed clips freezing when you hit play while the recording was still being optimized
@@ -3,6 +3,33 @@
3
3
  All notable user-facing changes to Agent-Native Content are documented here. Open it any
4
4
  time from the command menu (Cmd+K → "What's new").
5
5
 
6
+ ## 2026-10-07
7
+
8
+ ### Fixed
9
+
10
+ - Documents opened in ChatGPT show their saved content right away.
11
+ - Fixed Content pages that opened to an error in ChatGPT widgets
12
+
13
+ ## 2026-10-06
14
+
15
+ ### Improved
16
+
17
+ - ChatGPT can open Content document and database editors in the existing workspace, and document links use the right label.
18
+
19
+ ### Fixed
20
+
21
+ - Documents and databases opened from ChatGPT load in the Content editor without a separate sign-in.
22
+ - ChatGPT Content widgets load database views correctly.
23
+ - Reopening a ChatGPT Content widget restores the editor for its saved document or collection.
24
+ - Content preserves collaborator renames when a save is delayed
25
+ - Filtered collection views work after you reopen the ChatGPT app.
26
+ - Generated documents from ChatGPT open in the full Content editor.
27
+ - Keep adopted collaborator titles when recovering an unsaved page
28
+ - Keep collaborator title recovery aligned across rapid renames and local journal failures
29
+ - Page recovery keeps local title edits when a collaborator renames the page.
30
+ - Preserve the editor's authored base until external edits reach the editor, and hold database saves when collaboration delivery is pending
31
+ - Sign-in pages show the ocean wave without a fallback flash and keep it clear of the marketing copy.
32
+
6
33
  ## 2026-10-05
7
34
 
8
35
  ### Improved
@@ -156,7 +156,7 @@ export default defineAction({
156
156
  mcpApp: {
157
157
  compactCatalog: true,
158
158
  resource: embedApp({
159
- title: "Edit document",
159
+ title: "Open document",
160
160
  description:
161
161
  "Open the generated draft in the real Content editor so the user can revise, format, organize, and publish it.",
162
162
  iframeTitle: "Agent-Native Content",
@@ -13,6 +13,7 @@ export default defineAction({
13
13
  "Read the current user's private preview draft for a document. A reader who cannot edit the document gets `editable: false` and no draft.",
14
14
  schema: z.object({ documentId: z.string().min(1) }),
15
15
  http: { method: "GET" },
16
+ readOnly: true,
16
17
  agentTool: false,
17
18
  toolCallable: false,
18
19
  run: async ({ documentId }) => {
@@ -61,7 +61,7 @@
61
61
  "generic-mcp"
62
62
  ],
63
63
  "chatgpt": {
64
- "version": "1.0.1",
64
+ "version": "1.0.2",
65
65
  "interface": {
66
66
  "displayName": "Agent-Native Content",
67
67
  "shortDescription": "Draft and organize content",
@@ -102,9 +102,9 @@
102
102
  },
103
103
  {
104
104
  "description": "Search workspace documents",
105
- "prompt": "Find the Launch Brief Demo document and tell me whether it contains the exact phrase 'early access'. Quote its surrounding sentence without changing the document.",
105
+ "prompt": "In Personal, find the Launch Brief Demo document and tell me whether its current content contains the exact phrase 'early access'. Quote a surrounding sentence without changing the document.",
106
106
  "tools_triggered": "search-documents, get-document",
107
- "expected_behavior": "Search for the exact-named demo document, retrieve its current content, and report whether the phrase appears, quoting only text present in the document."
107
+ "expected_behavior": "Find Launch Brief Demo in Personal, retrieve its current content, and report whether the exact phrase appears, quoting only text present in that document."
108
108
  },
109
109
  {
110
110
  "description": "Revise an identified document",
@@ -114,9 +114,9 @@
114
114
  },
115
115
  {
116
116
  "description": "Inspect a content database",
117
- "prompt": "Show the fields and current entries in the Feature Requests Demo database.",
117
+ "prompt": "In ChatGPT Plugin Reviewer's workspace, inspect the Feature Requests Demo database and show its fields and current entries.",
118
118
  "tools_triggered": "list-content-databases, get-content-database",
119
- "expected_behavior": "Report the actual schema and entries available to the connected account, explicitly say if none exist, and do not invent fields or records."
119
+ "expected_behavior": "Report the actual schema and entries in Feature Requests Demo in ChatGPT Plugin Reviewer's workspace, explicitly say if none exist, and do not invent fields or records."
120
120
  },
121
121
  {
122
122
  "description": "Create a default-schema draft collection and add a titled row",