agent-pipeline 0.1.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/CLAUDE.md +134 -0
- package/README.md +209 -0
- package/dist/analytics/pipeline-analytics.d.ts +19 -0
- package/dist/analytics/pipeline-analytics.d.ts.map +1 -0
- package/dist/analytics/pipeline-analytics.js +155 -0
- package/dist/analytics/pipeline-analytics.js.map +1 -0
- package/dist/analytics/types.d.ts +31 -0
- package/dist/analytics/types.d.ts.map +1 -0
- package/dist/analytics/types.js +2 -0
- package/dist/analytics/types.js.map +1 -0
- package/dist/cli/commands/agent/info.d.ts +2 -0
- package/dist/cli/commands/agent/info.d.ts.map +1 -0
- package/dist/cli/commands/agent/info.js +62 -0
- package/dist/cli/commands/agent/info.js.map +1 -0
- package/dist/cli/commands/agent/list.d.ts +2 -0
- package/dist/cli/commands/agent/list.d.ts.map +1 -0
- package/dist/cli/commands/agent/list.js +57 -0
- package/dist/cli/commands/agent/list.js.map +1 -0
- package/dist/cli/commands/agent/pull.d.ts +5 -0
- package/dist/cli/commands/agent/pull.d.ts.map +1 -0
- package/dist/cli/commands/agent/pull.js +71 -0
- package/dist/cli/commands/agent/pull.js.map +1 -0
- package/dist/cli/commands/analytics.d.ts +6 -0
- package/dist/cli/commands/analytics.d.ts.map +1 -0
- package/dist/cli/commands/analytics.js +101 -0
- package/dist/cli/commands/analytics.js.map +1 -0
- package/dist/cli/commands/cleanup.d.ts +7 -0
- package/dist/cli/commands/cleanup.d.ts.map +1 -0
- package/dist/cli/commands/cleanup.js +76 -0
- package/dist/cli/commands/cleanup.js.map +1 -0
- package/dist/cli/commands/history.d.ts +7 -0
- package/dist/cli/commands/history.d.ts.map +1 -0
- package/dist/cli/commands/history.js +173 -0
- package/dist/cli/commands/history.js.map +1 -0
- package/dist/cli/commands/init.d.ts +7 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +158 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/install.d.ts +2 -0
- package/dist/cli/commands/install.d.ts.map +1 -0
- package/dist/cli/commands/install.js +15 -0
- package/dist/cli/commands/install.js.map +1 -0
- package/dist/cli/commands/list.d.ts +2 -0
- package/dist/cli/commands/list.d.ts.map +1 -0
- package/dist/cli/commands/list.js +13 -0
- package/dist/cli/commands/list.js.map +1 -0
- package/dist/cli/commands/pipeline/clone.d.ts +2 -0
- package/dist/cli/commands/pipeline/clone.d.ts.map +1 -0
- package/dist/cli/commands/pipeline/clone.js +42 -0
- package/dist/cli/commands/pipeline/clone.js.map +1 -0
- package/dist/cli/commands/pipeline/config.d.ts +2 -0
- package/dist/cli/commands/pipeline/config.d.ts.map +1 -0
- package/dist/cli/commands/pipeline/config.js +23 -0
- package/dist/cli/commands/pipeline/config.js.map +1 -0
- package/dist/cli/commands/pipeline/create.d.ts +2 -0
- package/dist/cli/commands/pipeline/create.d.ts.map +1 -0
- package/dist/cli/commands/pipeline/create.js +86 -0
- package/dist/cli/commands/pipeline/create.js.map +1 -0
- package/dist/cli/commands/pipeline/delete.d.ts +6 -0
- package/dist/cli/commands/pipeline/delete.d.ts.map +1 -0
- package/dist/cli/commands/pipeline/delete.js +60 -0
- package/dist/cli/commands/pipeline/delete.js.map +1 -0
- package/dist/cli/commands/pipeline/edit.d.ts +2 -0
- package/dist/cli/commands/pipeline/edit.d.ts.map +1 -0
- package/dist/cli/commands/pipeline/edit.js +50 -0
- package/dist/cli/commands/pipeline/edit.js.map +1 -0
- package/dist/cli/commands/pipeline/export.d.ts +6 -0
- package/dist/cli/commands/pipeline/export.d.ts.map +1 -0
- package/dist/cli/commands/pipeline/export.js +48 -0
- package/dist/cli/commands/pipeline/export.js.map +1 -0
- package/dist/cli/commands/pipeline/import.d.ts +2 -0
- package/dist/cli/commands/pipeline/import.d.ts.map +1 -0
- package/dist/cli/commands/pipeline/import.js +59 -0
- package/dist/cli/commands/pipeline/import.js.map +1 -0
- package/dist/cli/commands/pipeline/validate.d.ts +2 -0
- package/dist/cli/commands/pipeline/validate.d.ts.map +1 -0
- package/dist/cli/commands/pipeline/validate.js +28 -0
- package/dist/cli/commands/pipeline/validate.js.map +1 -0
- package/dist/cli/commands/rollback.d.ts +6 -0
- package/dist/cli/commands/rollback.d.ts.map +1 -0
- package/dist/cli/commands/rollback.js +49 -0
- package/dist/cli/commands/rollback.js.map +1 -0
- package/dist/cli/commands/run.d.ts +15 -0
- package/dist/cli/commands/run.d.ts.map +1 -0
- package/dist/cli/commands/run.js +61 -0
- package/dist/cli/commands/run.js.map +1 -0
- package/dist/cli/commands/status.d.ts +2 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +52 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/test.d.ts +5 -0
- package/dist/cli/commands/test.d.ts.map +1 -0
- package/dist/cli/commands/test.js +18 -0
- package/dist/cli/commands/test.js.map +1 -0
- package/dist/cli/commands/uninstall.d.ts +2 -0
- package/dist/cli/commands/uninstall.d.ts.map +1 -0
- package/dist/cli/commands/uninstall.js +6 -0
- package/dist/cli/commands/uninstall.js.map +1 -0
- package/dist/cli/hooks.d.ts +8 -0
- package/dist/cli/hooks.d.ts.map +1 -0
- package/dist/cli/hooks.js +98 -0
- package/dist/cli/hooks.js.map +1 -0
- package/dist/cli/templates/agents/cleanup-reporter.md +107 -0
- package/dist/cli/templates/agents/code-reducer.md +51 -0
- package/dist/cli/templates/agents/code-reviewer.md +34 -0
- package/dist/cli/templates/agents/context-reducer.md +94 -0
- package/dist/cli/templates/agents/dependency-auditor.md +127 -0
- package/dist/cli/templates/agents/detective-empath.md +26 -0
- package/dist/cli/templates/agents/detective-linguist.md +26 -0
- package/dist/cli/templates/agents/detective-logician.md +26 -0
- package/dist/cli/templates/agents/detective-skeptic.md +26 -0
- package/dist/cli/templates/agents/detective-statistician.md +26 -0
- package/dist/cli/templates/agents/doc-updater.md +30 -0
- package/dist/cli/templates/agents/judge.md +27 -0
- package/dist/cli/templates/agents/memory-updater.md +72 -0
- package/dist/cli/templates/agents/quality-checker.md +32 -0
- package/dist/cli/templates/agents/security-auditor.md +32 -0
- package/dist/cli/templates/agents/storyteller.md +26 -0
- package/dist/cli/templates/agents/summary.md +32 -0
- package/dist/cli/templates/agents/synthesizer.md +26 -0
- package/dist/cli/templates/pipelines/large-pipeline-example.yml +178 -0
- package/dist/cli/templates/pipelines/post-commit-example.yml +67 -0
- package/dist/cli/templates/pipelines/post-merge-example.yml +78 -0
- package/dist/cli/templates/pipelines/pre-commit-example.yml +41 -0
- package/dist/cli/templates/pipelines/pre-push-example.yml +51 -0
- package/dist/cli/templates/pipelines/test-pipeline.yml +90 -0
- package/dist/cli/utils/agent-importer.d.ts +21 -0
- package/dist/cli/utils/agent-importer.d.ts.map +1 -0
- package/dist/cli/utils/agent-importer.js +150 -0
- package/dist/cli/utils/agent-importer.js.map +1 -0
- package/dist/cli/utils/interactive-prompts.d.ts +10 -0
- package/dist/cli/utils/interactive-prompts.d.ts.map +1 -0
- package/dist/cli/utils/interactive-prompts.js +75 -0
- package/dist/cli/utils/interactive-prompts.js.map +1 -0
- package/dist/config/pipeline-loader.d.ts +14 -0
- package/dist/config/pipeline-loader.d.ts.map +1 -0
- package/dist/config/pipeline-loader.js +71 -0
- package/dist/config/pipeline-loader.js.map +1 -0
- package/dist/config/project-config-loader.d.ts +11 -0
- package/dist/config/project-config-loader.d.ts.map +1 -0
- package/dist/config/project-config-loader.js +100 -0
- package/dist/config/project-config-loader.js.map +1 -0
- package/dist/config/schema.d.ts +165 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +2 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/core/agent-query-runner.d.ts +25 -0
- package/dist/core/agent-query-runner.d.ts.map +1 -0
- package/dist/core/agent-query-runner.js +76 -0
- package/dist/core/agent-query-runner.js.map +1 -0
- package/dist/core/agent-runtime-registry.d.ts +11 -0
- package/dist/core/agent-runtime-registry.d.ts.map +1 -0
- package/dist/core/agent-runtime-registry.js +32 -0
- package/dist/core/agent-runtime-registry.js.map +1 -0
- package/dist/core/agent-runtimes/claude-code-headless-runtime.d.ts +16 -0
- package/dist/core/agent-runtimes/claude-code-headless-runtime.d.ts.map +1 -0
- package/dist/core/agent-runtimes/claude-code-headless-runtime.js +301 -0
- package/dist/core/agent-runtimes/claude-code-headless-runtime.js.map +1 -0
- package/dist/core/agent-runtimes/claude-sdk-runtime.d.ts +15 -0
- package/dist/core/agent-runtimes/claude-sdk-runtime.d.ts.map +1 -0
- package/dist/core/agent-runtimes/claude-sdk-runtime.js +92 -0
- package/dist/core/agent-runtimes/claude-sdk-runtime.js.map +1 -0
- package/dist/core/branch-manager.d.ts +15 -0
- package/dist/core/branch-manager.d.ts.map +1 -0
- package/dist/core/branch-manager.js +90 -0
- package/dist/core/branch-manager.js.map +1 -0
- package/dist/core/condition-evaluator.d.ts +16 -0
- package/dist/core/condition-evaluator.d.ts.map +1 -0
- package/dist/core/condition-evaluator.js +121 -0
- package/dist/core/condition-evaluator.js.map +1 -0
- package/dist/core/context-reducer.d.ts +15 -0
- package/dist/core/context-reducer.d.ts.map +1 -0
- package/dist/core/context-reducer.js +224 -0
- package/dist/core/context-reducer.js.map +1 -0
- package/dist/core/dag-planner.d.ts +13 -0
- package/dist/core/dag-planner.d.ts.map +1 -0
- package/dist/core/dag-planner.js +233 -0
- package/dist/core/dag-planner.js.map +1 -0
- package/dist/core/git-manager.d.ts +14 -0
- package/dist/core/git-manager.d.ts.map +1 -0
- package/dist/core/git-manager.js +70 -0
- package/dist/core/git-manager.js.map +1 -0
- package/dist/core/group-execution-orchestrator.d.ts +34 -0
- package/dist/core/group-execution-orchestrator.d.ts.map +1 -0
- package/dist/core/group-execution-orchestrator.js +238 -0
- package/dist/core/group-execution-orchestrator.js.map +1 -0
- package/dist/core/loop-state-manager.d.ts +29 -0
- package/dist/core/loop-state-manager.d.ts.map +1 -0
- package/dist/core/loop-state-manager.js +78 -0
- package/dist/core/loop-state-manager.js.map +1 -0
- package/dist/core/output-storage-manager.d.ts +14 -0
- package/dist/core/output-storage-manager.d.ts.map +1 -0
- package/dist/core/output-storage-manager.js +68 -0
- package/dist/core/output-storage-manager.js.map +1 -0
- package/dist/core/output-tool-builder.d.ts +6 -0
- package/dist/core/output-tool-builder.d.ts.map +1 -0
- package/dist/core/output-tool-builder.js +50 -0
- package/dist/core/output-tool-builder.js.map +1 -0
- package/dist/core/parallel-executor.d.ts +21 -0
- package/dist/core/parallel-executor.d.ts.map +1 -0
- package/dist/core/parallel-executor.js +93 -0
- package/dist/core/parallel-executor.js.map +1 -0
- package/dist/core/pipeline-finalizer.d.ts +24 -0
- package/dist/core/pipeline-finalizer.d.ts.map +1 -0
- package/dist/core/pipeline-finalizer.js +103 -0
- package/dist/core/pipeline-finalizer.js.map +1 -0
- package/dist/core/pipeline-initializer.d.ts +36 -0
- package/dist/core/pipeline-initializer.d.ts.map +1 -0
- package/dist/core/pipeline-initializer.js +105 -0
- package/dist/core/pipeline-initializer.js.map +1 -0
- package/dist/core/pipeline-runner.d.ts +36 -0
- package/dist/core/pipeline-runner.d.ts.map +1 -0
- package/dist/core/pipeline-runner.js +326 -0
- package/dist/core/pipeline-runner.js.map +1 -0
- package/dist/core/pr-creator.d.ts +23 -0
- package/dist/core/pr-creator.d.ts.map +1 -0
- package/dist/core/pr-creator.js +138 -0
- package/dist/core/pr-creator.js.map +1 -0
- package/dist/core/retry-handler.d.ts +15 -0
- package/dist/core/retry-handler.d.ts.map +1 -0
- package/dist/core/retry-handler.js +95 -0
- package/dist/core/retry-handler.js.map +1 -0
- package/dist/core/stage-executor.d.ts +27 -0
- package/dist/core/stage-executor.d.ts.map +1 -0
- package/dist/core/stage-executor.js +365 -0
- package/dist/core/stage-executor.js.map +1 -0
- package/dist/core/state-manager.d.ts +10 -0
- package/dist/core/state-manager.d.ts.map +1 -0
- package/dist/core/state-manager.js +61 -0
- package/dist/core/state-manager.js.map +1 -0
- package/dist/core/types/agent-runtime.d.ts +51 -0
- package/dist/core/types/agent-runtime.d.ts.map +1 -0
- package/dist/core/types/agent-runtime.js +2 -0
- package/dist/core/types/agent-runtime.js.map +1 -0
- package/dist/core/types/execution-graph.d.ts +29 -0
- package/dist/core/types/execution-graph.d.ts.map +1 -0
- package/dist/core/types/execution-graph.js +2 -0
- package/dist/core/types/execution-graph.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +400 -0
- package/dist/index.js.map +1 -0
- package/dist/notifications/notification-manager.d.ts +12 -0
- package/dist/notifications/notification-manager.d.ts.map +1 -0
- package/dist/notifications/notification-manager.js +74 -0
- package/dist/notifications/notification-manager.js.map +1 -0
- package/dist/notifications/notifiers/base-notifier.d.ts +9 -0
- package/dist/notifications/notifiers/base-notifier.d.ts.map +1 -0
- package/dist/notifications/notifiers/base-notifier.js +27 -0
- package/dist/notifications/notifiers/base-notifier.js.map +1 -0
- package/dist/notifications/notifiers/local-notifier.d.ts +11 -0
- package/dist/notifications/notifiers/local-notifier.d.ts.map +1 -0
- package/dist/notifications/notifiers/local-notifier.js +91 -0
- package/dist/notifications/notifiers/local-notifier.js.map +1 -0
- package/dist/notifications/notifiers/slack-notifier.d.ts +13 -0
- package/dist/notifications/notifiers/slack-notifier.d.ts.map +1 -0
- package/dist/notifications/notifiers/slack-notifier.js +209 -0
- package/dist/notifications/notifiers/slack-notifier.js.map +1 -0
- package/dist/notifications/types.d.ts +34 -0
- package/dist/notifications/types.d.ts.map +1 -0
- package/dist/notifications/types.js +2 -0
- package/dist/notifications/types.js.map +1 -0
- package/dist/ui/components/execution-group.d.ts +10 -0
- package/dist/ui/components/execution-group.d.ts.map +1 -0
- package/dist/ui/components/execution-group.js +19 -0
- package/dist/ui/components/execution-group.js.map +1 -0
- package/dist/ui/components/stage-row.d.ts +10 -0
- package/dist/ui/components/stage-row.d.ts.map +1 -0
- package/dist/ui/components/stage-row.js +69 -0
- package/dist/ui/components/stage-row.js.map +1 -0
- package/dist/ui/components/status-badge.d.ts +7 -0
- package/dist/ui/components/status-badge.d.ts.map +1 -0
- package/dist/ui/components/status-badge.js +18 -0
- package/dist/ui/components/status-badge.js.map +1 -0
- package/dist/ui/components/summary-line.d.ts +9 -0
- package/dist/ui/components/summary-line.d.ts.map +1 -0
- package/dist/ui/components/summary-line.js +13 -0
- package/dist/ui/components/summary-line.js.map +1 -0
- package/dist/ui/pipeline-ui.d.ts +8 -0
- package/dist/ui/pipeline-ui.d.ts.map +1 -0
- package/dist/ui/pipeline-ui.js +82 -0
- package/dist/ui/pipeline-ui.js.map +1 -0
- package/dist/utils/error-factory.d.ts +21 -0
- package/dist/utils/error-factory.d.ts.map +1 -0
- package/dist/utils/error-factory.js +74 -0
- package/dist/utils/error-factory.js.map +1 -0
- package/dist/utils/errors.d.ts +11 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +21 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/gh-cli-checker.d.ts +6 -0
- package/dist/utils/gh-cli-checker.d.ts.map +1 -0
- package/dist/utils/gh-cli-checker.js +42 -0
- package/dist/utils/gh-cli-checker.js.map +1 -0
- package/dist/utils/logger.d.ts +16 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +39 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/pipeline-formatter.d.ts +10 -0
- package/dist/utils/pipeline-formatter.d.ts.map +1 -0
- package/dist/utils/pipeline-formatter.js +92 -0
- package/dist/utils/pipeline-formatter.js.map +1 -0
- package/dist/utils/token-estimator.d.ts +15 -0
- package/dist/utils/token-estimator.d.ts.map +1 -0
- package/dist/utils/token-estimator.js +46 -0
- package/dist/utils/token-estimator.js.map +1 -0
- package/dist/validators/pipeline-validator.d.ts +31 -0
- package/dist/validators/pipeline-validator.d.ts.map +1 -0
- package/dist/validators/pipeline-validator.js +540 -0
- package/dist/validators/pipeline-validator.js.map +1 -0
- package/license +21 -0
- package/package.json +90 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Summary Agent
|
|
2
|
+
|
|
3
|
+
You are a pipeline summary agent.
|
|
4
|
+
|
|
5
|
+
## Your Task
|
|
6
|
+
|
|
7
|
+
1. Review outputs from previous pipeline stages
|
|
8
|
+
2. Create a comprehensive summary
|
|
9
|
+
3. Highlight key findings and actions taken
|
|
10
|
+
|
|
11
|
+
## Output Format
|
|
12
|
+
|
|
13
|
+
Use the report_outputs tool:
|
|
14
|
+
|
|
15
|
+
```javascript
|
|
16
|
+
report_outputs({
|
|
17
|
+
outputs: {
|
|
18
|
+
summary: "Pipeline completed with 4 stages. Code review found 5 issues (2 high-severity), security scan found 0 vulnerabilities, quality checker improved score from 72 to 86. All tests passing. Ready for review.",
|
|
19
|
+
total_stages: 4,
|
|
20
|
+
total_issues: 5,
|
|
21
|
+
overall_status: "success"
|
|
22
|
+
}
|
|
23
|
+
})
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
**IMPORTANT:** The summary should be up to a few sentences or around 500 words or less, covering:
|
|
27
|
+
- What stages completed (count, names)
|
|
28
|
+
- Key findings from each stage
|
|
29
|
+
- Overall pipeline status
|
|
30
|
+
- Next steps or action items
|
|
31
|
+
|
|
32
|
+
Provide a clear, concise summary of the pipeline execution.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Synthesizer Agent
|
|
2
|
+
|
|
3
|
+
You combine detective reasoning to make a final determination.
|
|
4
|
+
|
|
5
|
+
## Your Task
|
|
6
|
+
|
|
7
|
+
1. Read all detective analyses from `game/detective-*.txt` files
|
|
8
|
+
2. Review the outputs from each detective (their guesses and confidence levels)
|
|
9
|
+
3. Weigh the evidence and make a final call on which statement is the lie
|
|
10
|
+
4. Write your synthesis to `game/synthesis.txt`
|
|
11
|
+
|
|
12
|
+
## Output Format
|
|
13
|
+
|
|
14
|
+
Use the report_outputs tool:
|
|
15
|
+
|
|
16
|
+
```javascript
|
|
17
|
+
report_outputs({
|
|
18
|
+
outputs: {
|
|
19
|
+
summary: "Combined 5 detective analyses. Consensus points to statement #X as the lie. 3 detectives agreed, 2 dissented.",
|
|
20
|
+
final_guess: 2,
|
|
21
|
+
reasoning_summary: "Most detectives identified logical inconsistencies and suspicious language patterns in statement 2."
|
|
22
|
+
}
|
|
23
|
+
})
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Document your synthesis process in `game/synthesis.txt`.
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
# Large Pipeline Example with Agent-Based Context Reduction
|
|
2
|
+
#
|
|
3
|
+
# This example demonstrates agent-based context reduction in a large, multi-stage pipeline.
|
|
4
|
+
# With 10+ stages, context can grow to 60k+ tokens. Agent-based reduction keeps it under 15k.
|
|
5
|
+
|
|
6
|
+
name: large-pipeline-example
|
|
7
|
+
trigger: manual
|
|
8
|
+
|
|
9
|
+
settings:
|
|
10
|
+
autoCommit: true
|
|
11
|
+
commitPrefix: "[pipeline:{{stage}}]"
|
|
12
|
+
failureStrategy: continue
|
|
13
|
+
preserveWorkingTree: false
|
|
14
|
+
executionMode: parallel
|
|
15
|
+
|
|
16
|
+
# Agent-based context reduction configuration
|
|
17
|
+
contextReduction:
|
|
18
|
+
enabled: true
|
|
19
|
+
maxTokens: 50000 # Token limit for context
|
|
20
|
+
strategy: agent-based # Use intelligent agent-based reduction
|
|
21
|
+
agentPath: .claude/agents/context-reducer.md # Path to context reducer agent
|
|
22
|
+
triggerThreshold: 45000 # Trigger reduction at 90% of maxTokens (45k)
|
|
23
|
+
contextWindow: 3 # Keep last 3 stages in full after reduction
|
|
24
|
+
saveVerboseOutputs: true # Save full outputs to .agent-pipeline/outputs/
|
|
25
|
+
|
|
26
|
+
# Git workflow with branch isolation
|
|
27
|
+
git:
|
|
28
|
+
baseBranch: main
|
|
29
|
+
branchStrategy: reusable
|
|
30
|
+
pullRequest:
|
|
31
|
+
autoCreate: true
|
|
32
|
+
title: "🤖 Large Pipeline - {{pipelineName}}"
|
|
33
|
+
reviewers: []
|
|
34
|
+
labels:
|
|
35
|
+
- automated
|
|
36
|
+
- pipeline
|
|
37
|
+
draft: false
|
|
38
|
+
|
|
39
|
+
# Notification configuration
|
|
40
|
+
notifications:
|
|
41
|
+
enabled: true
|
|
42
|
+
events:
|
|
43
|
+
- pipeline.completed
|
|
44
|
+
- pipeline.failed
|
|
45
|
+
channels:
|
|
46
|
+
local:
|
|
47
|
+
enabled: true
|
|
48
|
+
sound: true
|
|
49
|
+
|
|
50
|
+
agents:
|
|
51
|
+
# Stage 1: Initial code review
|
|
52
|
+
- name: code-review
|
|
53
|
+
agent: .claude/agents/code-reviewer.md
|
|
54
|
+
outputs:
|
|
55
|
+
- issues_found
|
|
56
|
+
- severity_level
|
|
57
|
+
- files_reviewed
|
|
58
|
+
|
|
59
|
+
# Stage 2: Security audit (parallel with quality check)
|
|
60
|
+
- name: security-audit
|
|
61
|
+
agent: .claude/agents/security-auditor.md
|
|
62
|
+
outputs:
|
|
63
|
+
- vulnerabilities
|
|
64
|
+
- critical_count
|
|
65
|
+
- files_scanned
|
|
66
|
+
|
|
67
|
+
# Stage 3: Quality check (parallel with security audit)
|
|
68
|
+
- name: quality-check
|
|
69
|
+
agent: .claude/agents/quality-checker.md
|
|
70
|
+
outputs:
|
|
71
|
+
- quality_score
|
|
72
|
+
- improvements_made
|
|
73
|
+
- recommendations
|
|
74
|
+
|
|
75
|
+
# Stage 4: Documentation update
|
|
76
|
+
- name: doc-update
|
|
77
|
+
agent: .claude/agents/doc-updater.md
|
|
78
|
+
dependsOn:
|
|
79
|
+
- code-review
|
|
80
|
+
- security-audit
|
|
81
|
+
- quality-check
|
|
82
|
+
outputs:
|
|
83
|
+
- files_updated
|
|
84
|
+
- sections_added
|
|
85
|
+
|
|
86
|
+
# Stage 5: Dependency audit
|
|
87
|
+
- name: dependency-audit
|
|
88
|
+
agent: .claude/agents/dependency-auditor.md
|
|
89
|
+
outputs:
|
|
90
|
+
- outdated_count
|
|
91
|
+
- security_issues
|
|
92
|
+
|
|
93
|
+
# Stage 6: Performance analysis
|
|
94
|
+
- name: performance-analysis
|
|
95
|
+
agent: .claude/agents/quality-checker.md
|
|
96
|
+
inputs:
|
|
97
|
+
focus_areas: "performance, optimization"
|
|
98
|
+
outputs:
|
|
99
|
+
- performance_score
|
|
100
|
+
- bottlenecks_found
|
|
101
|
+
|
|
102
|
+
# Stage 7: Test coverage check
|
|
103
|
+
- name: test-coverage
|
|
104
|
+
agent: .claude/agents/quality-checker.md
|
|
105
|
+
inputs:
|
|
106
|
+
focus_areas: "test coverage, edge cases"
|
|
107
|
+
outputs:
|
|
108
|
+
- coverage_percentage
|
|
109
|
+
- missing_tests
|
|
110
|
+
|
|
111
|
+
# Stage 8: Code consolidation
|
|
112
|
+
- name: code-consolidation
|
|
113
|
+
agent: .claude/agents/code-reducer.md
|
|
114
|
+
dependsOn:
|
|
115
|
+
- code-review
|
|
116
|
+
- quality-check
|
|
117
|
+
outputs:
|
|
118
|
+
- duplicates_found
|
|
119
|
+
- files_merged
|
|
120
|
+
|
|
121
|
+
# Stage 9: Memory management review
|
|
122
|
+
- name: memory-review
|
|
123
|
+
agent: .claude/agents/memory-updater.md
|
|
124
|
+
outputs:
|
|
125
|
+
- memory_issues
|
|
126
|
+
- optimizations_applied
|
|
127
|
+
|
|
128
|
+
# Stage 10: Final summary report
|
|
129
|
+
- name: summary-report
|
|
130
|
+
agent: .claude/agents/summary.md
|
|
131
|
+
dependsOn:
|
|
132
|
+
- code-review
|
|
133
|
+
- security-audit
|
|
134
|
+
- quality-check
|
|
135
|
+
- doc-update
|
|
136
|
+
- dependency-audit
|
|
137
|
+
- performance-analysis
|
|
138
|
+
- test-coverage
|
|
139
|
+
- code-consolidation
|
|
140
|
+
- memory-review
|
|
141
|
+
outputs:
|
|
142
|
+
- total_stages
|
|
143
|
+
- total_issues
|
|
144
|
+
- overall_status
|
|
145
|
+
|
|
146
|
+
# Stage 11: Cleanup
|
|
147
|
+
- name: cleanup
|
|
148
|
+
agent: .claude/agents/cleanup-reporter.md
|
|
149
|
+
dependsOn:
|
|
150
|
+
- summary-report
|
|
151
|
+
outputs:
|
|
152
|
+
- cleanup_actions
|
|
153
|
+
- files_removed
|
|
154
|
+
|
|
155
|
+
# How Context Reduction Works:
|
|
156
|
+
#
|
|
157
|
+
# Without reduction (at stage 10):
|
|
158
|
+
# - Stage 1: 5k tokens
|
|
159
|
+
# - Stage 2: 10k tokens (includes Stage 1)
|
|
160
|
+
# - Stage 3: 15k tokens (includes 1-2)
|
|
161
|
+
# - ...
|
|
162
|
+
# - Stage 10: 50k+ tokens (includes 1-9) ❌ EXCEEDS LIMIT
|
|
163
|
+
#
|
|
164
|
+
# With agent-based reduction (at stage 10):
|
|
165
|
+
# 1. After stage group completes, check if next stage's context > 45k tokens
|
|
166
|
+
# 2. If yes, trigger context-reducer agent
|
|
167
|
+
# 3. Reducer reads upcoming agent definition (stage 10: summary-report.md)
|
|
168
|
+
# 4. Reducer analyzes what stage 10 needs (all metrics, critical findings)
|
|
169
|
+
# 5. Reducer creates intelligent summary preserving relevant info
|
|
170
|
+
# 6. Context reduced: 50k → 12k tokens ✅ UNDER LIMIT
|
|
171
|
+
# 7. Stage 10 runs with reduced but complete context
|
|
172
|
+
#
|
|
173
|
+
# Benefits:
|
|
174
|
+
# ✅ Never exceed token limits
|
|
175
|
+
# ✅ Preserve all critical information
|
|
176
|
+
# ✅ Intelligent, context-aware reduction
|
|
177
|
+
# ✅ No manual intervention required
|
|
178
|
+
# ✅ Full audit trail in .agent-pipeline/outputs/
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
name: post-commit-example
|
|
2
|
+
trigger: post-commit
|
|
3
|
+
|
|
4
|
+
# Settings for pipeline execution
|
|
5
|
+
settings:
|
|
6
|
+
autoCommit: true
|
|
7
|
+
commitPrefix: "[pipeline:{{stage}}]"
|
|
8
|
+
failureStrategy: continue
|
|
9
|
+
preserveWorkingTree: false
|
|
10
|
+
executionMode: parallel
|
|
11
|
+
|
|
12
|
+
# Context reduction for multi-stage pipelines
|
|
13
|
+
contextReduction:
|
|
14
|
+
enabled: true
|
|
15
|
+
maxTokens: 50000 # Token limit for context
|
|
16
|
+
strategy: summary-based # summary-based or agent-based
|
|
17
|
+
contextWindow: 3 # Number of recent stages to include in full
|
|
18
|
+
requireSummary: true # Require summary field from agents
|
|
19
|
+
saveVerboseOutputs: true # Save full outputs to .agent-pipeline/outputs/
|
|
20
|
+
compressFileList: true # Compress changed files list
|
|
21
|
+
|
|
22
|
+
# Git workflow configuration (optional)
|
|
23
|
+
# git:
|
|
24
|
+
# baseBranch: main
|
|
25
|
+
# branchStrategy: reusable
|
|
26
|
+
# pullRequest:
|
|
27
|
+
# autoCreate: true
|
|
28
|
+
# title: "🤖 Automated Code Review - {{pipelineName}}"
|
|
29
|
+
# reviewers: []
|
|
30
|
+
# labels:
|
|
31
|
+
# - automated
|
|
32
|
+
# - code-review
|
|
33
|
+
|
|
34
|
+
# Notification configuration (optional)
|
|
35
|
+
# notifications:
|
|
36
|
+
# enabled: true
|
|
37
|
+
# events:
|
|
38
|
+
# - pipeline.completed
|
|
39
|
+
# - pipeline.failed
|
|
40
|
+
# channels:
|
|
41
|
+
# local:
|
|
42
|
+
# enabled: true
|
|
43
|
+
# sound: true
|
|
44
|
+
|
|
45
|
+
# Agent stages
|
|
46
|
+
agents:
|
|
47
|
+
# Sequential execution: code-review → quality-check → doc-updater
|
|
48
|
+
# Each stage builds on the previous stage's results
|
|
49
|
+
- name: code-review
|
|
50
|
+
agent: .claude/agents/code-reviewer.md
|
|
51
|
+
timeout: 300
|
|
52
|
+
outputs:
|
|
53
|
+
- issues_found
|
|
54
|
+
- severity_level
|
|
55
|
+
|
|
56
|
+
- name: quality-check
|
|
57
|
+
agent: .claude/agents/quality-checker.md
|
|
58
|
+
dependsOn:
|
|
59
|
+
- code-review
|
|
60
|
+
timeout: 300
|
|
61
|
+
onFail: warn
|
|
62
|
+
|
|
63
|
+
- name: doc-updater
|
|
64
|
+
agent: .claude/agents/doc-updater.md
|
|
65
|
+
dependsOn:
|
|
66
|
+
- quality-check
|
|
67
|
+
timeout: 300
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
name: post-merge-example
|
|
2
|
+
trigger: post-merge
|
|
3
|
+
|
|
4
|
+
# Git workflow configuration for post-merge cleanup
|
|
5
|
+
git:
|
|
6
|
+
baseBranch: main
|
|
7
|
+
branchStrategy: reusable
|
|
8
|
+
branchPrefix: pipeline
|
|
9
|
+
pullRequest:
|
|
10
|
+
autoCreate: true
|
|
11
|
+
title: "🧹 Post-Merge Cleanup - {{pipelineName}}"
|
|
12
|
+
labels:
|
|
13
|
+
- automated
|
|
14
|
+
- cleanup
|
|
15
|
+
- post-merge
|
|
16
|
+
|
|
17
|
+
# Notification configuration
|
|
18
|
+
notifications:
|
|
19
|
+
enabled: true
|
|
20
|
+
events:
|
|
21
|
+
- pipeline.completed
|
|
22
|
+
- pipeline.failed
|
|
23
|
+
channels:
|
|
24
|
+
local:
|
|
25
|
+
enabled: true
|
|
26
|
+
sound: true
|
|
27
|
+
openUrl: true
|
|
28
|
+
|
|
29
|
+
settings:
|
|
30
|
+
autoCommit: true
|
|
31
|
+
commitPrefix: "[cleanup:{{stage}}]"
|
|
32
|
+
failureStrategy: continue # Continue even if some cleanup fails
|
|
33
|
+
preserveWorkingTree: false
|
|
34
|
+
executionMode: parallel
|
|
35
|
+
|
|
36
|
+
# Context reduction for multi-stage pipelines
|
|
37
|
+
contextReduction:
|
|
38
|
+
enabled: true
|
|
39
|
+
maxTokens: 50000 # Token limit for context
|
|
40
|
+
strategy: summary-based # summary-based or agent-based
|
|
41
|
+
contextWindow: 3 # Number of recent stages to include in full
|
|
42
|
+
requireSummary: true # Require summary field from agents
|
|
43
|
+
saveVerboseOutputs: true # Save full outputs to .agent-pipeline/outputs/
|
|
44
|
+
compressFileList: true # Compress changed files list
|
|
45
|
+
|
|
46
|
+
# Agent stages
|
|
47
|
+
agents:
|
|
48
|
+
# Run cleanup tasks in parallel after merge
|
|
49
|
+
- name: doc-sync
|
|
50
|
+
agent: .claude/agents/doc-updater.md
|
|
51
|
+
timeout: 300
|
|
52
|
+
outputs:
|
|
53
|
+
- files_updated
|
|
54
|
+
- sections_added
|
|
55
|
+
|
|
56
|
+
- name: dependency-audit
|
|
57
|
+
agent: .claude/agents/dependency-auditor.md
|
|
58
|
+
timeout: 300
|
|
59
|
+
outputs:
|
|
60
|
+
- outdated_count
|
|
61
|
+
- security_issues
|
|
62
|
+
|
|
63
|
+
- name: code-consolidation
|
|
64
|
+
agent: .claude/agents/code-reducer.md
|
|
65
|
+
timeout: 300
|
|
66
|
+
outputs:
|
|
67
|
+
- duplicates_found
|
|
68
|
+
- files_merged
|
|
69
|
+
|
|
70
|
+
# Generate summary report after all cleanup completes
|
|
71
|
+
- name: summary-report
|
|
72
|
+
agent: .claude/agents/cleanup-reporter.md
|
|
73
|
+
dependsOn:
|
|
74
|
+
- doc-sync
|
|
75
|
+
- dependency-audit
|
|
76
|
+
- code-consolidation
|
|
77
|
+
timeout: 300
|
|
78
|
+
commitMessage: "Add post-merge cleanup summary"
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
name: pre-commit-example
|
|
2
|
+
trigger: pre-commit
|
|
3
|
+
|
|
4
|
+
# Pre-commit pipelines should be fast and fail-fast
|
|
5
|
+
settings:
|
|
6
|
+
autoCommit: false # Don't auto-commit in pre-commit hooks
|
|
7
|
+
commitPrefix: "[pipeline:{{stage}}]"
|
|
8
|
+
failureStrategy: stop # Stop on first failure
|
|
9
|
+
preserveWorkingTree: true # Preserve working tree state
|
|
10
|
+
executionMode: parallel
|
|
11
|
+
|
|
12
|
+
# Context reduction for multi-stage pipelines
|
|
13
|
+
contextReduction:
|
|
14
|
+
enabled: true
|
|
15
|
+
maxTokens: 50000 # Token limit for context
|
|
16
|
+
strategy: summary-based # summary-based or agent-based
|
|
17
|
+
contextWindow: 3 # Number of recent stages to include in full
|
|
18
|
+
requireSummary: true # Require summary field from agents
|
|
19
|
+
saveVerboseOutputs: true # Save full outputs to .agent-pipeline/outputs/
|
|
20
|
+
compressFileList: true # Compress changed files list
|
|
21
|
+
|
|
22
|
+
# Agent stages
|
|
23
|
+
agents:
|
|
24
|
+
# Run validation checks in parallel for speed
|
|
25
|
+
- name: lint-check
|
|
26
|
+
agent: .claude/agents/quality-checker.md
|
|
27
|
+
timeout: 180
|
|
28
|
+
onFail: stop
|
|
29
|
+
|
|
30
|
+
- name: security-scan
|
|
31
|
+
agent: .claude/agents/security-auditor.md
|
|
32
|
+
timeout: 180
|
|
33
|
+
onFail: stop
|
|
34
|
+
|
|
35
|
+
# Generate summary only if all checks pass
|
|
36
|
+
- name: validation-summary
|
|
37
|
+
agent: .claude/agents/summary.md
|
|
38
|
+
dependsOn:
|
|
39
|
+
- lint-check
|
|
40
|
+
- security-scan
|
|
41
|
+
timeout: 120
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
name: pre-push-example
|
|
2
|
+
trigger: pre-push
|
|
3
|
+
|
|
4
|
+
# Pre-push is a good time for comprehensive checks
|
|
5
|
+
settings:
|
|
6
|
+
autoCommit: false # Don't auto-commit in pre-push hooks
|
|
7
|
+
commitPrefix: "[pipeline:{{stage}}]"
|
|
8
|
+
failureStrategy: stop # Stop on first failure
|
|
9
|
+
preserveWorkingTree: true
|
|
10
|
+
executionMode: parallel
|
|
11
|
+
|
|
12
|
+
# Context reduction for multi-stage pipelines
|
|
13
|
+
contextReduction:
|
|
14
|
+
enabled: true
|
|
15
|
+
maxTokens: 50000 # Token limit for context
|
|
16
|
+
strategy: summary-based # summary-based or agent-based
|
|
17
|
+
contextWindow: 3 # Number of recent stages to include in full
|
|
18
|
+
requireSummary: true # Require summary field from agents
|
|
19
|
+
saveVerboseOutputs: true # Save full outputs to .agent-pipeline/outputs/
|
|
20
|
+
compressFileList: true # Compress changed files list
|
|
21
|
+
|
|
22
|
+
# Agent stages
|
|
23
|
+
agents:
|
|
24
|
+
# Run comprehensive checks in parallel
|
|
25
|
+
- name: security-audit
|
|
26
|
+
agent: .claude/agents/security-auditor.md
|
|
27
|
+
timeout: 300
|
|
28
|
+
onFail: stop
|
|
29
|
+
outputs:
|
|
30
|
+
- vulnerabilities
|
|
31
|
+
- severity
|
|
32
|
+
|
|
33
|
+
- name: code-quality
|
|
34
|
+
agent: .claude/agents/quality-checker.md
|
|
35
|
+
timeout: 300
|
|
36
|
+
onFail: stop
|
|
37
|
+
|
|
38
|
+
- name: dependency-check
|
|
39
|
+
agent: .claude/agents/dependency-auditor.md
|
|
40
|
+
timeout: 300
|
|
41
|
+
onFail: warn
|
|
42
|
+
|
|
43
|
+
# Only proceed with push if critical checks pass
|
|
44
|
+
- name: push-approval
|
|
45
|
+
agent: .claude/agents/summary.md
|
|
46
|
+
dependsOn:
|
|
47
|
+
- security-audit
|
|
48
|
+
- code-quality
|
|
49
|
+
- dependency-check
|
|
50
|
+
condition: "{{ stages.security-audit.outputs.vulnerabilities == 0 }}"
|
|
51
|
+
timeout: 180
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
name: test-pipeline
|
|
2
|
+
trigger: manual
|
|
3
|
+
|
|
4
|
+
# Game-based pipeline showcasing inter-agent file communication
|
|
5
|
+
settings:
|
|
6
|
+
autoCommit: false # No git commits for this demo
|
|
7
|
+
commitPrefix: "[pipeline:{{stage}}]" # Not used but required
|
|
8
|
+
failureStrategy: continue # Continue even if agents fail
|
|
9
|
+
preserveWorkingTree: true # Don't touch working tree
|
|
10
|
+
executionMode: parallel # Enable DAG-based parallelism
|
|
11
|
+
|
|
12
|
+
agents:
|
|
13
|
+
# STAGE 1: Storyteller creates the statements
|
|
14
|
+
- name: storyteller
|
|
15
|
+
agent: .claude/agents/storyteller.md
|
|
16
|
+
timeout: 300
|
|
17
|
+
outputs:
|
|
18
|
+
- statement_count
|
|
19
|
+
- lie_index
|
|
20
|
+
|
|
21
|
+
# STAGE 2: Five detectives analyze in parallel
|
|
22
|
+
- name: logician
|
|
23
|
+
agent: .claude/agents/detective-logician.md
|
|
24
|
+
dependsOn:
|
|
25
|
+
- storyteller
|
|
26
|
+
timeout: 300
|
|
27
|
+
outputs:
|
|
28
|
+
- guess
|
|
29
|
+
- confidence
|
|
30
|
+
|
|
31
|
+
- name: empath
|
|
32
|
+
agent: .claude/agents/detective-empath.md
|
|
33
|
+
dependsOn:
|
|
34
|
+
- storyteller
|
|
35
|
+
timeout: 300
|
|
36
|
+
outputs:
|
|
37
|
+
- guess
|
|
38
|
+
- confidence
|
|
39
|
+
|
|
40
|
+
- name: statistician
|
|
41
|
+
agent: .claude/agents/detective-statistician.md
|
|
42
|
+
dependsOn:
|
|
43
|
+
- storyteller
|
|
44
|
+
timeout: 300
|
|
45
|
+
outputs:
|
|
46
|
+
- guess
|
|
47
|
+
- confidence
|
|
48
|
+
|
|
49
|
+
- name: linguist
|
|
50
|
+
agent: .claude/agents/detective-linguist.md
|
|
51
|
+
dependsOn:
|
|
52
|
+
- storyteller
|
|
53
|
+
timeout: 300
|
|
54
|
+
outputs:
|
|
55
|
+
- guess
|
|
56
|
+
- confidence
|
|
57
|
+
|
|
58
|
+
- name: skeptic
|
|
59
|
+
agent: .claude/agents/detective-skeptic.md
|
|
60
|
+
dependsOn:
|
|
61
|
+
- storyteller
|
|
62
|
+
timeout: 300
|
|
63
|
+
outputs:
|
|
64
|
+
- guess
|
|
65
|
+
- confidence
|
|
66
|
+
|
|
67
|
+
# STAGE 3: Synthesizer combines detective reasoning
|
|
68
|
+
- name: synthesizer
|
|
69
|
+
agent: .claude/agents/synthesizer.md
|
|
70
|
+
dependsOn:
|
|
71
|
+
- logician
|
|
72
|
+
- empath
|
|
73
|
+
- statistician
|
|
74
|
+
- linguist
|
|
75
|
+
- skeptic
|
|
76
|
+
timeout: 300
|
|
77
|
+
outputs:
|
|
78
|
+
- final_guess
|
|
79
|
+
- reasoning_summary
|
|
80
|
+
|
|
81
|
+
# STAGE 4: Judge reveals truth and scores
|
|
82
|
+
- name: judge
|
|
83
|
+
agent: .claude/agents/judge.md
|
|
84
|
+
dependsOn:
|
|
85
|
+
- synthesizer
|
|
86
|
+
timeout: 300
|
|
87
|
+
outputs:
|
|
88
|
+
- correct_detectives
|
|
89
|
+
- incorrect_detectives
|
|
90
|
+
- winner
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface ImportedAgent {
|
|
2
|
+
originalPath: string;
|
|
3
|
+
marketplace: string;
|
|
4
|
+
plugin: string;
|
|
5
|
+
agentName: string;
|
|
6
|
+
targetName: string;
|
|
7
|
+
}
|
|
8
|
+
export interface ImportSummary {
|
|
9
|
+
total: number;
|
|
10
|
+
imported: number;
|
|
11
|
+
skipped: number;
|
|
12
|
+
agents: ImportedAgent[];
|
|
13
|
+
}
|
|
14
|
+
export declare class AgentImporter {
|
|
15
|
+
static getClaudePluginsBasePath(): string;
|
|
16
|
+
static discoverPluginAgents(): Promise<ImportedAgent[]>;
|
|
17
|
+
static importPluginAgents(targetAgentsDir: string, options?: {
|
|
18
|
+
silent?: boolean;
|
|
19
|
+
}): Promise<ImportSummary>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=agent-importer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-importer.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/agent-importer.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB;AAED,qBAAa,aAAa;IAIxB,MAAM,CAAC,wBAAwB,IAAI,MAAM;WAoB5B,oBAAoB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;WA4DhD,kBAAkB,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,aAAa,CAAC;CA0GjH"}
|