claude-flow-novice 1.1.8 β†’ 1.2.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.
Files changed (88) hide show
  1. package/.claude/SLASH-COMMANDS-READY.md +53 -0
  2. package/.claude/WORKING-SETUP.md +67 -0
  3. package/.claude/commands/README.md +157 -0
  4. package/.claude/commands/claude-md.js +237 -0
  5. package/.claude/commands/claude-md.md +64 -0
  6. package/.claude/commands/claude-soul.js +562 -0
  7. package/.claude/commands/claude-soul.md +22 -0
  8. package/.claude/commands/cli-integration.js +216 -0
  9. package/.claude/commands/dependency-recommendations.md +171 -0
  10. package/.claude/commands/github.js +638 -0
  11. package/.claude/commands/github.md +221 -0
  12. package/.claude/commands/hooks.js +648 -0
  13. package/.claude/commands/hooks.md +38 -0
  14. package/.claude/commands/index.js +115 -0
  15. package/.claude/commands/neural.js +572 -0
  16. package/.claude/commands/neural.md +39 -0
  17. package/.claude/commands/performance.js +582 -0
  18. package/.claude/commands/performance.md +41 -0
  19. package/.claude/commands/register-all-commands.js +314 -0
  20. package/.claude/commands/register-claude-md.js +82 -0
  21. package/.claude/commands/register-claude-soul.js +80 -0
  22. package/.claude/commands/sparc.js +110 -0
  23. package/.claude/commands/sparc.md +46 -0
  24. package/.claude/commands/suggest-improvements.md +95 -0
  25. package/.claude/commands/suggest-templates.md +147 -0
  26. package/.claude/commands/swarm.js +423 -0
  27. package/.claude/commands/swarm.md +24 -0
  28. package/.claude/commands/validate-commands.js +223 -0
  29. package/.claude/commands/workflow.js +606 -0
  30. package/.claude/commands/workflow.md +295 -0
  31. package/.claude/core/agent-manager.js +80 -0
  32. package/.claude/core/agent-manager.js.map +1 -0
  33. package/.claude/core/config.js +1221 -0
  34. package/.claude/core/config.js.map +1 -0
  35. package/.claude/core/event-bus.js +136 -0
  36. package/.claude/core/event-bus.js.map +1 -0
  37. package/.claude/core/index.js +6 -0
  38. package/.claude/core/index.js.map +1 -0
  39. package/.claude/core/json-persistence.js +112 -0
  40. package/.claude/core/json-persistence.js.map +1 -0
  41. package/.claude/core/logger.js +245 -0
  42. package/.claude/core/logger.js.map +1 -0
  43. package/.claude/core/orchestrator-fixed.js +236 -0
  44. package/.claude/core/orchestrator-fixed.js.map +1 -0
  45. package/.claude/core/orchestrator.js +1136 -0
  46. package/.claude/core/orchestrator.js.map +1 -0
  47. package/.claude/core/persistence.js +185 -0
  48. package/.claude/core/persistence.js.map +1 -0
  49. package/.claude/core/project-manager.js +80 -0
  50. package/.claude/core/project-manager.js.map +1 -0
  51. package/.claude/core/slash-command.js +24 -0
  52. package/.claude/core/version.js +35 -0
  53. package/.claude/core/version.js.map +1 -0
  54. package/.claude/slash-commands.json +92 -0
  55. package/dist/mcp/mcp-server-novice.js +24 -4
  56. package/dist/mcp/mcp-server-sdk.js +649 -0
  57. package/dist/mcp/mcp-server-with-slash-commands.js +776 -0
  58. package/dist/src/cli/simple-commands/hooks/session-start-soul.js +271 -0
  59. package/dist/src/slash-commands/README.md +157 -0
  60. package/dist/src/slash-commands/claude-md.js +237 -0
  61. package/dist/src/slash-commands/claude-soul.js +562 -0
  62. package/dist/src/slash-commands/cli-integration.js +216 -0
  63. package/dist/src/slash-commands/github.js +638 -0
  64. package/dist/src/slash-commands/hooks.js +648 -0
  65. package/dist/src/slash-commands/index.js +115 -0
  66. package/dist/src/slash-commands/mcp-slash-integration.js +146 -0
  67. package/dist/src/slash-commands/neural.js +572 -0
  68. package/dist/src/slash-commands/performance.js +582 -0
  69. package/dist/src/slash-commands/register-all-commands.js +314 -0
  70. package/dist/src/slash-commands/register-claude-md.js +82 -0
  71. package/dist/src/slash-commands/register-claude-soul.js +80 -0
  72. package/dist/src/slash-commands/sparc.js +110 -0
  73. package/dist/src/slash-commands/swarm.js +423 -0
  74. package/dist/src/slash-commands/validate-commands.js +223 -0
  75. package/dist/src/slash-commands/workflow.js +606 -0
  76. package/package.json +23 -10
  77. package/src/slash-commands/cli-integration.js +216 -0
  78. package/src/slash-commands/github.js +638 -0
  79. package/src/slash-commands/hooks.js +648 -0
  80. package/src/slash-commands/index.js +115 -0
  81. package/src/slash-commands/mcp-slash-integration.js +146 -0
  82. package/src/slash-commands/neural.js +572 -0
  83. package/src/slash-commands/performance.js +582 -0
  84. package/src/slash-commands/register-all-commands.js +314 -0
  85. package/src/slash-commands/sparc.js +110 -0
  86. package/src/slash-commands/swarm.js +423 -0
  87. package/src/slash-commands/validate-commands.js +223 -0
  88. package/src/slash-commands/workflow.js +606 -0
