Skip to content

Releases: syrex1013/ColabSDK

v0.2.2 — DOM streaming, streamCell overhaul, notebook utilities

17 Jun 20:27

Choose a tag to compare

What's new in 0.2.2

Added

  • streamCell(ref, options?) now accepts { timeoutMs?, heartbeatMs? } — configurable execution timeout (default 180 s) and heartbeat interval (default 30 s)
  • DOM fallback in streamCell: when cells.list() returns no output for a running cell (e.g. a 55-minute training loop), the SDK reads live page text via Playwright's shadow-DOM walker and streams it incrementally
  • BrowserSession.readPageText() — public shadow-DOM text-node walker
  • outputsToText(outputs) — converts a Jupyter outputs array to plain text; exported from package root
  • hasErrorOutput(outputs) — returns true if any output has output_type === "error"; exported from package root
  • stripOutputs(notebookJson) — strips all cell outputs and execution counts from a notebook JSON string before upload; exported from package root
  • StreamCellOptions type exported from package root

Changed

  • streamCell no longer yields raw JSON snapshots — yields incremental text OutputChunk objects
  • Heartbeat messages are yielded as OutputChunk (type stdout) instead of written directly to process.stdout

Fixed

  • WebSocket error events on ColabProxy absorbed via EventEmitter (no more uncaught exceptions on socket errors)

v0.1.3

10 Jun 14:32

Choose a tag to compare

Added

  • WorkflowManager on client.workflows — list, upload, load, unload, run, stop workflows
  • Local workflow JSON definitions in .colabdev/workflows/
  • Streaming workflow execution via runStream()
  • MCP workflow tool delegation when Colab exposes workflow tools
  • Workflow error types: WorkflowNotFoundError, WorkflowNotLoadedError, WorkflowAlreadyLoadedError, WorkflowExecutionError
  • CLI: colab-dev workflows list|load|unload|run|stop|upload
  • Example: examples/09_workflow_management.ts (bun run example:workflows)
  • FileUploadManager on client.files — upload local files into cells with files.upload() widgets
  • Upload progress via onProgress and watchUpload()
  • findUploadCells() to scan notebook for upload-capable cells
  • Errors: FileUploadError, UploadWidgetNotFoundError
  • CLI: colab-dev files list-upload-cells, colab-dev files upload
  • Example: examples/10_file_upload.ts (bun run example:upload)

Fixed

  • File upload falls back to writing files into /content when Colab does not render a browser upload widget
  • Upload cells are started via the Colab UI so MCP stays available for runtime fallback uploads

Install: npm install @syrex1013/colab-sdk@0.1.3

v0.1.1

10 Jun 13:22

Choose a tag to compare

[0.1.1] - 2026-06-10

Added

  • Professional documentation restyle (README, API reference, publishing guide, examples index, docs hub)
  • docs/README.md documentation index

Changed

  • npm publish workflow switched to manual dispatch only (bypass GitHub Actions billing lock)
  • CLI bin entry uses bin/colab-dev.js wrapper

v0.1.0

10 Jun 13:13

Choose a tag to compare

Changelog

All notable changes to this project are documented in this file.

The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.

Unreleased

Added

  • (nothing yet)

0.1.0 - 2026-06-10

Published as @syrex1013/colab-sdk on npm.

Added

  • ColabClient with auth, cells, execute, and runtime managers
  • Google login with 2FA support and persistent browser sessions (.colabdev/)
  • Notebook cell CRUD: create, edit, list, move, remove, resolve
  • Code execution: runCell, runCode, runAll, interrupt, streamCell
  • GPU/runtime selection and health checks
  • MCP WebSocket proxy integration with Colab frontend tools
  • CloakBrowser-based headless automation
  • Typed error hierarchy (ColabSDKError and subclasses)
  • colab-dev CLI
  • Example scripts (examples/0108)
  • API reference (docs/API.md)
  • Unit test suite with >90% line coverage on core modules

Fixed

  • extractCellId reads newCellId from add_code_cell responses
  • parseCellResult handles Jupyter stream output format
  • move_cell RPC uses cellIndex argument
  • False-positive Colab login detection on Google redirect URLs
  • 2FA "Tap Yes" flow and post-approval redirect handling
  • connect({ gpu }) sets connected state before runtime selection