@bhimudev/gnanai 0.4.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 +270 -0
- package/dist/bin/cli.d.ts +3 -0
- package/dist/bin/cli.d.ts.map +1 -0
- package/dist/bin/cli.js +188 -0
- package/dist/bin/cli.js.map +1 -0
- package/dist/commands/cleanup.d.ts +21 -0
- package/dist/commands/cleanup.d.ts.map +1 -0
- package/dist/commands/cleanup.js +380 -0
- package/dist/commands/cleanup.js.map +1 -0
- package/dist/commands/dispatch.d.ts +13 -0
- package/dist/commands/dispatch.d.ts.map +1 -0
- package/dist/commands/dispatch.js +85 -0
- package/dist/commands/dispatch.js.map +1 -0
- package/dist/commands/doctor.d.ts +2 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +155 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/generate.d.ts +3 -0
- package/dist/commands/generate.d.ts.map +1 -0
- package/dist/commands/generate.js +167 -0
- package/dist/commands/generate.js.map +1 -0
- package/dist/commands/init.d.ts +10 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +711 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/knowledge-sync.d.ts +69 -0
- package/dist/commands/knowledge-sync.d.ts.map +1 -0
- package/dist/commands/knowledge-sync.js +661 -0
- package/dist/commands/knowledge-sync.js.map +1 -0
- package/dist/commands/knowledge.d.ts +35 -0
- package/dist/commands/knowledge.d.ts.map +1 -0
- package/dist/commands/knowledge.js +254 -0
- package/dist/commands/knowledge.js.map +1 -0
- package/dist/commands/rollback.d.ts +13 -0
- package/dist/commands/rollback.d.ts.map +1 -0
- package/dist/commands/rollback.js +186 -0
- package/dist/commands/rollback.js.map +1 -0
- package/dist/commands/setup-config.d.ts +6 -0
- package/dist/commands/setup-config.d.ts.map +1 -0
- package/dist/commands/setup-config.js +663 -0
- package/dist/commands/setup-config.js.map +1 -0
- package/dist/commands/setup-project.d.ts +6 -0
- package/dist/commands/setup-project.d.ts.map +1 -0
- package/dist/commands/setup-project.js +361 -0
- package/dist/commands/setup-project.js.map +1 -0
- package/dist/commands/setup.d.ts +3 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +293 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/status.d.ts +51 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +182 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/uninstall.d.ts +3 -0
- package/dist/commands/uninstall.d.ts.map +1 -0
- package/dist/commands/uninstall.js +173 -0
- package/dist/commands/uninstall.js.map +1 -0
- package/dist/commands/update.d.ts +10 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +435 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/worktree.d.ts +30 -0
- package/dist/commands/worktree.d.ts.map +1 -0
- package/dist/commands/worktree.js +262 -0
- package/dist/commands/worktree.js.map +1 -0
- package/dist/generator/claude-cli.d.ts +24 -0
- package/dist/generator/claude-cli.d.ts.map +1 -0
- package/dist/generator/claude-cli.js +239 -0
- package/dist/generator/claude-cli.js.map +1 -0
- package/dist/generator/prompt-builder.d.ts +7 -0
- package/dist/generator/prompt-builder.d.ts.map +1 -0
- package/dist/generator/prompt-builder.js +144 -0
- package/dist/generator/prompt-builder.js.map +1 -0
- package/dist/index.d.ts +36 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +45 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/embeddings.d.ts +53 -0
- package/dist/mcp/embeddings.d.ts.map +1 -0
- package/dist/mcp/embeddings.js +68 -0
- package/dist/mcp/embeddings.js.map +1 -0
- package/dist/mcp/hybrid-search.d.ts +25 -0
- package/dist/mcp/hybrid-search.d.ts.map +1 -0
- package/dist/mcp/hybrid-search.js +72 -0
- package/dist/mcp/hybrid-search.js.map +1 -0
- package/dist/mcp/knowledge-server.d.ts +4 -0
- package/dist/mcp/knowledge-server.d.ts.map +1 -0
- package/dist/mcp/knowledge-server.js +294 -0
- package/dist/mcp/knowledge-server.js.map +1 -0
- package/dist/mcp/knowledge-utils.d.ts +65 -0
- package/dist/mcp/knowledge-utils.d.ts.map +1 -0
- package/dist/mcp/knowledge-utils.js +207 -0
- package/dist/mcp/knowledge-utils.js.map +1 -0
- package/dist/mcp/search-factory.d.ts +9 -0
- package/dist/mcp/search-factory.d.ts.map +1 -0
- package/dist/mcp/search-factory.js +23 -0
- package/dist/mcp/search-factory.js.map +1 -0
- package/dist/mcp/search-index.d.ts +45 -0
- package/dist/mcp/search-index.d.ts.map +1 -0
- package/dist/mcp/search-index.js +2 -0
- package/dist/mcp/search-index.js.map +1 -0
- package/dist/mcp/search-minisearch.d.ts +46 -0
- package/dist/mcp/search-minisearch.d.ts.map +1 -0
- package/dist/mcp/search-minisearch.js +99 -0
- package/dist/mcp/search-minisearch.js.map +1 -0
- package/dist/mcp/search-sqlite.d.ts +30 -0
- package/dist/mcp/search-sqlite.d.ts.map +1 -0
- package/dist/mcp/search-sqlite.js +188 -0
- package/dist/mcp/search-sqlite.js.map +1 -0
- package/dist/mcp/vector-store.d.ts +52 -0
- package/dist/mcp/vector-store.d.ts.map +1 -0
- package/dist/mcp/vector-store.js +183 -0
- package/dist/mcp/vector-store.js.map +1 -0
- package/dist/scaffold/copy-core-agents.d.ts +2 -0
- package/dist/scaffold/copy-core-agents.d.ts.map +1 -0
- package/dist/scaffold/copy-core-agents.js +90 -0
- package/dist/scaffold/copy-core-agents.js.map +1 -0
- package/dist/scaffold/create-claude-settings.d.ts +40 -0
- package/dist/scaffold/create-claude-settings.d.ts.map +1 -0
- package/dist/scaffold/create-claude-settings.js +422 -0
- package/dist/scaffold/create-claude-settings.js.map +1 -0
- package/dist/scaffold/create-config.d.ts +14 -0
- package/dist/scaffold/create-config.d.ts.map +1 -0
- package/dist/scaffold/create-config.js +199 -0
- package/dist/scaffold/create-config.js.map +1 -0
- package/dist/scaffold/create-project-description.d.ts +12 -0
- package/dist/scaffold/create-project-description.d.ts.map +1 -0
- package/dist/scaffold/create-project-description.js +104 -0
- package/dist/scaffold/create-project-description.js.map +1 -0
- package/dist/scaffold/create-structure.d.ts +2 -0
- package/dist/scaffold/create-structure.d.ts.map +1 -0
- package/dist/scaffold/create-structure.js +146 -0
- package/dist/scaffold/create-structure.js.map +1 -0
- package/dist/types/dependency-analysis.d.ts +11 -0
- package/dist/types/dependency-analysis.d.ts.map +1 -0
- package/dist/types/dependency-analysis.js +2 -0
- package/dist/types/dependency-analysis.js.map +1 -0
- package/dist/types/index.d.ts +526 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/task.d.ts +25 -0
- package/dist/types/task.d.ts.map +1 -0
- package/dist/types/task.js +3 -0
- package/dist/types/task.js.map +1 -0
- package/dist/utils/analyze-files.d.ts +7 -0
- package/dist/utils/analyze-files.d.ts.map +1 -0
- package/dist/utils/analyze-files.js +27 -0
- package/dist/utils/analyze-files.js.map +1 -0
- package/dist/utils/backup.d.ts +102 -0
- package/dist/utils/backup.d.ts.map +1 -0
- package/dist/utils/backup.js +352 -0
- package/dist/utils/backup.js.map +1 -0
- package/dist/utils/ci-provider.d.ts +23 -0
- package/dist/utils/ci-provider.d.ts.map +1 -0
- package/dist/utils/ci-provider.js +525 -0
- package/dist/utils/ci-provider.js.map +1 -0
- package/dist/utils/ci-status.d.ts +57 -0
- package/dist/utils/ci-status.d.ts.map +1 -0
- package/dist/utils/ci-status.js +349 -0
- package/dist/utils/ci-status.js.map +1 -0
- package/dist/utils/dependency-analysis.d.ts +34 -0
- package/dist/utils/dependency-analysis.d.ts.map +1 -0
- package/dist/utils/dependency-analysis.js +298 -0
- package/dist/utils/dependency-analysis.js.map +1 -0
- package/dist/utils/detect-git.d.ts +57 -0
- package/dist/utils/detect-git.d.ts.map +1 -0
- package/dist/utils/detect-git.js +439 -0
- package/dist/utils/detect-git.js.map +1 -0
- package/dist/utils/detect-mcp.d.ts +32 -0
- package/dist/utils/detect-mcp.d.ts.map +1 -0
- package/dist/utils/detect-mcp.js +178 -0
- package/dist/utils/detect-mcp.js.map +1 -0
- package/dist/utils/detect-project.d.ts +3 -0
- package/dist/utils/detect-project.d.ts.map +1 -0
- package/dist/utils/detect-project.js +155 -0
- package/dist/utils/detect-project.js.map +1 -0
- package/dist/utils/file-comparison.d.ts +89 -0
- package/dist/utils/file-comparison.d.ts.map +1 -0
- package/dist/utils/file-comparison.js +301 -0
- package/dist/utils/file-comparison.js.map +1 -0
- package/dist/utils/file-merger.d.ts +74 -0
- package/dist/utils/file-merger.d.ts.map +1 -0
- package/dist/utils/file-merger.js +350 -0
- package/dist/utils/file-merger.js.map +1 -0
- package/dist/utils/logger.d.ts +26 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +72 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/managed-process.d.ts +109 -0
- package/dist/utils/managed-process.d.ts.map +1 -0
- package/dist/utils/managed-process.js +481 -0
- package/dist/utils/managed-process.js.map +1 -0
- package/dist/utils/merge-claude-settings.d.ts +65 -0
- package/dist/utils/merge-claude-settings.d.ts.map +1 -0
- package/dist/utils/merge-claude-settings.js +133 -0
- package/dist/utils/merge-claude-settings.js.map +1 -0
- package/dist/utils/migration.d.ts +74 -0
- package/dist/utils/migration.d.ts.map +1 -0
- package/dist/utils/migration.js +345 -0
- package/dist/utils/migration.js.map +1 -0
- package/dist/utils/process-health.d.ts +51 -0
- package/dist/utils/process-health.d.ts.map +1 -0
- package/dist/utils/process-health.js +123 -0
- package/dist/utils/process-health.js.map +1 -0
- package/dist/utils/process-registry.d.ts +20 -0
- package/dist/utils/process-registry.d.ts.map +1 -0
- package/dist/utils/process-registry.js +151 -0
- package/dist/utils/process-registry.js.map +1 -0
- package/dist/utils/process-tree.d.ts +51 -0
- package/dist/utils/process-tree.d.ts.map +1 -0
- package/dist/utils/process-tree.js +499 -0
- package/dist/utils/process-tree.js.map +1 -0
- package/dist/utils/repair-mcp-config.d.ts +15 -0
- package/dist/utils/repair-mcp-config.d.ts.map +1 -0
- package/dist/utils/repair-mcp-config.js +129 -0
- package/dist/utils/repair-mcp-config.js.map +1 -0
- package/dist/utils/task-lifecycle.d.ts +60 -0
- package/dist/utils/task-lifecycle.d.ts.map +1 -0
- package/dist/utils/task-lifecycle.js +310 -0
- package/dist/utils/task-lifecycle.js.map +1 -0
- package/dist/utils/update-agent-mcp.d.ts +7 -0
- package/dist/utils/update-agent-mcp.d.ts.map +1 -0
- package/dist/utils/update-agent-mcp.js +115 -0
- package/dist/utils/update-agent-mcp.js.map +1 -0
- package/dist/utils/update-agent-templates.d.ts +6 -0
- package/dist/utils/update-agent-templates.d.ts.map +1 -0
- package/dist/utils/update-agent-templates.js +56 -0
- package/dist/utils/update-agent-templates.js.map +1 -0
- package/dist/utils/update-config-ci.d.ts +7 -0
- package/dist/utils/update-config-ci.d.ts.map +1 -0
- package/dist/utils/update-config-ci.js +72 -0
- package/dist/utils/update-config-ci.js.map +1 -0
- package/dist/utils/update-config-git.d.ts +18 -0
- package/dist/utils/update-config-git.d.ts.map +1 -0
- package/dist/utils/update-config-git.js +146 -0
- package/dist/utils/update-config-git.js.map +1 -0
- package/dist/utils/update-config-mcp.d.ts +7 -0
- package/dist/utils/update-config-mcp.d.ts.map +1 -0
- package/dist/utils/update-config-mcp.js +98 -0
- package/dist/utils/update-config-mcp.js.map +1 -0
- package/dist/utils/validate-config.d.ts +3 -0
- package/dist/utils/validate-config.d.ts.map +1 -0
- package/dist/utils/validate-config.js +109 -0
- package/dist/utils/validate-config.js.map +1 -0
- package/dist/utils/version-tracker.d.ts +130 -0
- package/dist/utils/version-tracker.d.ts.map +1 -0
- package/dist/utils/version-tracker.js +298 -0
- package/dist/utils/version-tracker.js.map +1 -0
- package/dist/utils/worktree.d.ts +68 -0
- package/dist/utils/worktree.d.ts.map +1 -0
- package/dist/utils/worktree.js +446 -0
- package/dist/utils/worktree.js.map +1 -0
- package/package.json +77 -0
- package/templates/ARCHAI_README.md +329 -0
- package/templates/CLAUDE.md +67 -0
- package/templates/PROMPTS.md +506 -0
- package/templates/core-agents/boss-agent.md +671 -0
- package/templates/core-agents/cleanup-agent.md +145 -0
- package/templates/core-agents/code-reviewer.md +175 -0
- package/templates/core-agents/critical-reviewer.md +117 -0
- package/templates/core-agents/deep-analyst.md +216 -0
- package/templates/core-agents/finalization-agent.md +252 -0
- package/templates/core-agents/git-coordinator.md +240 -0
- package/templates/core-agents/implementation-agent.md +151 -0
- package/templates/core-agents/maestro-agent.md +413 -0
- package/templates/core-agents/maestro-headless-agent.md +422 -0
- package/templates/core-agents/plan-validator.md +198 -0
- package/templates/core-agents/quick-fix.md +56 -0
- package/templates/core-agents/routing-templates.md +338 -0
- package/templates/core-agents/task-orchestrator.md +143 -0
- package/templates/core-agents/task-prep.md +202 -0
- package/templates/core-agents/tdd-designer.md +143 -0
- package/templates/specialist-meta.md +275 -0
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
import fs from 'fs-extra';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { logger } from './logger.js';
|
|
4
|
+
/**
|
|
5
|
+
* Schema version for the version.json file format.
|
|
6
|
+
*/
|
|
7
|
+
export const CURRENT_SCHEMA_VERSION = 1;
|
|
8
|
+
/**
|
|
9
|
+
* Default filename for the version tracking file.
|
|
10
|
+
*/
|
|
11
|
+
export const VERSION_FILE = 'version.json';
|
|
12
|
+
/**
|
|
13
|
+
* Get the version file path for a given .claude directory.
|
|
14
|
+
*/
|
|
15
|
+
export function getVersionFilePath(claudeDir) {
|
|
16
|
+
return path.join(claudeDir, VERSION_FILE);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Load version file from disk.
|
|
20
|
+
* Returns null if file doesn't exist or is invalid.
|
|
21
|
+
*/
|
|
22
|
+
export async function loadVersionFile(claudeDir) {
|
|
23
|
+
const filePath = getVersionFilePath(claudeDir);
|
|
24
|
+
try {
|
|
25
|
+
if (!await fs.pathExists(filePath)) {
|
|
26
|
+
logger.debug(`Version file not found: ${filePath}`);
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
const data = await fs.readJson(filePath);
|
|
30
|
+
// Validate schema version
|
|
31
|
+
if (typeof data.schemaVersion !== 'number') {
|
|
32
|
+
logger.debug('Invalid version file: missing schemaVersion');
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
// Handle schema version upgrades here if needed
|
|
36
|
+
if (data.schemaVersion > CURRENT_SCHEMA_VERSION) {
|
|
37
|
+
logger.warn(`Version file has newer schema (${data.schemaVersion}) than supported (${CURRENT_SCHEMA_VERSION})`);
|
|
38
|
+
}
|
|
39
|
+
// Ensure required fields exist
|
|
40
|
+
if (!data.files) {
|
|
41
|
+
data.files = {};
|
|
42
|
+
}
|
|
43
|
+
if (!data.expectedFiles) {
|
|
44
|
+
data.expectedFiles = [];
|
|
45
|
+
}
|
|
46
|
+
return data;
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
logger.debug(`Failed to load version file: ${filePath}`, error);
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Save version file to disk.
|
|
55
|
+
*/
|
|
56
|
+
export async function saveVersionFile(claudeDir, data) {
|
|
57
|
+
const filePath = getVersionFilePath(claudeDir);
|
|
58
|
+
try {
|
|
59
|
+
await fs.ensureDir(path.dirname(filePath));
|
|
60
|
+
await fs.writeJson(filePath, data, { spaces: 2 });
|
|
61
|
+
logger.debug(`Saved version file: ${filePath}`);
|
|
62
|
+
return true;
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
logger.debug(`Failed to save version file: ${filePath}`, error);
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Create a new version file with initial values.
|
|
71
|
+
*/
|
|
72
|
+
export function createVersionFile(archaiVersion, files = {}, expectedFiles = []) {
|
|
73
|
+
const now = new Date().toISOString();
|
|
74
|
+
return {
|
|
75
|
+
schemaVersion: CURRENT_SCHEMA_VERSION,
|
|
76
|
+
archai: archaiVersion,
|
|
77
|
+
installedAt: now,
|
|
78
|
+
lastUpdated: now,
|
|
79
|
+
files,
|
|
80
|
+
expectedFiles,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Update the version file with a new archai version.
|
|
85
|
+
*/
|
|
86
|
+
export function updateVersionInfo(versionFile, archaiVersion) {
|
|
87
|
+
return {
|
|
88
|
+
...versionFile,
|
|
89
|
+
archai: archaiVersion,
|
|
90
|
+
lastUpdated: new Date().toISOString(),
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Update or add a file hash in the version data.
|
|
95
|
+
* Normalizes path separators for cross-platform compatibility.
|
|
96
|
+
*/
|
|
97
|
+
export function updateFileHash(versionFile, filePath, hash, isGenerated = false) {
|
|
98
|
+
const normalizedPath = normalizePath(filePath);
|
|
99
|
+
return {
|
|
100
|
+
...versionFile,
|
|
101
|
+
lastUpdated: new Date().toISOString(),
|
|
102
|
+
files: {
|
|
103
|
+
...versionFile.files,
|
|
104
|
+
[normalizedPath]: {
|
|
105
|
+
baseHash: hash,
|
|
106
|
+
isGenerated,
|
|
107
|
+
},
|
|
108
|
+
},
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Mark a file as generated (will not be modified by updates).
|
|
113
|
+
*/
|
|
114
|
+
export function markAsGenerated(versionFile, filePath) {
|
|
115
|
+
const normalizedPath = normalizePath(filePath);
|
|
116
|
+
const existing = versionFile.files[normalizedPath];
|
|
117
|
+
return {
|
|
118
|
+
...versionFile,
|
|
119
|
+
lastUpdated: new Date().toISOString(),
|
|
120
|
+
files: {
|
|
121
|
+
...versionFile.files,
|
|
122
|
+
[normalizedPath]: {
|
|
123
|
+
baseHash: existing?.baseHash ?? null,
|
|
124
|
+
isGenerated: true,
|
|
125
|
+
},
|
|
126
|
+
},
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Remove a file from tracking.
|
|
131
|
+
*/
|
|
132
|
+
export function removeFile(versionFile, filePath) {
|
|
133
|
+
const normalizedPath = normalizePath(filePath);
|
|
134
|
+
const { [normalizedPath]: _, ...remainingFiles } = versionFile.files;
|
|
135
|
+
return {
|
|
136
|
+
...versionFile,
|
|
137
|
+
lastUpdated: new Date().toISOString(),
|
|
138
|
+
files: remainingFiles,
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Get the file record for a specific path.
|
|
143
|
+
*/
|
|
144
|
+
export function getFileRecord(versionFile, filePath) {
|
|
145
|
+
const normalizedPath = normalizePath(filePath);
|
|
146
|
+
return versionFile.files[normalizedPath] ?? null;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Get the base hash for a file.
|
|
150
|
+
*/
|
|
151
|
+
export function getBaseHash(versionFile, filePath) {
|
|
152
|
+
const record = getFileRecord(versionFile, filePath);
|
|
153
|
+
return record?.baseHash ?? null;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Check if a file is marked as generated.
|
|
157
|
+
*/
|
|
158
|
+
export function isFileGenerated(versionFile, filePath) {
|
|
159
|
+
const record = getFileRecord(versionFile, filePath);
|
|
160
|
+
return record?.isGenerated ?? false;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Get list of all tracked files.
|
|
164
|
+
*/
|
|
165
|
+
export function getTrackedFiles(versionFile) {
|
|
166
|
+
return Object.keys(versionFile.files);
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Get list of expected files (files archai should manage).
|
|
170
|
+
*/
|
|
171
|
+
export function getExpectedFiles(versionFile) {
|
|
172
|
+
return [...versionFile.expectedFiles];
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Update the expected files list.
|
|
176
|
+
*/
|
|
177
|
+
export function setExpectedFiles(versionFile, expectedFiles) {
|
|
178
|
+
return {
|
|
179
|
+
...versionFile,
|
|
180
|
+
lastUpdated: new Date().toISOString(),
|
|
181
|
+
expectedFiles: expectedFiles.map(normalizePath),
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Add a file to the expected files list.
|
|
186
|
+
*/
|
|
187
|
+
export function addExpectedFile(versionFile, filePath) {
|
|
188
|
+
const normalizedPath = normalizePath(filePath);
|
|
189
|
+
if (versionFile.expectedFiles.includes(normalizedPath)) {
|
|
190
|
+
return versionFile;
|
|
191
|
+
}
|
|
192
|
+
return {
|
|
193
|
+
...versionFile,
|
|
194
|
+
lastUpdated: new Date().toISOString(),
|
|
195
|
+
expectedFiles: [...versionFile.expectedFiles, normalizedPath],
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Remove a file from the expected files list.
|
|
200
|
+
*/
|
|
201
|
+
export function removeExpectedFile(versionFile, filePath) {
|
|
202
|
+
const normalizedPath = normalizePath(filePath);
|
|
203
|
+
return {
|
|
204
|
+
...versionFile,
|
|
205
|
+
lastUpdated: new Date().toISOString(),
|
|
206
|
+
expectedFiles: versionFile.expectedFiles.filter(f => f !== normalizedPath),
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Get files that are expected but not tracked.
|
|
211
|
+
*/
|
|
212
|
+
export function getMissingFiles(versionFile) {
|
|
213
|
+
const trackedSet = new Set(Object.keys(versionFile.files));
|
|
214
|
+
return versionFile.expectedFiles.filter(f => !trackedSet.has(f));
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Get files that are tracked but not expected (orphaned).
|
|
218
|
+
*/
|
|
219
|
+
export function getOrphanedFiles(versionFile) {
|
|
220
|
+
const expectedSet = new Set(versionFile.expectedFiles);
|
|
221
|
+
return Object.keys(versionFile.files).filter(f => {
|
|
222
|
+
// Generated files are not expected to be in expectedFiles
|
|
223
|
+
if (versionFile.files[f].isGenerated) {
|
|
224
|
+
return false;
|
|
225
|
+
}
|
|
226
|
+
return !expectedSet.has(f);
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Get all generated files.
|
|
231
|
+
*/
|
|
232
|
+
export function getGeneratedFiles(versionFile) {
|
|
233
|
+
return Object.entries(versionFile.files)
|
|
234
|
+
.filter(([_, record]) => record.isGenerated)
|
|
235
|
+
.map(([path, _]) => path);
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Check if version file exists for a given .claude directory.
|
|
239
|
+
*/
|
|
240
|
+
export async function versionFileExists(claudeDir) {
|
|
241
|
+
const filePath = getVersionFilePath(claudeDir);
|
|
242
|
+
return fs.pathExists(filePath);
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Normalize a file path for cross-platform consistency.
|
|
246
|
+
* Uses forward slashes and removes leading ./
|
|
247
|
+
*/
|
|
248
|
+
export function normalizePath(filePath) {
|
|
249
|
+
return filePath
|
|
250
|
+
.replace(/\\/g, '/')
|
|
251
|
+
.replace(/^\.\//, '');
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Bulk update multiple file hashes.
|
|
255
|
+
*/
|
|
256
|
+
export function bulkUpdateFileHashes(versionFile, updates) {
|
|
257
|
+
const newFiles = { ...versionFile.files };
|
|
258
|
+
for (const update of updates) {
|
|
259
|
+
const normalizedPath = normalizePath(update.path);
|
|
260
|
+
newFiles[normalizedPath] = {
|
|
261
|
+
baseHash: update.hash,
|
|
262
|
+
isGenerated: update.isGenerated ?? false,
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
return {
|
|
266
|
+
...versionFile,
|
|
267
|
+
lastUpdated: new Date().toISOString(),
|
|
268
|
+
files: newFiles,
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Create version data from a fresh install.
|
|
273
|
+
*/
|
|
274
|
+
export function createFromInstall(archaiVersion, installedFiles) {
|
|
275
|
+
const files = {};
|
|
276
|
+
const expectedFiles = [];
|
|
277
|
+
for (const file of installedFiles) {
|
|
278
|
+
const normalizedPath = normalizePath(file.path);
|
|
279
|
+
files[normalizedPath] = {
|
|
280
|
+
baseHash: file.hash,
|
|
281
|
+
isGenerated: file.isGenerated ?? false,
|
|
282
|
+
};
|
|
283
|
+
// Non-generated files are expected
|
|
284
|
+
if (!file.isGenerated) {
|
|
285
|
+
expectedFiles.push(normalizedPath);
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
const now = new Date().toISOString();
|
|
289
|
+
return {
|
|
290
|
+
schemaVersion: CURRENT_SCHEMA_VERSION,
|
|
291
|
+
archai: archaiVersion,
|
|
292
|
+
installedAt: now,
|
|
293
|
+
lastUpdated: now,
|
|
294
|
+
files,
|
|
295
|
+
expectedFiles,
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
//# sourceMappingURL=version-tracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-tracker.js","sourceRoot":"","sources":["../../src/utils/version-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { isWorktree } from './detect-git.js';
|
|
2
|
+
import type { WorktreeInfo } from '../types/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Options for bootstrapping a worktree's .claude/ directory.
|
|
5
|
+
*/
|
|
6
|
+
interface BootstrapOptions {
|
|
7
|
+
taskId: string;
|
|
8
|
+
description: string;
|
|
9
|
+
branchName: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Sanitize a string for use in branch names and directory names.
|
|
13
|
+
* @internal Exported for direct testability.
|
|
14
|
+
*/
|
|
15
|
+
export declare function sanitize(input: string): string;
|
|
16
|
+
/**
|
|
17
|
+
* Bootstrap a worktree's .claude/ directory with junctions, links, and fresh dirs.
|
|
18
|
+
*
|
|
19
|
+
* @param worktreePath - Absolute path to the new worktree root
|
|
20
|
+
* @param mainClaudeDir - Absolute path to the main worktree's .claude/ dir
|
|
21
|
+
* @param options - Task metadata for context file generation
|
|
22
|
+
*/
|
|
23
|
+
export declare function bootstrapWorktree(worktreePath: string, mainClaudeDir: string, options: BootstrapOptions): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Create a new git worktree for a task, with bootstrapped .claude/ directory.
|
|
26
|
+
*
|
|
27
|
+
* @param taskId - The task identifier (e.g., 'WORKTREE-001')
|
|
28
|
+
* @param description - Human-readable description (e.g., 'core worktree utilities')
|
|
29
|
+
* @returns WorktreeInfo for the created worktree
|
|
30
|
+
*/
|
|
31
|
+
export declare function createWorktree(taskId: string, description: string): Promise<WorktreeInfo>;
|
|
32
|
+
/**
|
|
33
|
+
* Remove a worktree, cleaning up junctions/links BEFORE calling git worktree remove.
|
|
34
|
+
*
|
|
35
|
+
* @param worktreePath - Absolute path to the worktree to remove
|
|
36
|
+
* @param force - Whether to pass --force to git worktree remove
|
|
37
|
+
*/
|
|
38
|
+
export declare function removeWorktree(worktreePath: string, force?: boolean): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* List all git worktrees in the current repository.
|
|
41
|
+
*
|
|
42
|
+
* @returns Array of WorktreeInfo objects
|
|
43
|
+
*/
|
|
44
|
+
export declare function listWorktrees(): Promise<WorktreeInfo[]>;
|
|
45
|
+
/**
|
|
46
|
+
* Check if the current directory is inside a linked git worktree.
|
|
47
|
+
* Re-export of isWorktree from detect-git.ts for convenience.
|
|
48
|
+
*/
|
|
49
|
+
export declare const isInsideWorktree: typeof isWorktree;
|
|
50
|
+
/**
|
|
51
|
+
* Get the main worktree (repo root) path from inside a linked worktree.
|
|
52
|
+
* Returns null if .git is a directory (main worktree), missing, or has unexpected format.
|
|
53
|
+
*/
|
|
54
|
+
export declare function getMainWorktreePath(): Promise<string | null>;
|
|
55
|
+
/**
|
|
56
|
+
* Prune stale worktree entries from git's tracking.
|
|
57
|
+
*
|
|
58
|
+
* @returns Array of pruned entry descriptions from git output
|
|
59
|
+
*/
|
|
60
|
+
export declare function pruneWorktrees(): Promise<string[]>;
|
|
61
|
+
/**
|
|
62
|
+
* Detect worktrees whose paths no longer exist on disk.
|
|
63
|
+
*
|
|
64
|
+
* @returns Array of stale WorktreeInfo objects
|
|
65
|
+
*/
|
|
66
|
+
export declare function detectStaleWorktrees(): Promise<WorktreeInfo[]>;
|
|
67
|
+
export {};
|
|
68
|
+
//# sourceMappingURL=worktree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../src/utils/worktree.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAWtD;;GAEG;AACH,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AA+BD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAS9C;AAwBD;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,IAAI,CAAC,CA0Df;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAkE/F;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAyGhG;AAED;;;;GAIG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAoE7D;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,mBAAa,CAAC;AAE3C;;;GAGG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAuBlE;AAED;;;;GAIG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAexD;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAGpE"}
|