octie-cli 1.0.0
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 +523 -0
- package/dist/cli/commands/approve.d.ts +27 -0
- package/dist/cli/commands/approve.d.ts.map +1 -0
- package/dist/cli/commands/approve.js +119 -0
- package/dist/cli/commands/approve.js.map +1 -0
- package/dist/cli/commands/batch.d.ts +15 -0
- package/dist/cli/commands/batch.d.ts.map +1 -0
- package/dist/cli/commands/batch.js +521 -0
- package/dist/cli/commands/batch.js.map +1 -0
- package/dist/cli/commands/create.d.ts +9 -0
- package/dist/cli/commands/create.d.ts.map +1 -0
- package/dist/cli/commands/create.js +321 -0
- package/dist/cli/commands/create.js.map +1 -0
- package/dist/cli/commands/delete.d.ts +9 -0
- package/dist/cli/commands/delete.d.ts.map +1 -0
- package/dist/cli/commands/delete.js +143 -0
- package/dist/cli/commands/delete.js.map +1 -0
- package/dist/cli/commands/export.d.ts +9 -0
- package/dist/cli/commands/export.d.ts.map +1 -0
- package/dist/cli/commands/export.js +66 -0
- package/dist/cli/commands/export.js.map +1 -0
- package/dist/cli/commands/find.d.ts +16 -0
- package/dist/cli/commands/find.d.ts.map +1 -0
- package/dist/cli/commands/find.js +252 -0
- package/dist/cli/commands/find.js.map +1 -0
- package/dist/cli/commands/get.d.ts +9 -0
- package/dist/cli/commands/get.d.ts.map +1 -0
- package/dist/cli/commands/get.js +74 -0
- package/dist/cli/commands/get.js.map +1 -0
- package/dist/cli/commands/graph.d.ts +9 -0
- package/dist/cli/commands/graph.d.ts.map +1 -0
- package/dist/cli/commands/graph.js +200 -0
- package/dist/cli/commands/graph.js.map +1 -0
- package/dist/cli/commands/import.d.ts +9 -0
- package/dist/cli/commands/import.d.ts.map +1 -0
- package/dist/cli/commands/import.js +807 -0
- package/dist/cli/commands/import.js.map +1 -0
- package/dist/cli/commands/init.d.ts +9 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +57 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/list.d.ts +9 -0
- package/dist/cli/commands/list.d.ts.map +1 -0
- package/dist/cli/commands/list.js +175 -0
- package/dist/cli/commands/list.js.map +1 -0
- package/dist/cli/commands/merge.d.ts +9 -0
- package/dist/cli/commands/merge.d.ts.map +1 -0
- package/dist/cli/commands/merge.js +113 -0
- package/dist/cli/commands/merge.js.map +1 -0
- package/dist/cli/commands/serve.d.ts +9 -0
- package/dist/cli/commands/serve.d.ts.map +1 -0
- package/dist/cli/commands/serve.js +94 -0
- package/dist/cli/commands/serve.js.map +1 -0
- package/dist/cli/commands/update.d.ts +9 -0
- package/dist/cli/commands/update.d.ts.map +1 -0
- package/dist/cli/commands/update.js +423 -0
- package/dist/cli/commands/update.js.map +1 -0
- package/dist/cli/commands/wire.d.ts +15 -0
- package/dist/cli/commands/wire.d.ts.map +1 -0
- package/dist/cli/commands/wire.js +164 -0
- package/dist/cli/commands/wire.js.map +1 -0
- package/dist/cli/index.d.ts +7 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +100 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/output/json.d.ts +16 -0
- package/dist/cli/output/json.d.ts.map +1 -0
- package/dist/cli/output/json.js +29 -0
- package/dist/cli/output/json.js.map +1 -0
- package/dist/cli/output/markdown.d.ts +15 -0
- package/dist/cli/output/markdown.d.ts.map +1 -0
- package/dist/cli/output/markdown.js +206 -0
- package/dist/cli/output/markdown.js.map +1 -0
- package/dist/cli/output/table.d.ts +23 -0
- package/dist/cli/output/table.d.ts.map +1 -0
- package/dist/cli/output/table.js +150 -0
- package/dist/cli/output/table.js.map +1 -0
- package/dist/cli/utils/helpers.d.ts +126 -0
- package/dist/cli/utils/helpers.d.ts.map +1 -0
- package/dist/cli/utils/helpers.js +325 -0
- package/dist/cli/utils/helpers.js.map +1 -0
- package/dist/core/graph/algorithms.d.ts +11 -0
- package/dist/core/graph/algorithms.d.ts.map +1 -0
- package/dist/core/graph/algorithms.js +14 -0
- package/dist/core/graph/algorithms.js.map +1 -0
- package/dist/core/graph/cycle.d.ts +155 -0
- package/dist/core/graph/cycle.d.ts.map +1 -0
- package/dist/core/graph/cycle.js +297 -0
- package/dist/core/graph/cycle.js.map +1 -0
- package/dist/core/graph/index.d.ts +223 -0
- package/dist/core/graph/index.d.ts.map +1 -0
- package/dist/core/graph/index.js +475 -0
- package/dist/core/graph/index.js.map +1 -0
- package/dist/core/graph/operations.d.ts +240 -0
- package/dist/core/graph/operations.d.ts.map +1 -0
- package/dist/core/graph/operations.js +503 -0
- package/dist/core/graph/operations.js.map +1 -0
- package/dist/core/graph/sort.d.ts +76 -0
- package/dist/core/graph/sort.d.ts.map +1 -0
- package/dist/core/graph/sort.js +254 -0
- package/dist/core/graph/sort.js.map +1 -0
- package/dist/core/graph/traversal.d.ts +122 -0
- package/dist/core/graph/traversal.d.ts.map +1 -0
- package/dist/core/graph/traversal.js +336 -0
- package/dist/core/graph/traversal.js.map +1 -0
- package/dist/core/models/task-node.d.ts +328 -0
- package/dist/core/models/task-node.d.ts.map +1 -0
- package/dist/core/models/task-node.js +1090 -0
- package/dist/core/models/task-node.js.map +1 -0
- package/dist/core/registry/index.d.ts +102 -0
- package/dist/core/registry/index.d.ts.map +1 -0
- package/dist/core/registry/index.js +249 -0
- package/dist/core/registry/index.js.map +1 -0
- package/dist/core/registry/root-guard.d.ts +19 -0
- package/dist/core/registry/root-guard.d.ts.map +1 -0
- package/dist/core/registry/root-guard.js +28 -0
- package/dist/core/registry/root-guard.js.map +1 -0
- package/dist/core/storage/atomic-write.d.ts +181 -0
- package/dist/core/storage/atomic-write.d.ts.map +1 -0
- package/dist/core/storage/atomic-write.js +379 -0
- package/dist/core/storage/atomic-write.js.map +1 -0
- package/dist/core/storage/file-store.d.ts +148 -0
- package/dist/core/storage/file-store.d.ts.map +1 -0
- package/dist/core/storage/file-store.js +423 -0
- package/dist/core/storage/file-store.js.map +1 -0
- package/dist/core/storage/indexer.d.ts +138 -0
- package/dist/core/storage/indexer.d.ts.map +1 -0
- package/dist/core/storage/indexer.js +350 -0
- package/dist/core/storage/indexer.js.map +1 -0
- package/dist/core/utils/status-helpers.d.ts +59 -0
- package/dist/core/utils/status-helpers.d.ts.map +1 -0
- package/dist/core/utils/status-helpers.js +149 -0
- package/dist/core/utils/status-helpers.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/types/index.d.ts +504 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +182 -0
- package/dist/types/index.js.map +1 -0
- package/dist/web/routes/graph.d.ts +17 -0
- package/dist/web/routes/graph.d.ts.map +1 -0
- package/dist/web/routes/graph.js +277 -0
- package/dist/web/routes/graph.js.map +1 -0
- package/dist/web/routes/projects.d.ts +14 -0
- package/dist/web/routes/projects.d.ts.map +1 -0
- package/dist/web/routes/projects.js +102 -0
- package/dist/web/routes/projects.js.map +1 -0
- package/dist/web/routes/tasks.d.ts +17 -0
- package/dist/web/routes/tasks.d.ts.map +1 -0
- package/dist/web/routes/tasks.js +538 -0
- package/dist/web/routes/tasks.js.map +1 -0
- package/dist/web/server.d.ts +121 -0
- package/dist/web/server.d.ts.map +1 -0
- package/dist/web/server.js +389 -0
- package/dist/web/server.js.map +1 -0
- package/dist/web-ui/assets/index-BB0qvF1y.css +1 -0
- package/dist/web-ui/assets/index-Vmm72oKY.js +34 -0
- package/dist/web-ui/index.html +14 -0
- package/dist/web-ui/vite.svg +1 -0
- package/package.json +94 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-node.js","sourceRoot":"","sources":["../../../src/core/models/task-node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Global Project Registry
|
|
3
|
+
*
|
|
4
|
+
* Manages a registry of all Octie projects on the system.
|
|
5
|
+
* Registry is stored at ~/.octie/projects.json
|
|
6
|
+
*
|
|
7
|
+
* @module core/registry
|
|
8
|
+
*/
|
|
9
|
+
import type { ProjectMetadata } from '../../types/index.js';
|
|
10
|
+
/**
|
|
11
|
+
* Project entry in the global registry
|
|
12
|
+
*/
|
|
13
|
+
export interface RegistryProject {
|
|
14
|
+
/** Filesystem path to the project */
|
|
15
|
+
path: string;
|
|
16
|
+
/** Project name from metadata */
|
|
17
|
+
name: string;
|
|
18
|
+
/** ISO 8601 timestamp when project was registered */
|
|
19
|
+
registeredAt: string;
|
|
20
|
+
/** ISO 8601 timestamp when project was last accessed */
|
|
21
|
+
lastAccessed: string;
|
|
22
|
+
/** Number of tasks in the project */
|
|
23
|
+
taskCount: number;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Global registry structure
|
|
27
|
+
*/
|
|
28
|
+
export interface ProjectRegistry {
|
|
29
|
+
/** Registry version */
|
|
30
|
+
version: string;
|
|
31
|
+
/** Map of project name to project entry */
|
|
32
|
+
projects: Record<string, RegistryProject>;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Get the path to the global registry file
|
|
36
|
+
* @returns Absolute path to ~/.octie/projects.json
|
|
37
|
+
*/
|
|
38
|
+
export declare function getGlobalRegistryPath(): string;
|
|
39
|
+
/**
|
|
40
|
+
* Load the global project registry
|
|
41
|
+
* Creates an empty registry if one doesn't exist
|
|
42
|
+
* @returns Project registry object
|
|
43
|
+
*/
|
|
44
|
+
export declare function loadRegistry(): ProjectRegistry;
|
|
45
|
+
/**
|
|
46
|
+
* Save the global project registry
|
|
47
|
+
* @param registry - Registry to save
|
|
48
|
+
*/
|
|
49
|
+
export declare function saveRegistry(registry: ProjectRegistry): void;
|
|
50
|
+
/**
|
|
51
|
+
* Check if a path contains a valid Octie project
|
|
52
|
+
* @param projectPath - Path to check
|
|
53
|
+
* @returns True if .octie/project.json exists and is valid
|
|
54
|
+
*/
|
|
55
|
+
export declare function isValidOctieProject(projectPath: string): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Get project metadata from a project path
|
|
58
|
+
* @param projectPath - Path to the project
|
|
59
|
+
* @returns Project metadata or null if invalid
|
|
60
|
+
*/
|
|
61
|
+
export declare function getProjectMetadata(projectPath: string): ProjectMetadata | null;
|
|
62
|
+
/**
|
|
63
|
+
* Get task count from a project
|
|
64
|
+
* @param projectPath - Path to the project
|
|
65
|
+
* @returns Number of tasks or 0 if invalid
|
|
66
|
+
*/
|
|
67
|
+
export declare function getProjectTaskCount(projectPath: string): number;
|
|
68
|
+
/**
|
|
69
|
+
* Register or update a project in the registry
|
|
70
|
+
* @param projectPath - Path to the project to register
|
|
71
|
+
* @returns The registered project entry or null if invalid
|
|
72
|
+
*/
|
|
73
|
+
export declare function registerProject(projectPath: string): RegistryProject | null;
|
|
74
|
+
/**
|
|
75
|
+
* Unregister a project from the registry
|
|
76
|
+
* @param projectPath - Path to the project to remove
|
|
77
|
+
* @returns True if project was removed
|
|
78
|
+
*/
|
|
79
|
+
export declare function unregisterProject(projectPath: string): boolean;
|
|
80
|
+
/**
|
|
81
|
+
* Get all registered projects
|
|
82
|
+
* Automatically filters out stale projects (where .octie folder no longer exists)
|
|
83
|
+
* @returns Array of valid registry projects
|
|
84
|
+
*/
|
|
85
|
+
export declare function getAllProjects(): RegistryProject[];
|
|
86
|
+
/**
|
|
87
|
+
* Get all registered projects WITHOUT auto-cleanup (for debugging)
|
|
88
|
+
* @returns Array of all registry projects including stale ones
|
|
89
|
+
*/
|
|
90
|
+
export declare function getAllProjectsRaw(): RegistryProject[];
|
|
91
|
+
/**
|
|
92
|
+
* Check if a registered project still exists on disk
|
|
93
|
+
* @param project - Project entry to check
|
|
94
|
+
* @returns True if project still exists and is valid
|
|
95
|
+
*/
|
|
96
|
+
export declare function verifyProjectExists(project: RegistryProject): boolean;
|
|
97
|
+
/**
|
|
98
|
+
* Update last accessed timestamp for a project
|
|
99
|
+
* @param projectPath - Path to the project
|
|
100
|
+
*/
|
|
101
|
+
export declare function touchProject(projectPath: string): void;
|
|
102
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/registry/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,YAAY,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC3C;AAKD;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAI9C;AAYD;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,eAAe,CAgC9C;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAI5D;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAehE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAmB9E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAmB/D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAwC3E;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAY9D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,eAAe,EAAE,CAoBlD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,eAAe,EAAE,CAGrD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAErE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAWtD"}
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Global Project Registry
|
|
3
|
+
*
|
|
4
|
+
* Manages a registry of all Octie projects on the system.
|
|
5
|
+
* Registry is stored at ~/.octie/projects.json
|
|
6
|
+
*
|
|
7
|
+
* @module core/registry
|
|
8
|
+
*/
|
|
9
|
+
import { homedir } from 'node:os';
|
|
10
|
+
import { join } from 'node:path';
|
|
11
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
12
|
+
/** Current registry version */
|
|
13
|
+
const REGISTRY_VERSION = '1.0.0';
|
|
14
|
+
/**
|
|
15
|
+
* Get the path to the global registry file
|
|
16
|
+
* @returns Absolute path to ~/.octie/projects.json
|
|
17
|
+
*/
|
|
18
|
+
export function getGlobalRegistryPath() {
|
|
19
|
+
const home = homedir();
|
|
20
|
+
const octieDir = join(home, '.octie');
|
|
21
|
+
return join(octieDir, 'projects.json');
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Ensure the ~/.octie directory exists
|
|
25
|
+
*/
|
|
26
|
+
function ensureRegistryDir() {
|
|
27
|
+
const octieDir = join(homedir(), '.octie');
|
|
28
|
+
if (!existsSync(octieDir)) {
|
|
29
|
+
mkdirSync(octieDir, { recursive: true });
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Load the global project registry
|
|
34
|
+
* Creates an empty registry if one doesn't exist
|
|
35
|
+
* @returns Project registry object
|
|
36
|
+
*/
|
|
37
|
+
export function loadRegistry() {
|
|
38
|
+
const registryPath = getGlobalRegistryPath();
|
|
39
|
+
if (!existsSync(registryPath)) {
|
|
40
|
+
// Return empty registry
|
|
41
|
+
return {
|
|
42
|
+
version: REGISTRY_VERSION,
|
|
43
|
+
projects: {},
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
try {
|
|
47
|
+
const content = readFileSync(registryPath, 'utf-8');
|
|
48
|
+
const registry = JSON.parse(content);
|
|
49
|
+
// Ensure version compatibility
|
|
50
|
+
if (!registry.version || !registry.projects) {
|
|
51
|
+
// Invalid registry, return empty
|
|
52
|
+
return {
|
|
53
|
+
version: REGISTRY_VERSION,
|
|
54
|
+
projects: {},
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
return registry;
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
// Corrupted registry, return empty
|
|
61
|
+
return {
|
|
62
|
+
version: REGISTRY_VERSION,
|
|
63
|
+
projects: {},
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Save the global project registry
|
|
69
|
+
* @param registry - Registry to save
|
|
70
|
+
*/
|
|
71
|
+
export function saveRegistry(registry) {
|
|
72
|
+
ensureRegistryDir();
|
|
73
|
+
const registryPath = getGlobalRegistryPath();
|
|
74
|
+
writeFileSync(registryPath, JSON.stringify(registry, null, 2), 'utf-8');
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Check if a path contains a valid Octie project
|
|
78
|
+
* @param projectPath - Path to check
|
|
79
|
+
* @returns True if .octie/project.json exists and is valid
|
|
80
|
+
*/
|
|
81
|
+
export function isValidOctieProject(projectPath) {
|
|
82
|
+
const projectFile = join(projectPath, '.octie', 'project.json');
|
|
83
|
+
if (!existsSync(projectFile)) {
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
try {
|
|
87
|
+
const content = readFileSync(projectFile, 'utf-8');
|
|
88
|
+
const data = JSON.parse(content);
|
|
89
|
+
// Check for required fields
|
|
90
|
+
return !!(data.metadata && data.tasks);
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Get project metadata from a project path
|
|
98
|
+
* @param projectPath - Path to the project
|
|
99
|
+
* @returns Project metadata or null if invalid
|
|
100
|
+
*/
|
|
101
|
+
export function getProjectMetadata(projectPath) {
|
|
102
|
+
const projectFile = join(projectPath, '.octie', 'project.json');
|
|
103
|
+
if (!existsSync(projectFile)) {
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
try {
|
|
107
|
+
const content = readFileSync(projectFile, 'utf-8');
|
|
108
|
+
const data = JSON.parse(content);
|
|
109
|
+
if (!data.metadata) {
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
return data.metadata;
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Get task count from a project
|
|
120
|
+
* @param projectPath - Path to the project
|
|
121
|
+
* @returns Number of tasks or 0 if invalid
|
|
122
|
+
*/
|
|
123
|
+
export function getProjectTaskCount(projectPath) {
|
|
124
|
+
const projectFile = join(projectPath, '.octie', 'project.json');
|
|
125
|
+
if (!existsSync(projectFile)) {
|
|
126
|
+
return 0;
|
|
127
|
+
}
|
|
128
|
+
try {
|
|
129
|
+
const content = readFileSync(projectFile, 'utf-8');
|
|
130
|
+
const data = JSON.parse(content);
|
|
131
|
+
if (!data.tasks || typeof data.tasks !== 'object') {
|
|
132
|
+
return 0;
|
|
133
|
+
}
|
|
134
|
+
return Object.keys(data.tasks).length;
|
|
135
|
+
}
|
|
136
|
+
catch {
|
|
137
|
+
return 0;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Register or update a project in the registry
|
|
142
|
+
* @param projectPath - Path to the project to register
|
|
143
|
+
* @returns The registered project entry or null if invalid
|
|
144
|
+
*/
|
|
145
|
+
export function registerProject(projectPath) {
|
|
146
|
+
if (!isValidOctieProject(projectPath)) {
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
149
|
+
const metadata = getProjectMetadata(projectPath);
|
|
150
|
+
if (!metadata) {
|
|
151
|
+
return null;
|
|
152
|
+
}
|
|
153
|
+
const projectName = metadata.project_name || 'unnamed';
|
|
154
|
+
const taskCount = getProjectTaskCount(projectPath);
|
|
155
|
+
const now = new Date().toISOString();
|
|
156
|
+
const registry = loadRegistry();
|
|
157
|
+
// Check if already registered (by path)
|
|
158
|
+
let existingKey = null;
|
|
159
|
+
for (const [key, project] of Object.entries(registry.projects)) {
|
|
160
|
+
if (project.path === projectPath) {
|
|
161
|
+
existingKey = key;
|
|
162
|
+
break;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
const entry = {
|
|
166
|
+
path: projectPath,
|
|
167
|
+
name: projectName,
|
|
168
|
+
registeredAt: existingKey ? registry.projects[existingKey].registeredAt : now,
|
|
169
|
+
lastAccessed: now,
|
|
170
|
+
taskCount,
|
|
171
|
+
};
|
|
172
|
+
// Use existing key or create new one with project name
|
|
173
|
+
const key = existingKey || projectName;
|
|
174
|
+
registry.projects[key] = entry;
|
|
175
|
+
saveRegistry(registry);
|
|
176
|
+
return entry;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Unregister a project from the registry
|
|
180
|
+
* @param projectPath - Path to the project to remove
|
|
181
|
+
* @returns True if project was removed
|
|
182
|
+
*/
|
|
183
|
+
export function unregisterProject(projectPath) {
|
|
184
|
+
const registry = loadRegistry();
|
|
185
|
+
for (const [key, project] of Object.entries(registry.projects)) {
|
|
186
|
+
if (project.path === projectPath) {
|
|
187
|
+
delete registry.projects[key];
|
|
188
|
+
saveRegistry(registry);
|
|
189
|
+
return true;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
return false;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Get all registered projects
|
|
196
|
+
* Automatically filters out stale projects (where .octie folder no longer exists)
|
|
197
|
+
* @returns Array of valid registry projects
|
|
198
|
+
*/
|
|
199
|
+
export function getAllProjects() {
|
|
200
|
+
const registry = loadRegistry();
|
|
201
|
+
const validProjects = {};
|
|
202
|
+
let hasStale = false;
|
|
203
|
+
for (const [key, project] of Object.entries(registry.projects)) {
|
|
204
|
+
if (isValidOctieProject(project.path)) {
|
|
205
|
+
validProjects[key] = project;
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
hasStale = true;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
// Auto-cleanup: remove stale entries from registry
|
|
212
|
+
if (hasStale) {
|
|
213
|
+
registry.projects = validProjects;
|
|
214
|
+
saveRegistry(registry);
|
|
215
|
+
}
|
|
216
|
+
return Object.values(registry.projects);
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Get all registered projects WITHOUT auto-cleanup (for debugging)
|
|
220
|
+
* @returns Array of all registry projects including stale ones
|
|
221
|
+
*/
|
|
222
|
+
export function getAllProjectsRaw() {
|
|
223
|
+
const registry = loadRegistry();
|
|
224
|
+
return Object.values(registry.projects);
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Check if a registered project still exists on disk
|
|
228
|
+
* @param project - Project entry to check
|
|
229
|
+
* @returns True if project still exists and is valid
|
|
230
|
+
*/
|
|
231
|
+
export function verifyProjectExists(project) {
|
|
232
|
+
return isValidOctieProject(project.path);
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Update last accessed timestamp for a project
|
|
236
|
+
* @param projectPath - Path to the project
|
|
237
|
+
*/
|
|
238
|
+
export function touchProject(projectPath) {
|
|
239
|
+
const registry = loadRegistry();
|
|
240
|
+
for (const project of Object.values(registry.projects)) {
|
|
241
|
+
if (project.path === projectPath) {
|
|
242
|
+
project.lastAccessed = new Date().toISOString();
|
|
243
|
+
project.taskCount = getProjectTaskCount(projectPath);
|
|
244
|
+
saveRegistry(registry);
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/registry/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Root Guard - Auto-registration hook for Octie CLI
|
|
3
|
+
*
|
|
4
|
+
* Runs before every command to verify and register the current project
|
|
5
|
+
* in the global registry if it contains a valid .octie/project.json file.
|
|
6
|
+
*
|
|
7
|
+
* @module core/registry/root-guard
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Verify and register the current project if valid
|
|
11
|
+
*
|
|
12
|
+
* This function should be called at the start of every CLI command
|
|
13
|
+
* to ensure the current project is tracked in the global registry.
|
|
14
|
+
*
|
|
15
|
+
* @param projectPath - Optional explicit project path (uses cwd if not provided)
|
|
16
|
+
* @returns True if project was registered/verified, false if not a valid project
|
|
17
|
+
*/
|
|
18
|
+
export declare function verifyAndRegisterProject(projectPath?: string): boolean;
|
|
19
|
+
//# sourceMappingURL=root-guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"root-guard.d.ts","sourceRoot":"","sources":["../../../src/core/registry/root-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAStE"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Root Guard - Auto-registration hook for Octie CLI
|
|
3
|
+
*
|
|
4
|
+
* Runs before every command to verify and register the current project
|
|
5
|
+
* in the global registry if it contains a valid .octie/project.json file.
|
|
6
|
+
*
|
|
7
|
+
* @module core/registry/root-guard
|
|
8
|
+
*/
|
|
9
|
+
import { cwd } from 'node:process';
|
|
10
|
+
import { isValidOctieProject, registerProject } from './index.js';
|
|
11
|
+
/**
|
|
12
|
+
* Verify and register the current project if valid
|
|
13
|
+
*
|
|
14
|
+
* This function should be called at the start of every CLI command
|
|
15
|
+
* to ensure the current project is tracked in the global registry.
|
|
16
|
+
*
|
|
17
|
+
* @param projectPath - Optional explicit project path (uses cwd if not provided)
|
|
18
|
+
* @returns True if project was registered/verified, false if not a valid project
|
|
19
|
+
*/
|
|
20
|
+
export function verifyAndRegisterProject(projectPath) {
|
|
21
|
+
const path = projectPath || cwd();
|
|
22
|
+
if (!isValidOctieProject(path)) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
const result = registerProject(path);
|
|
26
|
+
return result !== null;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=root-guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"root-guard.js","sourceRoot":"","sources":["../../../src/core/registry/root-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElE;;;;;;;;GAQG;AACH,MAAM,UAAU,wBAAwB,CAAC,WAAoB;IAC3D,MAAM,IAAI,GAAG,WAAW,IAAI,GAAG,EAAE,CAAC;IAElC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACrC,OAAO,MAAM,KAAK,IAAI,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Atomic file write operations
|
|
3
|
+
*
|
|
4
|
+
* Implements safe file writes using temp file + rename strategy.
|
|
5
|
+
* Ensures data integrity by:
|
|
6
|
+
* 1. Writing to temporary file first
|
|
7
|
+
* 2. Verifying write success
|
|
8
|
+
* 3. Creating backup of existing file
|
|
9
|
+
* 4. Atomic rename to final location
|
|
10
|
+
*
|
|
11
|
+
* @module core/storage/atomic-write
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Atomic file writer configuration
|
|
15
|
+
*/
|
|
16
|
+
export interface AtomicWriterConfig {
|
|
17
|
+
/** Number of backups to keep (default: 5) */
|
|
18
|
+
backupCount?: number;
|
|
19
|
+
/** Directory for temporary files (default: OS temp directory) */
|
|
20
|
+
tempDir?: string;
|
|
21
|
+
/** Prefix for temporary files (default: '.octie-tmp-') */
|
|
22
|
+
tempPrefix?: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Atomic File Writer class
|
|
26
|
+
*
|
|
27
|
+
* Provides safe file write operations using atomic rename strategy.
|
|
28
|
+
* Prevents data corruption by writing to temp file first, then renaming.
|
|
29
|
+
*/
|
|
30
|
+
export declare class AtomicFileWriter {
|
|
31
|
+
private _config;
|
|
32
|
+
/**
|
|
33
|
+
* Create a new AtomicFileWriter
|
|
34
|
+
* @param config - Optional configuration
|
|
35
|
+
*/
|
|
36
|
+
constructor(config?: AtomicWriterConfig);
|
|
37
|
+
/**
|
|
38
|
+
* Write data to file atomically
|
|
39
|
+
*
|
|
40
|
+
* Process:
|
|
41
|
+
* 1. Write to temporary file
|
|
42
|
+
* 2. Verify write success (check file size)
|
|
43
|
+
* 3. Create backup of existing file (if exists)
|
|
44
|
+
* 4. Atomic rename to final location
|
|
45
|
+
*
|
|
46
|
+
* @param filePath - Target file path
|
|
47
|
+
* @param data - Data to write (will be JSON stringified if object)
|
|
48
|
+
* @param options - Write options
|
|
49
|
+
* @throws {FileOperationError} If write operation fails
|
|
50
|
+
*/
|
|
51
|
+
write(filePath: string, data: string | Record<string, unknown>, options?: {
|
|
52
|
+
createBackup?: boolean;
|
|
53
|
+
indent?: number | string;
|
|
54
|
+
}): Promise<void>;
|
|
55
|
+
/**
|
|
56
|
+
* Read file contents
|
|
57
|
+
* @param filePath - File path to read
|
|
58
|
+
* @returns File contents as string
|
|
59
|
+
* @throws {FileOperationError} If read fails
|
|
60
|
+
*/
|
|
61
|
+
read(filePath: string): Promise<string>;
|
|
62
|
+
/**
|
|
63
|
+
* Read and parse JSON file
|
|
64
|
+
* @param filePath - File path to read
|
|
65
|
+
* @returns Parsed JSON object
|
|
66
|
+
* @throws {FileOperationError} If read or parse fails
|
|
67
|
+
*/
|
|
68
|
+
readJSON<T = Record<string, unknown>>(filePath: string): Promise<T>;
|
|
69
|
+
/**
|
|
70
|
+
* Create backup of existing file
|
|
71
|
+
* @param filePath - File to backup
|
|
72
|
+
* @private
|
|
73
|
+
*/
|
|
74
|
+
private _createBackup;
|
|
75
|
+
/**
|
|
76
|
+
* Rotate backup files, keeping only the configured number
|
|
77
|
+
* @param filePath - Original file path
|
|
78
|
+
* @private
|
|
79
|
+
*/
|
|
80
|
+
private _rotateBackups;
|
|
81
|
+
/**
|
|
82
|
+
* Get backup file path
|
|
83
|
+
* @param filePath - Original file path
|
|
84
|
+
* @returns Backup file path
|
|
85
|
+
* @private
|
|
86
|
+
*/
|
|
87
|
+
private _getBackupPath;
|
|
88
|
+
/**
|
|
89
|
+
* Get temporary file path
|
|
90
|
+
* @param filePath - Target file path
|
|
91
|
+
* @returns Temporary file path
|
|
92
|
+
* @private
|
|
93
|
+
*/
|
|
94
|
+
private _getTempPath;
|
|
95
|
+
/**
|
|
96
|
+
* Get directory path from file path
|
|
97
|
+
* @param filePath - File path
|
|
98
|
+
* @returns Directory path
|
|
99
|
+
* @private
|
|
100
|
+
*/
|
|
101
|
+
private _getDirPath;
|
|
102
|
+
/**
|
|
103
|
+
* Get base name from file path (without extension)
|
|
104
|
+
* @param filePath - File path
|
|
105
|
+
* @returns Base name
|
|
106
|
+
* @private
|
|
107
|
+
*/
|
|
108
|
+
private _getBaseName;
|
|
109
|
+
/**
|
|
110
|
+
* Check if file exists
|
|
111
|
+
* @param filePath - File path to check
|
|
112
|
+
* @returns True if file exists
|
|
113
|
+
*/
|
|
114
|
+
exists(filePath: string): Promise<boolean>;
|
|
115
|
+
/**
|
|
116
|
+
* Delete file
|
|
117
|
+
* @param filePath - File path to delete
|
|
118
|
+
* @throws {FileOperationError} If delete fails
|
|
119
|
+
*/
|
|
120
|
+
delete(filePath: string): Promise<void>;
|
|
121
|
+
/**
|
|
122
|
+
* Ensure directory exists, create if missing
|
|
123
|
+
* @param dirPath - Directory path
|
|
124
|
+
* @throws {FileOperationError} If directory creation fails
|
|
125
|
+
*/
|
|
126
|
+
ensureDir(dirPath: string): Promise<void>;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Cross-platform path utilities
|
|
130
|
+
*/
|
|
131
|
+
export declare class PathUtils {
|
|
132
|
+
/**
|
|
133
|
+
* Normalize path for consistent storage
|
|
134
|
+
* Converts backslashes to forward slashes, removes redundant separators
|
|
135
|
+
* @param path - Path to normalize
|
|
136
|
+
* @returns Normalized path
|
|
137
|
+
*/
|
|
138
|
+
static normalizePath(path: string): string;
|
|
139
|
+
/**
|
|
140
|
+
* Join path segments
|
|
141
|
+
* @param segments - Path segments to join
|
|
142
|
+
* @returns Joined path
|
|
143
|
+
*/
|
|
144
|
+
static join(...segments: string[]): string;
|
|
145
|
+
/**
|
|
146
|
+
* Check if path is absolute
|
|
147
|
+
* @param path - Path to check
|
|
148
|
+
* @returns True if path is absolute
|
|
149
|
+
*/
|
|
150
|
+
static isAbsolute(path: string): boolean;
|
|
151
|
+
/**
|
|
152
|
+
* Make path relative to another path
|
|
153
|
+
* @param from - Base path
|
|
154
|
+
* @param to - Target path
|
|
155
|
+
* @returns Relative path
|
|
156
|
+
*/
|
|
157
|
+
static relative(from: string, to: string): string;
|
|
158
|
+
/**
|
|
159
|
+
* Get project configuration path
|
|
160
|
+
* Platform-aware configuration directory
|
|
161
|
+
* @param projectName - Project name
|
|
162
|
+
* @returns Configuration path
|
|
163
|
+
*/
|
|
164
|
+
static getConfigPath(projectName: string): string;
|
|
165
|
+
/**
|
|
166
|
+
* Get project data path
|
|
167
|
+
* Platform-aware data directory
|
|
168
|
+
* @param projectName - Project name
|
|
169
|
+
* @returns Data path
|
|
170
|
+
*/
|
|
171
|
+
static getDataPath(projectName: string): string;
|
|
172
|
+
/**
|
|
173
|
+
* Sanitize file path to prevent directory traversal
|
|
174
|
+
* @param filePath - File path to sanitize
|
|
175
|
+
* @param basePath - Base path to resolve against
|
|
176
|
+
* @returns Sanitized, absolute path
|
|
177
|
+
* @throws {FileOperationError} If path tries to escape base directory
|
|
178
|
+
*/
|
|
179
|
+
static sanitizePath(filePath: string, basePath?: string): string;
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=atomic-write.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atomic-write.d.ts","sourceRoot":"","sources":["../../../src/core/storage/atomic-write.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAgBH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAA+B;IAE9C;;;OAGG;gBACS,MAAM,GAAE,kBAAuB;IAQ3C;;;;;;;;;;;;;OAaG;IACG,KAAK,CACT,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,OAAO,GAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAO,GACjE,OAAO,CAAC,IAAI,CAAC;IAgEhB;;;;;OAKG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAW7C;;;;;OAKG;IACG,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAezE;;;;OAIG;YACW,aAAa;IAwB3B;;;;OAIG;YACW,cAAc;IAuB5B;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAOtB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IASpB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAMnB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAQpB;;;;OAIG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAShD;;;;OAIG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc7C;;;;OAIG;IACG,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAUhD;AAED;;GAEG;AACH,qBAAa,SAAS;IACpB;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI1C;;;;OAIG;IACH,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM;IAI1C;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIxC;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM;IAMjD;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAcjD;;;;;OAKG;IACH,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAc/C;;;;;;OAMG;IACH,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAsB,GAAG,MAAM;CAehF"}
|