Added the create agent. Use [these prompts](https://github.com/Stirling-Tools/Stirling-PDF-SaaS/blob/main/docgen/backend/default_templates/sample_prompts.md) to test or try your own :) Here’s the one I use ``` Hey, I need to generate an employee expense report for reimbursement. Company: Summit Consulting Partners Company address: 88 Riverside Plaza, Suite 1400, New York, NY 10069 Accounting department email: expenses@example.com Employee details: * Employee Name: Michael Tran * Employee ID: EMP-1047 * Department: Client Services * Report Date: January 20th, 2026 * Reporting Period: January 5th, 2026 – January 16th, 2026 * Manager Approver: Laura Simmons Trip purpose: Client onsite meetings with Atlantic Energy Solutions in Boston, MA. Expense items: * Flight (NYC to Boston roundtrip) — $325.40 — January 5th, 2026 — Airline ticket * Hotel (3 nights at Harborview Hotel) — $822.75 — January 5th-8th, 2026 * Taxi from airport to hotel — $48.00 — January 5th, 2026 * Client dinner (3 attendees) — $186.20 — January 6th, 2026 * Parking at JFK Airport — $72.00 — January 5th-8th, 2026 * Breakfast (per diem not used) — $18.50 — January 7th, 2026 * Uber to client office — $22.10 — January 7th, 2026 * Printing + presentation materials — $46.90 — January 8th, 2026 * Lunch with client — $39.75 — January 8th, 2026 * Office supplies (notebooks, pens) — $27.60 — January 10th, 2026 * Mileage reimbursement (client visit in NJ, 42 miles @ $0.67/mile) — $28.14 — January 14th, 2026 * Team lunch meeting (internal) — $64.30 — January 15th, 2026 Reimbursement method should be direct deposit. Add a notes section stating: "All receipts attached. Expenses are business-related and comply with company travel policy." ``` --------- Co-authored-by: Anthony Stirling <77850077+frooodle@users.noreply.github.com>
46 lines
1.4 KiB
Python
46 lines
1.4 KiB
Python
"""Agent tool IDs, parameter models, and registry.
|
|
|
|
Hand-maintained counterpart to the generated tool_models.py, for engine-emitted tools
|
|
hidden from the OpenAPI spec: AI-backed agents and deterministic conversions like HTML-to-PDF.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from enum import StrEnum
|
|
|
|
from pydantic import Field
|
|
|
|
from stirling.models.base import ApiModel
|
|
from stirling.models.tool_models import ParamToolModel, ToolEndpoint
|
|
|
|
|
|
class AgentToolId(StrEnum):
|
|
MATH_AUDITOR_AGENT = "/api/v1/ai/tools/math-auditor-agent"
|
|
PDF_COMMENT_AGENT = "/api/v1/ai/tools/pdf-comment-agent"
|
|
CREATE_PDF_FROM_HTML_AGENT = "/api/v1/ai/tools/create-pdf-from-html-agent"
|
|
|
|
|
|
class MathAuditorAgentParams(ApiModel):
|
|
tolerance: str = "0.01"
|
|
|
|
|
|
class PdfCommentAgentParams(ApiModel):
|
|
prompt: str | None = None
|
|
|
|
|
|
class CreatePdfFromHtmlAgentParams(ApiModel):
|
|
html_content: str
|
|
filename: str = Field(pattern=r"^.+\.pdf$")
|
|
|
|
|
|
type AgentParamModel = MathAuditorAgentParams | PdfCommentAgentParams | CreatePdfFromHtmlAgentParams
|
|
|
|
type AnyToolId = ToolEndpoint | AgentToolId
|
|
type AnyParamModel = ParamToolModel | AgentParamModel
|
|
|
|
AGENT_OPERATIONS: dict[AgentToolId, type[AgentParamModel]] = {
|
|
AgentToolId.MATH_AUDITOR_AGENT: MathAuditorAgentParams,
|
|
AgentToolId.PDF_COMMENT_AGENT: PdfCommentAgentParams,
|
|
AgentToolId.CREATE_PDF_FROM_HTML_AGENT: CreatePdfFromHtmlAgentParams,
|
|
}
|