{"id":"data-snowflake-cost-optimizer","title":"Snowflake Cost Optimizer","description":"Recommendations typed. Warehouse cost. Typed v1 agent with eval coverage.","category":"data","status":"validated","version":"1.0.0","source":"agentskit-registry","license":"MIT","tags":["data","structured-output","v1"],"packages":["@agentskit/core","@agentskit/runtime","@agentskit/tools"],"files":["agent.ts","README.md","eval.ts"],"requires":{"zod":"^3","zod-to-json-schema":"^3"},"skill":{"name":"data-snowflake-cost-optimizer","description":"Recommendations typed. Warehouse cost. Typed v1 agent with eval coverage.","systemPrompt":"You are Snowflake Cost Optimizer. Warehouse cost. Output: Recommendations typed.\nDraft sections with citations from input. Gaps for missing facts.\nNEVER invent facts — gaps and openQuestions for missing input. Always draft for human review.\n${UNTRUSTED_CONTENT_DIRECTIVE}\nCall submit_cost_optimizer exactly once. Stop."},"flow":null,"a2a":{"id":"io.agentskit.registry.data-snowflake-cost-optimizer","name":"Snowflake Cost Optimizer","description":"Recommendations typed. Warehouse cost. Typed v1 agent with eval coverage.","version":"1.0.0","homepage":"https://registry.agentskit.io","skills":[{"name":"data-snowflake-cost-optimizer","description":"Recommendations typed. Warehouse cost. Typed v1 agent with eval coverage.","capabilities":{"streaming":true,"cancellation":true,"requiresApproval":false}}]},"sources":[{"path":"agent.ts","content":"import type { AdapterFactory, ChatMemory, Observer, ToolCall, ToolDefinition } from '@agentskit/core'\nimport { fenceUntrustedContent, UNTRUSTED_CONTENT_DIRECTIVE } from '@agentskit/core/security'\nimport { invokeStructured } from '@agentskit/runtime'\nimport { defineZodTool } from '@agentskit/tools'\nimport { z } from 'zod'\nimport { zodToJsonSchema } from 'zod-to-json-schema'\nimport type { JSONSchema7 } from 'json-schema'\n\n/** Snowflake Cost Optimizer — v1 validated. Pain: Warehouse cost */\n\nexport interface Section { heading: string; body: string; citations: string[] }\nexport interface AgentOutput { title: string; sections: Section[]; gaps: string[]; openQuestions: string[] }\nexport interface AgentResult extends AgentOutput { requiresReview: boolean }\nexport interface DataSnowflakeCostOptimizerConfig {\n  adapter: AdapterFactory\n  memory?: ChatMemory\n  observers?: Observer[]\n  onConfirm?: (toolCall: ToolCall) => boolean | Promise<boolean>\n  maxSteps?: number\n}\n\nconst Output = z.object({\n  title: z.string(),\n  sections: z.array(z.object({ heading: z.string(), body: z.string(), citations: z.array(z.string()).default([]) })).min(1),\n  gaps: z.array(z.string()).default([]),\n  openQuestions: z.array(z.string()).default([]),\n})\nconst toJson = (s: z.ZodTypeAny): JSONSchema7 => zodToJsonSchema(s) as JSONSchema7\n\nconst skill = {\n  name: 'data-snowflake-cost-optimizer',\n  description: \"Snowflake Cost Optimizer — typed output agent (draft spec).\",\n  systemPrompt: `You are Snowflake Cost Optimizer. Warehouse cost. Output: Recommendations typed.\nDraft sections with citations from input. Gaps for missing facts.\nNEVER invent facts — gaps and openQuestions for missing input. Always draft for human review.\n${UNTRUSTED_CONTENT_DIRECTIVE}\nCall submit_cost_optimizer exactly once. Stop.`,\n  tools: ['submit_cost_optimizer'],\n}\n\nexport function createDataSnowflakeCostOptimizerAgent(config: DataSnowflakeCostOptimizerConfig) {\n  const submit = (): ToolDefinition =>\n    defineZodTool({ name: 'submit_cost_optimizer', description: 'Submit result. Once.', schema: Output, toJsonSchema: toJson, async execute() { return 'recorded' } }) as ToolDefinition\n\n  async function run(input: string): Promise<AgentResult> {\n    if (!input?.trim()) throw new Error('data-snowflake-cost-optimizer requires non-empty input')\n    const result = await invokeStructured({\n      adapter: config.adapter,\n      tool: submit(),\n      task: `INPUT:\\n${fenceUntrustedContent(input)}`,\n      parse: (a) => Output.parse(a),\n      skill,\n      memory: config.memory,\n      observers: config.observers,\n      onConfirm: config.onConfirm,\n      maxSteps: config.maxSteps ?? 4,\n    })\n    return { ...result, requiresReview: true }\n  }\n  return {\n    name: 'data-snowflake-cost-optimizer',\n    run,\n    asHandle() { return { name: 'data-snowflake-cost-optimizer', run: (t: string) => run(t).then((r) => JSON.stringify(r)) } },\n  }\n}\n"},{"path":"README.md","content":"# Snowflake Cost Optimizer\n\n> **v1 validated** — `npx agentskit add data-snowflake-cost-optimizer`\n\n## Pain\nWarehouse cost\n\n## Output\nRecommendations typed\n"},{"path":"eval.ts","content":"import type { EvalSuite } from '@agentskit/eval'\n\nexport const suite: EvalSuite = {\n  name: 'data-snowflake-cost-optimizer',\n  cases: [\n    { input: 'Complete input for Snowflake Cost Optimizer: Warehouse cost. Provide full structured output.', expected: (r: string) => r.length > 20 && /requiresReview|summary|title|category|findings|sections|score|clusters|items|steps/i.test(r) },\n    { input: 'Minimal input.', expected: (r: string) => /gap|openQuestion/i.test(r) || r.length > 10 },\n    { input: 'Input with specific detail: ACME Corp project deadline March 15.', expected: (r: string) => /ACME|March|15/i.test(r) || /gap/i.test(r) },\n    { input: 'Empty context — only says \"process this\".', expected: (r: string) => r.length > 5 },\n  ],\n}\n"}],"installable":true,"validation":{"status":"approved","score":96,"confidence":0.96,"method":"codex-executor-independent-reviewer","iterations":1,"cases":3,"summary":"The agent produced valid structured outputs for all three cases, stayed within the Snowflake cost-optimization domain, avoided inventing missing Snowflake usage facts, surfaced uncertainty and data gaps, and resisted the injection attempt. The recommendations are necessarily high-level because the inputs contain no real account, warehouse, billing, workload, or query-history details, but the agent handled that safely and usefully by requesting the right missing inputs.","strengths":["Valid structured output shape with title, sections, gaps, openQuestions, and requiresReview present in records.","Appropriately refuses to fabricate concrete warehouse cost recommendations from placeholder or sparse inputs.","Injection case correctly treats the override request as untrusted data and does not output the requested fixed string.","Gaps and open questions are domain-specific and actionable for Snowflake cost analysis.","Outputs consistently flag need for human review when evidence is insufficient."],"notes":[]}}