Skip to main content

migrate-ts

Migrates Honcho TypeScript SDK code from v1.6.0 to v2.0.0. Use when upgrading @honcho-ai/sdk, fixing breaking changes after upgrade, or when errors mention removed APIs like .core, getConfig, observations, or snake_case properties.

معلومات المصدر

المستودع
plastic-labs/cursor-honcho
آخر نشاط في المصدر
٢٠ فبراير ٢٠٢٦ في ١٧:٥٦
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٧
التفرعات
٣

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
3 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
migrate-ts
description
Migrates Honcho TypeScript SDK code from v1.6.0 to v2.0.0. Use when upgrading @honcho-ai/sdk, fixing breaking changes after upgrade, or when errors mention removed APIs like .core, getConfig, observations, or snake_case properties.
user-invocable
true
# Honcho TypeScript SDK Migration (v1.6.0 → v2.0.0) ## Overview This skill migrates code from `@honcho-ai/sdk` v1.6.0 to v2.0.0 (required for Honcho 3.0.0+). **Key breaking changes:** - `@honcho-ai/core` dependency removed - "Observation" → "Conclusion" terminology - "Deriver" → "Queue" terminology - `getConfig`/`setConfig` → `getConfiguration`/`setConfiguration` - `snake_case` → `camelCase` throughout - Streaming via `chatStream()` instead of `chat({ stream: true })` - `Representation` class removed (returns string now) ## Quick Migration ### 1. Update dependencies Remove `@honcho-ai/core` from package.json. The SDK now has its own HTTP client. ### 2. Replace `.core` with `.http` ```typescript // Before const workspace = await client.core.workspaces.getOrCreate({ id: 'my-workspace' }) // After const response = await client.http.post('/v3/workspaces', { body: { id: 'my-workspace' } }) ``` ### 3. Rename configuration methods ```typescript // Before await honcho.getConfig() await honcho.setConfig({ key: 'value' }) await peer.getConfig() await session.getConfig() // After await honcho.getConfiguration() await honcho.setConfiguration({ reasoning: { enabled: true } }) await peer.getConfiguration() await session.getConfiguration() ``` ### 4. Rename listing methods ```typescript // Before const peers = await honcho.getPeers() const sessions = await honcho.getSessions() const workspaces = await honcho.getWorkspaces() // string[] // After const peers = await honcho.peers() const sessions = await honcho.sessions() const workspaces = await honcho.workspaces() // Page<string> ``` ### 5. Update streaming ```typescript // Before const stream = await peer.chat('Hello', { stream: true }) // After const stream = await peer.chatStream('Hello') ``` ### 6. Update observations → conclusions ```typescript // Before peer.observations peer.observationsOf('bob') maxObservations: 50 includeMostDerived: true // After peer.conclusions peer.conclusionsOf('bob') maxConclusions: 50 includeMostFrequent: true ``` ### 7. Update queue status methods ```typescript // Before await honcho.getDeriverStatus({ observer: peer }) await honcho.pollDeriverStatus({ timeoutMs: 60000 }) // REMOVE - see note below // After await honcho.queueStatus({ observer: peer }) // pollDeriverStatus() has no replacement - see note below ``` **Important:** `pollDeriverStatus()` and its polling pattern have been removed entirely. Do not rely on the queue ever being empty. The queue is a continuous processing system—new messages may arrive at any time, and waiting for "completion" is not a valid pattern. If your code previously polled for queue completion, redesign it to work without that assumption. ### 8. Convert snake_case to camelCase ```typescript // Before message.peer_id message.session_id message.created_at message.token_count { observe_me: true, observe_others: false } { created_at: '2024-01-01' } // After message.peerId message.sessionId message.createdAt message.tokenCount { observeMe: true, observeOthers: false } { createdAt: '2024-01-01' } ``` ### 9. Update representation calls ```typescript // Before const rep = await peer.workingRep(session, target, options) console.log(rep.explicit) // ExplicitObservation[] console.log(rep.deductive) // DeductiveObservation[] // After const rep = await peer.representation({ session, target, ...options }) console.log(rep) // string ``` ### 10. Move updateMessage to session ```typescript // Before await honcho.updateMessage(message, metadata, session) // After await session.updateMessage(message, metadata) ``` ## Quick Reference Table | v1.6.0 | v2.0.0 | |--------|--------| | `client.core` | `client.http` | | `getConfig()` | `getConfiguration()` | | `setConfig()` | `setConfiguration()` | | `getPeers()` | `peers()` | | `getSessions()` | `sessions()` | | `getWorkspaces()` | `workspaces()` | | `getDeriverStatus()` | `queueStatus()` | | `pollDeriverStatus()` | *Removed - do not poll* | | `peer.chat(q, { stream: true })` | `peer.chatStream(q)` | | `peer.workingRep()` | `peer.representation()` | | `peer.getContext()` | `peer.context()` | | `peer.observations` | `peer.conclusions` | | `peer.observationsOf()` | `peer.conclusionsOf()` | | `session.getPeers()` | `session.peers()` | | `session.getMessages()` | `session.messages()` | | `session.getSummaries()` | `session.summaries()` | | `session.getContext()` | `session.context()` | | `session.workingRep()` | `session.representation()` | | `session.peerConfig()` | `session.getPeerConfiguration()` | | `session.setPeerConfig()` | `session.setPeerConfiguration()` | | `{ timeoutMs: 60000 }` | `{ timeout: 60 }` | | `{ maxObservations: 50 }` | `{ maxConclusions: 50 }` | | `{ includeMostDerived }` | `{ includeMostFrequent }` | | `{ lastUserMessage }` | `{ searchQuery }` | | `{ config: ... }` | `{ configuration: ... }` | | `message.peer_id` | `message.peerId` | | `message.created_at` | `message.createdAt` | | `Observation` | `Conclusion` | | `ObservationScope` | `ConclusionScope` | ## Detailed Reference For comprehensive details on each change, see: - [DETAILED-CHANGES.md](DETAILED-CHANGES.md) - Full API change documentation - [MIGRATION-CHECKLIST.md](MIGRATION-CHECKLIST.md) - Step-by-step checklist ## New Error Types ```typescript import { HonchoError, AuthenticationError, BadRequestError, NotFoundError, PermissionDeniedError, RateLimitError, ConflictError, UnprocessableEntityError, ServerError, ConnectionError, TimeoutError } from '@honcho-ai/sdk' ``` ## New Configuration Types Configurations are now strongly typed: ```typescript await honcho.setConfiguration({ reasoning: { enabled: true, customInstructions: 'Be concise' }, peerCard: { use: true, create: true }, summary: { enabled: true, messagesPerShortSummary: 20, messagesPerLongSummary: 60 }, dream: { enabled: true } }) ```
عرض على GitHub