Skip to content

Repository files navigation

TaskPact

TaskPact — монорепозиторий на основе npm workspaces и TypeScript.

CLI

Основные команды для работы с задачами:

  • taskpact task create <number> <title> — создать задачу.
  • taskpact task transition <number> <state> — изменить состояние.
  • taskpact task list [state] — вывести список задач или только выбранный статус.
  • taskpact task get <number> — показать задачу по номеру.
  • taskpact version, taskpact --version, taskpact -v — вывести версию CLI.
  • taskpact task report — вывести агрегированный отчёт по состояниям.
  • taskpact help, taskpact --help, taskpact -h — вывести справочный текст.

Пример отчёта:

taskpact task create T-123 "Документация архитектуры"
taskpact task transition T-123 InProgress
taskpact task report

# {
#   "total": 1,
#   "byState": {
#     "InProgress": 1
#   }
# }

Сборка

Базовый порядок сборки:

npm run build

Скрипты для отдельных частей:

npm run build:ui        # общий интерфейс @taskpact/ui
npm run build:taskpact  # пакет taskpact
npm run build:cli       # CLI-обёртка
npm run build:host      # host-обёртка
npm run build:vscode    # VS Code shell
npm run build:desktop   # Electron shell

npm run build выполняет сборку всех workspace-пакетов.
build:vscode и build:desktop формируют артефакты оболочек для локальной отладки их экранов с общим интерфейсом в apps/vscode/dist и apps/desktop/dist.

Локальный запуск оболочек

Для проверки поведения UI в двух поверхностях используется единый код:

npm run start:vscode   # собрать сборку VS Code и запустить расширение
npm run start:desktop  # собрать Electron-оболочку и запустить её

Дополнительно доступны:

npm run start:vscode -- --no-build    # запуск без предварительной сборки
npm run start:desktop -- --project <путь-проекта> --no-build

Локальная упаковка

Создать локальные артефакты для оболочек:

npm run package:shell-artifacts

Команда строит shell-части и кладёт результат npm pack в директорию artifacts/. Перед упаковкой используется профиль scripts/shell-artifact-profile.json, который фиксирует публичную идентичность VSIX и профиль Electron-билда для локальной проверки.

Дополнительные опции:

# Собрать только VS Code-оболочку (npm pack + VSIX)
npm run package:shell-artifacts -- --no-desktop-pack

# Собрать только Electron-оболочку (npm pack + electron-packager)
npm run package:shell-artifacts -- --no-vscode-pack

# Собрать только VS Code-оболочку
npm run package:shell-artifacts -- --vscode-only

# Собрать только Electron-оболочку
npm run package:shell-artifacts -- --desktop-only

# Пропустить этап сборки, если артефакты уже готовы
npm run package:shell-artifacts -- --no-build

Для локальной упаковки требуется наличие @vscode/vsce и electron-packager в доступной среде npm exec.

Формат ответа CLI

Все успешные команды выводят JSON-объект:

{
  "ok": true,
  "value": "<результат команды>"
}

Ошибки выводят JSON-объект:

{
  "ok": false,
  "error": {
    "code": "CLI_USAGE_ERROR",
    "message": "..."
  }
}

Вывод:

  • stdout — только успешный ответ.
  • stderr — ошибки, fail-ответы и справочная usage.

Коды ошибок:

  • CLI_USAGE_ERROR — неверный формат аргументов.
  • CLI_PARSE_ERROR — ошибка разбора CLI (например, --store без пути).
  • CLI_UNKNOWN_COMMAND — неизвестная верхнеуровневая команда.
  • CLI_UNKNOWN_TASK_COMMAND — неизвестная команда в группе task.
  • CLI_OPERATION_FAILED — сбой доменной операции (create/transition/list/get/report).

Типы ответа (CliSuccess, CliFailure, CliResponse, CliFailureCode) экспортируются из пакета taskpact и могут использоваться для валидации результата в интеграционных сценариях:

import type { CliResponse, CliSuccess, CliFailure, CliFailureCode } from "taskpact";

function isCliSuccess<T>(response: CliResponse<T>): response is CliSuccess<T> {
  return response.ok === true;
}

function isCliFailure(response: CliResponse<unknown>): response is CliFailure {
  return response.ok === false;
}

Пример:

taskpact task create T-123 "Документация архитектуры"

# {
#   "ok": true,
#   "value": {
#     "number": "T-123",
#     "title": "Документация архитектуры",
#     "state": "Draft",
#     "createdAt": "2026-08-17T00:00:00.000Z"
#   }
# }

About

Agent-native Kanban task board for software projects.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages