सामग्री पर जाएँ
CADCAMFUN
दस्तावेज़

दस्तावेज़

एआई सत्र और क्रियाएँ

प्रदाता, क्रेडेंशियल, वार्तालाप, स्ट्रीमिंग टर्न, एक्शन इनवोकेशन, ब्रिज टोकन, कौशल और सत्र पुनर्प्राप्ति।

स्वचालित अनुवाद अभी उपलब्ध नहीं है; पाठ अंग्रेज़ी में है और इंटरफ़ेस आपकी भाषा में है। अंग्रेज़ी मूल देखें

प्लेग्राउंड

इन अनुरोधों को अपने स्वयं के चल रहे साइडकार को भेजें। मान इस ब्राउज़र में रहते हैं.

जुड़े नहीं हैं
यह कैसे काम करता है

साइडकार स्टार्टअप पर चुने गए लूपबैक पोर्ट पर सुनता है और इसे प्रिंट करता है ready रेखा; उस यूआरएल का उपयोग करें और CADCAMFUN_TOKEN इसकी शुरुआत की गई थी. अनुरोध सीधे इस पृष्ठ से उस पते पर जाते हैं।

साइडकार CORS हेडर को केवल टौरी मूल और तक भेजता है http://localhost या http://127.0.0.1 किसी भी बंदरगाह पर. होस्ट किए गए दस्तावेज़ों से ब्राउज़र प्रतिक्रिया को अवरुद्ध कर देता है, इसलिए दस्तावेज़ों को स्थानीय रूप से चलाएँ (bun run dev में packages/web) खेल के मैदान का उपयोग करने के लिए, या अनुरोध को कर्ल के रूप में कॉपी करें। वास्तविक डेटा को छुए बिना प्रयोग करने के लिए, साइडकार से शुरुआत करें CADCAMFUN_DATA_DIR एक बेकार निर्देशिका की ओर इशारा किया - देखें एपीआई वॉकथ्रू.

संचालन

52 एंडपॉइंट ai समूह, साइडकार के स्वयं से उत्पन्न ओपनएपीआई दस्तावेज़. संरक्षित संचालन लेते हैं Authorization: Bearer $CADCAMFUN_TOKEN; देखना प्रमाणीकरण. व्यवहार और मर्यादा में हैं सबसिस्टम गाइड.

पाना /api/ai/actions ai.actions
डाक /api/ai/actions/invoke ai.invokeAction
डाक /api/ai/bridge/tokens ai.issueBridgeToken
पाना /api/ai/bridge/tokens ai.bridgeTokens
मिटाना /api/ai/bridge/tokens/{id} ai.revokeBridgeToken
पाना /api/ai/agents ai.agents
डाक /api/ai/sessions/control ai.sessionControl
डाक /api/ai/sessions/state ai.sessionState
डाक /api/ai/sessions/remove ai.removeSession
पाना /api/ai/extensions/mcp ai.mcpServers
रखना /api/ai/extensions/mcp ai.saveMcpServer
मिटाना /api/ai/extensions/mcp/{name} ai.deleteMcpServer
मिटाना /api/ai/extensions/plugins/{id} ai.removeExtensionPlugin
रखना /api/ai/extensions/plugins/{id} ai.toggleExtensionPlugin
पाना /api/ai/extensions/plugins ai.extensionPlugins
डाक /api/ai/extensions/plugins ai.installExtensionPlugin
पाना /api/ai/extensions/mods ai.extensionMods
रखना /api/ai/extensions/mods/{id} ai.toggleExtensionMod
मिटाना /api/ai/extensions/mods/{id} ai.removeExtensionMod
पाना /api/ai/modes ai.modes
पाना /api/ai/skills ai.skills
रखना /api/ai/skills ai.saveSkill
मिटाना /api/ai/skills/{name} ai.deleteSkill
रखना /api/ai/credentials ai.setCredentials
मिटाना /api/ai/credentials/{provider} ai.clearCredentials
पाना /api/ai/status ai.status
पाना /api/ai/models ai.models
पाना /api/ai/providers ai.providers
डाक /api/ai/models/refresh ai.refreshModels
पाना /api/ai/prompts ai.prompts
डाक /api/ai/title ai.title
डाक /api/ai/design-analysis ai.designAnalysis
डाक /api/ai/machining-parameters ai.machiningParameters
डाक /api/ai/gcode-optimization ai.gcodeOptimization
डाक /api/ai/design-suggestions ai.designSuggestions
डाक /api/ai/chat ai.chat
डाक /api/ai/chat/stream ai.chatStream
डाक /api/ai/sessions/prompt ai.sessionPrompt
पाना /api/ai/sessions/{sessionId}/stream ai.sessionStream
पाना /api/ai/sessions ai.sessionList
पाना /api/ai/sessions/{sessionId}/messages ai.sessionMessages
डाक /api/ai/chat/queue ai.chatQueue
डाक /api/ai/chat/abort ai.chatAbort
डाक /api/ai/permission/reply ai.permissionReply
डाक /api/ai/completion ai.completion
डाक /api/ai/analyze-gcode ai.analyzeGcode
डाक /api/ai/gcode ai.gcode
डाक /api/ai/toolpath-analysis ai.toolpathAnalysis
डाक /api/ai/feedback ai.feedback
डाक /api/ai/proxy ai.proxy
डाक /api/ai/oauth/authorize ai.oauthAuthorize
डाक /api/ai/oauth/complete ai.oauthComplete
3डी में एआई सत्र और कार्रवाई संचालन कक्षा में खींचें · ज़ूम करने के लिए स्क्रॉल करें · पैन करने के लिए दाईं ओर खींचें
प्रति ऑपरेशन एक ब्लॉक (52), इस पृष्ठ के प्रति संसाधन अनुभाग को स्टैक्ड किया गया है और विधि के अनुसार रंगा गया है: हरा GET, नारंगी POST, नीला PUT, बैंगनी PATCH, लाल DELETE। निर्माण के समय OpenAPI दस्तावेज़ से उत्पन्न।

/api/ai/actions

पाना /api/ai/actions # ai.actions

आवश्यक है Authorization: Bearer <token>.

जवाब
200 वस्तु application/json
{
  tools: Array<{
    id: string
    description: string
    kind: "read" | "write" | "destructive"
    actions: Array<{
      id: string
      name: string
      kind: "read" | "write" | "destructive"
    }>
    parameters: object
  }>
}
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
उदाहरण प्रतिक्रिया कब्जा कर लिया गया · 200
/api/ai/क्रियाएँ प्राप्त करें
{
  "tools": [
    {
      "id": "cad",
      "description": "Read the open drawing. All actions are read-only.\n\nActions\n- describe: the drawing: counts, bounds and layers. Start here.\n- check: model checks (sizes, rotations, Boolean operands, duplicates, floating parts); fix findings after modelling.\n- relations: bounds, placement, distances and parameter dependencies; equal names do not bind parameters.\n- grep: search ids, names, layers and properties; includes each parametric hit's revision.\n- vision: the CAD viewport plus scene evidence as an image.\n- inspect_elements: full properties and bounds of elements, paged.\n- inspect_layers: the workspace layers and the active one.\n- inspect_search: elements whose text matches a query, paged.\n- inspect_property: one property of one element by path, paged by characters.\n- parametric_validate: rebuild a parametric history and report what it cannot build.\n- parametric_inspect: history, parameters and report of one parametric part.\n- drawing: technical sheet from one elementId or history; options (sheet, projection, views, section, detail: see schema). SVG, dimensions, callouts, warnings; exact B-rep edges where available; nothing stored.\n- parametric_test: run parameter variants; report bodies, volumes and dimensional checks.\n- parametric_dfm: manufacturability findings for a history or an existing part.\n- parametric_exact: exact B-rep per body (volume, area, centroid, throughHoles, faces, surfaces) or why mesh-only; STEP on request.\n- exact: every solid on the exact kernel: validity, volume, bounds, holes, and whether CAM machines it by features or as a 3D surface, with why.\n- assembly: exact interference (clash volumes), bill of materials with mass, hole joints, fasteners still missing.\n- parametric_fastener: thread, tap drill, clearance and counterbore of a metric size.\n- parametric_recipe: standard part history from `recipe` (mounting_plate, flange, l_bracket, stepped_shaft, pipe_bend, duct_transition, enclosure) and `params`; cad_edit.parametric_recipe_create stores it.\n- parametric_from_element: history with named parameters from an existing solid, flat shape or component; cad_edit.parametric_convert stores it.\n\nParameters (mm, radians; ids are read, never invented)\n- describe, check, inspect_layers: none.\n- relations: firstId, secondId - two different existing ids.\n- grep: query (1-200 chars), layerId, parametricOnly, includeParameters, offset, limit (1-50).\n- vision: focus - wha
…
एसडीके उदाहरण
ai.actions
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// no input
const result = await client.ai.actions()
curl
/api/ai/क्रियाएँ प्राप्त करें
curl --request GET "${CADCAMFUN_URL}/api/ai/actions" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
इसे अजमाएं
डाक /api/ai/actions/invoke # ai.invokeAction

आवश्यक है Authorization: Bearer <token>.

अनुरोध का मुख्य भाग · आवश्यक · एप्लिकेशन/जेसन
{
  projectId: string
  drawingId?: string | null
  callId?: string | null
  tool: string
  input: object
}
जवाब
200 वस्तु application/json
{
  tool: string
  action: string
  result: unknown
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
एसडीके उदाहरण
ai.invokeAction
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// AiInvokeActionInput
const result = await client.ai.invokeAction({
  projectId: "",
  drawingId: "",
  callId: "",
  tool: "",
  input: {}
})
curl
पोस्ट/एपीआई/एआई/कार्रवाई/आह्वान
curl --request POST "${CADCAMFUN_URL}/api/ai/actions/invoke" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं

/api/ai/bridge

डाक /api/ai/bridge/tokens # ai.issueBridgeToken

आवश्यक है Authorization: Bearer <token>.

अनुरोध का मुख्य भाग · आवश्यक · एप्लिकेशन/जेसन
{
  name?: string | null
  projectId: string
  mode: "read" | "write"
  days?: number | "Infinity" | "-Infinity" | "NaN" | null
}
जवाब
200 वस्तु application/json
{
  info: {
    id: string
    name: string
    projectId: string
    mode: "read" | "write"
    userId: string
    createdAt: string
    expiresAt: string
  }
  token: string
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
एसडीके उदाहरण
ai.issueBridgeToken
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// AiIssueBridgeTokenInput
const result = await client.ai.issueBridgeToken({
  name: "",
  projectId: "",
  mode: "read",
  days: 0
})
curl
पोस्ट/एपीआई/एआई/ब्रिज/टोकन
curl --request POST "${CADCAMFUN_URL}/api/ai/bridge/tokens" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं
पाना /api/ai/bridge/tokens # ai.bridgeTokens

आवश्यक है Authorization: Bearer <token>.

जवाब
200 सारणी<ऑब्जेक्ट> application/json
Array<{
  id: string
  name: string
  projectId: string
  mode: "read" | "write"
  userId: string
  createdAt: string
  expiresAt: string
}>
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
उदाहरण प्रतिक्रिया कब्जा कर लिया गया · 200
/एपीआई/एआई/ब्रिज/टोकन प्राप्त करें
[]
एसडीके उदाहरण
ai.bridgeTokens
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// no input
const result = await client.ai.bridgeTokens()
curl
/एपीआई/एआई/ब्रिज/टोकन प्राप्त करें
curl --request GET "${CADCAMFUN_URL}/api/ai/bridge/tokens" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
इसे अजमाएं
मिटाना /api/ai/bridge/tokens/{id} # ai.revokeBridgeToken

आवश्यक है Authorization: Bearer <token>.

पैरामीटर
नाममेंप्रकारआवश्यक
पहचान पथ डोरी आवश्यक
जवाब
200 वस्तु application/json
{
  message: string
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
एसडीके उदाहरण
ai.revokeBridgeToken
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// AiRevokeBridgeTokenInput
const result = await client.ai.revokeBridgeToken({
  id: "<id>"
})
curl
हटाएं /एपीआई/एआई/ब्रिज/टोकन/{id}
curl --request DELETE "${CADCAMFUN_URL}/api/ai/bridge/tokens/<id>" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
इसे अजमाएं

/api/ai/agents

पाना /api/ai/agents # ai.agents

आवश्यक है Authorization: Bearer <token>.

जवाब
200 सारणी<ऑब्जेक्ट> application/json
Array<{
  id: string
  title: string
  description: string
  tools: string[]
  edits: boolean
  kind?: string | null
  canEdit?: boolean | null
  delegates?: boolean | null
}>
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
उदाहरण प्रतिक्रिया कब्जा कर लिया गया · 200
/एपीआई/एआई/एजेंट प्राप्त करें
[
  {
    "id": "general",
    "title": "General",
    "description": "Does drawing and machining itself, and delegates separable work to subagents (background tasks included).",
    "tools": [],
    "edits": true
  },
  {
    "id": "cad",
    "title": "CAD",
    "description": "Drawing and 3D modelling. Reads the machining side but does not change operations, G-code or the machining libraries.",
    "tools": [],
    "edits": true
  },
  {
    "id": "cam",
    "title": "CAM",
    "description": "Machining: operations, G-code, verification and the machining libraries. Reads the drawing but does not change it.",
    "tools": [],
    "edits": true
  }
]
एसडीके उदाहरण
ai.agents
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// no input
const result = await client.ai.agents()
curl
/एपीआई/एआई/एजेंट प्राप्त करें
curl --request GET "${CADCAMFUN_URL}/api/ai/agents" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
इसे अजमाएं

/api/ai/sessions

डाक /api/ai/sessions/control # ai.sessionControl

आवश्यक है Authorization: Bearer <token>.

अनुरोध का मुख्य भाग · आवश्यक · एप्लिकेशन/जेसन
{
  sessionId: string
  projectId?: string | null
  action: "status" | "compact" | "cancel_task" | "answer_question" | "reject_question" | "reply_permission" | "consolidate_memory" | "context" | "acceptance" | "set_acceptance"
  criteria?: unknown | null
  taskId?: string | null
  requestId?: string | null
  answers?: string[][] | null
  decision?: "once" | "always" | "reject" | null
  model?: {
    provider?: string | null
    model?: string | null
    tier?: "fast" | "balanced" | "best" | null
    variant?: string | null
  } | null
}
जवाब
200 वस्तु application/json
{
  goal?: {
    objective: string
    status: "active" | "paused" | "blocked" | "usage_limited" | "budget_limited" | "complete"
    iteration: number | "Infinity" | "-Infinity" | "NaN"
    tokensUsed: number | "NaN"
    tokenBudget?: number | "NaN" | null
  } | null
  permissions?: Array<{
    requestId: string
    sessionId: string
    permission: string
    patterns: string[]
  }> | null
  busy: boolean
  text: string
  tasks: Array<{
    id: string
    agent: string
    description: string
    status: "queued" | "running" | "completed" | "error" | "cancelled"
    background: boolean
    text?: string | null
    error?: string | null
    createdAt?: number | "Infinity" | "-Infinity" | "NaN" | null
    startedAt?: number | "Infinity" | "-Infinity" | "NaN" | null
    finishedAt?: number | "Infinity" | "-Infinity" | "NaN" | null
  }>
  questions: Array<{
    requestId: string
    questions: Array<{
      header: string
      question: string
      options: Array<{
        label: string
        description: string
      }>
      multiple?: boolean | null
      custom?: boolean | null
    }>
  }>
  engineeringAcceptance?: {
    status: "accepted" | "failed" | "unmeasured" | "stale" | "not_configured"
    projectId: string
    drawingId: string
    revision: string
    criteriaDigest?: string | null
    checks: Array<{
      id: string
      status: "pass" | "fail" | "stale"
      reason?: string | null
      report?: unknown | null
    }>
    note: string
  } | null
  context: {
    memory?: {
      enabled: boolean
      memoryEnabled: boolean
      minHours: number | "Infinity" | "-Infinity" | "NaN"
      minSessions: number | "NaN"
      lastBrainAt: number | "NaN"
      hoursSinceLastBrain: number | "NaN"
      sessionsSinceLastBrain: number | "NaN"
      shouldTrigger: boolean
    } | null
    source: "host-config"
    auto: boolean
    prune: boolean
    reserved?: number | "Infinity" | "-Infinity" | "NaN" | null
    provider?: string | null
    model?: string | null
    contextWindow?: number | "Infinity" | "-Infinity" | "NaN" | null
    maxOutput?: number | "Infinity" | "-Infinity" | "NaN" | null
    inputWindow?: number | "Infinity" | "-Infinity" | "NaN" | null
    requestOutput?: number | "Infinity" | "-Infinity" | "NaN" | null
    compactAt?: number | "Infinity" | "-Infinity" | "NaN" | null
    tokens?: number | "Infinity" | "-Infinity" | "NaN" | null
    compacted: boolean
    breakdown?: {
      estimatedTotal: number | "Infinity" | "-Infinity" | "NaN"
      categories: Array<{
        category: string
        tokens: number | "NaN"
      }>
    } | null
  }
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
एसडीके उदाहरण
ai.sessionControl
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// AiSessionControlInput
const result = await client.ai.sessionControl({
  sessionId: "",
  projectId: "",
  action: "status",
  criteria: null,
  taskId: "",
  requestId: "",
  answers: [
    [
      ""
    ]
  ],
  decision: "once",
  model: {}
})
curl
पोस्ट/एपीआई/एआई/सत्र/नियंत्रण
curl --request POST "${CADCAMFUN_URL}/api/ai/sessions/control" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं
डाक /api/ai/sessions/state # ai.sessionState

आवश्यक है Authorization: Bearer <token>.

अनुरोध का मुख्य भाग · आवश्यक · एप्लिकेशन/जेसन
{
  sessionId: string
  projectId?: string | null
}
जवाब
200 वस्तु application/json
{
  busy: boolean
  text: string
  error?: string | null
  tasks?: Array<{
    id: string
    agent: string
    description: string
    status: "queued" | "running" | "completed" | "error" | "cancelled"
    background: boolean
    text?: string | null
    error?: string | null
    createdAt?: number | "Infinity" | "-Infinity" | "NaN" | null
    startedAt?: number | null
    finishedAt?: number | null
  }> | null
  events?: Array<{
    type: "tool_call"
    sessionId: string
    agent?: string
    callId: string
    tool: string
    input: unknown
  } | {
    type: "tool_result"
    sessionId: string
    agent?: string
    callId: string
    tool: string
    ok: boolean
    output: string
    images?: string[]
  } | {
    type: "todo"
    sessionId: string
    todos: Array<{
      id?: string
      content: string
      status: "pending" | "in_progress" | "completed" | "cancelled"
      priority?: string
    }>
  } | {
    type: "tool_diagnostic"
    sessionId: string
    agent?: string
    callId: string
    tool: string
    kind: "argument" | "execution" | "partial" | "verification"
    severity: "error" | "warning" | "info"
    message: string
    recovery?: string
    mutationApplied?: boolean
  }> | null
  usage?: {
    inputTokens: number
    outputTokens: number
  } | null
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
एसडीके उदाहरण
ai.sessionState
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// AiSessionStateInput
const result = await client.ai.sessionState({
  sessionId: "",
  projectId: ""
})
curl
पोस्ट/एपीआई/एआई/सत्र/राज्य
curl --request POST "${CADCAMFUN_URL}/api/ai/sessions/state" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं
डाक /api/ai/sessions/remove # ai.removeSession

आवश्यक है Authorization: Bearer <token>.

अनुरोध का मुख्य भाग · आवश्यक · एप्लिकेशन/जेसन
{
  sessionId: string
  projectId?: string | null
}
जवाब
200 वस्तु application/json
{
  removed: boolean
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
एसडीके उदाहरण
ai.removeSession
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// AiRemoveSessionInput
const result = await client.ai.removeSession({
  sessionId: "",
  projectId: ""
})
curl
पोस्ट/एपीआई/एआई/सत्र/निकालें
curl --request POST "${CADCAMFUN_URL}/api/ai/sessions/remove" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं
डाक /api/ai/sessions/prompt # ai.sessionPrompt

आवश्यक है Authorization: Bearer <token>.

अनुरोध का मुख्य भाग · आवश्यक · एप्लिकेशन/जेसन
{
  permissionMode?: "auto" | "ask" | "approve" | null
  agent?: string | null
  mode?: string | null
  attachments?: Array<{
    name: string
    mime?: string | null
    data: string
    encoding?: "base64" | "text" | null
  }> | null
  message?: string | null
  sessionId?: string | null
  projectId?: string | null
  drawingId?: string | null
  context?: string | null
  includeContext?: boolean | null
  model?: {
    provider?: string | null
    model?: string | null
    tier?: "fast" | "balanced" | "best" | null
    variant?: string | null
  } | null
}
जवाब
200 वस्तु application/json
{
  sessionId: string
  seq: number | "Infinity" | "-Infinity" | "NaN"
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
409 ConflictEncoded application/json
ConflictEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
उदाहरण लाओ
ai.sessionPrompt
// Not generated in the Promise SDK (multipart, binary or raw body): call it with fetch.
const response = await fetch(`${process.env.CADCAMFUN_URL}/api/ai/sessions/prompt`, {
  method: "POST",
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
curl
पोस्ट/एपीआई/एआई/सत्र/प्रॉम्प्ट
curl --request POST "${CADCAMFUN_URL}/api/ai/sessions/prompt" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं
पाना /api/ai/sessions/{sessionId}/stream # ai.sessionStream

आवश्यक है Authorization: Bearer <token>.

पैरामीटर
नाममेंप्रकारआवश्यक
sessionId पथ डोरी आवश्यक
बाद सवाल डोरी | null वैकल्पिक
जवाब
200 वस्तु text/event-stream
{
  id: string | null
  event: string
  data: string
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
उदाहरण लाओ
ai.sessionStream
// Not generated in the Promise SDK (multipart, binary or raw body): call it with fetch.
const response = await fetch(`${process.env.CADCAMFUN_URL}/api/ai/sessions/${sessionId}/stream`, {
  method: "GET",
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
curl
/api/ai/sessions/{sessionId}/स्ट्रीम प्राप्त करें
curl --request GET "${CADCAMFUN_URL}/api/ai/sessions/<sessionId>/stream" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
इसे अजमाएं
पाना /api/ai/sessions # ai.sessionList

आवश्यक है Authorization: Bearer <token>.

पैरामीटर
नाममेंप्रकारआवश्यक
projectId सवाल डोरी आवश्यक
आप LIMIT सवाल डोरी | null वैकल्पिक
जवाब
200 सारणी<ऑब्जेक्ट> application/json
Array<{
  id: string
  projectId: string
  title: string
  createdAt: string | null
  updatedAt: string | null
  busy: boolean
}>
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
उदाहरण लाओ
ai.sessionList
// Not generated in the Promise SDK (multipart, binary or raw body): call it with fetch.
const response = await fetch(`${process.env.CADCAMFUN_URL}/api/ai/sessions`, {
  method: "GET",
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
curl
/एपीआई/एआई/सत्र प्राप्त करें
curl --request GET "${CADCAMFUN_URL}/api/ai/sessions?projectId=<projectId>" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
इसे अजमाएं
पाना /api/ai/sessions/{sessionId}/messages # ai.sessionMessages

आवश्यक है Authorization: Bearer <token>.

पैरामीटर
नाममेंप्रकारआवश्यक
sessionId पथ डोरी आवश्यक
पहले सवाल डोरी | null वैकल्पिक
आप LIMIT सवाल डोरी | null वैकल्पिक
जवाब
200 वस्तु application/json
{
  sessionId: string
  messages: Array<{
    id: string
    role: "user" | "assistant"
    text: string
    createdAt: string | null
    agent: string | null
    model: string | null
    error: string | null
    truncated: boolean
    tools: Array<{
      callId: string
      tool: string
      status: "pending" | "running" | "completed" | "error"
      input?: unknown | null
      output: string
      truncated: boolean
    }>
  }>
  before: string | null
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
उदाहरण लाओ
ai.sessionMessages
// Not generated in the Promise SDK (multipart, binary or raw body): call it with fetch.
const response = await fetch(`${process.env.CADCAMFUN_URL}/api/ai/sessions/${sessionId}/messages`, {
  method: "GET",
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
curl
/api/ai/sessions/{sessionId}/संदेश प्राप्त करें
curl --request GET "${CADCAMFUN_URL}/api/ai/sessions/<sessionId>/messages" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
इसे अजमाएं

/api/ai/extensions

पाना /api/ai/extensions/mcp # ai.mcpServers

आवश्यक है Authorization: Bearer <token>.

पैरामीटर
नाममेंप्रकारआवश्यक
projectId सवाल डोरी आवश्यक
जवाब
200 वस्तु application/json
{
  servers: Array<{
    name: string
    config: {
      type: "local"
      command: string[]
      environment?: {
        [key: string]: string
      } | null
      enabled: boolean
      timeout?: number | "Infinity" | "-Infinity" | "NaN" | null
    } | {
      type: "remote"
      url: string
      headers?: {
        [key: string]: string
      } | null
      oauth?: false
    status: string
  }>
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
उदाहरण लाओ
ai.mcpServers
// Not generated in the Promise SDK (multipart, binary or raw body): call it with fetch.
const response = await fetch(`${process.env.CADCAMFUN_URL}/api/ai/extensions/mcp`, {
  method: "GET",
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
curl
/एपीआई/एआई/एक्सटेंशन/एमसीपी प्राप्त करें
curl --request GET "${CADCAMFUN_URL}/api/ai/extensions/mcp?projectId=<projectId>" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
इसे अजमाएं
रखना /api/ai/extensions/mcp # ai.saveMcpServer

आवश्यक है Authorization: Bearer <token>.

अनुरोध का मुख्य भाग · आवश्यक · एप्लिकेशन/जेसन
{
  projectId: string
  name: string
  config: {
    type: "local"
    command: string[]
    environment?: {
      [key: string]: string
    } | null
    enabled: boolean
    timeout?: number | "Infinity" | "-Infinity" | "NaN" | null
  } | {
    type: "remote"
    url: string
    headers?: {
      [key: string]: string
    } | null
    oauth?: false
}
जवाब
200 वस्तु application/json
{
  servers: Array<{
    name: string
    config: {
      type: "local"
      command: string[]
      environment?: {
        [key: string]: string
      } | null
      enabled: boolean
      timeout?: number | "Infinity" | "-Infinity" | "NaN" | null
    } | {
      type: "remote"
      url: string
      headers?: {
        [key: string]: string
      } | null
      oauth?: false
    status: string
  }>
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
उदाहरण लाओ
ai.saveMcpServer
// Not generated in the Promise SDK (multipart, binary or raw body): call it with fetch.
const response = await fetch(`${process.env.CADCAMFUN_URL}/api/ai/extensions/mcp`, {
  method: "PUT",
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
curl
/एपीआई/एआई/एक्सटेंशन/एमसीपी डालें
curl --request PUT "${CADCAMFUN_URL}/api/ai/extensions/mcp" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं
मिटाना /api/ai/extensions/mcp/{name} # ai.deleteMcpServer

आवश्यक है Authorization: Bearer <token>.

पैरामीटर
नाममेंप्रकारआवश्यक
नाम पथ डोरी आवश्यक
projectId सवाल डोरी आवश्यक
जवाब
200 वस्तु application/json
{
  servers: Array<{
    name: string
    config: {
      type: "local"
      command: string[]
      environment?: {
        [key: string]: string
      } | null
      enabled: boolean
      timeout?: number | "Infinity" | "-Infinity" | "NaN" | null
    } | {
      type: "remote"
      url: string
      headers?: {
        [key: string]: string
      } | null
      oauth?: false
    status: string
  }>
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
उदाहरण लाओ
ai.deleteMcpServer
// Not generated in the Promise SDK (multipart, binary or raw body): call it with fetch.
const response = await fetch(`${process.env.CADCAMFUN_URL}/api/ai/extensions/mcp/${name}`, {
  method: "DELETE",
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
curl
हटाएँ /api/ai/एक्सटेंशन/mcp/{name}
curl --request DELETE "${CADCAMFUN_URL}/api/ai/extensions/mcp/<name>?projectId=<projectId>" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
इसे अजमाएं
मिटाना /api/ai/extensions/plugins/{id} # ai.removeExtensionPlugin

आवश्यक है Authorization: Bearer <token>.

पैरामीटर
नाममेंप्रकारआवश्यक
पहचान पथ डोरी आवश्यक
जवाब
200 वस्तु application/json
{
  plugins: Array<{
    id: string
    name: string
    version: string
    enabled: boolean
    tools: number | "Infinity" | "-Infinity" | "NaN"
    mods: number | "Infinity" | "-Infinity" | "NaN"
    modes: number | "Infinity" | "-Infinity" | "NaN"
  }>
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
उदाहरण लाओ
ai.removeExtensionPlugin
// Not generated in the Promise SDK (multipart, binary or raw body): call it with fetch.
const response = await fetch(`${process.env.CADCAMFUN_URL}/api/ai/extensions/plugins/${id}`, {
  method: "DELETE",
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
curl
हटाएँ /api/ai/एक्सटेंशन/प्लगइन्स/{id}
curl --request DELETE "${CADCAMFUN_URL}/api/ai/extensions/plugins/<id>" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
इसे अजमाएं
रखना /api/ai/extensions/plugins/{id} # ai.toggleExtensionPlugin

आवश्यक है Authorization: Bearer <token>.

पैरामीटर
नाममेंप्रकारआवश्यक
पहचान पथ डोरी आवश्यक
अनुरोध का मुख्य भाग · आवश्यक · एप्लिकेशन/जेसन
{
  enabled: boolean
}
जवाब
200 वस्तु application/json
{
  plugins: Array<{
    id: string
    name: string
    version: string
    enabled: boolean
    tools: number | "Infinity" | "-Infinity" | "NaN"
    mods: number | "Infinity" | "-Infinity" | "NaN"
    modes: number | "Infinity" | "-Infinity" | "NaN"
  }>
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
उदाहरण लाओ
ai.toggleExtensionPlugin
// Not generated in the Promise SDK (multipart, binary or raw body): call it with fetch.
const response = await fetch(`${process.env.CADCAMFUN_URL}/api/ai/extensions/plugins/${id}`, {
  method: "PUT",
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
curl
/api/ai/एक्सटेंशन/प्लगइन्स/{id} डालें
curl --request PUT "${CADCAMFUN_URL}/api/ai/extensions/plugins/<id>" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं
पाना /api/ai/extensions/plugins # ai.extensionPlugins

आवश्यक है Authorization: Bearer <token>.

जवाब
200 वस्तु application/json
{
  plugins: Array<{
    id: string
    name: string
    version: string
    enabled: boolean
    tools: number | "Infinity" | "-Infinity" | "NaN"
    mods: number | "Infinity" | "-Infinity" | "NaN"
    modes: number | "Infinity" | "-Infinity" | "NaN"
  }>
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
उदाहरण लाओ
ai.extensionPlugins
// Not generated in the Promise SDK (multipart, binary or raw body): call it with fetch.
const response = await fetch(`${process.env.CADCAMFUN_URL}/api/ai/extensions/plugins`, {
  method: "GET",
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
curl
/एपीआई/एआई/एक्सटेंशन/प्लगइन प्राप्त करें
curl --request GET "${CADCAMFUN_URL}/api/ai/extensions/plugins" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
इसे अजमाएं
डाक /api/ai/extensions/plugins # ai.installExtensionPlugin

आवश्यक है Authorization: Bearer <token>.

अनुरोध का मुख्य भाग · आवश्यक · एप्लिकेशन/जेसन
{
  manifest: string
  source: string
  files?: {
    [key: string]: string
  } | null
}
जवाब
200 वस्तु application/json
{
  plugins: Array<{
    id: string
    name: string
    version: string
    enabled: boolean
    tools: number | "Infinity" | "-Infinity" | "NaN"
    mods: number | "Infinity" | "-Infinity" | "NaN"
    modes: number | "Infinity" | "-Infinity" | "NaN"
  }>
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
उदाहरण लाओ
ai.installExtensionPlugin
// Not generated in the Promise SDK (multipart, binary or raw body): call it with fetch.
const response = await fetch(`${process.env.CADCAMFUN_URL}/api/ai/extensions/plugins`, {
  method: "POST",
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
curl
पोस्ट/एपीआई/एआई/एक्सटेंशन/प्लगइन्स
curl --request POST "${CADCAMFUN_URL}/api/ai/extensions/plugins" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं
पाना /api/ai/extensions/mods # ai.extensionMods

आवश्यक है Authorization: Bearer <token>.

जवाब
200 वस्तु application/json
{
  mods: Array<{
    id: string
    name: string
    description: string
    enabled: boolean
    origin: "assistant" | "user" | "plugin"
    pluginId?: string | null
  }>
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
उदाहरण लाओ
ai.extensionMods
// Not generated in the Promise SDK (multipart, binary or raw body): call it with fetch.
const response = await fetch(`${process.env.CADCAMFUN_URL}/api/ai/extensions/mods`, {
  method: "GET",
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
curl
/एपीआई/एआई/एक्सटेंशन/मोड प्राप्त करें
curl --request GET "${CADCAMFUN_URL}/api/ai/extensions/mods" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
इसे अजमाएं
रखना /api/ai/extensions/mods/{id} # ai.toggleExtensionMod

आवश्यक है Authorization: Bearer <token>.

पैरामीटर
नाममेंप्रकारआवश्यक
पहचान पथ डोरी आवश्यक
अनुरोध का मुख्य भाग · आवश्यक · एप्लिकेशन/जेसन
{
  enabled: boolean
}
जवाब
200 वस्तु application/json
{
  mods: Array<{
    id: string
    name: string
    description: string
    enabled: boolean
    origin: "assistant" | "user" | "plugin"
    pluginId?: string | null
  }>
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
उदाहरण लाओ
ai.toggleExtensionMod
// Not generated in the Promise SDK (multipart, binary or raw body): call it with fetch.
const response = await fetch(`${process.env.CADCAMFUN_URL}/api/ai/extensions/mods/${id}`, {
  method: "PUT",
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
curl
/api/ai/एक्सटेंशन/mods/{id} डालें
curl --request PUT "${CADCAMFUN_URL}/api/ai/extensions/mods/<id>" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं
मिटाना /api/ai/extensions/mods/{id} # ai.removeExtensionMod

आवश्यक है Authorization: Bearer <token>.

पैरामीटर
नाममेंप्रकारआवश्यक
पहचान पथ डोरी आवश्यक
जवाब
200 वस्तु application/json
{
  mods: Array<{
    id: string
    name: string
    description: string
    enabled: boolean
    origin: "assistant" | "user" | "plugin"
    pluginId?: string | null
  }>
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
उदाहरण लाओ
ai.removeExtensionMod
// Not generated in the Promise SDK (multipart, binary or raw body): call it with fetch.
const response = await fetch(`${process.env.CADCAMFUN_URL}/api/ai/extensions/mods/${id}`, {
  method: "DELETE",
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
curl
हटाएँ /api/ai/एक्सटेंशन/mods/{id}
curl --request DELETE "${CADCAMFUN_URL}/api/ai/extensions/mods/<id>" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
इसे अजमाएं

/api/ai/modes

पाना /api/ai/modes # ai.modes

आवश्यक है Authorization: Bearer <token>.

जवाब
200 वस्तु application/json
{
  modes: Array<{
    id: string
    title: string
    description: string
    pluginId: string
    pluginName: string
  }>
  builtin?: Array<{
    id: string
    title: string
    description: string
    pluginId: string
    pluginName: string
  }> | null
}
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
उदाहरण लाओ
ai.modes
// Not generated in the Promise SDK (multipart, binary or raw body): call it with fetch.
const response = await fetch(`${process.env.CADCAMFUN_URL}/api/ai/modes`, {
  method: "GET",
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
curl
/एपीआई/एआई/मोड प्राप्त करें
curl --request GET "${CADCAMFUN_URL}/api/ai/modes" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
इसे अजमाएं

/api/ai/skills

पाना /api/ai/skills # ai.skills

आवश्यक है Authorization: Bearer <token>.

जवाब
200 वस्तु application/json
{
  skills: Array<{
    name: string
    description: string
    builtIn: boolean
    category: string
  }>
  max: number | "Infinity" | "-Infinity" | "NaN"
}
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
उदाहरण प्रतिक्रिया कब्जा कर लिया गया · 200
/एपीआई/एआई/कौशल प्राप्त करें
{
  "skills": [
    {
      "name": "cad-3d-modeling",
      "description": "Model 3D and 2D geometry in the open editor (45 element types): conventions, recipes for common parts, how to build complex objects.",
      "builtIn": true,
      "category": "cad"
    },
    {
      "name": "cam-operation-workflow",
      "description": "The loop from a drawing to verified G-code: describe, parameters, operation, generate, analyse, verify, fix.",
      "builtIn": true,
      "category": "cam"
    },
    {
      "name": "toolpath-verification",
      "description": "How to read and report a cam_edit action verify result: every finding code, its cause and its fix, and what was not modelled.",
      "builtIn": true,
      "category": "cam"
    },
    {
      "name": "cutting-parameters",
      "description": "Speeds, feeds, stepdown and stepover starting points by material, and the formulas behind them.",
      "builtIn": true,
      "category": "cam"
    },
    {
      "name": "drilling-and-holes",
      "description": "Drilling operations: cycles, peck rules, through-hole depth, large holes.",
      "builtIn": true,
      "category": "cam"
    },
    {
      "name": "precision-and-tolerances",
      "description": "Working to microns: nominal sizes, tolerance on round shapes, ISO 286 grades, finishing strategy and what the verification can and cannot show.",
      "builtIn": true,
      "category": "cam"
    },
    {
      "name": "industrial-standards",
      "description": "Mechanical and industrial rules for professional parts: ISO 2768 general tolerances, ISO 286 fits, surface finish, ISO 273 / ISO 4762 fastener holes, tap drills, DIN 6885 keys, ISO 54 gears, preferred numbers, design rules per process (milling, turning, sheet metal, casting, printing) and material densities.",
      "builtIn": true,
      "category": "cad"
    },
    {
      "name": "machines-and-axes",
      "description": "Mill, lathe and 3D printer: what turns, the sense of every axis, zeros and work offsets, touch probes and tool setters, and how to check a program against its machine.",
      "builtIn": true,
      "category": "cam"
    },
    {
      "name": "drawings-and-images",
      "description": "From a DXF/SVG file, an image of a dimensioned drawing, a photo or a sketch to a 3D model: which tool, what to ask, how to check the result.",
      "builtIn": true,
      "category": "cad"
    },
    {
      "name": "plugin-authoring",
      "description": "Write an extension for the ap
…
एसडीके उदाहरण
ai.skills
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// no input
const result = await client.ai.skills()
curl
/एपीआई/एआई/कौशल प्राप्त करें
curl --request GET "${CADCAMFUN_URL}/api/ai/skills" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
इसे अजमाएं
रखना /api/ai/skills # ai.saveSkill

आवश्यक है Authorization: Bearer <token>.

अनुरोध का मुख्य भाग · आवश्यक · एप्लिकेशन/जेसन
{
  markdown?: string | null
  name?: string | null
  description?: string | null
  body?: string | null
}
जवाब
200 वस्तु application/json
{
  skill: {
    name: string
    description: string
    builtIn: boolean
    category: string
  }
  skills: Array<{
    name: string
    description: string
    builtIn: boolean
    category: string
  }>
  live: boolean
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
एसडीके उदाहरण
ai.saveSkill
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// AiSaveSkillInput
const result = await client.ai.saveSkill({
  markdown: "",
  name: "",
  description: "",
  body: ""
})
curl
/एपीआई/एआई/कौशल डालें
curl --request PUT "${CADCAMFUN_URL}/api/ai/skills" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं
मिटाना /api/ai/skills/{name} # ai.deleteSkill

आवश्यक है Authorization: Bearer <token>.

पैरामीटर
नाममेंप्रकारआवश्यक
नाम पथ डोरी आवश्यक
जवाब
200 वस्तु application/json
{
  skills: Array<{
    name: string
    description: string
    builtIn: boolean
    category: string
  }>
  max: number | "Infinity" | "-Infinity" | "NaN"
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
एसडीके उदाहरण
ai.deleteSkill
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// AiDeleteSkillInput
const result = await client.ai.deleteSkill({
  name: "<name>"
})
curl
हटाएँ /api/ai/skills/{name}
curl --request DELETE "${CADCAMFUN_URL}/api/ai/skills/<name>" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
इसे अजमाएं

/api/ai/credentials

रखना /api/ai/credentials # ai.setCredentials

आवश्यक है Authorization: Bearer <token>.

अनुरोध का मुख्य भाग · आवश्यक · एप्लिकेशन/जेसन
{
  provider?: string | null
  key?: string | null
  baseUrl?: string | null
}
जवाब
200 वस्तु application/json
{
  providers: {
    [key: string]: "configured" | "missing"
  }
  configured: boolean
  tools?: Array<{
    id: string
    description: string
  }> | null
  host: "nikcli" | "direct"
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
एसडीके उदाहरण
ai.setCredentials
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// AiSetCredentialsInput
const result = await client.ai.setCredentials({
  provider: "",
  key: "",
  baseUrl: ""
})
curl
/एपीआई/एआई/क्रेडेंशियल डालें
curl --request PUT "${CADCAMFUN_URL}/api/ai/credentials" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं
मिटाना /api/ai/credentials/{provider} # ai.clearCredentials

आवश्यक है Authorization: Bearer <token>.

पैरामीटर
नाममेंप्रकारआवश्यक
प्रदाता पथ डोरी आवश्यक
जवाब
200 वस्तु application/json
{
  providers: {
    [key: string]: "configured" | "missing"
  }
  configured: boolean
  tools?: Array<{
    id: string
    description: string
  }> | null
  host: "nikcli" | "direct"
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
एसडीके उदाहरण
ai.clearCredentials
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// AiClearCredentialsInput
const result = await client.ai.clearCredentials({
  provider: "<provider>"
})
curl
हटाएँ /api/ai/क्रेडेंशियल्स/{provider}
curl --request DELETE "${CADCAMFUN_URL}/api/ai/credentials/<provider>" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
इसे अजमाएं

/api/ai/status

पाना /api/ai/status # ai.status

आवश्यक है Authorization: Bearer <token>.

जवाब
200 वस्तु application/json
{
  providers: {
    [key: string]: "configured" | "missing"
  }
  configured: boolean
  tools?: Array<{
    id: string
    description: string
  }> | null
  host: "nikcli" | "direct"
}
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
उदाहरण प्रतिक्रिया कब्जा कर लिया गया · 200
/एपीआई/एआई/स्थिति प्राप्त करें
{
  "providers": {
    "anthropic": "missing",
    "openai": "missing",
    "minimax": "missing",
    "gateway": "missing"
  },
  "configured": false,
  "host": "direct"
}
एसडीके उदाहरण
ai.status
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// no input
const result = await client.ai.status()
curl
/एपीआई/एआई/स्थिति प्राप्त करें
curl --request GET "${CADCAMFUN_URL}/api/ai/status" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
इसे अजमाएं

/api/ai/models

पाना /api/ai/models # ai.models

आवश्यक है Authorization: Bearer <token>.

पैरामीटर
नाममेंप्रकारआवश्यक
configuredOnly सवाल "सत्य" | "असत्य" | null वैकल्पिक
जवाब
200 सारणी<ऑब्जेक्ट> application/json
Array<{
  id: string
  provider: string
  tier?: "fast" | "balanced" | "best" | null
  contextWindow: number | "Infinity" | "-Infinity" | "NaN"
  tools: boolean
  vision: boolean
  configured: boolean
}>
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
उदाहरण प्रतिक्रिया कब्जा कर लिया गया · 200
/एपीआई/एआई/मॉडल प्राप्त करें
[
  {
    "id": "claude-haiku-4-5",
    "provider": "anthropic",
    "tier": "fast",
    "contextWindow": 200000,
    "tools": true,
    "vision": true,
    "configured": false
  },
  {
    "id": "claude-sonnet-5-5",
    "provider": "anthropic",
    "tier": "balanced",
    "contextWindow": 1000000,
    "tools": true,
    "vision": true,
    "configured": false
  },
  {
    "id": "claude-opus-5-5",
    "provider": "anthropic",
    "tier": "best",
    "contextWindow": 1000000,
    "tools": true,
    "vision": true,
    "configured": false
  },
  {
    "id": "gpt-5-mini",
    "provider": "openai",
    "tier": "fast",
    "contextWindow": 400000,
    "tools": true,
    "vision": true,
    "configured": false
  },
  {
    "id": "gpt-5",
    "provider": "openai",
    "tier": "balanced",
    "contextWindow": 400000,
    "tools": true,
    "vision": true,
    "configured": false
  },
  {
    "id": "MiniMax-M2",
    "provider": "minimax",
    "tier": "fast",
    "contextWindow": 200000,
    "tools": true,
    "vision": false,
    "configured": false
  },
  {
    "id": "anthropic/claude-haiku-4-5",
    "provider": "gateway",
    "tier": "fast",
    "contextWindow": 200000,
    "tools": true,
    "vision": true,
    "configured": false
  },
  {
    "id": "anthropic/claude-sonnet-5-5",
    "provider": "gateway",
    "tier": "balanced",
    "contextWindow": 1000000,
    "tools": true,
    "vision": true,
    "configured": false
  },
  {
    "id": "anthropic/claude-opus-5-5",
    "provider": "gateway",
    "tier": "best",
    "contextWindow": 1000000,
    "tools": true,
    "vision": true,
    "configured": false
  }
]
एसडीके उदाहरण
ai.models
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// AiModelsInput
const result = await client.ai.models({})
curl
/एपीआई/एआई/मॉडल प्राप्त करें
curl --request GET "${CADCAMFUN_URL}/api/ai/models" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
इसे अजमाएं
डाक /api/ai/models/refresh # ai.refreshModels

आवश्यक है Authorization: Bearer <token>.

जवाब
200 सारणी<ऑब्जेक्ट> application/json
Array<{
  id: string
  name: string
  source: string
  auth: string[]
  configured: boolean
  baseUrl?: string | null
  defaultModel?: string | null
  models: Array<{
    id: string
    name: string
    provider: string
    contextWindow: number | "Infinity" | "-Infinity" | "NaN"
    maxOutput: number | "Infinity" | "-Infinity" | "NaN"
    inputWindow?: number | "Infinity" | "-Infinity" | "NaN" | null
    reasoning?: boolean | null
    variants?: string[] | null
    tools: boolean
    vision: boolean
    cost: {
      input: number | "Infinity" | "-Infinity" | "NaN"
      output: number | "Infinity" | "-Infinity" | "NaN"
    }
  }>
}>
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
उदाहरण लाओ
ai.refreshModels
// Not generated in the Promise SDK (multipart, binary or raw body): call it with fetch.
const response = await fetch(`${process.env.CADCAMFUN_URL}/api/ai/models/refresh`, {
  method: "POST",
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
curl
पोस्ट/एपीआई/एआई/मॉडल/रिफ्रेश
curl --request POST "${CADCAMFUN_URL}/api/ai/models/refresh" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
इसे अजमाएं

/api/ai/providers

पाना /api/ai/providers # ai.providers

आवश्यक है Authorization: Bearer <token>.

जवाब
200 सारणी<ऑब्जेक्ट> application/json
Array<{
  id: string
  name: string
  source: string
  auth: string[]
  configured: boolean
  baseUrl?: string | null
  defaultModel?: string | null
  models: Array<{
    id: string
    name: string
    provider: string
    contextWindow: number | "Infinity" | "-Infinity" | "NaN"
    maxOutput: number | "Infinity" | "-Infinity" | "NaN"
    inputWindow?: number | "Infinity" | "-Infinity" | "NaN" | null
    reasoning?: boolean | null
    variants?: string[] | null
    tools: boolean
    vision: boolean
    cost: {
      input: number | "Infinity" | "-Infinity" | "NaN"
      output: number | "Infinity" | "-Infinity" | "NaN"
    }
  }>
}>
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
उदाहरण प्रतिक्रिया कब्जा कर लिया गया · 200
/एपीआई/एआई/प्रदाता प्राप्त करें
[
  {
    "id": "anthropic",
    "name": "anthropic",
    "source": "config",
    "auth": [
      "api"
    ],
    "configured": false,
    "models": [
      {
        "id": "claude-haiku-4-5",
        "name": "claude-haiku-4-5",
        "provider": "anthropic",
        "contextWindow": 200000,
        "maxOutput": 16000,
        "reasoning": false,
        "variants": [],
        "tools": true,
        "vision": true,
        "cost": {
          "input": 0,
          "output": 0
        }
      },
      {
        "id": "claude-sonnet-5-5",
        "name": "claude-sonnet-5-5",
        "provider": "anthropic",
        "contextWindow": 1000000,
        "maxOutput": 16000,
        "reasoning": false,
        "variants": [],
        "tools": true,
        "vision": true,
        "cost": {
          "input": 0,
          "output": 0
        }
      },
      {
        "id": "claude-opus-5-5",
        "name": "claude-opus-5-5",
        "provider": "anthropic",
        "contextWindow": 1000000,
        "maxOutput": 16000,
        "reasoning": false,
        "variants": [],
        "tools": true,
        "vision": true,
        "cost": {
          "input": 0,
          "output": 0
        }
      }
    ]
  },
  {
    "id": "openai",
    "name": "openai",
    "source": "config",
    "auth": [
      "api"
    ],
    "configured": false,
    "models": [
      {
        "id": "gpt-5-mini",
        "name": "gpt-5-mini",
        "provider": "openai",
        "contextWindow": 400000,
        "maxOutput": 16000,
        "reasoning": false,
        "variants": [],
        "tools": true,
        "vision": true,
        "cost": {
          "input": 0,
          "output": 0
        }
      },
      {
        "id": "gpt-5",
        "name": "gpt-5",
        "provider": "openai",
        "contextWindow": 400000,
        "maxOutput": 16000,
        "reasoning": false,
        "variants": [],
        "tools": true,
        "vision": true,
        "cost": {
          "input": 0,
          "output": 0
        }
      }
    ]
  },
  {
    "id": "minimax",
    "name": "minimax",
    "source": "config",
    "auth": [
      "api"
    ],
    "configured": false,
    "models": [
      {
        "id": "MiniMax-M2",
        "name": "MiniMax-M2",
        "provider": "minimax",
        "contextWindow": 200000,
        "maxOutput": 16000,
        "reasoning": false,
        "variants": [],
        "tools": true,
        "vision": false,
        "cost": {
          "input": 0,
          "output"
…
एसडीके उदाहरण
ai.providers
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// no input
const result = await client.ai.providers()
curl
/एपीआई/एआई/प्रदाता प्राप्त करें
curl --request GET "${CADCAMFUN_URL}/api/ai/providers" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
इसे अजमाएं

/api/ai/prompts

पाना /api/ai/prompts # ai.prompts

आवश्यक है Authorization: Bearer <token>.

पैरामीटर
नाममेंप्रकारआवश्यक
तरीका सवाल डोरी | null वैकल्पिक
जवाब
200 वस्तु application/json
{
  prompts: string[]
}
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
उदाहरण प्रतिक्रिया कब्जा कर लिया गया · 200
/api/ai/संकेत प्राप्त करें
{
  "prompts": [
    "How do I get started with CAD/CAM?",
    "What's the difference between CAD and CAM?",
    "Can you recommend resources for learning more?"
  ]
}
एसडीके उदाहरण
ai.prompts
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// AiPromptsInput
const result = await client.ai.prompts({})
curl
/api/ai/संकेत प्राप्त करें
curl --request GET "${CADCAMFUN_URL}/api/ai/prompts" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
इसे अजमाएं

/api/ai/title

डाक /api/ai/title # ai.title

आवश्यक है Authorization: Bearer <token>.

अनुरोध का मुख्य भाग · आवश्यक · एप्लिकेशन/जेसन
{
  excerpt?: string | null
  model?: {
    provider?: string | null
    model?: string | null
    tier?: "fast" | "balanced" | "best" | null
    variant?: string | null
  } | null
}
जवाब
200 वस्तु application/json
{
  title: string
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
एसडीके उदाहरण
ai.title
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// AiTitleInput
const result = await client.ai.title({
  excerpt: "",
  model: {}
})
curl
पोस्ट/एपीआई/एआई/शीर्षक
curl --request POST "${CADCAMFUN_URL}/api/ai/title" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं

/api/ai/design-analysis

डाक /api/ai/design-analysis # ai.designAnalysis

आवश्यक है Authorization: Bearer <token>.

अनुरोध का मुख्य भाग · आवश्यक · एप्लिकेशन/जेसन
{
  description?: string | null
  layer?: string | null
  machine?: string | null
  model?: {
    provider?: string | null
    model?: string | null
    tier?: "fast" | "balanced" | "best" | null
    variant?: string | null
  } | null
}
जवाब
200 वस्तु application/json
{
  suggestions: Array<{
    title: string
    description: string
    confidence: number | "Infinity" | "-Infinity" | "NaN"
    priority: "low" | "medium" | "high"
    kind: "optimization" | "warning" | "critical"
  }>
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
एसडीके उदाहरण
ai.designAnalysis
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// AiDesignAnalysisInput
const result = await client.ai.designAnalysis({
  description: "",
  layer: "",
  machine: "",
  model: {}
})
curl
पोस्ट/एपीआई/एआई/डिज़ाइन-विश्लेषण
curl --request POST "${CADCAMFUN_URL}/api/ai/design-analysis" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं

/api/ai/machining-parameters

डाक /api/ai/machining-parameters # ai.machiningParameters

आवश्यक है Authorization: Bearer <token>.

अनुरोध का मुख्य भाग · आवश्यक · एप्लिकेशन/जेसन
{
  material?: string | null
  tool?: string | null
  operation?: string | null
  machine?: string | null
  model?: {
    provider?: string | null
    model?: string | null
    tier?: "fast" | "balanced" | "best" | null
    variant?: string | null
  } | null
}
जवाब
200 वस्तु application/json
{
  cuttingSpeedMPerMin: number | "Infinity" | "-Infinity" | "NaN"
  feedRateMmPerMin: number | "Infinity" | "-Infinity" | "NaN"
  depthOfCutMm: number | "Infinity" | "-Infinity" | "NaN"
  stepoverPct: number | "Infinity" | "-Infinity" | "NaN"
  coolant: "flood" | "mist" | "none"
  engagement: "conventional" | "climb"
  warnings: string[]
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
एसडीके उदाहरण
ai.machiningParameters
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// AiMachiningParametersInput
const result = await client.ai.machiningParameters({
  material: "",
  tool: "",
  operation: "",
  machine: "",
  model: {}
})
curl
पोस्ट/एपीआई/एआई/मशीनिंग-पैरामीटर
curl --request POST "${CADCAMFUN_URL}/api/ai/machining-parameters" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं

/api/ai/gcode-optimization

डाक /api/ai/gcode-optimization # ai.gcodeOptimization

आवश्यक है Authorization: Bearer <token>.

अनुरोध का मुख्य भाग · आवश्यक · एप्लिकेशन/जेसन
{
  gcode?: string | null
  material?: string | null
  machineType?: string | null
  constraints?: string | null
  model?: {
    provider?: string | null
    model?: string | null
    tier?: "fast" | "balanced" | "best" | null
    variant?: string | null
  } | null
}
जवाब
200 वस्तु application/json
{
  gcode: string
  changes: Array<{
    line: number | "Infinity" | "-Infinity" | "NaN"
    before: string
    after: string
    reason: string
  }>
  estimatedSavings: {
    timePct: number | "Infinity" | "-Infinity" | "NaN"
    toolLifePct: number | "Infinity" | "-Infinity" | "NaN"
    qualityNote: string
  }
  notes: string
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
एसडीके उदाहरण
ai.gcodeOptimization
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// AiGcodeOptimizationInput
const result = await client.ai.gcodeOptimization({
  gcode: "",
  material: "",
  machineType: "",
  constraints: "",
  model: {}
})
curl
पोस्ट /एपीआई/एआई/जीकोड-अनुकूलन
curl --request POST "${CADCAMFUN_URL}/api/ai/gcode-optimization" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं

/api/ai/design-suggestions

डाक /api/ai/design-suggestions # ai.designSuggestions

आवश्यक है Authorization: Bearer <token>.

अनुरोध का मुख्य भाग · आवश्यक · एप्लिकेशन/जेसन
{
  elements?: string | null
  currentOperation?: string | null
  currentTool?: string | null
  model?: {
    provider?: string | null
    model?: string | null
    tier?: "fast" | "balanced" | "best" | null
    variant?: string | null
  } | null
}
जवाब
200 सारणी<ऑब्जेक्ट> application/json
Array<{
  title: string
  rationale: string
  nextStep: string
}>
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
एसडीके उदाहरण
ai.designSuggestions
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// AiDesignSuggestionsInput
const result = await client.ai.designSuggestions({
  elements: "",
  currentOperation: "",
  currentTool: "",
  model: {}
})
curl
पोस्ट/एपीआई/एआई/डिजाइन-सुझाव
curl --request POST "${CADCAMFUN_URL}/api/ai/design-suggestions" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं

/api/ai/chat

डाक /api/ai/chat # ai.chat

आवश्यक है Authorization: Bearer <token>.

अनुरोध का मुख्य भाग · आवश्यक · एप्लिकेशन/जेसन
{
  messages?: unknown | null
  mcpServerId?: string | null
  mcpReference?: string | null
}
जवाब
200 वस्तु application/json
{
  reply: string
  hasMcpData: boolean
}
400 AiBadRequestEncoded application/json
AiBadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
404 AiNotFoundEncoded application/json
AiNotFoundEncoded
500 AiFailureEncoded application/json
AiFailureEncoded
एसडीके उदाहरण
ai.chat
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// AiChatInput
const result = await client.ai.chat({
  messages: null,
  mcpServerId: "",
  mcpReference: ""
})
curl
पोस्ट/एपीआई/एआई/चैट
curl --request POST "${CADCAMFUN_URL}/api/ai/chat" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं
डाक /api/ai/chat/stream # ai.chatStream

आवश्यक है Authorization: Bearer <token>.

अनुरोध का मुख्य भाग · आवश्यक · एप्लिकेशन/जेसन
{
  permissionMode?: "auto" | "ask" | "approve" | null
  agent?: string | null
  mode?: string | null
  attachments?: Array<{
    name: string
    mime?: string | null
    data: string
    encoding?: "base64" | "text" | null
  }> | null
  message?: string | null
  sessionId?: string | null
  projectId?: string | null
  drawingId?: string | null
  context?: string | null
  includeContext?: boolean | null
  model?: {
    provider?: string | null
    model?: string | null
    tier?: "fast" | "balanced" | "best" | null
    variant?: string | null
  } | null
}
जवाब
200 वस्तु text/event-stream
{
  id: string | null
  event: string
  data: string
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
एसडीके उदाहरण
ai.chatStream
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// AiChatStreamInput
const result = await client.ai.chatStream({
  permissionMode: "auto",
  agent: "",
  mode: "",
  attachments: [
    {
      name: "",
      data: ""
    }
  ],
  message: "",
  sessionId: "",
  projectId: "",
  drawingId: "",
  context: "",
  includeContext: false,
  model: {}
})
curl
पोस्ट /एपीआई/एआई/चैट/स्ट्रीम
curl --request POST "${CADCAMFUN_URL}/api/ai/chat/stream" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं
डाक /api/ai/chat/queue # ai.chatQueue

आवश्यक है Authorization: Bearer <token>.

अनुरोध का मुख्य भाग · आवश्यक · एप्लिकेशन/जेसन
{
  sessionId: string
  message: string
  projectId?: string | null
  delivery?: "queue" | "steer" | null
}
जवाब
200 वस्तु application/json
{
  message: string
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
एसडीके उदाहरण
ai.chatQueue
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// AiChatQueueInput
const result = await client.ai.chatQueue({
  sessionId: "",
  message: "",
  projectId: "",
  delivery: "queue"
})
curl
पोस्ट/एपीआई/एआई/चैट/कतार
curl --request POST "${CADCAMFUN_URL}/api/ai/chat/queue" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं
डाक /api/ai/chat/abort # ai.chatAbort

आवश्यक है Authorization: Bearer <token>.

अनुरोध का मुख्य भाग · आवश्यक · एप्लिकेशन/जेसन
{
  sessionId?: string | null
  projectId?: string | null
}
जवाब
200 वस्तु application/json
{
  message: string
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
एसडीके उदाहरण
ai.chatAbort
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// AiChatAbortInput
const result = await client.ai.chatAbort({
  sessionId: "",
  projectId: ""
})
curl
पोस्ट/एपीआई/एआई/चैट/निरस्त
curl --request POST "${CADCAMFUN_URL}/api/ai/chat/abort" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं

/api/ai/permission

डाक /api/ai/permission/reply # ai.permissionReply

आवश्यक है Authorization: Bearer <token>.

अनुरोध का मुख्य भाग · आवश्यक · एप्लिकेशन/जेसन
{
  sessionId: string
  projectId?: string | null
  requestId: string
  decision: "once" | "always" | "reject"
}
जवाब
200 वस्तु application/json
{
  message: string
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
एसडीके उदाहरण
ai.permissionReply
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// AiPermissionReplyInput
const result = await client.ai.permissionReply({
  sessionId: "",
  projectId: "",
  requestId: "",
  decision: "once"
})
curl
पोस्ट/एपीआई/एआई/अनुमति/उत्तर
curl --request POST "${CADCAMFUN_URL}/api/ai/permission/reply" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं

/api/ai/completion

डाक /api/ai/completion # ai.completion

आवश्यक है Authorization: Bearer <token>.

अनुरोध का मुख्य भाग · आवश्यक · एप्लिकेशन/जेसन
{
  prompt?: string | null
  systemPrompt?: string | null
  model?: string | null
  temperature?: number | "Infinity" | "-Infinity" | "NaN" | null
}
जवाब
200 वस्तु application/json
{
  text: string
  model: string
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
एसडीके उदाहरण
ai.completion
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// AiCompletionInput
const result = await client.ai.completion({
  prompt: "",
  systemPrompt: "",
  model: "",
  temperature: 0
})
curl
पोस्ट/एपीआई/एआई/समापन
curl --request POST "${CADCAMFUN_URL}/api/ai/completion" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं

/api/ai/analyze-gcode

डाक /api/ai/analyze-gcode # ai.analyzeGcode

आवश्यक है Authorization: Bearer <token>.

अनुरोध का मुख्य भाग · आवश्यक · एप्लिकेशन/जेसन
{
  gcode?: string | null
  model?: string | null
}
जवाब
200 वस्तु application/json
{
  issues: Array<{
    severity: "error" | "warning" | "info"
    code: string
    line: number | "Infinity" | "-Infinity" | "NaN"
    message: string
  }>
  stats: {
    lines: number | "Infinity" | "-Infinity" | "NaN"
    rapidMoves: number | "Infinity" | "-Infinity" | "NaN"
    cutMoves: number | "Infinity" | "-Infinity" | "NaN"
    toolChanges: number | "Infinity" | "-Infinity" | "NaN"
    bounds: {
      min: {
        x: number | "Infinity" | "-Infinity" | "NaN"
        y: number | "NaN"
        z: number | "NaN"
      }
      max: {
        x: number | "NaN"
      }
    } | null
  }
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
एसडीके उदाहरण
ai.analyzeGcode
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// AiAnalyzeGcodeInput
const result = await client.ai.analyzeGcode({
  gcode: "",
  model: ""
})
curl
पोस्ट /एपीआई/एआई/विश्लेषण-जीकोड
curl --request POST "${CADCAMFUN_URL}/api/ai/analyze-gcode" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं

/api/ai/gcode

डाक /api/ai/gcode # ai.gcode

आवश्यक है Authorization: Bearer <token>.

अनुरोध का मुख्य भाग · आवश्यक · एप्लिकेशन/जेसन
{
  action?: string | null
  gcode?: string | null
  partialCode?: string | null
  machineType?: string | null
  material?: string | null
  model?: string | null
  options?: unknown | null
  description?: string | null
  toolpathType?: string | null
}
जवाब
200 वस्तु application/json
{
  success: true
  action: string
  data: unknown
  processedAt: string
}
400 GcodeActionErrorEncoded application/json
GcodeActionErrorEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 GcodeActionFailureEncoded application/json
GcodeActionFailureEncoded
एसडीके उदाहरण
ai.gcode
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// AiGcodeInput
const result = await client.ai.gcode({
  action: "",
  gcode: "",
  partialCode: "",
  machineType: "",
  material: "",
  model: "",
  options: null,
  description: "",
  toolpathType: ""
})
curl
पोस्ट/एपीआई/एआई/जीकोड
curl --request POST "${CADCAMFUN_URL}/api/ai/gcode" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं

/api/ai/toolpath-analysis

डाक /api/ai/toolpath-analysis # ai.toolpathAnalysis

आवश्यक है Authorization: Bearer <token>.

अनुरोध का मुख्य भाग · आवश्यक · एप्लिकेशन/जेसन
{
  gcode?: string | null
  model?: string | null
  max_tokens?: number | "Infinity" | "-Infinity" | "NaN" | null
}
जवाब
200 वस्तु application/json
{
  insights: string
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
एसडीके उदाहरण
ai.toolpathAnalysis
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// AiToolpathAnalysisInput
const result = await client.ai.toolpathAnalysis({
  gcode: "",
  model: "",
  max_tokens: 0
})
curl
पोस्ट/एपीआई/एआई/टूलपाथ-विश्लेषण
curl --request POST "${CADCAMFUN_URL}/api/ai/toolpath-analysis" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं

/api/ai/feedback

डाक /api/ai/feedback # ai.feedback

आवश्यक है Authorization: Bearer <token>.

अनुरोध का मुख्य भाग · आवश्यक · एप्लिकेशन/जेसन
{
  messageId?: string | null
  rating?: string | null
  comment?: string | null
}
जवाब
200 वस्तु application/json
{
  success: true
  message: string
}
400 AiBadRequestEncoded application/json
AiBadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 AiFailureEncoded application/json
AiFailureEncoded
एसडीके उदाहरण
ai.feedback
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// AiFeedbackInput
const result = await client.ai.feedback({
  messageId: "",
  rating: "",
  comment: ""
})
curl
पोस्ट/एपीआई/एआई/फीडबैक
curl --request POST "${CADCAMFUN_URL}/api/ai/feedback" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं

/api/ai/proxy

डाक /api/ai/proxy # ai.proxy

आवश्यक है Authorization: Bearer <token>.

अनुरोध का मुख्य भाग · आवश्यक · एप्लिकेशन/जेसन
{
  model?: string | null
  messages?: unknown | null
  max_tokens?: number | "Infinity" | "-Infinity" | "NaN" | null
  temperature?: number | "Infinity" | "-Infinity" | "NaN" | null
  system?: unknown | null
  reasoning?: unknown | null
}
जवाब
200 वस्तु application/json
{
  id: string
  type: "message"
  role: "assistant"
  model: string
  content: Array<{
    type: "text"
    text: string
  }>
  stop_reason: string | null
  usage: {
    input_tokens: number | "Infinity" | "-Infinity" | "NaN"
    output_tokens: number | "Infinity" | "-Infinity" | "NaN"
  }
}
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
एसडीके उदाहरण
ai.proxy
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// AiProxyInput
const result = await client.ai.proxy({
  model: "",
  messages: null,
  max_tokens: 0,
  temperature: 0,
  system: null,
  reasoning: null
})
curl
पोस्ट/एपीआई/एआई/प्रॉक्सी
curl --request POST "${CADCAMFUN_URL}/api/ai/proxy" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं

/api/ai/oauth

डाक /api/ai/oauth/authorize # ai.oauthAuthorize

आवश्यक है Authorization: Bearer <token>.

अनुरोध का मुख्य भाग · आवश्यक · एप्लिकेशन/जेसन
{
  provider: "openai" | "xai"
}
जवाब
200 वस्तु application/json
{
  attemptId: string
  url: string
  instructions: string
  method: "auto" | "code" | "auto-code"
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
उदाहरण लाओ
ai.oauthAuthorize
// Not generated in the Promise SDK (multipart, binary or raw body): call it with fetch.
const response = await fetch(`${process.env.CADCAMFUN_URL}/api/ai/oauth/authorize`, {
  method: "POST",
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
curl
पोस्ट /api/ai/oauth/अधिकृत करें
curl --request POST "${CADCAMFUN_URL}/api/ai/oauth/authorize" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं
डाक /api/ai/oauth/complete # ai.oauthComplete

आवश्यक है Authorization: Bearer <token>.

अनुरोध का मुख्य भाग · आवश्यक · एप्लिकेशन/जेसन
{
  provider: "openai" | "xai"
  attemptId: string
  code?: string | null
}
जवाब
200 वस्तु application/json
{
  providers: {
    [key: string]: "configured" | "missing"
  }
  configured: boolean
  tools?: Array<{
    id: string
    description: string
  }> | null
  host: "nikcli" | "direct"
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
उदाहरण लाओ
ai.oauthComplete
// Not generated in the Promise SDK (multipart, binary or raw body): call it with fetch.
const response = await fetch(`${process.env.CADCAMFUN_URL}/api/ai/oauth/complete`, {
  method: "POST",
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
curl
पोस्ट/एपीआई/एआई/ओएथ/पूर्ण
curl --request POST "${CADCAMFUN_URL}/api/ai/oauth/complete" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं

स्कीमा

नामित स्कीमा इस समूह के मापदंडों, निकायों और प्रतिक्रियाओं से पहुंच योग्य हैं। ए ? एक वैकल्पिक फ़ील्ड चिह्नित करता है; | null उस फ़ील्ड को चिह्नित करता है जो शून्य मान के साथ मौजूद हो सकता है।

AiBadRequestEncoded
{
  _tag: "AiBadRequest"
  error: string
}
AiFailureEncoded
{
  _tag: "AiFailure"
  error: string
}
AiNotFoundEncoded
{
  _tag: "AiNotFound"
  error: string
}
BadRequestEncoded
{
  _tag: "BadRequest"
  message: string
}
ConflictEncoded
{
  _tag: "Conflict"
  message: string
}
GcodeActionErrorEncoded
{
  _tag: "GcodeActionError"
  success: false
  error: string
  action?: string | null
  processedAt?: string | null
}
GcodeActionFailureEncoded
{
  _tag: "GcodeActionFailure"
  success: false
  error: string
  action: string
  processedAt: string
}
InternalErrorEncoded
{
  _tag: "InternalError"
  message: string
}
UnauthorizedEncoded
{
  _tag: "Unauthorized"
  message: string
}

इस समूह को कॉल किया जा रहा है

ऑपरेशन आईडी का फॉर्म है ai.<name>. जनरेट किया गया प्रॉमिस SDK (@cadcamfun/api/sdk) उनमें से अधिकांश को इस रूप में उजागर करता है client.<namespace>.<method>(input), कहाँ input पथ पैरामीटर और बॉडी फ़ील्ड की एक सपाट वस्तु है; प्रत्येक कार्ड का एसडीके उदाहरण सटीक एक्सेसर और इनपुट प्रकार दिखाता है। मल्टीपार्ट अपलोड, बाइनरी या जावास्क्रिप्ट प्रतिक्रियाएँ और कच्चे वेबहुक उत्पन्न नहीं होते हैं; वे कार्ड दिखाते हैं fetch इसके बजाय.

प्रॉमिस एसडीके से त्रुटियाँ
import { CadCam, ClientError } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

try {
  await client.projects.list()
} catch (error) {
  if (error instanceof ClientError) {
    // Transport | UnexpectedStatus | UnsupportedContentType | MalformedResponse | SseEventTooLarge
  } else {
    // a declared error body: switch on error._tag
  }
}

समस्या निवारण

लक्षणसंभावित कारणहल करना
हर कॉल पर 401पिछले लॉन्च से टोकन, या गायब Bearer उपसर्गभेजना Authorization: Bearer <token> टोकन के साथ साइडकार की शुरुआत की गई।
कुछ होने से पहले 400बॉडी या पैरामीटर स्कीमा से मेल नहीं खाताकार्ड पर अनुरोध स्कीमा के साथ पेलोड की तुलना करें।
कहीं और दिखने वाले रिकॉर्ड पर 403 या 404एक्टिंग अकाउंट अलग हैसही भेजो x-session-token, या उस स्थानीय प्रोफ़ाइल का उपयोग करें जो रिकॉर्ड का स्वामी है।
409विरोधाभासी स्थिति, जैसे डुप्लिकेट नाम या पुराना शाखा प्रमुखसंसाधन को दोबारा पढ़ें और वर्तमान डेटा के साथ पुनः प्रयास करें।
कोशिश करें यह कहता है "सीओआरएस द्वारा अवरुद्ध"दस्तावेज़ गैर-लूपबैक मूल से परोसे जाते हैंदस्तावेज़ों को स्थानीय रूप से चलाएँ या अनुरोध को कर्ल के रूप में कॉपी करें।
कनेक्शन नहीं हो सकासाइडकार एक नए बंदरगाह पर फिर से शुरू हुईनए से पोर्ट पढ़ें ready पंक्ति.