Skip to content

start DIN-SDK #20

Description

@umeradl

Branch: feat/din-sdk (from develop)
Assignee: @Santiagocetran
Roadmap ref: P4-1.2 (CLI Integration Layer — Shared SDK Extraction) · P3-DOC7 (dind Architecture Document)

Long-running issue (expected to stay open 1–2 months). A detailed task file under Developer/tasks/ will follow — this issue tracks the overall effort, not a weekly task.

Goal

Extract the logic-dependent parts of dincli commands into a shared SDK layer at dincli/sdk/, so the same logic can be driven by both the interactive CLI and the upcoming DIN daemon (dind).

Design

  • All logic lives in dincli/sdk/. CLI command modules become thin wrappers: parse arguments → call SDK function → render output.
  • SDK functions return structured JSON outputs. This is the contract between the SDK and its two consumers:
    • the CLI reads the JSON and renders terminal UI/UX (tables, colors, human-readable messages);
    • dind reads the same JSON to update its configuration and job queue.
  • The CLI is refactored onto the SDK in this same branch — the branch is done when dincli commands run through the SDK layer and all existing tests pass.
  • No circular dependencies: SDK must be importable standalone (IPFS client, contract interfaces, wallet/account helpers, manifest loading — see P4-1.2 in Developer/ROADMAP.md for the candidate module list).

Scope

  • Inventory dincli command modules and identify which logic moves to dincli/sdk/
  • Define the JSON output schema/conventions for SDK functions (status, data, error codes)
  • Extract shared modules (IPFS, contracts, wallet/keystore, manifest/config) into the SDK
  • Refactor CLI commands to call SDK functions and render their JSON output
  • All existing tests pass; add SDK-level tests where extraction changes call paths
  • Document the public SDK interface and backward-compatibility guarantees for existing dincli commands

References

  • Developer/ROADMAP.md — P4-1.2, P3-DOC7, and the P4 phase overview ("Daemon and Agentic AI Layer")
  • Developer/issues/containerization.md — worker/container runner must be callable "from both CLI commands and future dind daemon jobs"
  • Developer/issues/validator-operations.md — daemon-mode logging/health expectations
  • Documentation/ — DIN workflow and Model workflow docs for the command surfaces being extracted

Branching note

Kept separate from the DIN daemon work (see the "start DIN daemon" issue) so the CLI-on-SDK refactor can merge into develop without waiting for the daemon. dind builds on top of this SDK's JSON interface.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions