aios-core 4.1.0 → 4.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.
- package/.aios-core/.session/current-session.json +14 -0
- package/.aios-core/core/registry/registry-schema.json +166 -166
- package/.aios-core/core/registry/service-registry.json +6585 -6585
- package/.aios-core/data/entity-registry.yaml +208 -8
- package/.aios-core/data/registry-update-log.jsonl +165 -0
- package/.aios-core/development/scripts/approval-workflow.js +642 -642
- package/.aios-core/development/scripts/backup-manager.js +606 -606
- package/.aios-core/development/scripts/branch-manager.js +389 -389
- package/.aios-core/development/scripts/code-quality-improver.js +1311 -1311
- package/.aios-core/development/scripts/commit-message-generator.js +849 -849
- package/.aios-core/development/scripts/conflict-resolver.js +674 -674
- package/.aios-core/development/scripts/dependency-analyzer.js +637 -637
- package/.aios-core/development/scripts/diff-generator.js +351 -351
- package/.aios-core/development/scripts/elicitation-engine.js +384 -384
- package/.aios-core/development/scripts/elicitation-session-manager.js +299 -299
- package/.aios-core/development/scripts/git-wrapper.js +461 -461
- package/.aios-core/development/scripts/manifest-preview.js +244 -244
- package/.aios-core/development/scripts/metrics-tracker.js +775 -775
- package/.aios-core/development/scripts/modification-validator.js +554 -554
- package/.aios-core/development/scripts/pattern-learner.js +1224 -1224
- package/.aios-core/development/scripts/performance-analyzer.js +757 -757
- package/.aios-core/development/scripts/refactoring-suggester.js +1138 -1138
- package/.aios-core/development/scripts/rollback-handler.js +530 -530
- package/.aios-core/development/scripts/security-checker.js +358 -358
- package/.aios-core/development/scripts/template-engine.js +239 -239
- package/.aios-core/development/scripts/template-validator.js +278 -278
- package/.aios-core/development/scripts/test-generator.js +843 -843
- package/.aios-core/development/scripts/transaction-manager.js +589 -589
- package/.aios-core/development/scripts/usage-tracker.js +673 -673
- package/.aios-core/development/scripts/validate-filenames.js +226 -226
- package/.aios-core/development/scripts/version-tracker.js +526 -526
- package/.aios-core/development/scripts/yaml-validator.js +396 -396
- package/.aios-core/development/tasks/validate-next-story.md +99 -2
- package/.aios-core/development/templates/service-template/README.md.hbs +158 -158
- package/.aios-core/development/templates/service-template/__tests__/index.test.ts.hbs +237 -237
- package/.aios-core/development/templates/service-template/client.ts.hbs +403 -403
- package/.aios-core/development/templates/service-template/errors.ts.hbs +182 -182
- package/.aios-core/development/templates/service-template/index.ts.hbs +120 -120
- package/.aios-core/development/templates/service-template/package.json.hbs +87 -87
- package/.aios-core/development/templates/service-template/types.ts.hbs +145 -145
- package/.aios-core/development/templates/squad-template/LICENSE +21 -21
- package/.aios-core/docs/SHARD-TRANSLATION-GUIDE.md +335 -0
- package/.aios-core/docs/component-creation-guide.md +458 -0
- package/.aios-core/docs/session-update-pattern.md +307 -0
- package/.aios-core/docs/standards/AIOS-FRAMEWORK-MASTER.md +1963 -0
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1-SUMMARY.md +1190 -0
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1.md +439 -0
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO.md +5398 -0
- package/.aios-core/docs/standards/V3-ARCHITECTURAL-DECISIONS.md +523 -0
- package/.aios-core/docs/template-syntax.md +267 -0
- package/.aios-core/docs/troubleshooting-guide.md +625 -0
- package/.aios-core/infrastructure/templates/aios-sync.yaml.template +193 -193
- 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 +501 -0
- package/.aios-core/install-manifest.yaml +101 -101
- package/.aios-core/local-config.yaml.template +70 -70
- package/.aios-core/manifests/agents.csv +29 -0
- package/.aios-core/manifests/schema/manifest-schema.json +190 -190
- package/.aios-core/manifests/tasks.csv +198 -0
- package/.aios-core/manifests/workers.csv +204 -0
- package/.aios-core/monitor/hooks/lib/__init__.py +1 -1
- package/.aios-core/monitor/hooks/lib/enrich.py +58 -58
- package/.aios-core/monitor/hooks/lib/send_event.py +47 -47
- package/.aios-core/monitor/hooks/notification.py +29 -29
- package/.aios-core/monitor/hooks/post_tool_use.py +45 -45
- package/.aios-core/monitor/hooks/pre_compact.py +29 -29
- package/.aios-core/monitor/hooks/pre_tool_use.py +40 -40
- package/.aios-core/monitor/hooks/stop.py +29 -29
- package/.aios-core/monitor/hooks/subagent_stop.py +29 -29
- package/.aios-core/monitor/hooks/user_prompt_submit.py +38 -38
- 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/scripts/migrate-framework-docs.sh +300 -300
- package/.aios-core/scripts/pm.sh +0 -0
- package/.claude/hooks/enforce-architecture-first.py +196 -196
- package/.claude/hooks/mind-clone-governance.py +192 -192
- package/.claude/hooks/read-protection.py +151 -151
- package/.claude/hooks/slug-validation.py +176 -176
- package/.claude/hooks/sql-governance.py +182 -182
- package/.claude/hooks/write-path-validation.py +194 -194
- package/.claude/rules/agent-authority.md +105 -0
- package/.claude/rules/coderabbit-integration.md +93 -0
- package/.claude/rules/ids-principles.md +112 -0
- package/.claude/rules/story-lifecycle.md +139 -0
- package/.claude/rules/workflow-execution.md +150 -0
- package/LICENSE +48 -48
- package/bin/aios-minimal.js +0 -0
- package/bin/aios.js +0 -0
- package/package.json +1 -1
- package/packages/aios-install/bin/aios-install.js +0 -0
- package/packages/aios-install/bin/edmcp.js +0 -0
- package/packages/aios-pro-cli/bin/aios-pro.js +0 -0
- package/packages/installer/src/wizard/pro-setup.js +433 -49
- package/scripts/check-markdown-links.py +352 -352
- package/scripts/code-intel-health-check.js +343 -0
- package/scripts/dashboard-parallel-dev.sh +0 -0
- package/scripts/dashboard-parallel-phase3.sh +0 -0
- package/scripts/dashboard-parallel-phase4.sh +0 -0
- package/scripts/glue/README.md +355 -0
- package/scripts/glue/compose-agent-prompt.cjs +362 -0
- package/scripts/install-monitor-hooks.sh +0 -0
- package/.aios-core/lib/build.json +0 -1
|
@@ -190,13 +190,24 @@ token_usage: ~3,000-10,000 tokens
|
|
|
190
190
|
|
|
191
191
|
```yaml
|
|
192
192
|
story: N/A
|
|
193
|
-
version:
|
|
193
|
+
version: 2.0.0
|
|
194
194
|
dependencies:
|
|
195
195
|
- N/A
|
|
196
196
|
tags:
|
|
197
197
|
- automation
|
|
198
198
|
- workflow
|
|
199
|
-
|
|
199
|
+
- self-healing
|
|
200
|
+
- auto-fix
|
|
201
|
+
updated_at: 2026-02-15
|
|
202
|
+
changelog:
|
|
203
|
+
- version: 2.0.0
|
|
204
|
+
date: 2026-02-15
|
|
205
|
+
author: "@po (Pax)"
|
|
206
|
+
change: "Added Step 12: Auto-Fix and Re-Validate loop — fixes template compliance, CodeRabbit, Dev Notes, Testing, Risks, and task AC mapping automatically"
|
|
207
|
+
- version: 1.0.0
|
|
208
|
+
date: 2025-11-17
|
|
209
|
+
author: "original"
|
|
210
|
+
change: "Initial validate-next-story task (report-only, no auto-fix)"
|
|
200
211
|
```
|
|
201
212
|
|
|
202
213
|
---
|
|
@@ -452,4 +463,90 @@ Provide a structured validation report including:
|
|
|
452
463
|
- **NO-GO**: Story requires fixes before implementation
|
|
453
464
|
- **Implementation Readiness Score**: 1-10 scale
|
|
454
465
|
- **Confidence Level**: High/Medium/Low for successful implementation
|
|
466
|
+
|
|
467
|
+
### 12. Auto-Fix and Re-Validate (Self-Healing Loop)
|
|
468
|
+
|
|
469
|
+
**Purpose:** Automatically fix all fixable issues found during validation instead of just reporting them. This eliminates the manual round-trip of validate → report → fix → re-validate.
|
|
470
|
+
|
|
471
|
+
**EXECUTION RULES:**
|
|
472
|
+
|
|
473
|
+
```yaml
|
|
474
|
+
auto_fix:
|
|
475
|
+
enabled: true
|
|
476
|
+
max_iterations: 2
|
|
477
|
+
fixable_categories:
|
|
478
|
+
- template_compliance # Missing sections from story template
|
|
479
|
+
- executor_assignment # Missing or incorrect executor/quality_gate fields
|
|
480
|
+
- story_format # Missing "As a / I want / So that"
|
|
481
|
+
- coderabbit_section # Missing or incomplete CodeRabbit Integration
|
|
482
|
+
- dev_notes # Missing Dev Notes, Source Tree, Testing
|
|
483
|
+
- task_ac_mapping # Tasks without AC references
|
|
484
|
+
- risks_section # Missing Risks section
|
|
485
|
+
- placeholder_sections # Missing Dev Agent Record, QA Results placeholders
|
|
486
|
+
non_fixable_categories:
|
|
487
|
+
- anti_hallucination # Requires human verification
|
|
488
|
+
- business_logic # Requires PO decision
|
|
489
|
+
- scope_changes # Requires stakeholder approval
|
|
490
|
+
```
|
|
491
|
+
|
|
492
|
+
**SEQUENTIAL AUTO-FIX PROCEDURE:**
|
|
493
|
+
|
|
494
|
+
1. **Classify issues** from Step 11 report:
|
|
495
|
+
- `FIXABLE`: Template compliance, missing sections, structural issues
|
|
496
|
+
- `NON-FIXABLE`: Business logic, scope, anti-hallucination findings
|
|
497
|
+
|
|
498
|
+
2. **IF fixable issues exist AND iteration < max_iterations:**
|
|
499
|
+
|
|
500
|
+
a. **Template Compliance Fixes:**
|
|
501
|
+
- Missing Executor Assignment → Infer from story Agent field and Work Type mapping (Step 1.1 table)
|
|
502
|
+
- Missing Story format → Generate from Description section (extract role, action, benefit)
|
|
503
|
+
- Missing Dev Notes → Generate from Technical Notes, File List, and epic context
|
|
504
|
+
- Missing Testing section → Generate from Acceptance Criteria (derive test scenarios)
|
|
505
|
+
- Missing Risks section → Generate from Description and Scope (identify common risk patterns)
|
|
506
|
+
- Missing placeholder sections (Dev Agent Record, QA Results) → Add standard placeholders
|
|
507
|
+
|
|
508
|
+
b. **CodeRabbit Integration Fixes (if `coderabbit_integration.enabled: true`):**
|
|
509
|
+
- Missing section → Generate from story type analysis:
|
|
510
|
+
- Infer Primary Type from Description keywords
|
|
511
|
+
- Assign agents from Work Type mapping
|
|
512
|
+
- Add Quality Gate checkboxes (Pre-Commit always, Pre-PR if applicable)
|
|
513
|
+
- Add Self-Healing config based on primary agent
|
|
514
|
+
- Add Focus Areas based on story type
|
|
515
|
+
|
|
516
|
+
c. **Task Enhancement Fixes:**
|
|
517
|
+
- Missing AC references → Map tasks to ACs by content matching
|
|
518
|
+
- Missing subtasks → Break down vague tasks into specific subtasks
|
|
519
|
+
- Add edge case scenarios to ACs if obvious gaps found
|
|
520
|
+
|
|
521
|
+
d. **Nice-to-Have Improvements:**
|
|
522
|
+
- Add external dependency links (GitHub, npm) if referenced in Technical Notes
|
|
523
|
+
- Expand Scope IN/OUT if implicit from Description
|
|
524
|
+
|
|
525
|
+
3. **Apply all fixes** to the story file using Edit tool
|
|
526
|
+
|
|
527
|
+
4. **Re-validate** (run Steps 1-11 again on fixed story)
|
|
528
|
+
|
|
529
|
+
5. **IF still NO-GO after max_iterations:**
|
|
530
|
+
- Report remaining NON-FIXABLE issues
|
|
531
|
+
- List what was auto-fixed vs what needs human decision
|
|
532
|
+
- HALT for user input
|
|
533
|
+
|
|
534
|
+
6. **IF GO after fixes:**
|
|
535
|
+
- Update story Status from `Draft` to `Ready`
|
|
536
|
+
- Log transition in Change Log: `"Status: Draft → Ready (validation GO {score}/10, auto-fixed {N} issues)"`
|
|
537
|
+
- Report summary of all fixes applied
|
|
538
|
+
|
|
539
|
+
**AUTO-FIX CHANGE LOG FORMAT:**
|
|
540
|
+
```markdown
|
|
541
|
+
| {date} | @po (Pax) | v{N} — Auto-fix: {comma-separated list of fixes applied} |
|
|
542
|
+
| {date} | @po (Pax) | Status: Draft → Ready (validation GO {score}/10) |
|
|
543
|
+
```
|
|
544
|
+
|
|
545
|
+
**IMPORTANT CONSTRAINTS:**
|
|
546
|
+
- NEVER change Acceptance Criteria content (only add missing edge cases as new ACs)
|
|
547
|
+
- NEVER change Description or Problem/Solution
|
|
548
|
+
- NEVER change Scope IN/OUT boundaries
|
|
549
|
+
- NEVER change Points or Priority
|
|
550
|
+
- NEVER invent technical details not present in epic/PRD context
|
|
551
|
+
- All generated content MUST be traceable to existing story content or epic context
|
|
455
552
|
|
|
@@ -1,158 +1,158 @@
|
|
|
1
|
-
# {{pascalCase serviceName}} Service
|
|
2
|
-
|
|
3
|
-
> {{description}}
|
|
4
|
-
|
|
5
|
-
## Installation
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
npm install @aios/{{kebabCase serviceName}}
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
## Quick Start
|
|
12
|
-
|
|
13
|
-
```typescript
|
|
14
|
-
import { create{{pascalCase serviceName}}Service } from '@aios/{{kebabCase serviceName}}';
|
|
15
|
-
|
|
16
|
-
const service = create{{pascalCase serviceName}}Service({
|
|
17
|
-
{{#each envVars}}
|
|
18
|
-
{{camelCase this.name}}: process.env.{{this.name}},
|
|
19
|
-
{{/each}}
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
// Use the service
|
|
23
|
-
const result = await service.execute();
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
## Configuration
|
|
27
|
-
|
|
28
|
-
### Environment Variables
|
|
29
|
-
|
|
30
|
-
| Variable | Required | Description |
|
|
31
|
-
|----------|----------|-------------|
|
|
32
|
-
{{#each envVars}}
|
|
33
|
-
| `{{this.name}}` | {{#if this.required}}Yes{{else}}No{{/if}} | {{this.description}} |
|
|
34
|
-
{{/each}}
|
|
35
|
-
|
|
36
|
-
### Programmatic Configuration
|
|
37
|
-
|
|
38
|
-
```typescript
|
|
39
|
-
import { create{{pascalCase serviceName}}Service, {{pascalCase serviceName}}Config } from '@aios/{{kebabCase serviceName}}';
|
|
40
|
-
|
|
41
|
-
const config: {{pascalCase serviceName}}Config = {
|
|
42
|
-
{{#each envVars}}
|
|
43
|
-
{{camelCase this.name}}: '{{this.example}}',
|
|
44
|
-
{{/each}}
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
const service = create{{pascalCase serviceName}}Service(config);
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
{{#if isApiIntegration}}
|
|
51
|
-
## API Integration
|
|
52
|
-
|
|
53
|
-
This service integrates with an external API. Features include:
|
|
54
|
-
|
|
55
|
-
- **Rate Limiting**: Automatic request throttling
|
|
56
|
-
- **Retry Logic**: Exponential backoff on failures
|
|
57
|
-
- **Error Handling**: Typed errors with actionable messages
|
|
58
|
-
|
|
59
|
-
### Rate Limits
|
|
60
|
-
|
|
61
|
-
> **Note:** The values below are placeholders. Update them according to your API's actual rate limits.
|
|
62
|
-
|
|
63
|
-
| Tier | Requests/min | Burst |
|
|
64
|
-
|------|--------------|-------|
|
|
65
|
-
| Free | 60 | 10 |
|
|
66
|
-
| Pro | 600 | 100 |
|
|
67
|
-
|
|
68
|
-
{{/if}}
|
|
69
|
-
## Usage Examples
|
|
70
|
-
|
|
71
|
-
### Basic Usage
|
|
72
|
-
|
|
73
|
-
```typescript
|
|
74
|
-
const service = create{{pascalCase serviceName}}Service(config);
|
|
75
|
-
|
|
76
|
-
try {
|
|
77
|
-
const result = await service.execute();
|
|
78
|
-
console.log('Success:', result);
|
|
79
|
-
} catch (error) {
|
|
80
|
-
if (error instanceof {{pascalCase serviceName}}Error) {
|
|
81
|
-
console.error('Service error:', error.code, error.message);
|
|
82
|
-
}
|
|
83
|
-
throw error;
|
|
84
|
-
}
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
{{#if hasAuth}}
|
|
88
|
-
### Authentication
|
|
89
|
-
|
|
90
|
-
This service requires authentication. Set your credentials via environment variables or config:
|
|
91
|
-
|
|
92
|
-
```typescript
|
|
93
|
-
const service = create{{pascalCase serviceName}}Service({
|
|
94
|
-
apiKey: process.env.{{upperCase serviceName}}_API_KEY,
|
|
95
|
-
// or
|
|
96
|
-
accessToken: process.env.{{upperCase serviceName}}_ACCESS_TOKEN,
|
|
97
|
-
});
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
{{/if}}
|
|
101
|
-
## Error Handling
|
|
102
|
-
|
|
103
|
-
The service provides typed errors for common failure scenarios:
|
|
104
|
-
|
|
105
|
-
```typescript
|
|
106
|
-
import { {{pascalCase serviceName}}Error, {{pascalCase serviceName}}ErrorCode } from '@aios/{{kebabCase serviceName}}';
|
|
107
|
-
|
|
108
|
-
try {
|
|
109
|
-
await service.execute();
|
|
110
|
-
} catch (error) {
|
|
111
|
-
if (error instanceof {{pascalCase serviceName}}Error) {
|
|
112
|
-
switch (error.code) {
|
|
113
|
-
case {{pascalCase serviceName}}ErrorCode.CONFIGURATION_ERROR:
|
|
114
|
-
// Handle configuration issues
|
|
115
|
-
break;
|
|
116
|
-
case {{pascalCase serviceName}}ErrorCode.NETWORK_ERROR:
|
|
117
|
-
// Handle network issues
|
|
118
|
-
break;
|
|
119
|
-
{{#if isApiIntegration}}
|
|
120
|
-
case {{pascalCase serviceName}}ErrorCode.RATE_LIMIT_EXCEEDED:
|
|
121
|
-
// Handle rate limiting
|
|
122
|
-
break;
|
|
123
|
-
{{/if}}
|
|
124
|
-
default:
|
|
125
|
-
// Handle other errors
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
## API Reference
|
|
132
|
-
|
|
133
|
-
See the [TypeScript definitions](./dist/types.d.ts) for complete API documentation.
|
|
134
|
-
|
|
135
|
-
## Development
|
|
136
|
-
|
|
137
|
-
```bash
|
|
138
|
-
# Install dependencies
|
|
139
|
-
npm install
|
|
140
|
-
|
|
141
|
-
# Run tests
|
|
142
|
-
npm test
|
|
143
|
-
|
|
144
|
-
# Build
|
|
145
|
-
npm run build
|
|
146
|
-
|
|
147
|
-
# Type check
|
|
148
|
-
npm run typecheck
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
## License
|
|
152
|
-
|
|
153
|
-
MIT
|
|
154
|
-
|
|
155
|
-
---
|
|
156
|
-
|
|
157
|
-
*Generated by AIOS-FullStack Service Template*
|
|
158
|
-
*Story: {{storyId}}*
|
|
1
|
+
# {{pascalCase serviceName}} Service
|
|
2
|
+
|
|
3
|
+
> {{description}}
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @aios/{{kebabCase serviceName}}
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Quick Start
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
import { create{{pascalCase serviceName}}Service } from '@aios/{{kebabCase serviceName}}';
|
|
15
|
+
|
|
16
|
+
const service = create{{pascalCase serviceName}}Service({
|
|
17
|
+
{{#each envVars}}
|
|
18
|
+
{{camelCase this.name}}: process.env.{{this.name}},
|
|
19
|
+
{{/each}}
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
// Use the service
|
|
23
|
+
const result = await service.execute();
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Configuration
|
|
27
|
+
|
|
28
|
+
### Environment Variables
|
|
29
|
+
|
|
30
|
+
| Variable | Required | Description |
|
|
31
|
+
|----------|----------|-------------|
|
|
32
|
+
{{#each envVars}}
|
|
33
|
+
| `{{this.name}}` | {{#if this.required}}Yes{{else}}No{{/if}} | {{this.description}} |
|
|
34
|
+
{{/each}}
|
|
35
|
+
|
|
36
|
+
### Programmatic Configuration
|
|
37
|
+
|
|
38
|
+
```typescript
|
|
39
|
+
import { create{{pascalCase serviceName}}Service, {{pascalCase serviceName}}Config } from '@aios/{{kebabCase serviceName}}';
|
|
40
|
+
|
|
41
|
+
const config: {{pascalCase serviceName}}Config = {
|
|
42
|
+
{{#each envVars}}
|
|
43
|
+
{{camelCase this.name}}: '{{this.example}}',
|
|
44
|
+
{{/each}}
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
const service = create{{pascalCase serviceName}}Service(config);
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
{{#if isApiIntegration}}
|
|
51
|
+
## API Integration
|
|
52
|
+
|
|
53
|
+
This service integrates with an external API. Features include:
|
|
54
|
+
|
|
55
|
+
- **Rate Limiting**: Automatic request throttling
|
|
56
|
+
- **Retry Logic**: Exponential backoff on failures
|
|
57
|
+
- **Error Handling**: Typed errors with actionable messages
|
|
58
|
+
|
|
59
|
+
### Rate Limits
|
|
60
|
+
|
|
61
|
+
> **Note:** The values below are placeholders. Update them according to your API's actual rate limits.
|
|
62
|
+
|
|
63
|
+
| Tier | Requests/min | Burst |
|
|
64
|
+
|------|--------------|-------|
|
|
65
|
+
| Free | 60 | 10 |
|
|
66
|
+
| Pro | 600 | 100 |
|
|
67
|
+
|
|
68
|
+
{{/if}}
|
|
69
|
+
## Usage Examples
|
|
70
|
+
|
|
71
|
+
### Basic Usage
|
|
72
|
+
|
|
73
|
+
```typescript
|
|
74
|
+
const service = create{{pascalCase serviceName}}Service(config);
|
|
75
|
+
|
|
76
|
+
try {
|
|
77
|
+
const result = await service.execute();
|
|
78
|
+
console.log('Success:', result);
|
|
79
|
+
} catch (error) {
|
|
80
|
+
if (error instanceof {{pascalCase serviceName}}Error) {
|
|
81
|
+
console.error('Service error:', error.code, error.message);
|
|
82
|
+
}
|
|
83
|
+
throw error;
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
{{#if hasAuth}}
|
|
88
|
+
### Authentication
|
|
89
|
+
|
|
90
|
+
This service requires authentication. Set your credentials via environment variables or config:
|
|
91
|
+
|
|
92
|
+
```typescript
|
|
93
|
+
const service = create{{pascalCase serviceName}}Service({
|
|
94
|
+
apiKey: process.env.{{upperCase serviceName}}_API_KEY,
|
|
95
|
+
// or
|
|
96
|
+
accessToken: process.env.{{upperCase serviceName}}_ACCESS_TOKEN,
|
|
97
|
+
});
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
{{/if}}
|
|
101
|
+
## Error Handling
|
|
102
|
+
|
|
103
|
+
The service provides typed errors for common failure scenarios:
|
|
104
|
+
|
|
105
|
+
```typescript
|
|
106
|
+
import { {{pascalCase serviceName}}Error, {{pascalCase serviceName}}ErrorCode } from '@aios/{{kebabCase serviceName}}';
|
|
107
|
+
|
|
108
|
+
try {
|
|
109
|
+
await service.execute();
|
|
110
|
+
} catch (error) {
|
|
111
|
+
if (error instanceof {{pascalCase serviceName}}Error) {
|
|
112
|
+
switch (error.code) {
|
|
113
|
+
case {{pascalCase serviceName}}ErrorCode.CONFIGURATION_ERROR:
|
|
114
|
+
// Handle configuration issues
|
|
115
|
+
break;
|
|
116
|
+
case {{pascalCase serviceName}}ErrorCode.NETWORK_ERROR:
|
|
117
|
+
// Handle network issues
|
|
118
|
+
break;
|
|
119
|
+
{{#if isApiIntegration}}
|
|
120
|
+
case {{pascalCase serviceName}}ErrorCode.RATE_LIMIT_EXCEEDED:
|
|
121
|
+
// Handle rate limiting
|
|
122
|
+
break;
|
|
123
|
+
{{/if}}
|
|
124
|
+
default:
|
|
125
|
+
// Handle other errors
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## API Reference
|
|
132
|
+
|
|
133
|
+
See the [TypeScript definitions](./dist/types.d.ts) for complete API documentation.
|
|
134
|
+
|
|
135
|
+
## Development
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
# Install dependencies
|
|
139
|
+
npm install
|
|
140
|
+
|
|
141
|
+
# Run tests
|
|
142
|
+
npm test
|
|
143
|
+
|
|
144
|
+
# Build
|
|
145
|
+
npm run build
|
|
146
|
+
|
|
147
|
+
# Type check
|
|
148
|
+
npm run typecheck
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## License
|
|
152
|
+
|
|
153
|
+
MIT
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
*Generated by AIOS-FullStack Service Template*
|
|
158
|
+
*Story: {{storyId}}*
|