claude-flow-novice 2.18.7 → 2.18.9

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.
Files changed (33) hide show
  1. package/.claude/cfn-extras/skills/advanced-features/cfn-event-bus/README.md +2 -2
  2. package/.claude/cfn-extras/skills/advanced-features/cfn-event-bus/SKILL.md +2 -2
  3. package/.claude/cfn-extras/skills/advanced-features/cfn-event-bus/config.json +1 -1
  4. package/package.json +1 -1
  5. package/.claude/core/agent-manager.js +0 -80
  6. package/.claude/core/agent-manager.js.map +0 -1
  7. package/.claude/core/config.js +0 -1241
  8. package/.claude/core/config.js.map +0 -1
  9. package/.claude/core/event-bus.js +0 -136
  10. package/.claude/core/event-bus.js.map +0 -1
  11. package/.claude/core/index.js +0 -6
  12. package/.claude/core/index.js.map +0 -1
  13. package/.claude/core/json-persistence.js +0 -112
  14. package/.claude/core/json-persistence.js.map +0 -1
  15. package/.claude/core/logger.js +0 -245
  16. package/.claude/core/logger.js.map +0 -1
  17. package/.claude/core/orchestrator-fixed.js +0 -236
  18. package/.claude/core/orchestrator-fixed.js.map +0 -1
  19. package/.claude/core/orchestrator.js +0 -1136
  20. package/.claude/core/orchestrator.js.map +0 -1
  21. package/.claude/core/persistence.js +0 -185
  22. package/.claude/core/persistence.js.map +0 -1
  23. package/.claude/core/project-manager.js +0 -80
  24. package/.claude/core/project-manager.js.map +0 -1
  25. package/.claude/core/slash-command.js +0 -24
  26. package/.claude/core/version.js +0 -35
  27. package/.claude/core/version.js.map +0 -1
  28. package/.claude/helpers/checkpoint-manager.sh +0 -251
  29. package/.claude/helpers/github-safe.js +0 -106
  30. package/.claude/helpers/github-setup.sh +0 -28
  31. package/.claude/helpers/quick-start.sh +0 -19
  32. package/.claude/helpers/setup-mcp.sh +0 -18
  33. package/.claude/helpers/standard-checkpoint-hooks.sh +0 -179
@@ -1,251 +0,0 @@
1
- #!/bin/bash
2
- # Claude Checkpoint Manager
3
- # Provides easy rollback and management of Claude Code checkpoints
4
-
5
- set -e
6
-
7
- # Colors
8
- RED='\033[0;31m'
9
- GREEN='\033[0;32m'
10
- YELLOW='\033[1;33m'
11
- BLUE='\033[0;34m'
12
- NC='\033[0m' # No Color
13
-
14
- # Configuration
15
- CHECKPOINT_DIR=".claude/checkpoints"
16
- BACKUP_DIR=".claude/backups"
17
-
18
- # Help function
19
- show_help() {
20
- cat << EOF
21
- Claude Checkpoint Manager
22
- ========================
23
-
24
- Usage: $0 <command> [options]
25
-
26
- Commands:
27
- list List all checkpoints
28
- show <id> Show details of a specific checkpoint
29
- rollback <id> Rollback to a specific checkpoint
30
- diff <id> Show diff since checkpoint
31
- clean Clean old checkpoints (older than 7 days)
32
- summary Show session summary
33
-
34
- Options:
35
- --hard For rollback: use git reset --hard (destructive)
36
- --soft For rollback: use git reset --soft (default)
37
- --branch For rollback: create new branch from checkpoint
38
-
39
- Examples:
40
- $0 list
41
- $0 show checkpoint-20240130-143022
42
- $0 rollback checkpoint-20240130-143022 --branch
43
- $0 diff session-end-session-20240130-150000
44
- EOF
45
- }
46
-
47
- # List all checkpoints
48
- function list_checkpoints() {
49
- echo -e "${BLUE}📋 Available Checkpoints:${NC}"
50
- echo ""
51
-
52
- # List checkpoint tags
53
- echo -e "${YELLOW}Git Tags:${NC}"
54
- local tags=$(git tag -l 'checkpoint-*' -l 'session-end-*' -l 'task-*' --sort=-creatordate | head -20)
55
- if [ -n "$tags" ]; then
56
- echo "$tags"
57
- else
58
- echo "No checkpoint tags found"
59
- fi
60
-
61
- echo ""
62
-
63
- # List checkpoint branches
64
- echo -e "${YELLOW}Checkpoint Branches:${NC}"
65
- local branches=$(git branch -a | grep "checkpoint/" | sed 's/^[ *]*//')
66
- if [ -n "$branches" ]; then
67
- echo "$branches"
68
- else
69
- echo "No checkpoint branches found"
70
- fi
71
-
72
- echo ""
73
-
74
- # List checkpoint files
75
- if [ -d "$CHECKPOINT_DIR" ]; then
76
- echo -e "${YELLOW}Recent Checkpoint Files:${NC}"
77
- find "$CHECKPOINT_DIR" -name "*.json" -type f -printf "%T@ %p\n" | \
78
- sort -rn | head -10 | cut -d' ' -f2- | xargs -I {} basename {}
79
- fi
80
- }
81
-
82
- # Show checkpoint details
83
- function show_checkpoint() {
84
- local checkpoint_id="$1"
85
-
86
- echo -e "${BLUE}📍 Checkpoint Details: $checkpoint_id${NC}"
87
- echo ""
88
-
89
- # Check if it's a tag
90
- if git tag -l "$checkpoint_id" | grep -q "$checkpoint_id"; then
91
- echo -e "${YELLOW}Type:${NC} Git Tag"
92
- echo -e "${YELLOW}Commit:${NC} $(git rev-list -n 1 "$checkpoint_id")"
93
- echo -e "${YELLOW}Date:${NC} $(git log -1 --format=%ai "$checkpoint_id")"
94
- echo -e "${YELLOW}Message:${NC}"
95
- git log -1 --format=%B "$checkpoint_id" | sed 's/^/ /'
96
- echo ""
97
- echo -e "${YELLOW}Files changed:${NC}"
98
- git diff-tree --no-commit-id --name-status -r "$checkpoint_id" | sed 's/^/ /'
99
- # Check if it's a branch
100
- elif git branch -a | grep -q "$checkpoint_id"; then
101
- echo -e "${YELLOW}Type:${NC} Git Branch"
102
- echo -e "${YELLOW}Latest commit:${NC}"
103
- git log -1 --oneline "$checkpoint_id"
104
- else
105
- echo -e "${RED}❌ Checkpoint not found: $checkpoint_id${NC}"
106
- exit 1
107
- fi
108
- }
109
-
110
- # Rollback to checkpoint
111
- function rollback_checkpoint() {
112
- local checkpoint_id="$1"
113
- local mode="$2"
114
-
115
- echo -e "${YELLOW}🔄 Rolling back to checkpoint: $checkpoint_id${NC}"
116
- echo ""
117
-
118
- # Verify checkpoint exists
119
- if ! git tag -l "$checkpoint_id" | grep -q "$checkpoint_id" && \
120
- ! git branch -a | grep -q "$checkpoint_id"; then
121
- echo -e "${RED}❌ Checkpoint not found: $checkpoint_id${NC}"
122
- exit 1
123
- fi
124
-
125
- # Create backup before rollback
126
- local backup_name="backup-$(date +%Y%m%d-%H%M%S)"
127
- echo "Creating backup: $backup_name"
128
- git tag "$backup_name" -m "Backup before rollback to $checkpoint_id"
129
-
130
- case "$mode" in
131
- "--hard")
132
- echo -e "${RED}âš ī¸ Performing hard reset (destructive)${NC}"
133
- git reset --hard "$checkpoint_id"
134
- echo -e "${GREEN}✅ Rolled back to $checkpoint_id (hard reset)${NC}"
135
- ;;
136
- "--branch")
137
- local branch_name="rollback-$checkpoint_id-$(date +%Y%m%d-%H%M%S)"
138
- echo "Creating new branch: $branch_name"
139
- git checkout -b "$branch_name" "$checkpoint_id"
140
- echo -e "${GREEN}✅ Created branch $branch_name from $checkpoint_id${NC}"
141
- ;;
142
- "--stash"|*)
143
- echo "Stashing current changes..."
144
- git stash push -m "Stash before rollback to $checkpoint_id"
145
- git reset --soft "$checkpoint_id"
146
- echo -e "${GREEN}✅ Rolled back to $checkpoint_id (soft reset)${NC}"
147
- echo "Your changes are stashed. Use 'git stash pop' to restore them."
148
- ;;
149
- esac
150
- }
151
-
152
- # Show diff since checkpoint
153
- function diff_checkpoint() {
154
- local checkpoint_id="$1"
155
-
156
- echo -e "${BLUE}📊 Changes since checkpoint: $checkpoint_id${NC}"
157
- echo ""
158
-
159
- if git tag -l "$checkpoint_id" | grep -q "$checkpoint_id"; then
160
- git diff "$checkpoint_id"
161
- elif git branch -a | grep -q "$checkpoint_id"; then
162
- git diff "$checkpoint_id"
163
- else
164
- echo -e "${RED}❌ Checkpoint not found: $checkpoint_id${NC}"
165
- exit 1
166
- fi
167
- }
168
-
169
- # Clean old checkpoints
170
- function clean_checkpoints() {
171
- local days=${1:-7}
172
-
173
- echo -e "${YELLOW}🧹 Cleaning checkpoints older than $days days...${NC}"
174
- echo ""
175
-
176
- # Clean old checkpoint files
177
- if [ -d "$CHECKPOINT_DIR" ]; then
178
- find "$CHECKPOINT_DIR" -name "*.json" -type f -mtime +$days -delete
179
- echo "✅ Cleaned old checkpoint files"
180
- fi
181
-
182
- # List old tags (but don't delete automatically)
183
- echo ""
184
- echo "Old checkpoint tags (manual deletion required):"
185
- git tag -l 'checkpoint-*' --sort=-creatordate | tail -n +50 || echo "No old tags found"
186
- }
187
-
188
- # Show session summary
189
- function show_summary() {
190
- echo -e "${BLUE}📊 Session Summary${NC}"
191
- echo ""
192
-
193
- # Find most recent session summary
194
- if [ -d "$CHECKPOINT_DIR" ]; then
195
- local latest_summary=$(find "$CHECKPOINT_DIR" -name "summary-*.md" -type f -printf "%T@ %p\n" | \
196
- sort -rn | head -1 | cut -d' ' -f2-)
197
-
198
- if [ -n "$latest_summary" ]; then
199
- echo -e "${YELLOW}Latest session summary:${NC}"
200
- cat "$latest_summary"
201
- else
202
- echo "No session summaries found"
203
- fi
204
- fi
205
- }
206
-
207
- # Main command handling
208
- case "$1" in
209
- list)
210
- list_checkpoints
211
- ;;
212
- show)
213
- if [ -z "$2" ]; then
214
- echo -e "${RED}Error: Please specify a checkpoint ID${NC}"
215
- show_help
216
- exit 1
217
- fi
218
- show_checkpoint "$2"
219
- ;;
220
- rollback)
221
- if [ -z "$2" ]; then
222
- echo -e "${RED}Error: Please specify a checkpoint ID${NC}"
223
- show_help
224
- exit 1
225
- fi
226
- rollback_checkpoint "$2" "$3"
227
- ;;
228
- diff)
229
- if [ -z "$2" ]; then
230
- echo -e "${RED}Error: Please specify a checkpoint ID${NC}"
231
- show_help
232
- exit 1
233
- fi
234
- diff_checkpoint "$2"
235
- ;;
236
- clean)
237
- clean_checkpoints "$2"
238
- ;;
239
- summary)
240
- show_summary
241
- ;;
242
- help|--help|-h)
243
- show_help
244
- ;;
245
- *)
246
- echo -e "${RED}Error: Unknown command: $1${NC}"
247
- echo ""
248
- show_help
249
- exit 1
250
- ;;
251
- esac
@@ -1,106 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- /**
4
- * Safe GitHub CLI Helper
5
- * Prevents timeout issues when using gh commands with special characters
6
- *
7
- * Usage:
8
- * ./github-safe.js issue comment 123 "Message with `backticks`"
9
- * ./github-safe.js pr create --title "Title" --body "Complex body"
10
- */
11
-
12
- import { execSync } from 'child_process';
13
- import { writeFileSync, unlinkSync } from 'fs';
14
- import { tmpdir } from 'os';
15
- import { join } from 'path';
16
- import { randomBytes } from 'crypto';
17
-
18
- const args = process.argv.slice(2);
19
-
20
- if (args.length < 2) {
21
- console.log(`
22
- Safe GitHub CLI Helper
23
-
24
- Usage:
25
- ./github-safe.js issue comment <number> <body>
26
- ./github-safe.js pr comment <number> <body>
27
- ./github-safe.js issue create --title <title> --body <body>
28
- ./github-safe.js pr create --title <title> --body <body>
29
-
30
- This helper prevents timeout issues with special characters like:
31
- - Backticks in code examples
32
- - Command substitution \$(...)
33
- - Directory paths
34
- - Special shell characters
35
- `);
36
- process.exit(1);
37
- }
38
-
39
- const [command, subcommand, ...restArgs] = args;
40
-
41
- // Handle commands that need body content
42
- if ((command === 'issue' || command === 'pr') &&
43
- (subcommand === 'comment' || subcommand === 'create')) {
44
-
45
- let bodyIndex = -1;
46
- let body = '';
47
-
48
- if (subcommand === 'comment' && restArgs.length >= 2) {
49
- // Simple format: github-safe.js issue comment 123 "body"
50
- body = restArgs[1];
51
- bodyIndex = 1;
52
- } else {
53
- // Flag format: --body "content"
54
- bodyIndex = restArgs.indexOf('--body');
55
- if (bodyIndex !== -1 && bodyIndex < restArgs.length - 1) {
56
- body = restArgs[bodyIndex + 1];
57
- }
58
- }
59
-
60
- if (body) {
61
- // Use temporary file for body content
62
- const tmpFile = join(tmpdir(), `gh-body-${randomBytes(8).toString('hex')}.tmp`);
63
-
64
- try {
65
- writeFileSync(tmpFile, body, 'utf8');
66
-
67
- // Build new command with --body-file
68
- const newArgs = [...restArgs];
69
- if (subcommand === 'comment' && bodyIndex === 1) {
70
- // Replace body with --body-file
71
- newArgs[1] = '--body-file';
72
- newArgs.push(tmpFile);
73
- } else if (bodyIndex !== -1) {
74
- // Replace --body with --body-file
75
- newArgs[bodyIndex] = '--body-file';
76
- newArgs[bodyIndex + 1] = tmpFile;
77
- }
78
-
79
- // Execute safely
80
- const ghCommand = `gh ${command} ${subcommand} ${newArgs.join(' ')}`;
81
- console.log(`Executing: ${ghCommand}`);
82
-
83
- const result = execSync(ghCommand, {
84
- stdio: 'inherit',
85
- timeout: 30000 // 30 second timeout
86
- });
87
-
88
- } catch (error) {
89
- console.error('Error:', error.message);
90
- process.exit(1);
91
- } finally {
92
- // Clean up
93
- try {
94
- unlinkSync(tmpFile);
95
- } catch (e) {
96
- // Ignore cleanup errors
97
- }
98
- }
99
- } else {
100
- // No body content, execute normally
101
- execSync(`gh ${args.join(' ')}`, { stdio: 'inherit' });
102
- }
103
- } else {
104
- // Other commands, execute normally
105
- execSync(`gh ${args.join(' ')}`, { stdio: 'inherit' });
106
- }
@@ -1,28 +0,0 @@
1
- #!/bin/bash
2
- # Setup GitHub integration for Claude Flow
3
-
4
- echo "🔗 Setting up GitHub integration..."
5
-
6
- # Check for gh CLI
7
- if ! command -v gh &> /dev/null; then
8
- echo "âš ī¸ GitHub CLI (gh) not found"
9
- echo "Install from: https://cli.github.com/"
10
- echo "Continuing without GitHub features..."
11
- else
12
- echo "✅ GitHub CLI found"
13
-
14
- # Check auth status
15
- if gh auth status &> /dev/null; then
16
- echo "✅ GitHub authentication active"
17
- else
18
- echo "âš ī¸ Not authenticated with GitHub"
19
- echo "Run: gh auth login"
20
- fi
21
- fi
22
-
23
- echo ""
24
- echo "đŸ“Ļ GitHub swarm commands available:"
25
- echo " - npx claude-flow github swarm"
26
- echo " - npx claude-flow repo analyze"
27
- echo " - npx claude-flow pr enhance"
28
- echo " - npx claude-flow issue triage"
@@ -1,19 +0,0 @@
1
- #!/bin/bash
2
- # Quick start guide for Claude Flow
3
-
4
- echo "🚀 Claude Flow Quick Start"
5
- echo "=========================="
6
- echo ""
7
- echo "1. Initialize a swarm:"
8
- echo " npx claude-flow swarm init --topology hierarchical"
9
- echo ""
10
- echo "2. Spawn agents:"
11
- echo " npx claude-flow agent spawn --type coder --name "API Developer""
12
- echo ""
13
- echo "3. Orchestrate tasks:"
14
- echo " npx claude-flow task orchestrate --task "Build REST API""
15
- echo ""
16
- echo "4. Monitor progress:"
17
- echo " npx claude-flow swarm monitor"
18
- echo ""
19
- echo "📚 For more examples, see .claude/commands/"
@@ -1,18 +0,0 @@
1
- #!/bin/bash
2
- # Setup MCP server for Claude Flow
3
-
4
- echo "🚀 Setting up Claude Flow MCP server..."
5
-
6
- # Check if claude command exists
7
- if ! command -v claude &> /dev/null; then
8
- echo "❌ Error: Claude Code CLI not found"
9
- echo "Please install Claude Code first"
10
- exit 1
11
- fi
12
-
13
- # Add MCP server
14
- echo "đŸ“Ļ Adding Claude Flow MCP server..."
15
- claude mcp add claude-flow npx claude-flow mcp start
16
-
17
- echo "✅ MCP server setup complete!"
18
- echo "đŸŽ¯ You can now use mcp__claude-flow__ tools in Claude Code"
@@ -1,179 +0,0 @@
1
- #!/bin/bash
2
- # Standard checkpoint hook functions for Claude settings.json (without GitHub features)
3
-
4
- # Function to handle pre-edit checkpoints
5
- pre_edit_checkpoint() {
6
- local tool_input="$1"
7
- local file=$(echo "$tool_input" | jq -r '.file_path // empty')
8
-
9
- if [ -n "$file" ]; then
10
- local checkpoint_branch="checkpoint/pre-edit-$(date +%Y%m%d-%H%M%S)"
11
- local current_branch=$(git branch --show-current)
12
-
13
- # Create checkpoint
14
- git add -A
15
- git stash push -m "Pre-edit checkpoint for $file" >/dev/null 2>&1
16
- git branch "$checkpoint_branch"
17
-
18
- # Store metadata
19
- mkdir -p .claude/checkpoints
20
- cat > ".claude/checkpoints/$(date +%s).json" <<EOF
21
- {
22
- "branch": "$checkpoint_branch",
23
- "file": "$file",
24
- "timestamp": "$(date -u +%Y-%m-%dT%H:%M:%SZ)",
25
- "type": "pre-edit",
26
- "original_branch": "$current_branch"
27
- }
28
- EOF
29
-
30
- # Restore working directory
31
- git stash pop --quiet >/dev/null 2>&1 || true
32
-
33
- echo "✅ Created checkpoint: $checkpoint_branch for $file"
34
- fi
35
- }
36
-
37
- # Function to handle post-edit checkpoints
38
- post_edit_checkpoint() {
39
- local tool_input="$1"
40
- local file=$(echo "$tool_input" | jq -r '.file_path // empty')
41
-
42
- if [ -n "$file" ] && [ -f "$file" ]; then
43
- # Check if file was modified - first check if file is tracked
44
- if ! git ls-files --error-unmatch "$file" >/dev/null 2>&1; then
45
- # File is not tracked, add it first
46
- git add "$file"
47
- fi
48
-
49
- # Now check if there are changes
50
- if git diff --cached --quiet "$file" 2>/dev/null && git diff --quiet "$file" 2>/dev/null; then
51
- echo "â„šī¸ No changes to checkpoint for $file"
52
- else
53
- local tag_name="checkpoint-$(date +%Y%m%d-%H%M%S)"
54
- local current_branch=$(git branch --show-current)
55
-
56
- # Create commit
57
- git add "$file"
58
- if git commit -m "🔖 Checkpoint: Edit $file
59
-
60
- Automatic checkpoint created by Claude
61
- - File: $file
62
- - Branch: $current_branch
63
- - Timestamp: $(date -u +%Y-%m-%dT%H:%M:%SZ)
64
-
65
- [Auto-checkpoint]" --quiet; then
66
- # Create tag only if commit succeeded
67
- git tag -a "$tag_name" -m "Checkpoint after editing $file"
68
-
69
- # Store metadata
70
- mkdir -p .claude/checkpoints
71
- local diff_stats=$(git diff HEAD~1 --stat | tr '\n' ' ' | sed 's/"/\"/g')
72
- cat > ".claude/checkpoints/$(date +%s).json" <<EOF
73
- {
74
- "tag": "$tag_name",
75
- "file": "$file",
76
- "timestamp": "$(date -u +%Y-%m-%dT%H:%M:%SZ)",
77
- "type": "post-edit",
78
- "branch": "$current_branch",
79
- "diff_summary": "$diff_stats"
80
- }
81
- EOF
82
-
83
- echo "✅ Created checkpoint: $tag_name for $file"
84
- else
85
- echo "â„šī¸ No commit created (no changes or commit failed)"
86
- fi
87
- fi
88
- fi
89
- }
90
-
91
- # Function to handle task checkpoints
92
- task_checkpoint() {
93
- local user_prompt="$1"
94
- local task=$(echo "$user_prompt" | head -c 100 | tr '\n' ' ')
95
-
96
- if [ -n "$task" ]; then
97
- local checkpoint_name="task-$(date +%Y%m%d-%H%M%S)"
98
-
99
- # Commit current state
100
- git add -A
101
- git commit -m "🔖 Task checkpoint: $task..." --quiet || true
102
-
103
- # Store metadata
104
- mkdir -p .claude/checkpoints
105
- cat > ".claude/checkpoints/task-$(date +%s).json" <<EOF
106
- {
107
- "checkpoint": "$checkpoint_name",
108
- "task": "$task",
109
- "timestamp": "$(date -u +%Y-%m-%dT%H:%M:%SZ)",
110
- "commit": "$(git rev-parse HEAD)"
111
- }
112
- EOF
113
-
114
- echo "✅ Created task checkpoint: $checkpoint_name"
115
- fi
116
- }
117
-
118
- # Function to handle session end
119
- session_end_checkpoint() {
120
- local session_id="session-$(date +%Y%m%d-%H%M%S)"
121
- local summary_file=".claude/checkpoints/summary-$session_id.md"
122
-
123
- mkdir -p .claude/checkpoints
124
-
125
- # Create summary
126
- cat > "$summary_file" <<EOF
127
- # Session Summary - $(date +'%Y-%m-%d %H:%M:%S')
128
-
129
- ## Checkpoints Created
130
- $(find .claude/checkpoints -name '*.json' -mtime -1 -exec basename {} \; | sort)
131
-
132
- ## Files Modified
133
- $(git diff --name-only $(git log --format=%H -n 1 --before="1 hour ago" 2>/dev/null) 2>/dev/null || echo "No files tracked")
134
-
135
- ## Recent Commits
136
- $(git log --oneline -10 --grep="Checkpoint" || echo "No checkpoint commits")
137
-
138
- ## Rollback Instructions
139
- To rollback to a specific checkpoint:
140
- \`\`\`bash
141
- # List all checkpoints
142
- git tag -l 'checkpoint-*' | sort -r
143
-
144
- # Rollback to a checkpoint
145
- git checkout checkpoint-YYYYMMDD-HHMMSS
146
-
147
- # Or reset to a checkpoint (destructive)
148
- git reset --hard checkpoint-YYYYMMDD-HHMMSS
149
- \`\`\`
150
- EOF
151
-
152
- # Create final checkpoint
153
- git add -A
154
- git commit -m "🏁 Session end checkpoint: $session_id" --quiet || true
155
- git tag -a "session-end-$session_id" -m "End of Claude session"
156
-
157
- echo "✅ Session summary saved to: $summary_file"
158
- echo "📌 Final checkpoint: session-end-$session_id"
159
- }
160
-
161
- # Main entry point
162
- case "$1" in
163
- pre-edit)
164
- pre_edit_checkpoint "$2"
165
- ;;
166
- post-edit)
167
- post_edit_checkpoint "$2"
168
- ;;
169
- task)
170
- task_checkpoint "$2"
171
- ;;
172
- session-end)
173
- session_end_checkpoint
174
- ;;
175
- *)
176
- echo "Usage: $0 {pre-edit|post-edit|task|session-end} [input]"
177
- exit 1
178
- ;;
179
- esac