@@ -0,0 +1,295 @@
1
+ ---
2
+ description: "Advanced workflow automation with event-driven triggers and AI coordination"
3
+ argument-hint: "<action> [workflow-name] [options]"
4
+ allowed-tools: ["Bash", "Read", "Write", "Edit", "Grep", "mcp__claude-flow__workflow_create", "mcp__claude-flow__workflow_execute", "mcp__claude-flow__automation_setup", "mcp__claude-flow__pipeline_create", "mcp__claude-flow__scheduler_manage", "mcp__claude-flow__trigger_setup", "mcp__claude-flow__agent_spawn", "mcp__claude-flow__task_orchestrate", "mcp__claude-flow__memory_usage"]
5
+ ---
6
+
7
+ # Workflow Automation & Orchestration
8
+
9
+ Create, manage, and execute sophisticated automated workflows with AI-powered orchestration and event-driven triggers.
10
+
11
+ **Action**: $ARGUMENTS
12
+
13
+ ## Workflow Actions
14
+
15
+ ### Workflow Management
16
+ - `create <name>` - Create new workflow with AI assistance
17
+ - `list` - Show all available workflows
18
+ - `execute <name>` - Run workflow with real-time monitoring
19
+ - `status [name]` - Check workflow execution status
20
+ - `stop <name>` - Gracefully stop running workflow
21
+
22
+ ### Automation Setup
23
+ - `triggers setup` - Configure event-driven triggers
24
+ - `schedule <name> <cron>` - Schedule workflow execution
25
+ - `pipeline create <name>` - Create CI/CD pipeline
26
+ - `hooks enable` - Enable automation hooks
27
+ - `monitor <name>` - Real-time workflow monitoring
28
+
29
+ ### Template Management
30
+ - `template list` - Show workflow templates
31
+ - `template create <name>` - Create reusable template
32
+ - `template apply <name>` - Apply template to project
33
+ - `export <name>` - Export workflow definition
34
+ - `import <file>` - Import workflow from file
35
+
36
+ ## Workflow Types
37
+
38
+ ### πŸš€ Development Workflows
39
+
40
+ #### Full-Stack Feature Development
41
+ ```yaml
42
+ name: "feature-development"
43
+ trigger: "branch-created"
44
+ steps:
45
+ - name: "analyze-requirements"
46
+ agent: "researcher"
47
+ action: "analyze-feature-requirements"
48
+
49
+ - name: "design-architecture"
50
+ agent: "system-architect"
51
+ depends: ["analyze-requirements"]
52
+ action: "design-system-architecture"
53
+
54
+ - name: "backend-implementation"
55
+ agent: "backend-dev"
56
+ depends: ["design-architecture"]
57
+ parallel: true
58
+ action: "implement-backend-services"
59
+
60
+ - name: "frontend-implementation"
61
+ agent: "coder"
62
+ depends: ["design-architecture"]
63
+ parallel: true
64
+ action: "implement-frontend-components"
65
+
66
+ - name: "integration-testing"
67
+ agent: "tester"
68
+ depends: ["backend-implementation", "frontend-implementation"]
69
+ action: "run-integration-tests"
70
+ ```
71
+
72
+ #### Code Quality Pipeline
73
+ ```yaml
74
+ name: "code-quality"
75
+ trigger: "pull-request"
76
+ steps:
77
+ - name: "static-analysis"
78
+ tools: ["eslint", "typescript", "rust-clippy"]
79
+ parallel: true
80
+
81
+ - name: "security-scan"
82
+ tools: ["npm-audit", "cargo-audit", "snyk"]
83
+ parallel: true
84
+
85
+ - name: "test-execution"
86
+ agents: ["tester"]
87
+ coverage_threshold: 85
88
+
89
+ - name: "performance-test"
90
+ agents: ["perf-analyzer"]
91
+ benchmarks: ["load", "stress", "memory"]
92
+ ```
93
+
94
+ ### πŸ”„ CI/CD Workflows
95
+
96
+ #### Deployment Pipeline
97
+ ```yaml
98
+ name: "deployment-pipeline"
99
+ trigger: "tag-created"
100
+ environments: ["staging", "production"]
101
+ steps:
102
+ - name: "build"
103
+ parallel_matrix:
104
+ - target: "linux-x64"
105
+ - target: "darwin-arm64"
106
+ - target: "windows-x64"
107
+
108
+ - name: "test-suite"
109
+ depends: ["build"]
110
+ types: ["unit", "integration", "e2e"]
111
+
112
+ - name: "security-audit"
113
+ depends: ["build"]
114
+ scans: ["dependencies", "containers", "infrastructure"]
115
+
116
+ - name: "deploy-staging"
117
+ depends: ["test-suite", "security-audit"]
118
+ environment: "staging"
119
+ approval: false
120
+
121
+ - name: "deploy-production"
122
+ depends: ["deploy-staging"]
123
+ environment: "production"
124
+ approval: true
125
+ rollback_strategy: "blue-green"
126
+ ```
127
+
128
+ ### πŸ“… Scheduled Workflows
129
+
130
+ #### Maintenance Tasks
131
+ ```yaml
132
+ name: "weekly-maintenance"
133
+ schedule: "0 2 * * 1" # Every Monday at 2 AM
134
+ steps:
135
+ - name: "dependency-updates"
136
+ agent: "dependency-analyzer"
137
+ action: "check-updates"
138
+ auto_pr: true
139
+
140
+ - name: "security-scan"
141
+ agent: "security-specialist"
142
+ action: "vulnerability-scan"
143
+ report: "weekly-security-report"
144
+
145
+ - name: "performance-analysis"
146
+ agent: "perf-analyzer"
147
+ action: "benchmark-comparison"
148
+ retention: "6-months"
149
+
150
+ - name: "cleanup-artifacts"
151
+ action: "cleanup-old-builds"
152
+ retention: "30-days"
153
+ ```
154
+
155
+ ## Event-Driven Triggers
156
+
157
+ ### Git Triggers
158
+ - **Push Events**: Branch pushes, tag creation, force pushes
159
+ - **PR Events**: Created, updated, merged, closed
160
+ - **Issue Events**: Opened, commented, labeled, closed
161
+ - **Release Events**: Published, edited, deleted
162
+
163
+ ### File System Triggers
164
+ - **File Changes**: Specific file/directory modifications
165
+ - **Pattern Matching**: Glob patterns for selective triggering
166
+ - **Dependency Changes**: package.json, Cargo.toml, requirements.txt
167
+ - **Configuration Changes**: Environment files, CI configs
168
+
169
+ ### External Triggers
170
+ - **Webhooks**: External service notifications
171
+ - **API Calls**: RESTful trigger endpoints
172
+ - **Scheduled**: Cron-based scheduling
173
+ - **Manual**: User-initiated execution
174
+
175
+ ## Workflow Features
176
+
177
+ ### 🦾 AI-Powered Orchestration
178
+
179
+ #### Intelligent Task Distribution
180
+ - **Agent Selection**: Choose optimal agents based on task requirements
181
+ - **Load Balancing**: Distribute work across available agents
182
+ - **Failure Recovery**: Automatic retry with different agents
183
+ - **Resource Management**: Monitor and allocate system resources
184
+
185
+ #### Dynamic Workflow Adaptation
186
+ - **Context Awareness**: Adapt based on project type and complexity
187
+ - **Performance Learning**: Optimize workflows based on execution history
188
+ - **Error Patterns**: Learn from failures to prevent future issues
189
+ - **Team Preferences**: Adapt to team coding styles and preferences
190
+
191
+ ### πŸ“Š Real-Time Monitoring
192
+
193
+ #### Execution Tracking
194
+ - **Step Progress**: Real-time step execution status
195
+ - **Agent Activity**: Monitor agent resource usage and performance
196
+ - **Bottleneck Detection**: Identify and resolve workflow bottlenecks
197
+ - **Performance Metrics**: Track execution times and success rates
198
+
199
+ #### Notifications & Alerts
200
+ - **Slack Integration**: Send notifications to team channels
201
+ - **Email Alerts**: Critical failure and success notifications
202
+ - **Dashboard Updates**: Real-time web dashboard updates
203
+ - **Mobile Notifications**: Push notifications for mobile apps
204
+
205
+ ### πŸ”’ Security & Compliance
206
+
207
+ #### Access Control
208
+ - **Role-Based Permissions**: Workflow execution permissions
209
+ - **Secret Management**: Secure handling of API keys and credentials
210
+ - **Audit Logging**: Complete audit trail of workflow executions
211
+ - **Compliance Checks**: Ensure workflows meet security standards
212
+
213
+ #### Safe Execution
214
+ - **Sandbox Isolation**: Isolate workflow execution environments
215
+ - **Resource Limits**: Prevent resource exhaustion
216
+ - **Rollback Capabilities**: Quick rollback for failed deployments
217
+ - **Validation Gates**: Pre-execution validation and safety checks
218
+
219
+ ## Usage Examples
220
+
221
+ ### Create Development Workflow
222
+ ```bash
223
+ # Create new feature development workflow
224
+ /workflow create feature-pipeline
225
+
226
+ # AI will prompt for:
227
+ # - Project type (detected automatically)
228
+ # - Testing requirements
229
+ # - Deployment targets
230
+ # - Team preferences
231
+
232
+ # Generated workflow includes:
233
+ # - Appropriate agents for detected tech stack
234
+ # - Testing strategy based on project type
235
+ # - Security scans relevant to framework
236
+ # - Deployment steps for target platform
237
+ ```
238
+
239
+ ### Execute Workflow with Monitoring
240
+ ```bash
241
+ # Execute workflow with real-time monitoring
242
+ /workflow execute feature-pipeline --monitor
243
+
244
+ # Output:
245
+ # πŸš€ Starting workflow: feature-pipeline
246
+ # βœ… [1/5] Requirements Analysis (researcher) - 2.3s
247
+ # πŸ”„ [2/5] Architecture Design (system-architect) - Running...
248
+ # ⏸️ [3/5] Backend Implementation (backend-dev) - Waiting
249
+ # ⏸️ [4/5] Frontend Implementation (coder) - Waiting
250
+ # ⏸️ [5/5] Integration Testing (tester) - Waiting
251
+ ```
252
+
253
+ ### Schedule Maintenance Workflow
254
+ ```bash
255
+ # Schedule weekly maintenance
256
+ /workflow schedule maintenance-pipeline "0 2 * * 1"
257
+
258
+ # Output:
259
+ # πŸ“‹ Scheduled: maintenance-pipeline
260
+ # ⏰ Next run: Monday, 2:00 AM UTC
261
+ # πŸ”„ Tasks: dependency-updates, security-scan, cleanup
262
+ # πŸ“Š Estimated duration: 15-20 minutes
263
+ ```
264
+
265
+ ## Template Library
266
+
267
+ ### Pre-Built Workflows
268
+ - **Feature Development**: Full-stack feature implementation
269
+ - **Bug Fix Pipeline**: Issue triage, fix, test, deploy
270
+ - **Security Audit**: Comprehensive security scanning
271
+ - **Performance Testing**: Load testing and optimization
272
+ - **Documentation**: Auto-generate and update docs
273
+ - **Dependency Management**: Regular updates and security patches
274
+
275
+ ### Custom Templates
276
+ - **Team-Specific**: Workflows tailored to team processes
277
+ - **Project-Specific**: Workflows adapted to project requirements
278
+ - **Industry-Specific**: Workflows for specific domains (fintech, healthcare)
279
+ - **Compliance**: Workflows ensuring regulatory compliance
280
+
281
+ ## Integration Capabilities
282
+
283
+ ### Development Tools
284
+ - **GitHub/GitLab**: Git workflow integration
285
+ - **Jira/Linear**: Issue tracking integration
286
+ - **Slack/Teams**: Communication integration
287
+ - **Docker/Kubernetes**: Container orchestration
288
+
289
+ ### Cloud Platforms
290
+ - **AWS/Azure/GCP**: Cloud deployment integration
291
+ - **Terraform**: Infrastructure as code
292
+ - **Monitoring**: Datadog, New Relic, Prometheus
293
+ - **Security**: Snyk, Veracode, SonarQube
294
+
295
+ Create powerful, intelligent workflows that adapt to your team's needs and automate your entire development lifecycle.
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Simple Agent Manager for novice users
3
+ */ import { SimpleAgent } from '../agents/simple-agent.js';
4
+ export class AgentManager {
5
+ agents = new Map();
6
+ /**
7
+ * Create a new agent
8
+ */ createAgent(type, task) {
9
+ const id = this.generateId();
10
+ const agent = {
11
+ id,
12
+ type,
13
+ task,
14
+ status: 'pending',
15
+ created: new Date()
16
+ };
17
+ this.agents.set(id, agent);
18
+ console.log(`βœ… Created ${type} agent: ${id}`);
19
+ return id;
20
+ }
21
+ /**
22
+ * List all agents
23
+ */ listAgents() {
24
+ return Array.from(this.agents.values());
25
+ }
26
+ /**
27
+ * Get agent by ID
28
+ */ getAgent(id) {
29
+ return this.agents.get(id);
30
+ }
31
+ /**
32
+ * Remove agent
33
+ */ removeAgent(id) {
34
+ const success = this.agents.delete(id);
35
+ if (success) {
36
+ console.log(`πŸ—‘οΈ Removed agent: ${id}`);
37
+ }
38
+ return success;
39
+ }
40
+ /**
41
+ * Run a specific agent
42
+ */ async runAgent(id) {
43
+ const config = this.agents.get(id);
44
+ if (!config) {
45
+ throw new Error(`Agent ${id} not found`);
46
+ }
47
+ console.log(`πŸš€ Running ${config.type} agent: ${config.task}`);
48
+ config.status = 'running';
49
+ try {
50
+ const agent = new SimpleAgent(config);
51
+ const result = await agent.execute();
52
+ config.result = result;
53
+ config.status = 'completed';
54
+ console.log(`βœ… Agent ${id} completed successfully`);
55
+ } catch (error) {
56
+ config.status = 'failed';
57
+ console.error(`❌ Agent ${id} failed:`, error);
58
+ throw error;
59
+ }
60
+ }
61
+ /**
62
+ * Run all pending agents
63
+ */ async runAll() {
64
+ const pendingAgents = Array.from(this.agents.values()).filter((agent)=>agent.status === 'pending');
65
+ if (pendingAgents.length === 0) {
66
+ console.log('No pending agents to run');
67
+ return;
68
+ }
69
+ console.log(`πŸš€ Running ${pendingAgents.length} agents...`);
70
+ for (const agentConfig of pendingAgents){
71
+ await this.runAgent(agentConfig.id);
72
+ }
73
+ console.log('πŸŽ‰ All agents completed!');
74
+ }
75
+ generateId() {
76
+ return Math.random().toString(36).substr(2, 9);
77
+ }
78
+ }
79
+
80
+ //# sourceMappingURL=agent-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/core/agent-manager.ts"],"names":["SimpleAgent","AgentManager","agents","Map","createAgent","type","task","id","generateId","agent","status","created","Date","set","console","log","listAgents","Array","from","values","getAgent","get","removeAgent","success","delete","runAgent","config","Error","result","execute","error","runAll","pendingAgents","filter","length","agentConfig","Math","random","toString","substr"],"mappings":"AAAA;;CAEC,GAGD,SAASA,WAAW,QAAQ,4BAA4B;AAExD,OAAO,MAAMC;IACHC,SAAmC,IAAIC,MAAM;IAErD;;GAEC,GACDC,YAAYC,IAAe,EAAEC,IAAY,EAAU;QACjD,MAAMC,KAAK,IAAI,CAACC,UAAU;QAC1B,MAAMC,QAAqB;YACzBF;YACAF;YACAC;YACAI,QAAQ;YACRC,SAAS,IAAIC;QACf;QAEA,IAAI,CAACV,MAAM,CAACW,GAAG,CAACN,IAAIE;QACpBK,QAAQC,GAAG,CAAC,CAAC,UAAU,EAAEV,KAAK,QAAQ,EAAEE,IAAI;QAC5C,OAAOA;IACT;IAEA;;GAEC,GACDS,aAA4B;QAC1B,OAAOC,MAAMC,IAAI,CAAC,IAAI,CAAChB,MAAM,CAACiB,MAAM;IACtC;IAEA;;GAEC,GACDC,SAASb,EAAU,EAA2B;QAC5C,OAAO,IAAI,CAACL,MAAM,CAACmB,GAAG,CAACd;IACzB;IAEA;;GAEC,GACDe,YAAYf,EAAU,EAAW;QAC/B,MAAMgB,UAAU,IAAI,CAACrB,MAAM,CAACsB,MAAM,CAACjB;QACnC,IAAIgB,SAAS;YACXT,QAAQC,GAAG,CAAC,CAAC,mBAAmB,EAAER,IAAI;QACxC;QACA,OAAOgB;IACT;IAEA;;GAEC,GACD,MAAME,SAASlB,EAAU,EAAiB;QACxC,MAAMmB,SAAS,IAAI,CAACxB,MAAM,CAACmB,GAAG,CAACd;QAC/B,IAAI,CAACmB,QAAQ;YACX,MAAM,IAAIC,MAAM,CAAC,MAAM,EAAEpB,GAAG,UAAU,CAAC;QACzC;QAEAO,QAAQC,GAAG,CAAC,CAAC,WAAW,EAAEW,OAAOrB,IAAI,CAAC,QAAQ,EAAEqB,OAAOpB,IAAI,EAAE;QAC7DoB,OAAOhB,MAAM,GAAG;QAEhB,IAAI;YACF,MAAMD,QAAQ,IAAIT,YAAY0B;YAC9B,MAAME,SAAS,MAAMnB,MAAMoB,OAAO;YAElCH,OAAOE,MAAM,GAAGA;YAChBF,OAAOhB,MAAM,GAAG;YAChBI,QAAQC,GAAG,CAAC,CAAC,QAAQ,EAAER,GAAG,uBAAuB,CAAC;QACpD,EAAE,OAAOuB,OAAO;YACdJ,OAAOhB,MAAM,GAAG;YAChBI,QAAQgB,KAAK,CAAC,CAAC,QAAQ,EAAEvB,GAAG,QAAQ,CAAC,EAAEuB;YACvC,MAAMA;QACR;IACF;IAEA;;GAEC,GACD,MAAMC,SAAwB;QAC5B,MAAMC,gBAAgBf,MAAMC,IAAI,CAAC,IAAI,CAAChB,MAAM,CAACiB,MAAM,IAAIc,MAAM,CAC3D,CAACxB,QAAUA,MAAMC,MAAM,KAAK;QAG9B,IAAIsB,cAAcE,MAAM,KAAK,GAAG;YAC9BpB,QAAQC,GAAG,CAAC;YACZ;QACF;QAEAD,QAAQC,GAAG,CAAC,CAAC,WAAW,EAAEiB,cAAcE,MAAM,CAAC,UAAU,CAAC;QAE1D,KAAK,MAAMC,eAAeH,cAAe;YACvC,MAAM,IAAI,CAACP,QAAQ,CAACU,YAAY5B,EAAE;QACpC;QAEAO,QAAQC,GAAG,CAAC;IACd;IAEQP,aAAqB;QAC3B,OAAO4B,KAAKC,MAAM,GAAGC,QAAQ,CAAC,IAAIC,MAAM,CAAC,GAAG;IAC9C;AACF"}