aios-core 2.2.1 → 2.3.1
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/.aios-core/.session/current-session.json +14 -14
- package/.aios-core/cli/commands/migrate/validate.js +1 -1
- package/.aios-core/core/docs/session-update-pattern.md +17 -10
- package/.aios-core/core/elicitation/elicitation-engine.js +11 -6
- package/.aios-core/core/elicitation/session-manager.js +2 -1
- package/.aios-core/core/registry/registry-schema.json +166 -166
- package/.aios-core/core/registry/service-registry.json +6585 -6585
- package/.aios-core/core-config.yaml +12 -1
- package/.aios-core/data/agent-config-requirements.yaml +5 -5
- package/.aios-core/development/agents/devops.md +12 -0
- package/.aios-core/development/scripts/squad/README.md +112 -0
- package/.aios-core/development/scripts/squad/index.js +41 -0
- package/.aios-core/development/scripts/squad/squad-loader.js +359 -0
- package/.aios-core/development/scripts/squad/squad-validator.js +685 -0
- package/.aios-core/development/tasks/add-mcp.md +11 -5
- package/.aios-core/development/tasks/search-mcp.md +309 -0
- package/.aios-core/development/tasks/setup-mcp-docker.md +11 -8
- package/.aios-core/development/tasks/squad-creator-validate.md +151 -0
- package/.aios-core/docs/standards/AGENT-PERSONALIZATION-STANDARD-V1.md +3 -3
- package/.aios-core/index.d.ts +7 -7
- package/.aios-core/index.js +1 -1
- package/.aios-core/infrastructure/scripts/batch-creator.js +1 -1
- package/.aios-core/infrastructure/scripts/component-generator.js +1 -1
- package/.aios-core/infrastructure/templates/coderabbit.yaml.template +279 -279
- package/.aios-core/infrastructure/templates/github-workflows/ci.yml.template +169 -169
- package/.aios-core/infrastructure/templates/github-workflows/pr-automation.yml.template +330 -330
- package/.aios-core/infrastructure/templates/github-workflows/release.yml.template +196 -196
- package/.aios-core/infrastructure/templates/gitignore/gitignore-aios-base.tmpl +63 -63
- package/.aios-core/infrastructure/templates/gitignore/gitignore-brownfield-merge.tmpl +18 -18
- package/.aios-core/infrastructure/templates/gitignore/gitignore-node.tmpl +85 -85
- package/.aios-core/infrastructure/templates/gitignore/gitignore-python.tmpl +145 -145
- package/.aios-core/infrastructure/tests/utilities-audit-results.json +500 -500
- package/.aios-core/infrastructure/tools/README.md +1 -1
- package/.aios-core/install-manifest.yaml +4 -1
- package/.aios-core/manifests/schema/manifest-schema.json +190 -190
- package/.aios-core/manifests/workers.csv +203 -203
- package/.aios-core/package.json +102 -102
- package/.aios-core/product/templates/activation-instructions-template.md +7 -7
- package/.aios-core/product/templates/adr.hbs +125 -125
- package/.aios-core/product/templates/component-react-tmpl.tsx +98 -98
- package/.aios-core/product/templates/dbdr.hbs +241 -241
- package/.aios-core/product/templates/engine/schemas/adr.schema.json +102 -102
- package/.aios-core/product/templates/engine/schemas/dbdr.schema.json +205 -205
- package/.aios-core/product/templates/engine/schemas/epic.schema.json +175 -175
- package/.aios-core/product/templates/engine/schemas/pmdr.schema.json +175 -175
- package/.aios-core/product/templates/engine/schemas/prd-v2.schema.json +300 -300
- package/.aios-core/product/templates/engine/schemas/prd.schema.json +152 -152
- package/.aios-core/product/templates/engine/schemas/story.schema.json +222 -222
- package/.aios-core/product/templates/engine/schemas/task.schema.json +154 -154
- package/.aios-core/product/templates/epic.hbs +212 -212
- package/.aios-core/product/templates/eslintrc-security.json +32 -32
- package/.aios-core/product/templates/github-actions-cd.yml +212 -212
- package/.aios-core/product/templates/github-actions-ci.yml +172 -172
- package/.aios-core/product/templates/pmdr.hbs +186 -186
- package/.aios-core/product/templates/prd-v2.0.hbs +216 -216
- package/.aios-core/product/templates/prd.hbs +201 -201
- package/.aios-core/product/templates/shock-report-tmpl.html +502 -502
- package/.aios-core/product/templates/story.hbs +263 -263
- package/.aios-core/product/templates/task.hbs +170 -170
- package/.aios-core/product/templates/tmpl-comment-on-examples.sql +158 -158
- package/.aios-core/product/templates/tmpl-migration-script.sql +91 -91
- package/.aios-core/product/templates/tmpl-rls-granular-policies.sql +104 -104
- package/.aios-core/product/templates/tmpl-rls-kiss-policy.sql +10 -10
- package/.aios-core/product/templates/tmpl-rls-roles.sql +135 -135
- package/.aios-core/product/templates/tmpl-rls-simple.sql +77 -77
- package/.aios-core/product/templates/tmpl-rls-tenant.sql +152 -152
- package/.aios-core/product/templates/tmpl-rollback-script.sql +77 -77
- package/.aios-core/product/templates/tmpl-seed-data.sql +140 -140
- package/.aios-core/product/templates/tmpl-smoke-test.sql +16 -16
- package/.aios-core/product/templates/tmpl-staging-copy-merge.sql +139 -139
- package/.aios-core/product/templates/tmpl-stored-proc.sql +140 -140
- package/.aios-core/product/templates/tmpl-trigger.sql +152 -152
- package/.aios-core/product/templates/tmpl-view-materialized.sql +133 -133
- package/.aios-core/product/templates/tmpl-view.sql +177 -177
- package/.aios-core/product/templates/token-exports-css-tmpl.css +240 -240
- package/.aios-core/quality/schemas/quality-metrics.schema.json +233 -233
- package/.aios-core/schemas/squad-schema.json +185 -0
- package/.aios-core/scripts/README.md +90 -322
- package/.aios-core/scripts/migrate-framework-docs.sh +300 -300
- package/.claude/rules/mcp-usage.md +116 -100
- package/LICENSE +48 -48
- package/README.md +3 -4
- package/bin/aios-init.js +11 -6
- package/bin/aios.js +2 -1
- package/package.json +2 -3
- package/packages/installer/package.json +39 -39
- package/packages/installer/tests/integration/environment-configuration.test.js +2 -2
- package/packages/installer/tests/unit/env-template.test.js +4 -3
- package/templates/squad/LICENSE +21 -21
- package/templates/squad/README.md +37 -37
- package/templates/squad/agents/example-agent.yaml +36 -36
- package/templates/squad/package.json +19 -19
- package/templates/squad/squad.yaml +25 -25
- package/templates/squad/tasks/example-task.yaml +46 -46
- package/templates/squad/templates/example-template.md +24 -24
- package/templates/squad/tests/example-agent.test.js +53 -53
- package/templates/squad/workflows/example-workflow.yaml +54 -54
- package/tools/diagnose-npx-issue.ps1 +96 -96
- package/tools/quick-diagnose.cmd +85 -85
- package/tools/quick-diagnose.ps1 +117 -117
- package/.aios-core/core/data/agent-config-requirements.yaml +0 -368
- package/.aios-core/core/data/aios-kb.md +0 -924
- package/.aios-core/core/data/workflow-patterns.yaml +0 -267
- package/.aios-core/product/templates/1mcp-config.yaml +0 -225
- package/.aios-core/scripts/context-detector.js +0 -226
- package/.aios-core/scripts/elicitation-engine.js +0 -385
- package/.aios-core/scripts/elicitation-session-manager.js +0 -300
- package/.claude/CLAUDE.md +0 -221
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
# {{Squad Name}}
|
|
2
|
-
|
|
3
|
-
{{Brief description of what this Squad does}}
|
|
4
|
-
|
|
5
|
-
## Installation
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
npm install {{squad-name}}
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
## Usage
|
|
12
|
-
|
|
13
|
-
```bash
|
|
14
|
-
# Activate the agent
|
|
15
|
-
@{{agent-name}}
|
|
16
|
-
|
|
17
|
-
# Use commands
|
|
18
|
-
*{{command-name}}
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
## Features
|
|
22
|
-
|
|
23
|
-
- Feature 1
|
|
24
|
-
- Feature 2
|
|
25
|
-
- Feature 3
|
|
26
|
-
|
|
27
|
-
## Documentation
|
|
28
|
-
|
|
29
|
-
See the [full documentation](docs/README.md) for detailed usage.
|
|
30
|
-
|
|
31
|
-
## Contributing
|
|
32
|
-
|
|
33
|
-
Contributions welcome! See [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
34
|
-
|
|
35
|
-
## License
|
|
36
|
-
|
|
37
|
-
MIT License - see [LICENSE](LICENSE)
|
|
1
|
+
# {{Squad Name}}
|
|
2
|
+
|
|
3
|
+
{{Brief description of what this Squad does}}
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install {{squad-name}}
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# Activate the agent
|
|
15
|
+
@{{agent-name}}
|
|
16
|
+
|
|
17
|
+
# Use commands
|
|
18
|
+
*{{command-name}}
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Features
|
|
22
|
+
|
|
23
|
+
- Feature 1
|
|
24
|
+
- Feature 2
|
|
25
|
+
- Feature 3
|
|
26
|
+
|
|
27
|
+
## Documentation
|
|
28
|
+
|
|
29
|
+
See the [full documentation](docs/README.md) for detailed usage.
|
|
30
|
+
|
|
31
|
+
## Contributing
|
|
32
|
+
|
|
33
|
+
Contributions welcome! See [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
34
|
+
|
|
35
|
+
## License
|
|
36
|
+
|
|
37
|
+
MIT License - see [LICENSE](LICENSE)
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
# Example Agent Definition
|
|
2
|
-
# Replace placeholders with your agent's details
|
|
3
|
-
|
|
4
|
-
name: example-agent
|
|
5
|
-
version: 1.0.0
|
|
6
|
-
description: Brief description of what this agent does
|
|
7
|
-
|
|
8
|
-
persona:
|
|
9
|
-
name: Example Agent
|
|
10
|
-
role: Your Agent's Role
|
|
11
|
-
expertise:
|
|
12
|
-
- Expertise Area 1
|
|
13
|
-
- Expertise Area 2
|
|
14
|
-
- Expertise Area 3
|
|
15
|
-
|
|
16
|
-
capabilities:
|
|
17
|
-
- capability-one
|
|
18
|
-
- capability-two
|
|
19
|
-
|
|
20
|
-
commands:
|
|
21
|
-
- name: example-command
|
|
22
|
-
description: What this command does
|
|
23
|
-
workflow: example-workflow
|
|
24
|
-
|
|
25
|
-
system_prompt: |
|
|
26
|
-
You are Example Agent, specialized in [your domain].
|
|
27
|
-
|
|
28
|
-
Your responsibilities:
|
|
29
|
-
- Responsibility 1
|
|
30
|
-
- Responsibility 2
|
|
31
|
-
- Responsibility 3
|
|
32
|
-
|
|
33
|
-
Guidelines:
|
|
34
|
-
- Be helpful and precise
|
|
35
|
-
- Follow best practices
|
|
36
|
-
- Ask for clarification when needed
|
|
1
|
+
# Example Agent Definition
|
|
2
|
+
# Replace placeholders with your agent's details
|
|
3
|
+
|
|
4
|
+
name: example-agent
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
description: Brief description of what this agent does
|
|
7
|
+
|
|
8
|
+
persona:
|
|
9
|
+
name: Example Agent
|
|
10
|
+
role: Your Agent's Role
|
|
11
|
+
expertise:
|
|
12
|
+
- Expertise Area 1
|
|
13
|
+
- Expertise Area 2
|
|
14
|
+
- Expertise Area 3
|
|
15
|
+
|
|
16
|
+
capabilities:
|
|
17
|
+
- capability-one
|
|
18
|
+
- capability-two
|
|
19
|
+
|
|
20
|
+
commands:
|
|
21
|
+
- name: example-command
|
|
22
|
+
description: What this command does
|
|
23
|
+
workflow: example-workflow
|
|
24
|
+
|
|
25
|
+
system_prompt: |
|
|
26
|
+
You are Example Agent, specialized in [your domain].
|
|
27
|
+
|
|
28
|
+
Your responsibilities:
|
|
29
|
+
- Responsibility 1
|
|
30
|
+
- Responsibility 2
|
|
31
|
+
- Responsibility 3
|
|
32
|
+
|
|
33
|
+
Guidelines:
|
|
34
|
+
- Be helpful and precise
|
|
35
|
+
- Follow best practices
|
|
36
|
+
- Ask for clarification when needed
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "{{squad-name}}",
|
|
3
|
-
"version": "0.1.0",
|
|
4
|
-
"description": "{{description}}",
|
|
5
|
-
"main": "index.js",
|
|
6
|
-
"scripts": {
|
|
7
|
-
"test": "jest",
|
|
8
|
-
"lint": "eslint src/",
|
|
9
|
-
"dev": "aios-dev-server"
|
|
10
|
-
},
|
|
11
|
-
"keywords": ["aios", "aios-squad"],
|
|
12
|
-
"author": "{{author}}",
|
|
13
|
-
"license": "MIT",
|
|
14
|
-
"devDependencies": {
|
|
15
|
-
"@aios/testing": "^2.1.0",
|
|
16
|
-
"jest": "^29.0.0",
|
|
17
|
-
"eslint": "^8.0.0"
|
|
18
|
-
}
|
|
19
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "{{squad-name}}",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "{{description}}",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"test": "jest",
|
|
8
|
+
"lint": "eslint src/",
|
|
9
|
+
"dev": "aios-dev-server"
|
|
10
|
+
},
|
|
11
|
+
"keywords": ["aios", "aios-squad"],
|
|
12
|
+
"author": "{{author}}",
|
|
13
|
+
"license": "MIT",
|
|
14
|
+
"devDependencies": {
|
|
15
|
+
"@aios/testing": "^2.1.0",
|
|
16
|
+
"jest": "^29.0.0",
|
|
17
|
+
"eslint": "^8.0.0"
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
name: "{{squad-name}}"
|
|
2
|
-
version: 0.1.0
|
|
3
|
-
description: "{{description}}"
|
|
4
|
-
author: "{{author}}"
|
|
5
|
-
license: MIT
|
|
6
|
-
|
|
7
|
-
aios:
|
|
8
|
-
minVersion: "2.1.0"
|
|
9
|
-
type: squad
|
|
10
|
-
|
|
11
|
-
components:
|
|
12
|
-
agents:
|
|
13
|
-
- agents/*.yaml
|
|
14
|
-
tasks:
|
|
15
|
-
- tasks/*.yaml
|
|
16
|
-
workflows:
|
|
17
|
-
- workflows/*.yaml
|
|
18
|
-
templates:
|
|
19
|
-
- templates/*.md
|
|
20
|
-
|
|
21
|
-
dependencies: []
|
|
22
|
-
|
|
23
|
-
keywords:
|
|
24
|
-
- aios
|
|
25
|
-
- squad
|
|
1
|
+
name: "{{squad-name}}"
|
|
2
|
+
version: 0.1.0
|
|
3
|
+
description: "{{description}}"
|
|
4
|
+
author: "{{author}}"
|
|
5
|
+
license: MIT
|
|
6
|
+
|
|
7
|
+
aios:
|
|
8
|
+
minVersion: "2.1.0"
|
|
9
|
+
type: squad
|
|
10
|
+
|
|
11
|
+
components:
|
|
12
|
+
agents:
|
|
13
|
+
- agents/*.yaml
|
|
14
|
+
tasks:
|
|
15
|
+
- tasks/*.yaml
|
|
16
|
+
workflows:
|
|
17
|
+
- workflows/*.yaml
|
|
18
|
+
templates:
|
|
19
|
+
- templates/*.md
|
|
20
|
+
|
|
21
|
+
dependencies: []
|
|
22
|
+
|
|
23
|
+
keywords:
|
|
24
|
+
- aios
|
|
25
|
+
- squad
|
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
# Example Task Definition
|
|
2
|
-
# Replace placeholders with your task's details
|
|
3
|
-
|
|
4
|
-
name: example-task
|
|
5
|
-
version: 1.0.0
|
|
6
|
-
description: Brief description of what this task accomplishes
|
|
7
|
-
|
|
8
|
-
inputs:
|
|
9
|
-
- name: input1
|
|
10
|
-
type: string
|
|
11
|
-
required: true
|
|
12
|
-
description: Primary input for the task
|
|
13
|
-
|
|
14
|
-
- name: options
|
|
15
|
-
type: object
|
|
16
|
-
required: false
|
|
17
|
-
description: Optional configuration object
|
|
18
|
-
|
|
19
|
-
outputs:
|
|
20
|
-
- name: result
|
|
21
|
-
type: object
|
|
22
|
-
description: The processed result
|
|
23
|
-
|
|
24
|
-
- name: metadata
|
|
25
|
-
type: object
|
|
26
|
-
description: Additional information about the execution
|
|
27
|
-
|
|
28
|
-
steps:
|
|
29
|
-
- id: validate
|
|
30
|
-
action: validate-inputs
|
|
31
|
-
description: Validate all required inputs are present and valid
|
|
32
|
-
|
|
33
|
-
- id: process
|
|
34
|
-
action: process-data
|
|
35
|
-
description: Main processing logic
|
|
36
|
-
depends_on: [validate]
|
|
37
|
-
|
|
38
|
-
- id: finalize
|
|
39
|
-
action: prepare-output
|
|
40
|
-
description: Format and return the result
|
|
41
|
-
depends_on: [process]
|
|
42
|
-
|
|
43
|
-
error_handling:
|
|
44
|
-
on_validation_error: "Invalid input: {{error.message}}"
|
|
45
|
-
on_process_error: "Processing failed: {{error.message}}"
|
|
46
|
-
retry_count: 1
|
|
1
|
+
# Example Task Definition
|
|
2
|
+
# Replace placeholders with your task's details
|
|
3
|
+
|
|
4
|
+
name: example-task
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
description: Brief description of what this task accomplishes
|
|
7
|
+
|
|
8
|
+
inputs:
|
|
9
|
+
- name: input1
|
|
10
|
+
type: string
|
|
11
|
+
required: true
|
|
12
|
+
description: Primary input for the task
|
|
13
|
+
|
|
14
|
+
- name: options
|
|
15
|
+
type: object
|
|
16
|
+
required: false
|
|
17
|
+
description: Optional configuration object
|
|
18
|
+
|
|
19
|
+
outputs:
|
|
20
|
+
- name: result
|
|
21
|
+
type: object
|
|
22
|
+
description: The processed result
|
|
23
|
+
|
|
24
|
+
- name: metadata
|
|
25
|
+
type: object
|
|
26
|
+
description: Additional information about the execution
|
|
27
|
+
|
|
28
|
+
steps:
|
|
29
|
+
- id: validate
|
|
30
|
+
action: validate-inputs
|
|
31
|
+
description: Validate all required inputs are present and valid
|
|
32
|
+
|
|
33
|
+
- id: process
|
|
34
|
+
action: process-data
|
|
35
|
+
description: Main processing logic
|
|
36
|
+
depends_on: [validate]
|
|
37
|
+
|
|
38
|
+
- id: finalize
|
|
39
|
+
action: prepare-output
|
|
40
|
+
description: Format and return the result
|
|
41
|
+
depends_on: [process]
|
|
42
|
+
|
|
43
|
+
error_handling:
|
|
44
|
+
on_validation_error: "Invalid input: {{error.message}}"
|
|
45
|
+
on_process_error: "Processing failed: {{error.message}}"
|
|
46
|
+
retry_count: 1
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
# {{title}}
|
|
2
|
-
|
|
3
|
-
**Created:** {{date}}
|
|
4
|
-
**Author:** {{author}}
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## Overview
|
|
9
|
-
|
|
10
|
-
{{overview}}
|
|
11
|
-
|
|
12
|
-
## Details
|
|
13
|
-
|
|
14
|
-
{{details}}
|
|
15
|
-
|
|
16
|
-
## Next Steps
|
|
17
|
-
|
|
18
|
-
- [ ] Step 1
|
|
19
|
-
- [ ] Step 2
|
|
20
|
-
- [ ] Step 3
|
|
21
|
-
|
|
22
|
-
---
|
|
23
|
-
|
|
24
|
-
*Generated by {{squad-name}}*
|
|
1
|
+
# {{title}}
|
|
2
|
+
|
|
3
|
+
**Created:** {{date}}
|
|
4
|
+
**Author:** {{author}}
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
{{overview}}
|
|
11
|
+
|
|
12
|
+
## Details
|
|
13
|
+
|
|
14
|
+
{{details}}
|
|
15
|
+
|
|
16
|
+
## Next Steps
|
|
17
|
+
|
|
18
|
+
- [ ] Step 1
|
|
19
|
+
- [ ] Step 2
|
|
20
|
+
- [ ] Step 3
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
*Generated by {{squad-name}}*
|
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Example Agent Tests
|
|
3
|
-
* Replace with your actual test cases
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import { loadAgent, executeCommand } from '@aios/testing';
|
|
7
|
-
|
|
8
|
-
describe('example-agent', () => {
|
|
9
|
-
let agent;
|
|
10
|
-
|
|
11
|
-
beforeAll(async () => {
|
|
12
|
-
agent = await loadAgent('./agents/example-agent.yaml');
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
describe('initialization', () => {
|
|
16
|
-
test('should load agent successfully', () => {
|
|
17
|
-
expect(agent).toBeDefined();
|
|
18
|
-
expect(agent.name).toBe('example-agent');
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
test('should have required persona fields', () => {
|
|
22
|
-
expect(agent.persona.name).toBeDefined();
|
|
23
|
-
expect(agent.persona.role).toBeDefined();
|
|
24
|
-
expect(agent.persona.expertise).toBeInstanceOf(Array);
|
|
25
|
-
});
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
describe('commands', () => {
|
|
29
|
-
test('should have example-command registered', () => {
|
|
30
|
-
const command = agent.commands.find(c => c.name === 'example-command');
|
|
31
|
-
expect(command).toBeDefined();
|
|
32
|
-
expect(command.workflow).toBe('example-workflow');
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
describe('execution', () => {
|
|
37
|
-
test('should execute example-command successfully', async () => {
|
|
38
|
-
const result = await executeCommand(agent, '*example-command', {
|
|
39
|
-
input1: 'test-input'
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
expect(result.success).toBe(true);
|
|
43
|
-
expect(result.output).toBeDefined();
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
test('should handle invalid input gracefully', async () => {
|
|
47
|
-
const result = await executeCommand(agent, '*example-command', {});
|
|
48
|
-
|
|
49
|
-
expect(result.success).toBe(false);
|
|
50
|
-
expect(result.error).toContain('input');
|
|
51
|
-
});
|
|
52
|
-
});
|
|
53
|
-
});
|
|
1
|
+
/**
|
|
2
|
+
* Example Agent Tests
|
|
3
|
+
* Replace with your actual test cases
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { loadAgent, executeCommand } from '@aios/testing';
|
|
7
|
+
|
|
8
|
+
describe('example-agent', () => {
|
|
9
|
+
let agent;
|
|
10
|
+
|
|
11
|
+
beforeAll(async () => {
|
|
12
|
+
agent = await loadAgent('./agents/example-agent.yaml');
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
describe('initialization', () => {
|
|
16
|
+
test('should load agent successfully', () => {
|
|
17
|
+
expect(agent).toBeDefined();
|
|
18
|
+
expect(agent.name).toBe('example-agent');
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
test('should have required persona fields', () => {
|
|
22
|
+
expect(agent.persona.name).toBeDefined();
|
|
23
|
+
expect(agent.persona.role).toBeDefined();
|
|
24
|
+
expect(agent.persona.expertise).toBeInstanceOf(Array);
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
describe('commands', () => {
|
|
29
|
+
test('should have example-command registered', () => {
|
|
30
|
+
const command = agent.commands.find(c => c.name === 'example-command');
|
|
31
|
+
expect(command).toBeDefined();
|
|
32
|
+
expect(command.workflow).toBe('example-workflow');
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
describe('execution', () => {
|
|
37
|
+
test('should execute example-command successfully', async () => {
|
|
38
|
+
const result = await executeCommand(agent, '*example-command', {
|
|
39
|
+
input1: 'test-input'
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
expect(result.success).toBe(true);
|
|
43
|
+
expect(result.output).toBeDefined();
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
test('should handle invalid input gracefully', async () => {
|
|
47
|
+
const result = await executeCommand(agent, '*example-command', {});
|
|
48
|
+
|
|
49
|
+
expect(result.success).toBe(false);
|
|
50
|
+
expect(result.error).toContain('input');
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
});
|
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
# Example Workflow Definition
|
|
2
|
-
# Replace placeholders with your workflow's details
|
|
3
|
-
|
|
4
|
-
name: example-workflow
|
|
5
|
-
version: 1.0.0
|
|
6
|
-
description: Multi-step workflow that orchestrates tasks
|
|
7
|
-
|
|
8
|
-
trigger:
|
|
9
|
-
command: "*example-command"
|
|
10
|
-
agent: example-agent
|
|
11
|
-
|
|
12
|
-
elicitation:
|
|
13
|
-
enabled: true
|
|
14
|
-
questions:
|
|
15
|
-
- id: action_type
|
|
16
|
-
prompt: "What would you like to do?"
|
|
17
|
-
type: choice
|
|
18
|
-
options:
|
|
19
|
-
- Create new item
|
|
20
|
-
- Update existing item
|
|
21
|
-
- Delete item
|
|
22
|
-
|
|
23
|
-
- id: item_name
|
|
24
|
-
prompt: "What is the name of the item?"
|
|
25
|
-
type: text
|
|
26
|
-
required: true
|
|
27
|
-
|
|
28
|
-
steps:
|
|
29
|
-
- id: step-1
|
|
30
|
-
task: example-task
|
|
31
|
-
inputs:
|
|
32
|
-
input1: "{{elicitation.item_name}}"
|
|
33
|
-
options:
|
|
34
|
-
action: "{{elicitation.action_type}}"
|
|
35
|
-
on_success: step-2
|
|
36
|
-
on_error: error-handler
|
|
37
|
-
|
|
38
|
-
- id: step-2
|
|
39
|
-
action: log-result
|
|
40
|
-
description: Log the successful result
|
|
41
|
-
inputs:
|
|
42
|
-
message: "Operation completed successfully"
|
|
43
|
-
|
|
44
|
-
error_handling:
|
|
45
|
-
- id: error-handler
|
|
46
|
-
action: notify
|
|
47
|
-
message: "Workflow failed: {{error.message}}"
|
|
48
|
-
severity: error
|
|
49
|
-
|
|
50
|
-
completion:
|
|
51
|
-
message: "Workflow completed successfully!"
|
|
52
|
-
next_steps:
|
|
53
|
-
- Review the output
|
|
54
|
-
- Verify the changes
|
|
1
|
+
# Example Workflow Definition
|
|
2
|
+
# Replace placeholders with your workflow's details
|
|
3
|
+
|
|
4
|
+
name: example-workflow
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
description: Multi-step workflow that orchestrates tasks
|
|
7
|
+
|
|
8
|
+
trigger:
|
|
9
|
+
command: "*example-command"
|
|
10
|
+
agent: example-agent
|
|
11
|
+
|
|
12
|
+
elicitation:
|
|
13
|
+
enabled: true
|
|
14
|
+
questions:
|
|
15
|
+
- id: action_type
|
|
16
|
+
prompt: "What would you like to do?"
|
|
17
|
+
type: choice
|
|
18
|
+
options:
|
|
19
|
+
- Create new item
|
|
20
|
+
- Update existing item
|
|
21
|
+
- Delete item
|
|
22
|
+
|
|
23
|
+
- id: item_name
|
|
24
|
+
prompt: "What is the name of the item?"
|
|
25
|
+
type: text
|
|
26
|
+
required: true
|
|
27
|
+
|
|
28
|
+
steps:
|
|
29
|
+
- id: step-1
|
|
30
|
+
task: example-task
|
|
31
|
+
inputs:
|
|
32
|
+
input1: "{{elicitation.item_name}}"
|
|
33
|
+
options:
|
|
34
|
+
action: "{{elicitation.action_type}}"
|
|
35
|
+
on_success: step-2
|
|
36
|
+
on_error: error-handler
|
|
37
|
+
|
|
38
|
+
- id: step-2
|
|
39
|
+
action: log-result
|
|
40
|
+
description: Log the successful result
|
|
41
|
+
inputs:
|
|
42
|
+
message: "Operation completed successfully"
|
|
43
|
+
|
|
44
|
+
error_handling:
|
|
45
|
+
- id: error-handler
|
|
46
|
+
action: notify
|
|
47
|
+
message: "Workflow failed: {{error.message}}"
|
|
48
|
+
severity: error
|
|
49
|
+
|
|
50
|
+
completion:
|
|
51
|
+
message: "Workflow completed successfully!"
|
|
52
|
+
next_steps:
|
|
53
|
+
- Review the output
|
|
54
|
+
- Verify the changes
|