@allpepper/task-orchestrator-tui 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/package.json +12 -4
- package/src/tui/components/dependency-list.tsx +1 -1
- package/src/tui/components/feature-kanban-card.tsx +1 -1
- package/src/tui/components/section-list.tsx +1 -1
- package/src/tui/components/tree-view.tsx +1 -1
- package/src/tui/index.tsx +1 -1
- package/src/tui/screens/dashboard.tsx +1 -1
- package/src/tui/screens/feature-detail.tsx +1 -1
- package/src/tui/screens/project-detail.tsx +1 -1
- package/src/tui/screens/project-view.tsx +1 -1
- package/src/tui/screens/task-detail.tsx +1 -1
- package/src/ui/adapters/direct.ts +7 -7
- package/src/ui/adapters/types.ts +1 -1
- package/src/ui/hooks/use-data.ts +1 -1
- package/src/ui/hooks/use-feature-kanban.ts +3 -3
- package/src/ui/hooks/use-kanban.ts +1 -1
- package/src/ui/lib/colors.ts +1 -1
- package/src/ui/lib/types.ts +1 -1
- package/src/ui/themes/dark.ts +1 -1
- package/src/ui/themes/light.ts +1 -1
- package/src/ui/themes/types.ts +1 -1
package/README.md
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@allpepper/task-orchestrator-tui",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "Terminal UI for task orchestration - Kanban boards, tree views, and task management",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -19,7 +19,15 @@
|
|
|
19
19
|
"type": "git",
|
|
20
20
|
"url": "git+https://github.com/alioshr/task-orchestrator-tui.git"
|
|
21
21
|
},
|
|
22
|
-
"keywords": [
|
|
22
|
+
"keywords": [
|
|
23
|
+
"cli",
|
|
24
|
+
"tui",
|
|
25
|
+
"task-manager",
|
|
26
|
+
"kanban",
|
|
27
|
+
"ink",
|
|
28
|
+
"react",
|
|
29
|
+
"bun"
|
|
30
|
+
],
|
|
23
31
|
"author": "alioshr",
|
|
24
32
|
"license": "MIT",
|
|
25
33
|
"bugs": {
|
|
@@ -37,9 +45,9 @@
|
|
|
37
45
|
"prepublishOnly": "bun test"
|
|
38
46
|
},
|
|
39
47
|
"dependencies": {
|
|
40
|
-
"@allpepper/task-orchestrator": "^
|
|
41
|
-
"ink": "^6.6.0",
|
|
48
|
+
"@allpepper/task-orchestrator": "^1.0.2",
|
|
42
49
|
"@inkjs/ui": "^2.0.0",
|
|
50
|
+
"ink": "^6.6.0",
|
|
43
51
|
"react": "^19.2.4"
|
|
44
52
|
},
|
|
45
53
|
"devDependencies": {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { useState } from 'react';
|
|
2
2
|
import { Box, Text, useInput } from 'ink';
|
|
3
|
-
import type { Task } from 'task-orchestrator
|
|
3
|
+
import type { Task } from '@allpepper/task-orchestrator';
|
|
4
4
|
import type { DependencyInfo } from '../../ui/lib/types';
|
|
5
5
|
import { StatusBadge } from './status-badge';
|
|
6
6
|
import { useTheme } from '../../ui/context/theme-context';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Box, Text } from 'ink';
|
|
3
3
|
import type { BoardFeature } from '../../ui/lib/types';
|
|
4
|
-
import type { Task } from 'task-orchestrator
|
|
4
|
+
import type { Task } from '@allpepper/task-orchestrator';
|
|
5
5
|
import { PriorityBadge } from './priority-badge';
|
|
6
6
|
import { StatusBadge } from './status-badge';
|
|
7
7
|
import { useTheme } from '../../ui/context/theme-context';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { useState } from 'react';
|
|
2
2
|
import { Box, Text, useInput } from 'ink';
|
|
3
|
-
import type { Section } from 'task-orchestrator
|
|
3
|
+
import type { Section } from '@allpepper/task-orchestrator';
|
|
4
4
|
import { useTheme } from '../../ui/context/theme-context';
|
|
5
5
|
|
|
6
6
|
export interface SectionListProps {
|
|
@@ -3,7 +3,7 @@ import { Box, Text, useInput } from 'ink';
|
|
|
3
3
|
import { StatusBadge } from './status-badge';
|
|
4
4
|
import { PriorityBadge } from './priority-badge';
|
|
5
5
|
import { useTheme } from '../../ui/context/theme-context';
|
|
6
|
-
import type { Feature, Task } from 'task-orchestrator
|
|
6
|
+
import type { Feature, Task } from '@allpepper/task-orchestrator';
|
|
7
7
|
|
|
8
8
|
export type TreeRow =
|
|
9
9
|
| { type: 'feature'; feature: Feature; taskCount: number; expanded: boolean; expandable?: boolean }
|
package/src/tui/index.tsx
CHANGED
|
@@ -18,7 +18,7 @@ async function main() {
|
|
|
18
18
|
const [{ render }, React, { runMigrations }, { App }] = await Promise.all([
|
|
19
19
|
import('ink'),
|
|
20
20
|
import('react'),
|
|
21
|
-
import('task-orchestrator
|
|
21
|
+
import('@allpepper/task-orchestrator/src/db/migrate'),
|
|
22
22
|
import('./app'),
|
|
23
23
|
]);
|
|
24
24
|
|
|
@@ -11,7 +11,7 @@ import { ConfirmDialog } from '../components/confirm-dialog';
|
|
|
11
11
|
import { ErrorMessage } from '../components/error-message';
|
|
12
12
|
import { EmptyState } from '../components/empty-state';
|
|
13
13
|
import { FormDialog } from '../components/form-dialog';
|
|
14
|
-
import type { ProjectStatus } from 'task-orchestrator
|
|
14
|
+
import type { ProjectStatus } from '@allpepper/task-orchestrator';
|
|
15
15
|
|
|
16
16
|
interface DashboardProps {
|
|
17
17
|
selectedIndex: number;
|
|
@@ -2,7 +2,7 @@ import React, { useState } from 'react';
|
|
|
2
2
|
import { Box, Text, useInput } from 'ink';
|
|
3
3
|
import { useAdapter } from '../../ui/context/adapter-context';
|
|
4
4
|
import { useFeature } from '../../ui/hooks/use-data';
|
|
5
|
-
import type { FeatureStatus, Priority } from 'task-orchestrator
|
|
5
|
+
import type { FeatureStatus, Priority } from '@allpepper/task-orchestrator';
|
|
6
6
|
import { StatusBadge } from '../components/status-badge';
|
|
7
7
|
import { PriorityBadge } from '../components/priority-badge';
|
|
8
8
|
import { SectionList } from '../components/section-list';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useState, useEffect } from 'react';
|
|
2
2
|
import { Box, Text, useInput } from 'ink';
|
|
3
3
|
import { useAdapter } from '../../ui/context/adapter-context';
|
|
4
|
-
import type { Project, Feature, ProjectStatus, Section, EntityType } from 'task-orchestrator
|
|
4
|
+
import type { Project, Feature, ProjectStatus, Section, EntityType } from '@allpepper/task-orchestrator';
|
|
5
5
|
import { StatusBadge } from '../components/status-badge';
|
|
6
6
|
import { timeAgo } from '../../ui/lib/format';
|
|
7
7
|
import { FormDialog } from '../components/form-dialog';
|
|
@@ -10,7 +10,7 @@ import { ConfirmDialog } from '../components/confirm-dialog';
|
|
|
10
10
|
import { FormDialog } from '../components/form-dialog';
|
|
11
11
|
import { ErrorMessage } from '../components/error-message';
|
|
12
12
|
import { EmptyState } from '../components/empty-state';
|
|
13
|
-
import type { FeatureStatus, Priority } from 'task-orchestrator
|
|
13
|
+
import type { FeatureStatus, Priority } from '@allpepper/task-orchestrator';
|
|
14
14
|
|
|
15
15
|
interface ProjectViewProps {
|
|
16
16
|
projectId: string;
|
|
@@ -9,7 +9,7 @@ import { SectionList } from '../components/section-list';
|
|
|
9
9
|
import { DependencyList } from '../components/dependency-list';
|
|
10
10
|
import { StatusActions } from '../components/status-actions';
|
|
11
11
|
import { timeAgo } from '../../ui/lib/format';
|
|
12
|
-
import type { TaskStatus, Priority } from 'task-orchestrator
|
|
12
|
+
import type { TaskStatus, Priority } from '@allpepper/task-orchestrator';
|
|
13
13
|
import { FormDialog } from '../components/form-dialog';
|
|
14
14
|
import { ConfirmDialog } from '../components/confirm-dialog';
|
|
15
15
|
import { ErrorMessage } from '../components/error-message';
|
|
@@ -22,7 +22,7 @@ import type {
|
|
|
22
22
|
Priority,
|
|
23
23
|
Section,
|
|
24
24
|
EntityType,
|
|
25
|
-
} from 'task-orchestrator
|
|
25
|
+
} from '@allpepper/task-orchestrator';
|
|
26
26
|
import type {
|
|
27
27
|
SearchResults,
|
|
28
28
|
DependencyInfo,
|
|
@@ -31,15 +31,15 @@ import type {
|
|
|
31
31
|
} from '../lib/types';
|
|
32
32
|
|
|
33
33
|
// Import repos individually since barrel export is incomplete
|
|
34
|
-
import * as projects from 'task-orchestrator
|
|
35
|
-
import * as features from 'task-orchestrator
|
|
36
|
-
import * as tasks from 'task-orchestrator
|
|
37
|
-
import * as sections from 'task-orchestrator
|
|
38
|
-
import * as dependencies from 'task-orchestrator
|
|
34
|
+
import * as projects from '@allpepper/task-orchestrator/src/repos/projects';
|
|
35
|
+
import * as features from '@allpepper/task-orchestrator/src/repos/features';
|
|
36
|
+
import * as tasks from '@allpepper/task-orchestrator/src/repos/tasks';
|
|
37
|
+
import * as sections from '@allpepper/task-orchestrator/src/repos/sections';
|
|
38
|
+
import * as dependencies from '@allpepper/task-orchestrator/src/repos/dependencies';
|
|
39
39
|
import {
|
|
40
40
|
getAllowedTransitions,
|
|
41
41
|
type ContainerType,
|
|
42
|
-
} from 'task-orchestrator
|
|
42
|
+
} from '@allpepper/task-orchestrator/src/services/status-validator';
|
|
43
43
|
|
|
44
44
|
/**
|
|
45
45
|
* DirectAdapter implementation
|
package/src/ui/adapters/types.ts
CHANGED
package/src/ui/hooks/use-data.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useState, useEffect, useCallback, useMemo } from 'react';
|
|
2
2
|
import { useAdapter } from '../context/adapter-context';
|
|
3
|
-
import type { Project, Task, Section, EntityType, TaskStatus, Priority, FeatureStatus } from 'task-orchestrator
|
|
3
|
+
import type { Project, Task, Section, EntityType, TaskStatus, Priority, FeatureStatus } from '@allpepper/task-orchestrator';
|
|
4
4
|
import type { FeatureWithTasks, ProjectOverview, SearchResults, DependencyInfo, BoardCard, BoardTask } from '../lib/types';
|
|
5
5
|
import type { TreeRow } from '../../tui/components/tree-view';
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useState, useEffect, useCallback, useMemo } from 'react';
|
|
2
2
|
import { useAdapter } from '../context/adapter-context';
|
|
3
|
-
import type { Feature, FeatureStatus } from 'task-orchestrator
|
|
3
|
+
import type { Feature, FeatureStatus } from '@allpepper/task-orchestrator';
|
|
4
4
|
import type { BoardFeature, FeatureBoardColumn } from '../lib/types';
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -37,7 +37,7 @@ interface UseFeatureKanbanReturn {
|
|
|
37
37
|
export function useFeatureKanban(projectId: string): UseFeatureKanbanReturn {
|
|
38
38
|
const { adapter } = useAdapter();
|
|
39
39
|
const [features, setFeatures] = useState<Feature[]>([]);
|
|
40
|
-
const [tasksByFeature, setTasksByFeature] = useState<Map<string, import('task-orchestrator
|
|
40
|
+
const [tasksByFeature, setTasksByFeature] = useState<Map<string, import('@allpepper/task-orchestrator/src/domain/types').Task[]>>(new Map());
|
|
41
41
|
const [loading, setLoading] = useState(true);
|
|
42
42
|
const [error, setError] = useState<string | null>(null);
|
|
43
43
|
const [refreshTrigger, setRefreshTrigger] = useState(0);
|
|
@@ -70,7 +70,7 @@ export function useFeatureKanban(projectId: string): UseFeatureKanbanReturn {
|
|
|
70
70
|
setFeatures(featuresResult.data);
|
|
71
71
|
|
|
72
72
|
// Group tasks by featureId
|
|
73
|
-
const grouped = new Map<string, import('task-orchestrator
|
|
73
|
+
const grouped = new Map<string, import('@allpepper/task-orchestrator/src/domain/types').Task[]>();
|
|
74
74
|
for (const task of tasksResult.data) {
|
|
75
75
|
if (task.featureId) {
|
|
76
76
|
const list = grouped.get(task.featureId) || [];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useMemo, useCallback } from 'react';
|
|
2
2
|
import { useAdapter } from '../context/adapter-context';
|
|
3
|
-
import type { Task } from 'task-orchestrator
|
|
3
|
+
import type { Task } from '@allpepper/task-orchestrator';
|
|
4
4
|
import type { BoardColumn } from '../lib/types';
|
|
5
5
|
import { useBoardData } from './use-data';
|
|
6
6
|
|
package/src/ui/lib/colors.ts
CHANGED
package/src/ui/lib/types.ts
CHANGED
package/src/ui/themes/dark.ts
CHANGED
package/src/ui/themes/light.ts
CHANGED
package/src/ui/themes/types.ts
CHANGED