हिन्दी
दस्तावेज़
SDK

SDK

opencode सर्वर के लिए टाइप-सेफ JS क्लाइंट।

opencode JS/TS SDK सर्वर के साथ इंटरैक्ट करने के लिए एक टाइप-सेफ क्लाइंट प्रदान करता है। इसका उपयोग इंटीग्रेशन बनाने और opencode को प्रोग्रामेटिक रूप से कंट्रोल करने के लिए करें।

सर्वर कैसे काम करता है इसके बारे में और जानें। कम्युनिटी द्वारा बनाए गए प्रोजेक्ट्स देखें।


इंस्टॉलेशन

npm से SDK इंस्टॉल करें:

npm install @opencode-ai/sdk

क्लाइंट बनाएं

opencode का एक इंस्टेंस बनाएं:

import { createOpencode } from "@opencode-ai/sdk"
 
const { client } = await createOpencode()

यह सर्वर और क्लाइंट दोनों को स्टार्ट करता है।

विकल्प

विकल्पटाइपविवरणडिफ़ॉल्ट
hostnamestringसर्वर होस्टनेम127.0.0.1
portnumberसर्वर पोर्ट4096
signalAbortSignalकैंसलेशन के लिए एबॉर्ट सिग्नलundefined
timeoutnumberसर्वर स्टार्ट के लिए टाइमआउट (ms में)5000
configConfigकॉन्फ़िगरेशन ऑब्जेक्ट{}

कॉन्फ़िगरेशन

आप व्यवहार को कस्टमाइज़ करने के लिए एक कॉन्फ़िगरेशन ऑब्जेक्ट पास कर सकते हैं। इंस्टेंस अभी भी आपकी opencode.json पढ़ता है, लेकिन आप इनलाइन कॉन्फ़िगरेशन को ओवरराइड या जोड़ सकते हैं:

import { createOpencode } from "@opencode-ai/sdk"
 
const opencode = await createOpencode({
  hostname: "127.0.0.1",
  port: 4096,
  config: {
    model: "anthropic/claude-3-5-sonnet-20241022",
  },
})
 
console.log(`Server running at ${opencode.server.url}`)
opencode.server.close()

केवल क्लाइंट

यदि आपके पास पहले से एक रनिंग opencode इंस्टेंस है, तो आप इससे कनेक्ट करने के लिए एक क्लाइंट इंस्टेंस बना सकते हैं:

import { createOpencodeClient } from "@opencode-ai/sdk"
 
const client = createOpencodeClient({
  baseUrl: "http://localhost:4096",
})

विकल्प

विकल्पटाइपविवरणडिफ़ॉल्ट
baseUrlstringसर्वर का URLhttp://localhost:4096
fetchfunctionकस्टम fetch इम्प्लीमेंटेशनglobalThis.fetch
parseAsstringरिस्पॉन्स पार्सिंग मेथडauto
responseStylestringरिटर्न स्टाइल: data या fieldsfields
throwOnErrorbooleanरिटर्न के बजाय एरर थ्रो करेंfalse

टाइप्स

SDK में सभी API टाइप्स के लिए TypeScript डेफिनिशन शामिल हैं। उन्हें सीधे इम्पोर्ट करें:

import type { Session, Message, Part } from "@opencode-ai/sdk"

सभी टाइप्स सर्वर की OpenAPI स्पेसिफिकेशन से जेनरेट किए गए हैं और टाइप्स फाइल (opens in a new tab) में उपलब्ध हैं।


एरर्स

SDK एरर्स थ्रो कर सकता है जिन्हें आप कैच और हैंडल कर सकते हैं:

try {
  await client.session.get({ path: { id: "invalid-id" } })
} catch (error) {
  console.error("Failed to get session:", (error as Error).message)
}

APIs

SDK एक टाइप-सेफ क्लाइंट के माध्यम से सभी सर्वर APIs को एक्सपोज़ करता है।


Global

मेथडविवरणरिस्पॉन्स
global.health()सर्वर हेल्थ और वर्जन चेक करें{ healthy: true, version: string }

उदाहरण

const health = await client.global.health()
console.log(health.data.version)

App

मेथडविवरणरिस्पॉन्स
app.log()एक लॉग एंट्री लिखेंboolean
app.agents()सभी उपलब्ध एजेंट्स की सूचीAgent[] (opens in a new tab)

उदाहरण

// एक लॉग एंट्री लिखें
await client.app.log({
  body: {
    service: "my-app",
    level: "info",
    message: "Operation completed",
  },
})
 
// उपलब्ध एजेंट्स की सूची
const agents = await client.app.agents()

Project

मेथडविवरणरिस्पॉन्स
project.list()सभी प्रोजेक्ट्स की सूचीProject[] (opens in a new tab)
project.current()वर्तमान प्रोजेक्ट प्राप्त करेंProject (opens in a new tab)

उदाहरण

// सभी प्रोजेक्ट्स की सूची
const projects = await client.project.list()
 
// वर्तमान प्रोजेक्ट प्राप्त करें
const currentProject = await client.project.current()

Path

मेथडविवरणरिस्पॉन्स
path.get()वर्तमान पाथ प्राप्त करेंPath (opens in a new tab)

उदाहरण

// वर्तमान पाथ जानकारी प्राप्त करें
const pathInfo = await client.path.get()

Config

मेथडविवरणरिस्पॉन्स
config.get()कॉन्फ़िग जानकारी प्राप्त करेंConfig (opens in a new tab)
config.providers()प्रोवाइडर्स और डिफ़ॉल्ट मॉडल्स की सूची{ providers: Provider[] (opens in a new tab), default: { [key: string]: string } }

उदाहरण

const config = await client.config.get()
 
const { providers, default: defaults } = await client.config.providers()

Sessions

मेथडविवरणनोट्स
session.list()सेशंस की सूचीSession[] (opens in a new tab) रिटर्न करता है
session.get({ path })सेशन प्राप्त करेंSession (opens in a new tab) रिटर्न करता है
session.children({ path })चाइल्ड सेशंस की सूचीSession[] (opens in a new tab) रिटर्न करता है
session.create({ body })सेशन बनाएंSession (opens in a new tab) रिटर्न करता है
session.delete({ path })सेशन डिलीट करेंboolean रिटर्न करता है
session.update({ path, body })सेशन प्रॉपर्टीज़ अपडेट करेंSession (opens in a new tab) रिटर्न करता है
session.init({ path, body })ऐप का विश्लेषण करें और AGENTS.md बनाएंboolean रिटर्न करता है
session.abort({ path })रनिंग सेशन को एबॉर्ट करेंboolean रिटर्न करता है
session.share({ path })सेशन शेयर करेंSession (opens in a new tab) रिटर्न करता है
session.unshare({ path })सेशन अनशेयर करेंSession (opens in a new tab) रिटर्न करता है
session.summarize({ path, body })सेशन का सारांशboolean रिटर्न करता है
session.messages({ path })सेशन में मैसेजेस की सूची{ info: Message (opens in a new tab), parts: Part[] (opens in a new tab)}[] रिटर्न करता है
session.message({ path })मैसेज डिटेल्स प्राप्त करें{ info: Message (opens in a new tab), parts: Part[] (opens in a new tab)} रिटर्न करता है
session.prompt({ path, body })प्रॉम्प्ट मैसेज भेजेंbody.noReply: true UserMessage रिटर्न करता है (केवल कॉन्टेक्स्ट)। डिफ़ॉल्ट AI रिस्पॉन्स के साथ AssistantMessage (opens in a new tab) रिटर्न करता है
session.command({ path, body })सेशन को कमांड भेजें{ info: AssistantMessage (opens in a new tab), parts: Part[] (opens in a new tab)} रिटर्न करता है
session.shell({ path, body })शेल कमांड रन करेंAssistantMessage (opens in a new tab) रिटर्न करता है
session.revert({ path, body })मैसेज रिवर्ट करेंSession (opens in a new tab) रिटर्न करता है
session.unrevert({ path })रिवर्ट किए गए मैसेजेस को रिस्टोर करेंSession (opens in a new tab) रिटर्न करता है
postSessionByIdPermissionsByPermissionId({ path, body })परमिशन रिक्वेस्ट का जवाब देंboolean रिटर्न करता है

