{"version":3,"sources":["../src/tools/gallery.ts"],"names":["get","set","tool","z"],"mappings":"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","file":"chunk-ZBM2OMCM.cjs","sourcesContent":["/**\n * Gallery — persist rendered UI panels + charts for recall.\n */\nimport { tool } from '@strands-agents/sdk'\nimport { z } from 'zod'\nimport { get, set } from 'idb-keyval'\n\nconst GALLERY_KEY = 'careless-gallery'\n\ninterface GalleryItem {\n  id: string\n  type: 'ui-panel' | 'chart' | 'scene'\n  title: string\n  data: any\n  createdAt: number\n  tags?: string[]\n}\n\nasync function loadAll(): Promise<GalleryItem[]> { return (await get<GalleryItem[]>(GALLERY_KEY)) || [] }\nasync function saveAll(items: GalleryItem[]) { await set(GALLERY_KEY, items) }\n\nexport const galleryAddTool = tool({\n  name: 'gallery_add',\n  description: 'Save a UI panel, chart, or 3D scene to the gallery for later recall.',\n  inputSchema: z.object({\n    type: z.enum(['ui-panel', 'chart', 'scene']),\n    title: z.string(),\n    data: z.string().describe('JSON-serialized data specific to the type'),\n    tags: z.array(z.string()).optional(),\n  }),\n  callback: async (input) => {\n    const all = await loadAll()\n    let data: any = input.data\n    try { data = JSON.parse(input.data) } catch {}\n    const item: GalleryItem = {\n      id: 'gal-' + Math.random().toString(36).slice(2, 10),\n      type: input.type, title: input.title, data,\n      tags: input.tags, createdAt: Date.now(),\n    }\n    all.push(item)\n    await saveAll(all)\n    return JSON.stringify({ status: 'added', id: item.id })\n  },\n})\n\nexport const galleryListTool = tool({\n  name: 'gallery_list',\n  description: 'List saved gallery items (UI panels, charts, 3D scenes).',\n  inputSchema: z.object({\n    type: z.enum(['ui-panel', 'chart', 'scene']).optional(),\n    tag: z.string().optional(),\n  }),\n  callback: async (input) => {\n    let all = await loadAll()\n    if (input.type) all = all.filter(i => i.type === input.type)\n    if (input.tag) all = all.filter(i => i.tags?.includes(input.tag!))\n    return JSON.stringify({\n      status: 'success', count: all.length,\n      items: all.map(i => ({ id: i.id, type: i.type, title: i.title, tags: i.tags, createdAt: i.createdAt })),\n    })\n  },\n})\n\nexport const galleryGetTool = tool({\n  name: 'gallery_get',\n  description: 'Retrieve a gallery item (with full data) by ID.',\n  inputSchema: z.object({ id: z.string() }),\n  callback: async (input) => {\n    const all = await loadAll()\n    const item = all.find(i => i.id === input.id)\n    if (!item) return JSON.stringify({ status: 'error', error: 'not found' })\n    return JSON.stringify({ status: 'success', item })\n  },\n})\n\nexport const galleryDeleteTool = tool({\n  name: 'gallery_delete',\n  description: 'Delete a gallery item.',\n  inputSchema: z.object({ id: z.string() }),\n  callback: async (input) => {\n    const all = await loadAll()\n    await saveAll(all.filter(i => i.id !== input.id))\n    return JSON.stringify({ status: 'deleted' })\n  },\n})\n\nexport const GALLERY_TOOLS = [galleryAddTool, galleryListTool, galleryGetTool, galleryDeleteTool]\n"]}