coder-config 0.42.26 → 0.42.27
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/config-loader.js +3 -1
- package/lib/cli.js +8 -2
- package/lib/constants.js +1 -1
- package/lib/sessions.js +62 -0
- package/package.json +1 -1
package/config-loader.js
CHANGED
|
@@ -31,7 +31,7 @@ const { getProjectsRegistryPath, loadProjectsRegistry, saveProjectsRegistry, pro
|
|
|
31
31
|
const { getWorkstreamsPath, loadWorkstreams, saveWorkstreams, workstreamList, workstreamCreate, workstreamUpdate, workstreamDelete, workstreamUse, workstreamActive, workstreamAddProject, workstreamRemoveProject, workstreamInject, workstreamDetect, workstreamGet, getActiveWorkstream, countWorkstreamsForProject, workstreamInstallHook, workstreamInstallHookGemini, workstreamInstallHookCodex, workstreamDeactivate, workstreamCheckPath, getSettingsPath, loadSettings, saveSettings, workstreamAddTrigger, workstreamRemoveTrigger, workstreamSetAutoActivate, setGlobalAutoActivate, shouldAutoActivate, workstreamCheckFolder, workstreamInstallCdHook, workstreamUninstallCdHook, workstreamCdHookStatus } = require('./lib/workstreams');
|
|
32
32
|
const { getActivityPath, getDefaultActivity, loadActivity, saveActivity, detectProjectRoot, activityLog, activitySummary, generateWorkstreamName, activitySuggestWorkstreams, activityClear } = require('./lib/activity');
|
|
33
33
|
const { getLoopsPath, loadLoops, saveLoops, loadLoopState, saveLoopState, loadHistory, saveHistory, loopList, loopCreate, loopGet, loopUpdate, loopDelete, loopStart, loopPause, loopResume, loopCancel, loopApprove, loopComplete, loopStatus, loopHistory, loopConfig, getActiveLoop, recordIteration, saveClarifications, savePlan, loadClarifications, loadPlan, loopInject, archiveLoop } = require('./lib/loops');
|
|
34
|
-
const { getSessionStatus, showSessionStatus, flushContext, clearContext, installHooks: sessionInstallHooks, getFlushedContext, SESSION_DIR, FLUSHED_CONTEXT_FILE } = require('./lib/sessions');
|
|
34
|
+
const { getSessionStatus, showSessionStatus, flushContext, clearContext, installHooks: sessionInstallHooks, getFlushedContext, installFlushCommand, installAll: sessionInstallAll, SESSION_DIR, FLUSHED_CONTEXT_FILE } = require('./lib/sessions');
|
|
35
35
|
const { runCli } = require('./lib/cli');
|
|
36
36
|
|
|
37
37
|
class ClaudeConfigManager {
|
|
@@ -212,6 +212,8 @@ class ClaudeConfigManager {
|
|
|
212
212
|
sessionFlush() { return flushContext(); }
|
|
213
213
|
sessionClear() { return clearContext(); }
|
|
214
214
|
sessionInstallHooks() { return sessionInstallHooks(); }
|
|
215
|
+
sessionInstallCommand() { return installFlushCommand(); }
|
|
216
|
+
sessionInstall() { return sessionInstallAll(); }
|
|
215
217
|
getFlushedContext() { return getFlushedContext(); }
|
|
216
218
|
getSessionDir() { return SESSION_DIR; }
|
|
217
219
|
getFlushedContextPath() { return FLUSHED_CONTEXT_FILE; }
|
package/lib/cli.js
CHANGED
|
@@ -280,6 +280,10 @@ function runCli(manager) {
|
|
|
280
280
|
manager.sessionClear();
|
|
281
281
|
} else if (args[1] === 'install-hooks') {
|
|
282
282
|
manager.sessionInstallHooks();
|
|
283
|
+
} else if (args[1] === 'install-command') {
|
|
284
|
+
manager.sessionInstallCommand();
|
|
285
|
+
} else if (args[1] === 'install') {
|
|
286
|
+
manager.sessionInstall();
|
|
283
287
|
} else {
|
|
284
288
|
manager.sessionStatus();
|
|
285
289
|
}
|
|
@@ -407,9 +411,11 @@ Workstream Commands:
|
|
|
407
411
|
${loopHelp}
|
|
408
412
|
Session Persistence:
|
|
409
413
|
session Show session status (saved context)
|
|
410
|
-
session flush
|
|
414
|
+
session install Install hooks + /flush command (recommended)
|
|
415
|
+
session install-hooks Install Claude Code hooks only
|
|
416
|
+
session install-command Install /flush command only
|
|
417
|
+
session flush Show instructions for saving context
|
|
411
418
|
session clear Clear saved session context
|
|
412
|
-
session install-hooks Install Claude Code hooks for session persistence
|
|
413
419
|
|
|
414
420
|
Registry Commands:
|
|
415
421
|
registry List MCPs in global registry
|
package/lib/constants.js
CHANGED
package/lib/sessions.js
CHANGED
|
@@ -250,6 +250,66 @@ function getFlushedContext() {
|
|
|
250
250
|
return null;
|
|
251
251
|
}
|
|
252
252
|
|
|
253
|
+
/**
|
|
254
|
+
* Install the /flush command to ~/.claude/commands/
|
|
255
|
+
*/
|
|
256
|
+
function installFlushCommand() {
|
|
257
|
+
const claudeDir = path.join(os.homedir(), '.claude');
|
|
258
|
+
const commandsDir = path.join(claudeDir, 'commands');
|
|
259
|
+
const destFile = path.join(commandsDir, 'flush.md');
|
|
260
|
+
|
|
261
|
+
// Find the template
|
|
262
|
+
const templateFile = path.join(__dirname, '..', 'templates', 'commands', 'flush.md');
|
|
263
|
+
|
|
264
|
+
if (!fs.existsSync(templateFile)) {
|
|
265
|
+
console.error('Flush command template not found.');
|
|
266
|
+
console.log(`Expected: ${templateFile}`);
|
|
267
|
+
return false;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
// Ensure commands directory exists
|
|
271
|
+
if (!fs.existsSync(commandsDir)) {
|
|
272
|
+
fs.mkdirSync(commandsDir, { recursive: true });
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
// Check if command already exists
|
|
276
|
+
if (fs.existsSync(destFile)) {
|
|
277
|
+
const existing = fs.readFileSync(destFile, 'utf8');
|
|
278
|
+
const template = fs.readFileSync(templateFile, 'utf8');
|
|
279
|
+
if (existing === template) {
|
|
280
|
+
console.log('/flush command already installed.');
|
|
281
|
+
return true;
|
|
282
|
+
}
|
|
283
|
+
// Backup existing
|
|
284
|
+
const backupFile = path.join(commandsDir, 'flush.md.bak');
|
|
285
|
+
fs.copyFileSync(destFile, backupFile);
|
|
286
|
+
console.log(`Backed up existing /flush to ${backupFile}`);
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
// Copy template
|
|
290
|
+
fs.copyFileSync(templateFile, destFile);
|
|
291
|
+
console.log('/flush command installed to ~/.claude/commands/flush.md');
|
|
292
|
+
return true;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
/**
|
|
296
|
+
* Install everything needed for session persistence
|
|
297
|
+
*/
|
|
298
|
+
function installAll() {
|
|
299
|
+
console.log('Installing session persistence...\n');
|
|
300
|
+
|
|
301
|
+
// Install hooks
|
|
302
|
+
installHooks();
|
|
303
|
+
|
|
304
|
+
console.log('');
|
|
305
|
+
|
|
306
|
+
// Install command
|
|
307
|
+
installFlushCommand();
|
|
308
|
+
|
|
309
|
+
console.log('\nSession persistence setup complete!');
|
|
310
|
+
console.log('Use /flush in Claude Code to save context before exiting.');
|
|
311
|
+
}
|
|
312
|
+
|
|
253
313
|
module.exports = {
|
|
254
314
|
getSessionStatus,
|
|
255
315
|
showSessionStatus,
|
|
@@ -257,6 +317,8 @@ module.exports = {
|
|
|
257
317
|
clearContext,
|
|
258
318
|
installHooks,
|
|
259
319
|
getFlushedContext,
|
|
320
|
+
installFlushCommand,
|
|
321
|
+
installAll,
|
|
260
322
|
SESSION_DIR,
|
|
261
323
|
FLUSHED_CONTEXT_FILE,
|
|
262
324
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "coder-config",
|
|
3
|
-
"version": "0.42.
|
|
3
|
+
"version": "0.42.27",
|
|
4
4
|
"description": "Configuration manager for AI coding tools - Claude Code, Gemini CLI, Codex CLI, Antigravity. Manage MCPs, rules, permissions, memory, and workstreams.",
|
|
5
5
|
"author": "regression.io",
|
|
6
6
|
"main": "config-loader.js",
|