Skip to content

[Notebook Migration] Add frontend notebook migration orchestration service #5261

@zyratlo

Description

@zyratlo

Task Summary

Introduce the frontend orchestration service that sits between the upcoming migration-tool UI and the lower layers — the LLM client (migration-tool-llm-client) and the backend microservice (migration-tool-backend-notebook-migration-service). Centralises model lookup, the LLM-conversion lifecycle, the HTTP calls into the notebook-migration microservice, and the in-memory cell↔operator mapping cache.

Scope

Adds two files under frontend/src/app/workspace/service/notebook-migration/:

  • notebook-migration.service.ts (~195 lines) — NotebookMigrationService, an Angular providedIn: "root" service exposing:
    • getAvailableModels() (GETs the LiteLLM proxy's /models)
    • sendToAIGenerateWorkflow(notebook, modelType, apiKey) (drives the full NotebookMigrationLLM lifecycle — initialize → verify → convert → close — and returns the resulting workflow + mapping content)
    • sendNotebookToJupyter(notebook), getJupyterURL(), getJupyterIframeURL() (HTTP calls into the notebook-migration microservice)
    • storeNotebookAndMapping(wid, vid, mapping, notebook) (microservice persistence call)
    • a small in-memory mapping cache (hasMapping, getMapping, setMapping, deleteMapping) keyed by
      mapping_wid_<workflowId>
  • notebook-migration.service.spec.ts (~187 lines)
    • getAvailableModels (success + error → empty array)
    • sendNotebookToJupyter (success + error), both Jupyter URL getters (success + null on failure)
    • mapping cache (set/get + delete)
    • storeNotebookAndMapping

Task Type

  • Refactor / Cleanup
  • DevOps / Deployment / CI
  • Testing / QA
  • Documentation
  • Performance
  • Other

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No fields configured for Task.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions