agent-pipeline 0.1.0 → 0.1.2
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/CLAUDE.md +4 -3
- package/{license → LICENSE} +1 -1
- package/README.md +120 -55
- package/dist/cli/commands/agent/info.js +1 -1
- package/dist/cli/commands/agent/info.js.map +1 -1
- package/dist/cli/commands/agent/list.js +1 -1
- package/dist/cli/commands/agent/list.js.map +1 -1
- package/dist/cli/commands/agent/pull.d.ts +1 -0
- package/dist/cli/commands/agent/pull.d.ts.map +1 -1
- package/dist/cli/commands/agent/pull.js +67 -44
- package/dist/cli/commands/agent/pull.js.map +1 -1
- package/dist/cli/commands/cleanup.d.ts +4 -0
- package/dist/cli/commands/cleanup.d.ts.map +1 -1
- package/dist/cli/commands/cleanup.js +197 -37
- package/dist/cli/commands/cleanup.js.map +1 -1
- package/dist/cli/commands/history.d.ts.map +1 -1
- package/dist/cli/commands/history.js +3 -22
- package/dist/cli/commands/history.js.map +1 -1
- package/dist/cli/commands/hooks.d.ts +10 -0
- package/dist/cli/commands/hooks.d.ts.map +1 -0
- package/dist/cli/commands/hooks.js +88 -0
- package/dist/cli/commands/hooks.js.map +1 -0
- package/dist/cli/commands/init.d.ts +1 -6
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +169 -88
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/loop-context.d.ts +2 -0
- package/dist/cli/commands/loop-context.d.ts.map +1 -0
- package/dist/cli/commands/loop-context.js +88 -0
- package/dist/cli/commands/loop-context.js.map +1 -0
- package/dist/cli/commands/pipeline/create.d.ts.map +1 -1
- package/dist/cli/commands/pipeline/create.js +156 -68
- package/dist/cli/commands/pipeline/create.js.map +1 -1
- package/dist/cli/commands/run.d.ts +1 -1
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +29 -5
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/schema.d.ts +9 -0
- package/dist/cli/commands/schema.d.ts.map +1 -0
- package/dist/cli/commands/schema.js +541 -0
- package/dist/cli/commands/schema.js.map +1 -0
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +0 -6
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/help/index.d.ts +6 -0
- package/dist/cli/help/index.d.ts.map +1 -0
- package/dist/cli/help/index.js +538 -0
- package/dist/cli/help/index.js.map +1 -0
- package/dist/cli/help/types.d.ts +22 -0
- package/dist/cli/help/types.d.ts.map +1 -0
- package/dist/cli/help/types.js +2 -0
- package/dist/cli/help/types.js.map +1 -0
- package/dist/cli/hooks.d.ts +5 -1
- package/dist/cli/hooks.d.ts.map +1 -1
- package/dist/cli/hooks.js +106 -12
- package/dist/cli/hooks.js.map +1 -1
- package/dist/cli/templates/agents/code-review-agents/code-reviewer.md +46 -0
- package/dist/cli/templates/agents/code-review-agents/memory-doc-updater.md +189 -0
- package/dist/cli/templates/agents/code-review-agents/quality-checker.md +52 -0
- package/dist/cli/templates/agents/frontend-agents/brutalist_purist.md +563 -0
- package/dist/cli/templates/agents/frontend-agents/cyberpunk_hacker.md +824 -0
- package/dist/cli/templates/agents/frontend-agents/frontend-pipeline-ref.md +32 -0
- package/dist/cli/templates/agents/frontend-agents/indie_game_dev.md +715 -0
- package/dist/cli/templates/agents/frontend-agents/luxury_editorial.md +628 -0
- package/dist/cli/templates/agents/frontend-agents/product_owner.md +159 -0
- package/dist/cli/templates/agents/frontend-agents/retro_90s_webmaster.md +385 -0
- package/dist/cli/templates/agents/frontend-agents/showcase.md +362 -0
- package/dist/cli/templates/agents/frontend-agents/swiss_modernist.md +716 -0
- package/dist/cli/templates/agents/loop-agents/socratic-explorer.md +91 -0
- package/dist/cli/templates/instructions/handover.md +40 -0
- package/dist/cli/templates/instructions/loop.md +39 -0
- package/dist/cli/templates/pipelines/front-end-parallel-example.yml +81 -0
- package/dist/cli/templates/pipelines/loop-example.yml +25 -0
- package/dist/cli/templates/pipelines/post-commit-example.yml +49 -58
- package/dist/cli/templates/schema/pipeline-config.schema.json +400 -0
- package/dist/cli/templates/schema/pipeline-config.schema.yaml +302 -0
- package/dist/cli/utils/agent-importer.d.ts +1 -0
- package/dist/cli/utils/agent-importer.d.ts.map +1 -1
- package/dist/cli/utils/agent-importer.js +67 -0
- package/dist/cli/utils/agent-importer.js.map +1 -1
- package/dist/cli/utils/interactive-prompts.d.ts +4 -0
- package/dist/cli/utils/interactive-prompts.d.ts.map +1 -1
- package/dist/cli/utils/interactive-prompts.js +59 -13
- package/dist/cli/utils/interactive-prompts.js.map +1 -1
- package/dist/config/pipeline-loader.d.ts +4 -1
- package/dist/config/pipeline-loader.d.ts.map +1 -1
- package/dist/config/pipeline-loader.js +58 -0
- package/dist/config/pipeline-loader.js.map +1 -1
- package/dist/config/schema.d.ts +64 -35
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/core/abort-controller.d.ts +16 -0
- package/dist/core/abort-controller.d.ts.map +1 -0
- package/dist/core/abort-controller.js +52 -0
- package/dist/core/abort-controller.js.map +1 -0
- package/dist/core/agent-query-runner.d.ts +0 -1
- package/dist/core/agent-query-runner.d.ts.map +1 -1
- package/dist/core/agent-query-runner.js +0 -22
- package/dist/core/agent-query-runner.js.map +1 -1
- package/dist/core/agent-runtimes/claude-code-headless-runtime.d.ts +5 -1
- package/dist/core/agent-runtimes/claude-code-headless-runtime.d.ts.map +1 -1
- package/dist/core/agent-runtimes/claude-code-headless-runtime.js +127 -12
- package/dist/core/agent-runtimes/claude-code-headless-runtime.js.map +1 -1
- package/dist/core/agent-runtimes/claude-sdk-runtime.d.ts +0 -2
- package/dist/core/agent-runtimes/claude-sdk-runtime.d.ts.map +1 -1
- package/dist/core/agent-runtimes/claude-sdk-runtime.js +1 -22
- package/dist/core/agent-runtimes/claude-sdk-runtime.js.map +1 -1
- package/dist/core/agent-runtimes/codex-headless-runtime.d.ts +27 -0
- package/dist/core/agent-runtimes/codex-headless-runtime.d.ts.map +1 -0
- package/dist/core/agent-runtimes/codex-headless-runtime.js +623 -0
- package/dist/core/agent-runtimes/codex-headless-runtime.js.map +1 -0
- package/dist/core/agent-runtimes/openai-compatible-runtime.d.ts +17 -0
- package/dist/core/agent-runtimes/openai-compatible-runtime.d.ts.map +1 -0
- package/dist/core/agent-runtimes/openai-compatible-runtime.js +231 -0
- package/dist/core/agent-runtimes/openai-compatible-runtime.js.map +1 -0
- package/dist/core/branch-manager.d.ts +3 -1
- package/dist/core/branch-manager.d.ts.map +1 -1
- package/dist/core/branch-manager.js +11 -1
- package/dist/core/branch-manager.js.map +1 -1
- package/dist/core/git-manager.d.ts +17 -1
- package/dist/core/git-manager.d.ts.map +1 -1
- package/dist/core/git-manager.js +147 -3
- package/dist/core/git-manager.js.map +1 -1
- package/dist/core/group-execution-orchestrator.d.ts +4 -13
- package/dist/core/group-execution-orchestrator.d.ts.map +1 -1
- package/dist/core/group-execution-orchestrator.js +53 -142
- package/dist/core/group-execution-orchestrator.js.map +1 -1
- package/dist/core/handover-manager.d.ts +24 -0
- package/dist/core/handover-manager.d.ts.map +1 -0
- package/dist/core/handover-manager.js +214 -0
- package/dist/core/handover-manager.js.map +1 -0
- package/dist/core/instruction-loader.d.ts +23 -0
- package/dist/core/instruction-loader.d.ts.map +1 -0
- package/dist/core/instruction-loader.js +123 -0
- package/dist/core/instruction-loader.js.map +1 -0
- package/dist/core/loop-state-manager.d.ts +12 -7
- package/dist/core/loop-state-manager.d.ts.map +1 -1
- package/dist/core/loop-state-manager.js +49 -3
- package/dist/core/loop-state-manager.js.map +1 -1
- package/dist/core/parallel-executor.d.ts +8 -3
- package/dist/core/parallel-executor.d.ts.map +1 -1
- package/dist/core/parallel-executor.js +90 -16
- package/dist/core/parallel-executor.js.map +1 -1
- package/dist/core/pipeline-finalizer.d.ts +12 -4
- package/dist/core/pipeline-finalizer.d.ts.map +1 -1
- package/dist/core/pipeline-finalizer.js +244 -33
- package/dist/core/pipeline-finalizer.js.map +1 -1
- package/dist/core/pipeline-initializer.d.ts +13 -5
- package/dist/core/pipeline-initializer.d.ts.map +1 -1
- package/dist/core/pipeline-initializer.js +53 -25
- package/dist/core/pipeline-initializer.js.map +1 -1
- package/dist/core/pipeline-runner.d.ts +15 -1
- package/dist/core/pipeline-runner.d.ts.map +1 -1
- package/dist/core/pipeline-runner.js +434 -64
- package/dist/core/pipeline-runner.js.map +1 -1
- package/dist/core/pr-creator.d.ts +0 -1
- package/dist/core/pr-creator.d.ts.map +1 -1
- package/dist/core/pr-creator.js +12 -4
- package/dist/core/pr-creator.js.map +1 -1
- package/dist/core/stage-executor.d.ts +19 -11
- package/dist/core/stage-executor.d.ts.map +1 -1
- package/dist/core/stage-executor.js +151 -178
- package/dist/core/stage-executor.js.map +1 -1
- package/dist/core/types/agent-runtime.d.ts +3 -2
- package/dist/core/types/agent-runtime.d.ts.map +1 -1
- package/dist/core/worktree-manager.d.ts +21 -0
- package/dist/core/worktree-manager.d.ts.map +1 -0
- package/dist/core/worktree-manager.js +133 -0
- package/dist/core/worktree-manager.js.map +1 -0
- package/dist/index.js +147 -112
- package/dist/index.js.map +1 -1
- package/dist/notifications/notification-manager.d.ts +1 -0
- package/dist/notifications/notification-manager.d.ts.map +1 -1
- package/dist/notifications/notification-manager.js +17 -3
- package/dist/notifications/notification-manager.js.map +1 -1
- package/dist/notifications/notifiers/local-notifier.d.ts.map +1 -1
- package/dist/notifications/notifiers/local-notifier.js +5 -2
- package/dist/notifications/notifiers/local-notifier.js.map +1 -1
- package/dist/notifications/notifiers/slack-notifier.d.ts.map +1 -1
- package/dist/notifications/notifiers/slack-notifier.js +39 -8
- package/dist/notifications/notifiers/slack-notifier.js.map +1 -1
- package/dist/notifications/types.d.ts +1 -1
- package/dist/notifications/types.d.ts.map +1 -1
- package/dist/ui/components/execution-group.d.ts.map +1 -1
- package/dist/ui/components/execution-group.js +1 -1
- package/dist/ui/components/execution-group.js.map +1 -1
- package/dist/ui/components/interactive-summary.d.ts +9 -0
- package/dist/ui/components/interactive-summary.d.ts.map +1 -0
- package/dist/ui/components/interactive-summary.js +166 -0
- package/dist/ui/components/interactive-summary.js.map +1 -0
- package/dist/ui/components/keyboard-hints.d.ts +12 -0
- package/dist/ui/components/keyboard-hints.d.ts.map +1 -0
- package/dist/ui/components/keyboard-hints.js +13 -0
- package/dist/ui/components/keyboard-hints.js.map +1 -0
- package/dist/ui/components/live-timer.d.ts +9 -0
- package/dist/ui/components/live-timer.d.ts.map +1 -0
- package/dist/ui/components/live-timer.js +25 -0
- package/dist/ui/components/live-timer.js.map +1 -0
- package/dist/ui/components/loop-iteration-history.d.ts +8 -0
- package/dist/ui/components/loop-iteration-history.d.ts.map +1 -0
- package/dist/ui/components/loop-iteration-history.js +106 -0
- package/dist/ui/components/loop-iteration-history.js.map +1 -0
- package/dist/ui/components/loop-session-summary.d.ts +9 -0
- package/dist/ui/components/loop-session-summary.d.ts.map +1 -0
- package/dist/ui/components/loop-session-summary.js +39 -0
- package/dist/ui/components/loop-session-summary.js.map +1 -0
- package/dist/ui/components/stage-row.d.ts +0 -1
- package/dist/ui/components/stage-row.d.ts.map +1 -1
- package/dist/ui/components/stage-row.js +5 -15
- package/dist/ui/components/stage-row.js.map +1 -1
- package/dist/ui/components/status-badge.d.ts.map +1 -1
- package/dist/ui/components/status-badge.js +1 -0
- package/dist/ui/components/status-badge.js.map +1 -1
- package/dist/ui/pipeline-ui.d.ts +1 -0
- package/dist/ui/pipeline-ui.d.ts.map +1 -1
- package/dist/ui/pipeline-ui.js +22 -18
- package/dist/ui/pipeline-ui.js.map +1 -1
- package/dist/utils/error-factory.d.ts.map +1 -1
- package/dist/utils/error-factory.js +10 -2
- package/dist/utils/error-factory.js.map +1 -1
- package/dist/utils/pipeline-formatter.d.ts +8 -2
- package/dist/utils/pipeline-formatter.d.ts.map +1 -1
- package/dist/utils/pipeline-formatter.js +30 -26
- package/dist/utils/pipeline-formatter.js.map +1 -1
- package/dist/utils/pipeline-logger.d.ts +19 -0
- package/dist/utils/pipeline-logger.d.ts.map +1 -0
- package/dist/utils/pipeline-logger.js +80 -0
- package/dist/utils/pipeline-logger.js.map +1 -0
- package/dist/utils/platform-opener.d.ts +4 -0
- package/dist/utils/platform-opener.d.ts.map +1 -0
- package/dist/utils/platform-opener.js +52 -0
- package/dist/utils/platform-opener.js.map +1 -0
- package/dist/validators/agent-validator.d.ts +10 -0
- package/dist/validators/agent-validator.d.ts.map +1 -0
- package/dist/validators/agent-validator.js +87 -0
- package/dist/validators/agent-validator.js.map +1 -0
- package/dist/validators/dag-validator.d.ts +9 -0
- package/dist/validators/dag-validator.d.ts.map +1 -0
- package/dist/validators/dag-validator.js +51 -0
- package/dist/validators/dag-validator.js.map +1 -0
- package/dist/validators/environment-validator.d.ts +9 -0
- package/dist/validators/environment-validator.d.ts.map +1 -0
- package/dist/validators/environment-validator.js +35 -0
- package/dist/validators/environment-validator.js.map +1 -0
- package/dist/validators/execution-validator.d.ts +8 -0
- package/dist/validators/execution-validator.d.ts.map +1 -0
- package/dist/validators/execution-validator.js +51 -0
- package/dist/validators/execution-validator.js.map +1 -0
- package/dist/validators/git-validator.d.ts +13 -0
- package/dist/validators/git-validator.d.ts.map +1 -0
- package/dist/validators/git-validator.js +135 -0
- package/dist/validators/git-validator.js.map +1 -0
- package/dist/validators/notification-validator.d.ts +8 -0
- package/dist/validators/notification-validator.d.ts.map +1 -0
- package/dist/validators/notification-validator.js +27 -0
- package/dist/validators/notification-validator.js.map +1 -0
- package/dist/validators/pipeline-validator.d.ts +3 -26
- package/dist/validators/pipeline-validator.d.ts.map +1 -1
- package/dist/validators/pipeline-validator.js +5 -515
- package/dist/validators/pipeline-validator.js.map +1 -1
- package/dist/validators/retry-validator.d.ts +9 -0
- package/dist/validators/retry-validator.d.ts.map +1 -0
- package/dist/validators/retry-validator.js +34 -0
- package/dist/validators/retry-validator.js.map +1 -0
- package/dist/validators/runtime-validator.d.ts +9 -0
- package/dist/validators/runtime-validator.d.ts.map +1 -0
- package/dist/validators/runtime-validator.js +82 -0
- package/dist/validators/runtime-validator.js.map +1 -0
- package/dist/validators/structure-validator.d.ts +8 -0
- package/dist/validators/structure-validator.d.ts.map +1 -0
- package/dist/validators/structure-validator.js +39 -0
- package/dist/validators/structure-validator.js.map +1 -0
- package/dist/validators/types.d.ts +19 -0
- package/dist/validators/types.d.ts.map +1 -0
- package/dist/validators/types.js +2 -0
- package/dist/validators/types.js.map +1 -0
- package/dist/validators/validation-orchestrator.d.ts +9 -0
- package/dist/validators/validation-orchestrator.d.ts.map +1 -0
- package/dist/validators/validation-orchestrator.js +43 -0
- package/dist/validators/validation-orchestrator.js.map +1 -0
- package/package.json +18 -12
- package/dist/cli/commands/install.d.ts +0 -2
- package/dist/cli/commands/install.d.ts.map +0 -1
- package/dist/cli/commands/install.js +0 -15
- package/dist/cli/commands/install.js.map +0 -1
- package/dist/cli/commands/uninstall.d.ts +0 -2
- package/dist/cli/commands/uninstall.d.ts.map +0 -1
- package/dist/cli/commands/uninstall.js +0 -6
- package/dist/cli/commands/uninstall.js.map +0 -1
- package/dist/cli/templates/agents/cleanup-reporter.md +0 -107
- package/dist/cli/templates/agents/code-reducer.md +0 -51
- package/dist/cli/templates/agents/code-reviewer.md +0 -34
- package/dist/cli/templates/agents/context-reducer.md +0 -94
- package/dist/cli/templates/agents/dependency-auditor.md +0 -127
- package/dist/cli/templates/agents/detective-empath.md +0 -26
- package/dist/cli/templates/agents/detective-linguist.md +0 -26
- package/dist/cli/templates/agents/detective-logician.md +0 -26
- package/dist/cli/templates/agents/detective-skeptic.md +0 -26
- package/dist/cli/templates/agents/detective-statistician.md +0 -26
- package/dist/cli/templates/agents/doc-updater.md +0 -30
- package/dist/cli/templates/agents/judge.md +0 -27
- package/dist/cli/templates/agents/memory-updater.md +0 -72
- package/dist/cli/templates/agents/quality-checker.md +0 -32
- package/dist/cli/templates/agents/security-auditor.md +0 -32
- package/dist/cli/templates/agents/storyteller.md +0 -26
- package/dist/cli/templates/agents/summary.md +0 -32
- package/dist/cli/templates/agents/synthesizer.md +0 -26
- package/dist/cli/templates/pipelines/large-pipeline-example.yml +0 -178
- package/dist/cli/templates/pipelines/post-merge-example.yml +0 -78
- package/dist/cli/templates/pipelines/pre-commit-example.yml +0 -41
- package/dist/cli/templates/pipelines/pre-push-example.yml +0 -51
- package/dist/cli/templates/pipelines/test-pipeline.yml +0 -90
- package/dist/config/project-config-loader.d.ts +0 -11
- package/dist/config/project-config-loader.d.ts.map +0 -1
- package/dist/config/project-config-loader.js +0 -100
- package/dist/config/project-config-loader.js.map +0 -1
- package/dist/core/condition-evaluator.d.ts +0 -16
- package/dist/core/condition-evaluator.d.ts.map +0 -1
- package/dist/core/condition-evaluator.js +0 -121
- package/dist/core/condition-evaluator.js.map +0 -1
- package/dist/core/context-reducer.d.ts +0 -15
- package/dist/core/context-reducer.d.ts.map +0 -1
- package/dist/core/context-reducer.js +0 -224
- package/dist/core/context-reducer.js.map +0 -1
- package/dist/core/output-storage-manager.d.ts +0 -14
- package/dist/core/output-storage-manager.d.ts.map +0 -1
- package/dist/core/output-storage-manager.js +0 -68
- package/dist/core/output-storage-manager.js.map +0 -1
- package/dist/core/output-tool-builder.d.ts +0 -6
- package/dist/core/output-tool-builder.d.ts.map +0 -1
- package/dist/core/output-tool-builder.js +0 -50
- package/dist/core/output-tool-builder.js.map +0 -1
package/dist/cli/hooks.js
CHANGED
|
@@ -31,11 +31,16 @@ export class HookInstaller {
|
|
|
31
31
|
console.log(` Pipeline: ${pipelineName}`);
|
|
32
32
|
console.log(` Hook: .git/hooks/${hookType}`);
|
|
33
33
|
}
|
|
34
|
-
async uninstall(
|
|
35
|
-
const
|
|
36
|
-
?
|
|
34
|
+
async uninstall(hookTypeOrOptions) {
|
|
35
|
+
const options = typeof hookTypeOrOptions === 'string'
|
|
36
|
+
? { hookType: hookTypeOrOptions }
|
|
37
|
+
: hookTypeOrOptions ?? {};
|
|
38
|
+
const hookTypes = options.hookType
|
|
39
|
+
? [options.hookType]
|
|
37
40
|
: ['pre-commit', 'post-commit', 'pre-push', 'post-merge'];
|
|
38
41
|
let uninstalledCount = 0;
|
|
42
|
+
const pipelineName = options.pipelineName;
|
|
43
|
+
const removeAll = options.removeAll ?? !pipelineName;
|
|
39
44
|
for (const type of hookTypes) {
|
|
40
45
|
const hookPath = path.join(this.repoPath, '.git', 'hooks', type);
|
|
41
46
|
try {
|
|
@@ -44,11 +49,20 @@ export class HookInstaller {
|
|
|
44
49
|
const filtered = [];
|
|
45
50
|
let inPipelineSection = false;
|
|
46
51
|
let blankLineCount = 0;
|
|
52
|
+
let removedSection = false;
|
|
47
53
|
for (let i = 0; i < lines.length; i++) {
|
|
48
54
|
const line = lines[i];
|
|
49
55
|
if (line.includes('# Agent Pipeline')) {
|
|
50
|
-
|
|
51
|
-
|
|
56
|
+
const isTargetPipeline = pipelineName
|
|
57
|
+
? line.includes(`: ${pipelineName}`)
|
|
58
|
+
: false;
|
|
59
|
+
if (removeAll || isTargetPipeline) {
|
|
60
|
+
inPipelineSection = true;
|
|
61
|
+
blankLineCount = 0;
|
|
62
|
+
removedSection = true;
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
filtered.push(line);
|
|
52
66
|
continue;
|
|
53
67
|
}
|
|
54
68
|
if (inPipelineSection) {
|
|
@@ -67,15 +81,23 @@ export class HookInstaller {
|
|
|
67
81
|
}
|
|
68
82
|
filtered.push(line);
|
|
69
83
|
}
|
|
84
|
+
if (!removedSection) {
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
70
87
|
const newContent = filtered.join('\n').trim();
|
|
71
88
|
if (newContent === '#!/bin/bash' || !newContent) {
|
|
72
89
|
await fs.unlink(hookPath);
|
|
73
|
-
console.log(`✅ ${type} hook removed (
|
|
90
|
+
console.log(`✅ ${type} hook removed (no other hook content found)`);
|
|
74
91
|
uninstalledCount++;
|
|
75
92
|
}
|
|
76
93
|
else {
|
|
77
94
|
await fs.writeFile(hookPath, newContent, 'utf-8');
|
|
78
|
-
|
|
95
|
+
if (pipelineName) {
|
|
96
|
+
console.log(`✅ Removed ${pipelineName} from ${type} hook`);
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
console.log(`✅ Agent Pipeline section removed from ${type} hook`);
|
|
100
|
+
}
|
|
79
101
|
uninstalledCount++;
|
|
80
102
|
}
|
|
81
103
|
}
|
|
@@ -84,15 +106,87 @@ export class HookInstaller {
|
|
|
84
106
|
}
|
|
85
107
|
}
|
|
86
108
|
if (uninstalledCount === 0) {
|
|
87
|
-
|
|
109
|
+
if (pipelineName) {
|
|
110
|
+
console.log(`ℹ️ No Agent Pipeline hooks found for ${pipelineName}`);
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
console.log('ℹ️ No Agent Pipeline hooks found to uninstall');
|
|
114
|
+
}
|
|
88
115
|
}
|
|
89
116
|
}
|
|
90
117
|
generateHookScript(pipelineName) {
|
|
91
|
-
return `#
|
|
92
|
-
|
|
118
|
+
return `# Skip if last commit was created by Agent Pipeline
|
|
119
|
+
if git log -1 --pretty=%B | grep -Eq "^Agent-Pipeline: true$"; then
|
|
120
|
+
exit 0
|
|
121
|
+
fi
|
|
122
|
+
|
|
123
|
+
# Load user environment for ANTHROPIC_API_KEY if set (workaround for GUI git clients)
|
|
124
|
+
# Note: Claude Code's Keychain auth won't work from GUI apps - see docs/configuration.md
|
|
125
|
+
for profile in "$HOME/.zshenv" "$HOME/.profile"; do
|
|
126
|
+
if [ -f "$profile" ]; then
|
|
127
|
+
. "$profile" 2>/dev/null || true
|
|
128
|
+
break
|
|
129
|
+
fi
|
|
130
|
+
done
|
|
131
|
+
|
|
132
|
+
# Load repo-specific env overrides (e.g., ANTHROPIC_API_KEY)
|
|
133
|
+
if [ -f ".agent-pipeline/env" ]; then
|
|
134
|
+
. ".agent-pipeline/env" 2>/dev/null || true
|
|
135
|
+
fi
|
|
136
|
+
|
|
137
|
+
# Ensure PATH includes common locations for non-interactive hooks
|
|
138
|
+
if ! command -v npx >/dev/null 2>&1 && [ -s "$HOME/.nvm/nvm.sh" ]; then
|
|
139
|
+
. "$HOME/.nvm/nvm.sh"
|
|
140
|
+
fi
|
|
141
|
+
export PATH="/usr/local/bin:/opt/homebrew/bin:$PATH"
|
|
142
|
+
|
|
143
|
+
# Prevent overlapping runs for the same pipeline
|
|
144
|
+
lockDir=".agent-pipeline/locks"
|
|
145
|
+
lockPath="$lockDir/${pipelineName}.lock"
|
|
146
|
+
logDir=".agent-pipeline/logs"
|
|
147
|
+
logPath="$logDir/${pipelineName}.log"
|
|
148
|
+
|
|
149
|
+
mkdir -p "$lockDir"
|
|
150
|
+
mkdir -p "$logDir"
|
|
151
|
+
|
|
152
|
+
if [ -f "$lockPath/pid" ]; then
|
|
153
|
+
oldPid=$(cat "$lockPath/pid")
|
|
154
|
+
if ! kill -0 "$oldPid" 2>/dev/null; then
|
|
155
|
+
rm -rf "$lockPath"
|
|
156
|
+
fi
|
|
157
|
+
fi
|
|
158
|
+
|
|
159
|
+
if ! mkdir "$lockPath" 2>/dev/null; then
|
|
160
|
+
exit 0
|
|
161
|
+
fi
|
|
162
|
+
|
|
163
|
+
# Run Agent Pipeline in background to avoid blocking
|
|
164
|
+
if command -v agent-pipeline >/dev/null 2>&1; then
|
|
165
|
+
runner="agent-pipeline"
|
|
166
|
+
else
|
|
167
|
+
runner="npx agent-pipeline"
|
|
168
|
+
fi
|
|
169
|
+
|
|
170
|
+
# Brief delay to let git fully release index locks after commit
|
|
171
|
+
sleep 1
|
|
172
|
+
|
|
173
|
+
# Unset git env vars set by hook context - relative paths cause worktree failures
|
|
174
|
+
unset GIT_INDEX_FILE
|
|
175
|
+
unset GIT_DIR
|
|
176
|
+
unset GIT_WORK_TREE
|
|
177
|
+
unset GIT_EXEC_PATH
|
|
178
|
+
|
|
179
|
+
echo "[agent-pipeline] $(date) starting ${pipelineName}" >> "$logPath"
|
|
180
|
+
nohup $runner run ${pipelineName} --quiet >> "$logPath" 2>&1 &
|
|
181
|
+
pipelinePid=$!
|
|
182
|
+
echo "$pipelinePid" > "$lockPath/pid"
|
|
183
|
+
|
|
184
|
+
( wait "$pipelinePid"; rm -rf "$lockPath" ) >/dev/null 2>&1 &
|
|
93
185
|
|
|
94
|
-
#
|
|
95
|
-
echo "🤖 Agent Pipeline running in background (${pipelineName})"
|
|
186
|
+
# Notify user with helpful details
|
|
187
|
+
echo "🤖 Agent Pipeline running in background (${pipelineName})"
|
|
188
|
+
echo " Log: $logPath"
|
|
189
|
+
echo " Run: agent-pipeline history --last"`;
|
|
96
190
|
}
|
|
97
191
|
}
|
|
98
192
|
//# sourceMappingURL=hooks.js.map
|
package/dist/cli/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/cli/hooks.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,MAAM,OAAO,aAAa;IACJ;IAApB,YAAoB,QAAgB;QAAhB,aAAQ,GAAR,QAAQ,CAAQ;IAAG,CAAC;IAExC,KAAK,CAAC,OAAO,CAAC,YAAoB,EAAE,QAAgB;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAGrE,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,YAAY,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;QAGD,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;QAGzD,MAAM,UAAU,GAAG,qBAAqB,QAAQ,MAAM,YAAY,EAAE,CAAC;QAErE,IAAI,YAAY,EAAE,CAAC;YAEjB,IAAI,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,4CAA4C,YAAY,OAAO,QAAQ,EAAE,CAAC,CAAC;gBACvF,OAAO;YACT,CAAC;YAGD,MAAM,YAAY,GAAG,GAAG,YAAY,OAAO,UAAU,KAAK,UAAU,EAAE,CAAC;YACvE,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YAEN,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,kBAAkB,UAAU,KAAK,UAAU,EAAE,EAAE,OAAO,CAAC,CAAC;QACvF,CAAC;QAGD,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAEhC,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,iBAAiB,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,gBAAgB,YAAY,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,uBAAuB,QAAQ,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/cli/hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: code-reviewer
|
|
3
|
+
description: Reviews code for bugs, logic errors, security vulnerabilities, code quality issues, and adherence to project conventions, using confidence-based filtering to report only high-priority issues that truly matter
|
|
4
|
+
model: opus
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
You are an expert code reviewer specializing in modern software development across multiple languages and frameworks. Your primary responsibility is to review code against project guidelines in CLAUDE.md with high precision to minimize false positives.
|
|
8
|
+
|
|
9
|
+
## Review Scope
|
|
10
|
+
|
|
11
|
+
By default, review last commit `git log`. The user may specify different files or scope to review.
|
|
12
|
+
|
|
13
|
+
## Core Review Responsibilities
|
|
14
|
+
|
|
15
|
+
**Project Guidelines Compliance**: Verify adherence to explicit project rules (typically in CLAUDE.md or equivalent) including import patterns, framework conventions, language-specific style, function declarations, error handling, logging, testing practices, platform compatibility, and naming conventions.
|
|
16
|
+
|
|
17
|
+
**Bug Detection**: Identify actual bugs that will impact functionality - logic errors, null/undefined handling, race conditions, memory leaks, security vulnerabilities, and performance problems.
|
|
18
|
+
|
|
19
|
+
**Code Quality**: Evaluate significant issues like code duplication, missing critical error handling, accessibility problems, and inadequate test coverage.
|
|
20
|
+
|
|
21
|
+
## Issue Confidence Scoring
|
|
22
|
+
|
|
23
|
+
Rate each issue from 0-100:
|
|
24
|
+
|
|
25
|
+
- **0-25**: Likely false positive or pre-existing issue
|
|
26
|
+
- **26-50**: Minor nitpick not explicitly in CLAUDE.md
|
|
27
|
+
- **51-75**: Valid but low-impact issue
|
|
28
|
+
- **76-90**: Important issue requiring attention
|
|
29
|
+
- **91-100**: Critical bug or explicit CLAUDE.md violation
|
|
30
|
+
|
|
31
|
+
**Only report issues with confidence ≥ 80**
|
|
32
|
+
|
|
33
|
+
## Output Format
|
|
34
|
+
|
|
35
|
+
Start by listing what you're reviewing. For each high-confidence issue provide:
|
|
36
|
+
|
|
37
|
+
- Clear description and confidence score
|
|
38
|
+
- File path and line number
|
|
39
|
+
- Specific CLAUDE.md rule or bug explanation
|
|
40
|
+
- Concrete fix suggestion
|
|
41
|
+
|
|
42
|
+
Group issues by severity (Critical: 90-100, Important: 80-89).
|
|
43
|
+
|
|
44
|
+
If no high-confidence issues exist, confirm the code meets standards with a brief summary.
|
|
45
|
+
|
|
46
|
+
Be thorough but filter aggressively - quality over quantity. Focus on issues that truly matter.
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: doc-updater
|
|
3
|
+
description: Post work complete agent that updates memory files (CLAUDE.md, AGENTS.md) and ensures documentation stays in sync with code changes. Headless, automatic, minimal.
|
|
4
|
+
purpose: post-commit-automation
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Doc Updater Agent
|
|
8
|
+
|
|
9
|
+
**You are a documentation maintainer.** After every commit, you review what changed and update memory files and documentation accordingly. No questions. No creativity. Just accuracy and consistency.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Rules
|
|
14
|
+
|
|
15
|
+
1. **NEVER ask for clarification** — Infer from the diff
|
|
16
|
+
2. **NEVER invent information** — Only document what exists
|
|
17
|
+
3. **NEVER delete without reason** — Preserve existing documentation unless invalidated
|
|
18
|
+
4. **ALWAYS be concise** — Memory files should be scannable
|
|
19
|
+
5. **ALWAYS preserve structure** — Match existing file formats
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Files You Maintain
|
|
24
|
+
|
|
25
|
+
| File | Purpose | Update When |
|
|
26
|
+
|------|---------|-------------|
|
|
27
|
+
| `CLAUDE.md` | Project context for Claude | Architecture, patterns, or conventions change |
|
|
28
|
+
| `AGENTS.md` | Agent registry and capabilities | Agents added, removed, or modified |
|
|
29
|
+
| `README.md` | Project overview | Major features, setup, or usage changes |
|
|
30
|
+
| `CHANGELOG.md` | Version history | Every meaningful commit (optional) |
|
|
31
|
+
| `docs/*.md` | Feature documentation | Related code changes |
|
|
32
|
+
| `*reference.md` | Feature documentation | Related code changes |
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Update Logic
|
|
37
|
+
|
|
38
|
+
### CLAUDE.md
|
|
39
|
+
|
|
40
|
+
Update when commits touch:
|
|
41
|
+
- Project structure (new directories, renamed files)
|
|
42
|
+
- Core patterns (new utilities, shared code)
|
|
43
|
+
- Configuration (build, lint, environment)
|
|
44
|
+
- Dependencies (package.json, requirements.txt, etc.)
|
|
45
|
+
- Core Modules (new modules, frameworks)
|
|
46
|
+
|
|
47
|
+
**Add/update sections for:**
|
|
48
|
+
- Build commands
|
|
49
|
+
- Key file locations
|
|
50
|
+
- Architectural decisions
|
|
51
|
+
- Naming conventions
|
|
52
|
+
- Common patterns
|
|
53
|
+
- Core Components
|
|
54
|
+
|
|
55
|
+
**Format:**
|
|
56
|
+
```markdown
|
|
57
|
+
# CLAUDE.md
|
|
58
|
+
|
|
59
|
+
## Build & Run
|
|
60
|
+
[commands]
|
|
61
|
+
|
|
62
|
+
## Project Structure
|
|
63
|
+
[key directories and their purpose]
|
|
64
|
+
|
|
65
|
+
## Conventions
|
|
66
|
+
[patterns to follow]
|
|
67
|
+
|
|
68
|
+
## Key Files
|
|
69
|
+
[important files and what they do]
|
|
70
|
+
```
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
### README.md
|
|
74
|
+
|
|
75
|
+
Update when commits touch:
|
|
76
|
+
- Setup/installation process
|
|
77
|
+
- Main features or commands
|
|
78
|
+
- Usage examples
|
|
79
|
+
- Project description
|
|
80
|
+
|
|
81
|
+
**Only update sections that are invalidated.** Do not rewrite the entire README.
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
### CHANGELOG.md (if present)
|
|
86
|
+
|
|
87
|
+
Append entry for meaningful commits:
|
|
88
|
+
|
|
89
|
+
```markdown
|
|
90
|
+
## [Unreleased]
|
|
91
|
+
|
|
92
|
+
### Added
|
|
93
|
+
- [feature description]
|
|
94
|
+
|
|
95
|
+
### Changed
|
|
96
|
+
- [change description]
|
|
97
|
+
|
|
98
|
+
### Fixed
|
|
99
|
+
- [fix description]
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Skip for trivial commits (typos, formatting, comments).
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Decision Process
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
1. Parse commit diff
|
|
110
|
+
2. Categorize changes:
|
|
111
|
+
- [ ] Structure change? → Update CLAUDE.md
|
|
112
|
+
- [ ] Agent change? → Update AGENTS.md
|
|
113
|
+
- [ ] Feature change? → Update README.md / docs/
|
|
114
|
+
- [ ] Meaningful commit? → Update CHANGELOG.md
|
|
115
|
+
3. For each applicable file:
|
|
116
|
+
a. Read current content
|
|
117
|
+
b. Identify outdated sections
|
|
118
|
+
c. Apply minimal updates
|
|
119
|
+
d. Preserve formatting and tone
|
|
120
|
+
4. Output list of updated files
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## Output
|
|
126
|
+
|
|
127
|
+
After processing, output a summary:
|
|
128
|
+
|
|
129
|
+
```markdown
|
|
130
|
+
## Doc Updater Summary
|
|
131
|
+
|
|
132
|
+
**Commit:** [short hash] [commit message]
|
|
133
|
+
|
|
134
|
+
**Files Updated:**
|
|
135
|
+
- `CLAUDE.md` — Added new build command
|
|
136
|
+
- `AGENTS.md` — Registered new agent: doc-updater
|
|
137
|
+
|
|
138
|
+
**Files Unchanged:**
|
|
139
|
+
- `README.md` — No relevant changes
|
|
140
|
+
- `CHANGELOG.md` — Not present in repo
|
|
141
|
+
|
|
142
|
+
**No Action Required:**
|
|
143
|
+
- [reason, if nothing updated]
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## Examples
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
### Example 1: Build Config Changed
|
|
153
|
+
|
|
154
|
+
**Commit diff shows:** Modified `package.json` scripts
|
|
155
|
+
|
|
156
|
+
**Action:**
|
|
157
|
+
- Update `CLAUDE.md` — Refresh "Build & Run" section
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
### Example 2: Typo Fix
|
|
162
|
+
|
|
163
|
+
**Commit diff shows:** Fixed typo in `src/utils.ts` comment
|
|
164
|
+
|
|
165
|
+
**Action:**
|
|
166
|
+
- No updates needed — Trivial change
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## Anti-Patterns
|
|
171
|
+
|
|
172
|
+
❌ **Don't** add speculative documentation ("this might be used for...")
|
|
173
|
+
❌ **Don't** duplicate code as documentation
|
|
174
|
+
❌ **Don't** create files that don't exist — only update existing ones
|
|
175
|
+
❌ **Don't** change documentation tone or style
|
|
176
|
+
❌ **Don't** update unrelated sections
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## Memory File Principles
|
|
181
|
+
|
|
182
|
+
Memory files (CLAUDE.md, AGENTS.md) exist so future Claude instances have context. Write them as if:
|
|
183
|
+
- The reader has never seen this project
|
|
184
|
+
- The reader needs to be productive in 30 seconds
|
|
185
|
+
- Every line must earn its place
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
Parse commit → Identify stale docs → Apply minimal updates → Done.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: code-simplifier
|
|
3
|
+
description: A quality check and code simplifier agent
|
|
4
|
+
model: opus
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
You are an expert code simplification specialist focused on enhancing code clarity, consistency, and maintainability while preserving exact functionality. Your expertise lies in applying project-specific best practices to simplify and improve code without altering its behavior. You prioritize readable, explicit code over overly compact solutions. This is a balance that you have mastered as a result your years as an expert software engineer.
|
|
8
|
+
|
|
9
|
+
You will analyze recently modified code and apply refinements that:
|
|
10
|
+
|
|
11
|
+
1. **Preserve Functionality**: Never change what the code does - only how it does it. All original features, outputs, and behaviors must remain intact.
|
|
12
|
+
|
|
13
|
+
2. **Apply Project Standards**: Follow the established coding standards from CLAUDE.md including:
|
|
14
|
+
|
|
15
|
+
- Use ES modules with proper import sorting and extensions
|
|
16
|
+
- Prefer `function` keyword over arrow functions
|
|
17
|
+
- Use explicit return type annotations for top-level functions
|
|
18
|
+
- Follow proper React component patterns with explicit Props types
|
|
19
|
+
- Use proper error handling patterns (avoid try/catch when possible)
|
|
20
|
+
- Maintain consistent naming conventions
|
|
21
|
+
|
|
22
|
+
3. **Enhance Clarity**: Simplify code structure by:
|
|
23
|
+
|
|
24
|
+
- Reducing unnecessary complexity and nesting
|
|
25
|
+
- Eliminating redundant code and abstractions
|
|
26
|
+
- Improving readability through clear variable and function names
|
|
27
|
+
- Consolidating related logic
|
|
28
|
+
- Removing unnecessary comments that describe obvious code
|
|
29
|
+
- IMPORTANT: Avoid nested ternary operators - prefer switch statements or if/else chains for multiple conditions
|
|
30
|
+
- Choose clarity over brevity - explicit code is often better than overly compact code
|
|
31
|
+
|
|
32
|
+
4. **Maintain Balance**: Avoid over-simplification that could:
|
|
33
|
+
|
|
34
|
+
- Reduce code clarity or maintainability
|
|
35
|
+
- Create overly clever solutions that are hard to understand
|
|
36
|
+
- Combine too many concerns into single functions or components
|
|
37
|
+
- Remove helpful abstractions that improve code organization
|
|
38
|
+
- Prioritize "fewer lines" over readability (e.g., nested ternaries, dense one-liners)
|
|
39
|
+
- Make the code harder to debug or extend
|
|
40
|
+
|
|
41
|
+
5. **Focus Scope**: Only refine code that has been recently modified or touched in the current session, unless explicitly instructed to review a broader scope.
|
|
42
|
+
|
|
43
|
+
Your refinement process:
|
|
44
|
+
|
|
45
|
+
1. Identify the recently modified code sections
|
|
46
|
+
2. Analyze for opportunities to improve elegance and consistency
|
|
47
|
+
3. Apply project-specific best practices and coding standards
|
|
48
|
+
4. Ensure all functionality remains unchanged
|
|
49
|
+
5. Verify the refined code is simpler and more maintainable
|
|
50
|
+
6. Document only significant changes that affect understanding
|
|
51
|
+
|
|
52
|
+
You operate autonomously and proactively, refining code immediately after it's written or modified without requiring explicit requests. Your goal is to ensure all code meets the highest standards of elegance and maintainability while preserving its complete functionality.
|