उदाहरण

// सेशंस बनाएं और मैनेज करें
const session = await client.session.create({
  body: { title: "My session" },
})
 
const sessions = await client.session.list()
 
// प्रॉम्प्ट मैसेज भेजें
const result = await client.session.prompt({
  path: { id: session.id },
  body: {
    model: { providerID: "anthropic", modelID: "claude-3-5-sonnet-20241022" },
    parts: [{ type: "text", text: "Hello!" }],
  },
})
 
// AI रिस्पॉन्स ट्रिगर किए बिना कॉन्टेक्स्ट इंजेक्ट करें (प्लगइन्स के लिए उपयोगी)
await client.session.prompt({
  path: { id: session.id },
  body: {
    noReply: true,
    parts: [{ type: "text", text: "You are a helpful assistant." }],
  },
})

Files

मेथडविवरणरिस्पॉन्स
find.text({ query })फाइल्स में टेक्स्ट खोजेंpath, lines, line_number, absolute_offset, submatches के साथ मैच ऑब्जेक्ट्स का एरे
find.files({ query })नाम से फाइल्स और डायरेक्टरीज़ खोजेंstring[] (पाथ्स)
find.symbols({ query })वर्कस्पेस सिंबल्स खोजेंSymbol[] (opens in a new tab)
file.read({ query })फाइल पढ़ें{ type: "raw" | "patch", content: string }
file.status({ query? })ट्रैक की गई फाइल्स का स्टेटस प्राप्त करेंFile[] (opens in a new tab)

find.files कुछ वैकल्पिक क्वेरी फील्ड्स को सपोर्ट करता है:

  • type: "file" या "directory"
  • directory: सर्च के लिए प्रोजेक्ट रूट को ओवरराइड करें
  • limit: अधिकतम रिजल्ट्स (1-200)

उदाहरण

// फाइल्स खोजें और पढ़ें
const textResults = await client.find.text({
  query: { pattern: "function.*opencode" },
})
 
const files = await client.find.files({
  query: { query: "*.ts", type: "file" },
})
 
const directories = await client.find.files({
  query: { query: "packages", type: "directory", limit: 20 },
})
 
const content = await client.file.read({
  query: { path: "src/index.ts" },
})

TUI

मेथडविवरणरिस्पॉन्स
tui.appendPrompt({ body })प्रॉम्प्ट में टेक्स्ट जोड़ेंboolean
tui.openHelp()हेल्प डायलॉग खोलेंboolean
tui.openSessions()सेशन सेलेक्टर खोलेंboolean
tui.openThemes()थीम सेलेक्टर खोलेंboolean
tui.openModels()मॉडल सेलेक्टर खोलेंboolean
tui.submitPrompt()वर्तमान प्रॉम्प्ट सबमिट करेंboolean
tui.clearPrompt()प्रॉम्प्ट क्लियर करेंboolean
tui.executeCommand({ body })कमांड एक्जीक्यूट करेंboolean
tui.showToast({ body })टोस्ट नोटिफिकेशन दिखाएंboolean

उदाहरण

// TUI इंटरफेस कंट्रोल करें
await client.tui.appendPrompt({
  body: { text: "Add this to prompt" },
})
 
await client.tui.showToast({
  body: { message: "Task completed", variant: "success" },
})

Auth

मेथडविवरणरिस्पॉन्स
auth.set({ ... })ऑथेंटिकेशन क्रेडेंशियल्स सेट करेंboolean

उदाहरण

await client.auth.set({
  path: { id: "anthropic" },
  body: { type: "api", key: "your-api-key" },
})

Events

मेथडविवरणरिस्पॉन्स
event.subscribe()सर्वर-सेंट इवेंट्स स्ट्रीमसर्वर-सेंट इवेंट्स स्ट्रीम

उदाहरण

// रियल-टाइम इवेंट्स सुनें
const events = await client.event.subscribe()
for await (const event of events.stream) {
  console.log("Event:", event.type, event.properties)
}