@girardelli/architect-agents 8.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/dist/src/core/agent-generator/context-enricher.d.ts +17 -0
- package/dist/src/core/agent-generator/context-enricher.js +51 -0
- package/dist/src/core/agent-generator/context-enricher.js.map +1 -0
- package/dist/src/core/agent-generator/detectors/base-detector.d.ts +8 -0
- package/dist/src/core/agent-generator/detectors/base-detector.js +12 -0
- package/dist/src/core/agent-generator/detectors/base-detector.js.map +1 -0
- package/dist/src/core/agent-generator/detectors/dart-detector.d.ts +5 -0
- package/dist/src/core/agent-generator/detectors/dart-detector.js +16 -0
- package/dist/src/core/agent-generator/detectors/dart-detector.js.map +1 -0
- package/dist/src/core/agent-generator/detectors/framework-registry.d.ts +5 -0
- package/dist/src/core/agent-generator/detectors/framework-registry.js +81 -0
- package/dist/src/core/agent-generator/detectors/framework-registry.js.map +1 -0
- package/dist/src/core/agent-generator/detectors/go-detector.d.ts +5 -0
- package/dist/src/core/agent-generator/detectors/go-detector.js +25 -0
- package/dist/src/core/agent-generator/detectors/go-detector.js.map +1 -0
- package/dist/src/core/agent-generator/detectors/java-detector.d.ts +5 -0
- package/dist/src/core/agent-generator/detectors/java-detector.js +44 -0
- package/dist/src/core/agent-generator/detectors/java-detector.js.map +1 -0
- package/dist/src/core/agent-generator/detectors/node-detector.d.ts +5 -0
- package/dist/src/core/agent-generator/detectors/node-detector.js +28 -0
- package/dist/src/core/agent-generator/detectors/node-detector.js.map +1 -0
- package/dist/src/core/agent-generator/detectors/php-detector.d.ts +5 -0
- package/dist/src/core/agent-generator/detectors/php-detector.js +28 -0
- package/dist/src/core/agent-generator/detectors/php-detector.js.map +1 -0
- package/dist/src/core/agent-generator/detectors/python-detector.d.ts +7 -0
- package/dist/src/core/agent-generator/detectors/python-detector.js +116 -0
- package/dist/src/core/agent-generator/detectors/python-detector.js.map +1 -0
- package/dist/src/core/agent-generator/detectors/ruby-detector.d.ts +5 -0
- package/dist/src/core/agent-generator/detectors/ruby-detector.js +23 -0
- package/dist/src/core/agent-generator/detectors/ruby-detector.js.map +1 -0
- package/dist/src/core/agent-generator/detectors/rust-detector.d.ts +5 -0
- package/dist/src/core/agent-generator/detectors/rust-detector.js +18 -0
- package/dist/src/core/agent-generator/detectors/rust-detector.js.map +1 -0
- package/dist/src/core/agent-generator/detectors/structure-detector.d.ts +4 -0
- package/dist/src/core/agent-generator/detectors/structure-detector.js +35 -0
- package/dist/src/core/agent-generator/detectors/structure-detector.js.map +1 -0
- package/dist/src/core/agent-generator/detectors/toolchain-detector.d.ts +5 -0
- package/dist/src/core/agent-generator/detectors/toolchain-detector.js +164 -0
- package/dist/src/core/agent-generator/detectors/toolchain-detector.js.map +1 -0
- package/dist/src/core/agent-generator/domain-inferrer.d.ts +51 -0
- package/dist/src/core/agent-generator/domain-inferrer.js +585 -0
- package/dist/src/core/agent-generator/domain-inferrer.js.map +1 -0
- package/dist/src/core/agent-generator/engines/audit-engine.d.ts +8 -0
- package/dist/src/core/agent-generator/engines/audit-engine.js +84 -0
- package/dist/src/core/agent-generator/engines/audit-engine.js.map +1 -0
- package/dist/src/core/agent-generator/engines/context-builder.d.ts +12 -0
- package/dist/src/core/agent-generator/engines/context-builder.js +84 -0
- package/dist/src/core/agent-generator/engines/context-builder.js.map +1 -0
- package/dist/src/core/agent-generator/engines/generation-engine.d.ts +7 -0
- package/dist/src/core/agent-generator/engines/generation-engine.js +160 -0
- package/dist/src/core/agent-generator/engines/generation-engine.js.map +1 -0
- package/dist/src/core/agent-generator/engines/generation-engine_deps.d.ts +21 -0
- package/dist/src/core/agent-generator/engines/generation-engine_deps.js +17 -0
- package/dist/src/core/agent-generator/engines/generation-engine_deps.js.map +1 -0
- package/dist/src/core/agent-generator/engines/suggestion-engine.d.ts +13 -0
- package/dist/src/core/agent-generator/engines/suggestion-engine.js +171 -0
- package/dist/src/core/agent-generator/engines/suggestion-engine.js.map +1 -0
- package/dist/src/core/agent-generator/engines/suggestion-engine_deps.d.ts +8 -0
- package/dist/src/core/agent-generator/engines/suggestion-engine_deps.js +5 -0
- package/dist/src/core/agent-generator/engines/suggestion-engine_deps.js.map +1 -0
- package/dist/src/core/agent-generator/enrichers/analysis-helpers.d.ts +9 -0
- package/dist/src/core/agent-generator/enrichers/analysis-helpers.js +51 -0
- package/dist/src/core/agent-generator/enrichers/analysis-helpers.js.map +1 -0
- package/dist/src/core/agent-generator/enrichers/description-generator.d.ts +4 -0
- package/dist/src/core/agent-generator/enrichers/description-generator.js +82 -0
- package/dist/src/core/agent-generator/enrichers/description-generator.js.map +1 -0
- package/dist/src/core/agent-generator/enrichers/endpoint-extractor.d.ts +7 -0
- package/dist/src/core/agent-generator/enrichers/endpoint-extractor.js +90 -0
- package/dist/src/core/agent-generator/enrichers/endpoint-extractor.js.map +1 -0
- package/dist/src/core/agent-generator/enrichers/layer-classifier.d.ts +12 -0
- package/dist/src/core/agent-generator/enrichers/layer-classifier.js +152 -0
- package/dist/src/core/agent-generator/enrichers/layer-classifier.js.map +1 -0
- package/dist/src/core/agent-generator/enrichers/module-extractor.d.ts +10 -0
- package/dist/src/core/agent-generator/enrichers/module-extractor.js +173 -0
- package/dist/src/core/agent-generator/enrichers/module-extractor.js.map +1 -0
- package/dist/src/core/agent-generator/framework-detector.d.ts +17 -0
- package/dist/src/core/agent-generator/framework-detector.js +56 -0
- package/dist/src/core/agent-generator/framework-detector.js.map +1 -0
- package/dist/src/core/agent-generator/index.d.ts +25 -0
- package/dist/src/core/agent-generator/index.js +37 -0
- package/dist/src/core/agent-generator/index.js.map +1 -0
- package/dist/src/core/agent-generator/stack-detector.d.ts +13 -0
- package/dist/src/core/agent-generator/stack-detector.js +124 -0
- package/dist/src/core/agent-generator/stack-detector.js.map +1 -0
- package/dist/src/core/agent-generator/templates/core/agents.d.ts +9 -0
- package/dist/src/core/agent-generator/templates/core/agents.js +1127 -0
- package/dist/src/core/agent-generator/templates/core/agents.js.map +1 -0
- package/dist/src/core/agent-generator/templates/core/architecture-rules.d.ts +6 -0
- package/dist/src/core/agent-generator/templates/core/architecture-rules.js +275 -0
- package/dist/src/core/agent-generator/templates/core/architecture-rules.js.map +1 -0
- package/dist/src/core/agent-generator/templates/core/general-rules.d.ts +7 -0
- package/dist/src/core/agent-generator/templates/core/general-rules.js +301 -0
- package/dist/src/core/agent-generator/templates/core/general-rules.js.map +1 -0
- package/dist/src/core/agent-generator/templates/core/hooks-generator.d.ts +20 -0
- package/dist/src/core/agent-generator/templates/core/hooks-generator.js +235 -0
- package/dist/src/core/agent-generator/templates/core/hooks-generator.js.map +1 -0
- package/dist/src/core/agent-generator/templates/core/index-md.d.ts +6 -0
- package/dist/src/core/agent-generator/templates/core/index-md.js +247 -0
- package/dist/src/core/agent-generator/templates/core/index-md.js.map +1 -0
- package/dist/src/core/agent-generator/templates/core/orchestrator.d.ts +7 -0
- package/dist/src/core/agent-generator/templates/core/orchestrator.js +423 -0
- package/dist/src/core/agent-generator/templates/core/orchestrator.js.map +1 -0
- package/dist/src/core/agent-generator/templates/core/preflight.d.ts +7 -0
- package/dist/src/core/agent-generator/templates/core/preflight.js +213 -0
- package/dist/src/core/agent-generator/templates/core/preflight.js.map +1 -0
- package/dist/src/core/agent-generator/templates/core/quality-gates.d.ts +10 -0
- package/dist/src/core/agent-generator/templates/core/quality-gates.js +255 -0
- package/dist/src/core/agent-generator/templates/core/quality-gates.js.map +1 -0
- package/dist/src/core/agent-generator/templates/core/security-rules.d.ts +6 -0
- package/dist/src/core/agent-generator/templates/core/security-rules.js +529 -0
- package/dist/src/core/agent-generator/templates/core/security-rules.js.map +1 -0
- package/dist/src/core/agent-generator/templates/core/skills-generator.d.ts +18 -0
- package/dist/src/core/agent-generator/templates/core/skills-generator.js +547 -0
- package/dist/src/core/agent-generator/templates/core/skills-generator.js.map +1 -0
- package/dist/src/core/agent-generator/templates/core/workflow-fix-bug.d.ts +6 -0
- package/dist/src/core/agent-generator/templates/core/workflow-fix-bug.js +238 -0
- package/dist/src/core/agent-generator/templates/core/workflow-fix-bug.js.map +1 -0
- package/dist/src/core/agent-generator/templates/core/workflow-new-feature.d.ts +7 -0
- package/dist/src/core/agent-generator/templates/core/workflow-new-feature.js +321 -0
- package/dist/src/core/agent-generator/templates/core/workflow-new-feature.js.map +1 -0
- package/dist/src/core/agent-generator/templates/core/workflow-review.d.ts +6 -0
- package/dist/src/core/agent-generator/templates/core/workflow-review.js +105 -0
- package/dist/src/core/agent-generator/templates/core/workflow-review.js.map +1 -0
- package/dist/src/core/agent-generator/templates/domain/index.d.ts +21 -0
- package/dist/src/core/agent-generator/templates/domain/index.js +1179 -0
- package/dist/src/core/agent-generator/templates/domain/index.js.map +1 -0
- package/dist/src/core/agent-generator/templates/helpers/base-helpers.d.ts +10 -0
- package/dist/src/core/agent-generator/templates/helpers/base-helpers.js +20 -0
- package/dist/src/core/agent-generator/templates/helpers/base-helpers.js.map +1 -0
- package/dist/src/core/agent-generator/templates/helpers/cross-ref-helpers.d.ts +2 -0
- package/dist/src/core/agent-generator/templates/helpers/cross-ref-helpers.js +77 -0
- package/dist/src/core/agent-generator/templates/helpers/cross-ref-helpers.js.map +1 -0
- package/dist/src/core/agent-generator/templates/helpers/security-helpers.d.ts +2 -0
- package/dist/src/core/agent-generator/templates/helpers/security-helpers.js +182 -0
- package/dist/src/core/agent-generator/templates/helpers/security-helpers.js.map +1 -0
- package/dist/src/core/agent-generator/templates/helpers/stack-helpers.d.ts +4 -0
- package/dist/src/core/agent-generator/templates/helpers/stack-helpers.js +69 -0
- package/dist/src/core/agent-generator/templates/helpers/stack-helpers.js.map +1 -0
- package/dist/src/core/agent-generator/templates/helpers/structure-helpers.d.ts +2 -0
- package/dist/src/core/agent-generator/templates/helpers/structure-helpers.js +275 -0
- package/dist/src/core/agent-generator/templates/helpers/structure-helpers.js.map +1 -0
- package/dist/src/core/agent-generator/templates/helpers/summary-helpers.d.ts +6 -0
- package/dist/src/core/agent-generator/templates/helpers/summary-helpers.js +56 -0
- package/dist/src/core/agent-generator/templates/helpers/summary-helpers.js.map +1 -0
- package/dist/src/core/agent-generator/templates/stack/index.d.ts +7 -0
- package/dist/src/core/agent-generator/templates/stack/index.js +695 -0
- package/dist/src/core/agent-generator/templates/stack/index.js.map +1 -0
- package/dist/src/core/agent-generator/templates/template-helpers.d.ts +11 -0
- package/dist/src/core/agent-generator/templates/template-helpers.js +12 -0
- package/dist/src/core/agent-generator/templates/template-helpers.js.map +1 -0
- package/dist/src/core/agent-generator/types/agent.d.ts +39 -0
- package/dist/src/core/agent-generator/types/agent.js +27 -0
- package/dist/src/core/agent-generator/types/agent.js.map +1 -0
- package/dist/src/core/agent-generator/types/domain.d.ts +58 -0
- package/dist/src/core/agent-generator/types/domain.js +2 -0
- package/dist/src/core/agent-generator/types/domain.js.map +1 -0
- package/dist/src/core/agent-generator/types/stack.d.ts +36 -0
- package/dist/src/core/agent-generator/types/stack.js +2 -0
- package/dist/src/core/agent-generator/types/stack.js.map +1 -0
- package/dist/src/core/agent-generator/types/template.d.ts +29 -0
- package/dist/src/core/agent-generator/types/template.js +2 -0
- package/dist/src/core/agent-generator/types/template.js.map +1 -0
- package/dist/src/core/agent-runtime/ai-provider.d.ts +33 -0
- package/dist/src/core/agent-runtime/ai-provider.js +146 -0
- package/dist/src/core/agent-runtime/ai-provider.js.map +1 -0
- package/dist/src/core/agent-runtime/executor.d.ts +13 -0
- package/dist/src/core/agent-runtime/executor.js +138 -0
- package/dist/src/core/agent-runtime/executor.js.map +1 -0
- package/dist/src/core/agent-runtime/human-gate.d.ts +16 -0
- package/dist/src/core/agent-runtime/human-gate.js +70 -0
- package/dist/src/core/agent-runtime/human-gate.js.map +1 -0
- package/dist/tests/agent-generator.test.d.ts +1 -0
- package/dist/tests/agent-generator.test.js +349 -0
- package/dist/tests/agent-generator.test.js.map +1 -0
- package/dist/tests/agent-runtime.test.d.ts +1 -0
- package/dist/tests/agent-runtime.test.js +107 -0
- package/dist/tests/agent-runtime.test.js.map +1 -0
- package/dist/tests/context-enricher.test.d.ts +1 -0
- package/dist/tests/context-enricher.test.js +875 -0
- package/dist/tests/context-enricher.test.js.map +1 -0
- package/dist/tests/framework-detector.test.d.ts +1 -0
- package/dist/tests/framework-detector.test.js +882 -0
- package/dist/tests/framework-detector.test.js.map +1 -0
- package/dist/tests/stack-detector.test.d.ts +1 -0
- package/dist/tests/stack-detector.test.js +183 -0
- package/dist/tests/stack-detector.test.js.map +1 -0
- package/dist/tests/template-generation.test.d.ts +1 -0
- package/dist/tests/template-generation.test.js +571 -0
- package/dist/tests/template-generation.test.js.map +1 -0
- package/dist/tests/template-helpers.test.d.ts +1 -0
- package/dist/tests/template-helpers.test.js +967 -0
- package/dist/tests/template-helpers.test.js.map +1 -0
- package/package.json +24 -0
- package/src/core/agent-generator/context-enricher.ts +67 -0
- package/src/core/agent-generator/detectors/base-detector.ts +18 -0
- package/src/core/agent-generator/detectors/dart-detector.ts +17 -0
- package/src/core/agent-generator/detectors/framework-registry.ts +82 -0
- package/src/core/agent-generator/detectors/go-detector.ts +26 -0
- package/src/core/agent-generator/detectors/java-detector.ts +46 -0
- package/src/core/agent-generator/detectors/node-detector.ts +28 -0
- package/src/core/agent-generator/detectors/php-detector.ts +28 -0
- package/src/core/agent-generator/detectors/python-detector.ts +125 -0
- package/src/core/agent-generator/detectors/ruby-detector.ts +24 -0
- package/src/core/agent-generator/detectors/rust-detector.ts +19 -0
- package/src/core/agent-generator/detectors/structure-detector.ts +38 -0
- package/src/core/agent-generator/detectors/toolchain-detector.ts +181 -0
- package/src/core/agent-generator/domain-inferrer.ts +630 -0
- package/src/core/agent-generator/engines/audit-engine.ts +98 -0
- package/src/core/agent-generator/engines/context-builder.ts +96 -0
- package/src/core/agent-generator/engines/generation-engine.ts +184 -0
- package/src/core/agent-generator/engines/generation-engine_deps.ts +21 -0
- package/src/core/agent-generator/engines/suggestion-engine.ts +202 -0
- package/src/core/agent-generator/engines/suggestion-engine_deps.ts +8 -0
- package/src/core/agent-generator/enrichers/analysis-helpers.ts +58 -0
- package/src/core/agent-generator/enrichers/description-generator.ts +91 -0
- package/src/core/agent-generator/enrichers/endpoint-extractor.ts +114 -0
- package/src/core/agent-generator/enrichers/layer-classifier.ts +156 -0
- package/src/core/agent-generator/enrichers/module-extractor.ts +203 -0
- package/src/core/agent-generator/framework-detector.ts +66 -0
- package/src/core/agent-generator/index.ts +55 -0
- package/src/core/agent-generator/stack-detector.ts +115 -0
- package/src/core/agent-generator/templates/core/agents.ts +1168 -0
- package/src/core/agent-generator/templates/core/architecture-rules.ts +288 -0
- package/src/core/agent-generator/templates/core/general-rules.ts +306 -0
- package/src/core/agent-generator/templates/core/hooks-generator.ts +244 -0
- package/src/core/agent-generator/templates/core/index-md.ts +261 -0
- package/src/core/agent-generator/templates/core/orchestrator.ts +462 -0
- package/src/core/agent-generator/templates/core/preflight.ts +216 -0
- package/src/core/agent-generator/templates/core/quality-gates.ts +257 -0
- package/src/core/agent-generator/templates/core/security-rules.ts +544 -0
- package/src/core/agent-generator/templates/core/skills-generator.ts +586 -0
- package/src/core/agent-generator/templates/core/workflow-fix-bug.ts +240 -0
- package/src/core/agent-generator/templates/core/workflow-new-feature.ts +323 -0
- package/src/core/agent-generator/templates/core/workflow-review.ts +107 -0
- package/src/core/agent-generator/templates/domain/index.ts +1204 -0
- package/src/core/agent-generator/templates/helpers/base-helpers.ts +33 -0
- package/src/core/agent-generator/templates/helpers/cross-ref-helpers.ts +79 -0
- package/src/core/agent-generator/templates/helpers/security-helpers.ts +198 -0
- package/src/core/agent-generator/templates/helpers/stack-helpers.ts +80 -0
- package/src/core/agent-generator/templates/helpers/structure-helpers.ts +293 -0
- package/src/core/agent-generator/templates/helpers/summary-helpers.ts +67 -0
- package/src/core/agent-generator/templates/stack/index.ts +705 -0
- package/src/core/agent-generator/templates/template-helpers.ts +12 -0
- package/src/core/agent-generator/types/agent.ts +65 -0
- package/src/core/agent-generator/types/domain.ts +63 -0
- package/src/core/agent-generator/types/stack.ts +38 -0
- package/src/core/agent-generator/types/template.ts +31 -0
- package/src/core/agent-runtime/ai-provider.ts +178 -0
- package/src/core/agent-runtime/executor.ts +148 -0
- package/src/core/agent-runtime/human-gate.ts +69 -0
- package/tests/agent-generator.test.ts +428 -0
- package/tests/agent-runtime.test.ts +125 -0
- package/tests/context-enricher.test.ts +972 -0
- package/tests/framework-detector.test.ts +1172 -0
- package/tests/stack-detector.test.ts +241 -0
- package/tests/template-generation.test.ts +709 -0
- package/tests/template-helpers.test.ts +1130 -0
- package/tsconfig.json +14 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/core/agent-generator/templates/domain/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { TemplateContext, EnrichedTemplateContext } from '@girardelli/architect-agents/src/core/agent-generator/types/template.js';
|
|
2
|
+
export declare function getEnriched(ctx: TemplateContext): Partial<EnrichedTemplateContext>;
|
|
3
|
+
export declare function isEnriched(ctx: TemplateContext): ctx is EnrichedTemplateContext;
|
|
4
|
+
export declare function depthScale<T>(ctx: TemplateContext, options: {
|
|
5
|
+
small: T;
|
|
6
|
+
medium: T;
|
|
7
|
+
large: T;
|
|
8
|
+
enterprise: T;
|
|
9
|
+
}): T;
|
|
10
|
+
export declare function depthAtLeast(ctx: TemplateContext, minDepth: 'small' | 'medium' | 'large' | 'enterprise'): boolean;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export function getEnriched(ctx) {
|
|
2
|
+
if ('domain' in ctx)
|
|
3
|
+
return ctx;
|
|
4
|
+
return {};
|
|
5
|
+
}
|
|
6
|
+
export function isEnriched(ctx) {
|
|
7
|
+
return 'domain' in ctx;
|
|
8
|
+
}
|
|
9
|
+
export function depthScale(ctx, options) {
|
|
10
|
+
const enriched = getEnriched(ctx);
|
|
11
|
+
const depth = (enriched.projectDepth || 'medium');
|
|
12
|
+
return options[depth];
|
|
13
|
+
}
|
|
14
|
+
export function depthAtLeast(ctx, minDepth) {
|
|
15
|
+
const enriched = getEnriched(ctx);
|
|
16
|
+
const depth = enriched.projectDepth || 'medium';
|
|
17
|
+
const order = ['small', 'medium', 'large', 'enterprise'];
|
|
18
|
+
return order.indexOf(depth) >= order.indexOf(minDepth);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=base-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-helpers.js","sourceRoot":"","sources":["../../../../../../src/core/agent-generator/templates/helpers/base-helpers.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,WAAW,CAAC,GAAoB;IAC9C,IAAI,QAAQ,IAAI,GAAG;QAAE,OAAO,GAA8B,CAAC;IAC3D,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAoB;IAC7C,OAAO,QAAQ,IAAI,GAAG,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,GAAoB,EACpB,OAKC;IAED,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,YAAY,IAAI,QAAQ,CAAgD,CAAC;IACjG,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAoB,EAAE,QAAqD;IACtG,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,QAAQ,CAAC,YAAY,IAAI,QAAQ,CAAC;IAChD,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IACzD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACzD,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
export function crossRef(agentId, ctx) {
|
|
2
|
+
const { stack } = ctx;
|
|
3
|
+
const agentRelations = {
|
|
4
|
+
'backend': [
|
|
5
|
+
{ id: 'database-engineer', name: 'Database Engineer', when: 'Criar/alterar entities, migrations, queries' },
|
|
6
|
+
{ id: 'security-auditor', name: 'Security Auditor', when: 'Novo endpoint, auth flow, dados sensíveis' },
|
|
7
|
+
{ id: 'qa-test', name: 'QA Test Engineer', when: 'Após implementação — plano de testes' },
|
|
8
|
+
{ id: 'tech-debt', name: 'Tech Debt Controller', when: 'Antes de criar novo módulo — verificar débito' },
|
|
9
|
+
],
|
|
10
|
+
'frontend': [
|
|
11
|
+
{ id: 'backend', name: 'Backend Developer', when: 'Antes de integrar — doc de integração obrigatória' },
|
|
12
|
+
{ id: 'qa-test', name: 'QA Test Engineer', when: 'Após implementação — testes e2e' },
|
|
13
|
+
{ id: 'security-auditor', name: 'Security Auditor', when: 'Forms, auth UI, dados sensíveis' },
|
|
14
|
+
],
|
|
15
|
+
'flutter': [
|
|
16
|
+
{ id: 'backend', name: 'Backend Developer', when: 'Antes de integrar — doc de integração obrigatória' },
|
|
17
|
+
{ id: 'qa-test', name: 'QA Test Engineer', when: 'Após implementação — testes de widget e integração' },
|
|
18
|
+
{ id: 'security-auditor', name: 'Security Auditor', when: 'Armazenamento local, biometria, deep links' },
|
|
19
|
+
],
|
|
20
|
+
'database-engineer': [
|
|
21
|
+
{ id: 'backend', name: 'Backend Developer', when: 'Após migration — atualizar entities e queries' },
|
|
22
|
+
{ id: 'security-auditor', name: 'Security Auditor', when: 'Dados sensíveis, PII, encryption at rest' },
|
|
23
|
+
{ id: 'tech-debt', name: 'Tech Debt Controller', when: 'Schema com N+1, índices faltantes' },
|
|
24
|
+
],
|
|
25
|
+
'security-auditor': [
|
|
26
|
+
{ id: 'backend', name: 'Backend Developer', when: 'Falha de segurança em endpoint/service' },
|
|
27
|
+
{ id: 'database-engineer', name: 'Database Engineer', when: 'Encryption at rest, data masking' },
|
|
28
|
+
{ id: 'qa-test', name: 'QA Test Engineer', when: 'Testes de segurança (fuzzing, pentest)' },
|
|
29
|
+
],
|
|
30
|
+
'qa-test': [
|
|
31
|
+
{ id: 'backend', name: 'Backend Developer', when: 'Cobertura insuficiente em services' },
|
|
32
|
+
{ id: 'frontend', name: 'Frontend Developer', when: 'Testes e2e falhando, componentes sem testes' },
|
|
33
|
+
{ id: 'tech-debt', name: 'Tech Debt Controller', when: 'Testes com .skip(), mocks frágeis' },
|
|
34
|
+
],
|
|
35
|
+
'tech-debt': [
|
|
36
|
+
{ id: 'backend', name: 'Backend Developer', when: 'Refatoração de módulo, god class' },
|
|
37
|
+
{ id: 'database-engineer', name: 'Database Engineer', when: 'N+1 queries, índices, schema refactoring' },
|
|
38
|
+
{ id: 'security-auditor', name: 'Security Auditor', when: 'Débito de segurança (dependencies, configs)' },
|
|
39
|
+
],
|
|
40
|
+
'code-review': [
|
|
41
|
+
{ id: 'security-auditor', name: 'Security Auditor', when: 'Review de endpoints, auth, dados sensíveis' },
|
|
42
|
+
{ id: 'qa-test', name: 'QA Test Engineer', when: 'Verificar cobertura e qualidade dos testes' },
|
|
43
|
+
{ id: 'tech-debt', name: 'Tech Debt Controller', when: 'Avaliar impacto em débito técnico' },
|
|
44
|
+
],
|
|
45
|
+
'orchestrator': [
|
|
46
|
+
{ id: 'backend', name: 'Backend Developer', when: 'Features que tocam backend' },
|
|
47
|
+
{ id: 'frontend', name: 'Frontend Developer', when: 'Features que tocam frontend' },
|
|
48
|
+
{ id: 'flutter', name: 'Flutter UI Developer', when: 'Features que tocam app mobile' },
|
|
49
|
+
{ id: 'database-engineer', name: 'Database Engineer', when: 'Features que tocam banco de dados' },
|
|
50
|
+
{ id: 'security-auditor', name: 'Security Auditor', when: 'TODA feature — revisão obrigatória' },
|
|
51
|
+
{ id: 'qa-test', name: 'QA Test Engineer', when: 'TODA feature — plano de testes obrigatório' },
|
|
52
|
+
{ id: 'tech-debt', name: 'Tech Debt Controller', when: 'Antes de nova feature — checar débito' },
|
|
53
|
+
],
|
|
54
|
+
};
|
|
55
|
+
const relations = agentRelations[agentId] || [];
|
|
56
|
+
const filtered = relations.filter(r => {
|
|
57
|
+
if (r.id === 'frontend' && !stack.hasFrontend)
|
|
58
|
+
return false;
|
|
59
|
+
if (r.id === 'flutter' && !stack.hasMobile)
|
|
60
|
+
return false;
|
|
61
|
+
if (r.id === 'database-engineer' && !stack.hasDatabase)
|
|
62
|
+
return false;
|
|
63
|
+
return true;
|
|
64
|
+
});
|
|
65
|
+
if (filtered.length === 0)
|
|
66
|
+
return '';
|
|
67
|
+
return `
|
|
68
|
+
## 🔗 Cross-References (Agentes Relacionados)
|
|
69
|
+
|
|
70
|
+
| Agente | Quando Consultar |
|
|
71
|
+
|--------|-----------------|
|
|
72
|
+
${filtered.map(r => `| **${r.name}** | ${r.when} |`).join('\n')}
|
|
73
|
+
|
|
74
|
+
> **Regra:** Nunca implementar isoladamente. Sempre verificar se o agente relacionado precisa ser consultado.
|
|
75
|
+
`;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=cross-ref-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cross-ref-helpers.js","sourceRoot":"","sources":["../../../../../../src/core/agent-generator/templates/helpers/cross-ref-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import { getEnriched } from './base-helpers.js';
|
|
2
|
+
export function frameworkSecurityChecklist(ctx) {
|
|
3
|
+
const enriched = getEnriched(ctx);
|
|
4
|
+
const fw = enriched.primaryFramework?.name || '';
|
|
5
|
+
const lang = ctx.stack.primary;
|
|
6
|
+
if (fw === 'FastAPI') {
|
|
7
|
+
return `
|
|
8
|
+
## Checklist Segurança — FastAPI
|
|
9
|
+
|
|
10
|
+
\`\`\`
|
|
11
|
+
□ Pydantic models para validação de TODOS os inputs
|
|
12
|
+
□ OAuth2PasswordBearer / OAuth2AuthorizationCodeBearer configurado
|
|
13
|
+
□ Depends() para injeção segura de autenticação
|
|
14
|
+
□ CORS via CORSMiddleware com origins whitelist (não usar "*")
|
|
15
|
+
□ Rate limiting via slowapi ou middleware customizado
|
|
16
|
+
□ Security headers via middleware (X-Content-Type-Options, etc.)
|
|
17
|
+
□ Senhas hasheadas com passlib (bcrypt/argon2)
|
|
18
|
+
□ JWT tokens com expiração curta + refresh token
|
|
19
|
+
□ HTTPS obrigatório em produção (redirect HTTP → HTTPS)
|
|
20
|
+
□ Logs estruturados SEM dados sensíveis (loguru/structlog)
|
|
21
|
+
□ SQLAlchemy com queries parametrizadas (nunca string concat)
|
|
22
|
+
□ Background tasks validadas contra injection
|
|
23
|
+
□ File uploads com validação de tipo e tamanho
|
|
24
|
+
□ Dependency scanning: pip-audit / safety
|
|
25
|
+
\`\`\``;
|
|
26
|
+
}
|
|
27
|
+
if (fw === 'Django' || fw === 'DRF') {
|
|
28
|
+
return `
|
|
29
|
+
## Checklist Segurança — Django
|
|
30
|
+
|
|
31
|
+
\`\`\`
|
|
32
|
+
□ CSRF protection habilitado (CsrfViewMiddleware)
|
|
33
|
+
□ XSS protection via auto-escaping nos templates
|
|
34
|
+
□ SQL Injection prevenido via ORM (nunca raw SQL sem parametrize)
|
|
35
|
+
□ Clickjacking protection (X-Frame-Options)
|
|
36
|
+
□ SECURE_SSL_REDIRECT = True em produção
|
|
37
|
+
□ SESSION_COOKIE_SECURE = True
|
|
38
|
+
□ CSRF_COOKIE_SECURE = True
|
|
39
|
+
□ ALLOWED_HOSTS configurado corretamente
|
|
40
|
+
□ DEBUG = False em produção
|
|
41
|
+
□ SECRET_KEY rotacionado e não commitado
|
|
42
|
+
□ django-rest-framework permissions e throttling
|
|
43
|
+
□ django-cors-headers com whitelist
|
|
44
|
+
□ Senhas hasheadas com PBKDF2/Argon2 (PASSWORD_HASHERS)
|
|
45
|
+
□ Dependency scanning: pip-audit / safety
|
|
46
|
+
\`\`\``;
|
|
47
|
+
}
|
|
48
|
+
if (fw === 'Flask') {
|
|
49
|
+
return `
|
|
50
|
+
## Checklist Segurança — Flask
|
|
51
|
+
|
|
52
|
+
\`\`\`
|
|
53
|
+
□ Flask-Talisman para security headers
|
|
54
|
+
□ Flask-CORS com origins whitelist
|
|
55
|
+
□ Flask-Limiter para rate limiting
|
|
56
|
+
□ Flask-Login / Flask-JWT-Extended para auth
|
|
57
|
+
□ CSRF via Flask-WTF
|
|
58
|
+
□ SECRET_KEY seguro e rotacionado
|
|
59
|
+
□ Session cookie seguro (httponly, secure, samesite)
|
|
60
|
+
□ SQLAlchemy com queries parametrizadas
|
|
61
|
+
□ Jinja2 auto-escaping habilitado
|
|
62
|
+
□ File uploads validados (tipo, tamanho, path traversal)
|
|
63
|
+
□ Dependency scanning: pip-audit / safety
|
|
64
|
+
\`\`\``;
|
|
65
|
+
}
|
|
66
|
+
if (fw === 'NestJS') {
|
|
67
|
+
return `
|
|
68
|
+
## Checklist Segurança — NestJS
|
|
69
|
+
|
|
70
|
+
\`\`\`
|
|
71
|
+
□ Helmet habilitado (app.use(helmet()))
|
|
72
|
+
□ CORS com origins whitelist
|
|
73
|
+
□ Rate limiting via @nestjs/throttler
|
|
74
|
+
□ class-validator em TODOS os DTOs
|
|
75
|
+
□ Guards para autenticação/autorização
|
|
76
|
+
□ JWT via @nestjs/jwt com expiração curta
|
|
77
|
+
□ CSRF protection (se serve HTML)
|
|
78
|
+
□ TypeORM/Prisma com queries parametrizadas
|
|
79
|
+
□ Pipes de validação globais (ValidationPipe)
|
|
80
|
+
□ Exception filters customizados (sem stack traces em prod)
|
|
81
|
+
□ npm audit sem vulnerabilidades críticas
|
|
82
|
+
□ strict: true em tsconfig.json
|
|
83
|
+
\`\`\``;
|
|
84
|
+
}
|
|
85
|
+
if (fw === 'Express' || fw === 'Fastify') {
|
|
86
|
+
return `
|
|
87
|
+
## Checklist Segurança — ${fw}
|
|
88
|
+
|
|
89
|
+
\`\`\`
|
|
90
|
+
□ Helmet.js habilitado
|
|
91
|
+
□ CORS configurado restritivamente
|
|
92
|
+
□ Rate limiting (express-rate-limit)
|
|
93
|
+
□ Input validation (joi / zod / express-validator)
|
|
94
|
+
□ JWT com expiração + refresh
|
|
95
|
+
□ CSRF protection (csurf)
|
|
96
|
+
□ Queries parametrizadas (nunca string interpolation)
|
|
97
|
+
□ Error handler que não vaza stack traces
|
|
98
|
+
□ npm audit sem vulnerabilidades críticas
|
|
99
|
+
□ HTTPS obrigatório
|
|
100
|
+
\`\`\``;
|
|
101
|
+
}
|
|
102
|
+
if (fw === 'Spring Boot') {
|
|
103
|
+
return `
|
|
104
|
+
## Checklist Segurança — Spring Boot
|
|
105
|
+
|
|
106
|
+
\`\`\`
|
|
107
|
+
□ Spring Security configurado
|
|
108
|
+
□ CSRF habilitado para endpoints com estado
|
|
109
|
+
□ CORS via WebMvcConfigurer com whitelist
|
|
110
|
+
□ @Valid / @Validated em DTOs
|
|
111
|
+
□ BCrypt para senhas (PasswordEncoder)
|
|
112
|
+
□ JPA parametrizado (nunca JPQL com concat)
|
|
113
|
+
□ Actuator endpoints protegidos em produção
|
|
114
|
+
□ OAuth2/JWT via Spring Security OAuth
|
|
115
|
+
□ Content-Security-Policy configurado
|
|
116
|
+
□ Dependências: OWASP Dependency-Check
|
|
117
|
+
\`\`\``;
|
|
118
|
+
}
|
|
119
|
+
if (fw === 'Laravel') {
|
|
120
|
+
return `
|
|
121
|
+
## Checklist Segurança — Laravel
|
|
122
|
+
|
|
123
|
+
\`\`\`
|
|
124
|
+
□ CSRF token em todos os forms (@csrf)
|
|
125
|
+
□ Eloquent parametrizado (nunca DB::raw sem bind)
|
|
126
|
+
□ Form Requests para validação
|
|
127
|
+
□ Sanctum/Passport para API auth
|
|
128
|
+
□ Gate/Policy para autorização
|
|
129
|
+
□ Encryption via Crypt facade
|
|
130
|
+
□ Rate limiting via RateLimiter
|
|
131
|
+
□ APP_DEBUG=false em produção
|
|
132
|
+
□ CORS via config/cors.php com whitelist
|
|
133
|
+
□ Composer audit sem vulnerabilidades
|
|
134
|
+
\`\`\``;
|
|
135
|
+
}
|
|
136
|
+
// Fallback by language
|
|
137
|
+
if (lang === 'Python') {
|
|
138
|
+
return `
|
|
139
|
+
## Checklist Segurança — Python
|
|
140
|
+
|
|
141
|
+
\`\`\`
|
|
142
|
+
□ Inputs validados (pydantic / marshmallow / WTForms)
|
|
143
|
+
□ Queries parametrizadas (SQLAlchemy / Django ORM)
|
|
144
|
+
□ CORS configurado com whitelist
|
|
145
|
+
□ Rate limiting implementado
|
|
146
|
+
□ Security headers configurados
|
|
147
|
+
□ Senhas hasheadas com bcrypt/argon2
|
|
148
|
+
□ Sem pickle para dados untrusted
|
|
149
|
+
□ HTTPS obrigatório em produção
|
|
150
|
+
□ pip-audit / safety para vulnerabilidades
|
|
151
|
+
□ Logging sem dados sensíveis
|
|
152
|
+
\`\`\``;
|
|
153
|
+
}
|
|
154
|
+
if (lang === 'Go') {
|
|
155
|
+
return `
|
|
156
|
+
## Checklist Segurança — Go
|
|
157
|
+
|
|
158
|
+
\`\`\`
|
|
159
|
+
□ Inputs validados via validator package
|
|
160
|
+
□ Prepared statements para SQL
|
|
161
|
+
□ TLS/mTLS para comunicação inter-serviços
|
|
162
|
+
□ CORS headers explícitos
|
|
163
|
+
□ Rate limiting implementado
|
|
164
|
+
□ Logging de ações críticas (sem PII)
|
|
165
|
+
□ go vet / staticcheck no CI
|
|
166
|
+
□ govulncheck para vulnerabilidades
|
|
167
|
+
\`\`\``;
|
|
168
|
+
}
|
|
169
|
+
return `
|
|
170
|
+
## Checklist Segurança — ${lang}
|
|
171
|
+
|
|
172
|
+
\`\`\`
|
|
173
|
+
□ Inputs sanitizados e validados
|
|
174
|
+
□ Queries parametrizadas obrigatoriamente
|
|
175
|
+
□ CSRF tokens em formulários
|
|
176
|
+
□ Rate limiting em APIs
|
|
177
|
+
□ Secrets em variáveis de ambiente
|
|
178
|
+
□ HTTPS obrigatório em produção
|
|
179
|
+
□ Dependency scanning no CI
|
|
180
|
+
\`\`\``;
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=security-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security-helpers.js","sourceRoot":"","sources":["../../../../../../src/core/agent-generator/templates/helpers/security-helpers.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,UAAU,0BAA0B,CAAC,GAAoB;IAC7D,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,EAAE,GAAG,QAAQ,CAAC,gBAAgB,EAAE,IAAI,IAAI,EAAE,CAAC;IACjD,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;IAE/B,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACrB,OAAO;;;;;;;;;;;;;;;;;;OAkBJ,CAAC;IACN,CAAC;IAED,IAAI,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;QACpC,OAAO;;;;;;;;;;;;;;;;;;OAkBJ,CAAC;IACN,CAAC;IAED,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;QACnB,OAAO;;;;;;;;;;;;;;;OAeJ,CAAC;IACN,CAAC;IAED,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;QACpB,OAAO;;;;;;;;;;;;;;;;OAgBJ,CAAC;IACN,CAAC;IAED,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACzC,OAAO;2BACgB,EAAE;;;;;;;;;;;;;OAatB,CAAC;IACN,CAAC;IAED,IAAI,EAAE,KAAK,aAAa,EAAE,CAAC;QACzB,OAAO;;;;;;;;;;;;;;OAcJ,CAAC;IACN,CAAC;IAED,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACrB,OAAO;;;;;;;;;;;;;;OAcJ,CAAC;IACN,CAAC;IAED,uBAAuB;IACvB,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,OAAO;;;;;;;;;;;;;;OAcJ,CAAC;IACN,CAAC;IAED,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO;;;;;;;;;;;;OAYJ,CAAC;IACN,CAAC;IAED,OAAO;2BACkB,IAAI;;;;;;;;;;OAUxB,CAAC;AACR,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { TemplateContext } from '@girardelli/architect-agents/src/core/agent-generator/types/template.js';
|
|
2
|
+
export declare function frameworkBadge(ctx: TemplateContext): string;
|
|
3
|
+
export declare function projectStructureBadge(ctx: TemplateContext): string;
|
|
4
|
+
export declare function toolchainCommands(ctx: TemplateContext): string;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { getEnriched } from './base-helpers.js';
|
|
2
|
+
export function frameworkBadge(ctx) {
|
|
3
|
+
const enriched = getEnriched(ctx);
|
|
4
|
+
if (!enriched.detectedFrameworks?.length)
|
|
5
|
+
return '';
|
|
6
|
+
const fws = enriched.detectedFrameworks
|
|
7
|
+
.filter((f) => f.category === 'web' || f.category === 'orm')
|
|
8
|
+
.map((f) => `**${f.name}**${f.version ? ` ${f.version}` : ''}`);
|
|
9
|
+
const testFws = enriched.detectedFrameworks
|
|
10
|
+
.filter((f) => f.category === 'test')
|
|
11
|
+
.map((f) => f.name);
|
|
12
|
+
const lintFws = enriched.detectedFrameworks
|
|
13
|
+
.filter((f) => f.category === 'lint')
|
|
14
|
+
.map((f) => f.name);
|
|
15
|
+
const parts = [];
|
|
16
|
+
if (fws.length)
|
|
17
|
+
parts.push(fws.join(' + '));
|
|
18
|
+
if (testFws.length)
|
|
19
|
+
parts.push(`Testes: ${testFws.join(', ')}`);
|
|
20
|
+
if (lintFws.length)
|
|
21
|
+
parts.push(`Lint: ${lintFws.join(', ')}`);
|
|
22
|
+
return `> 🚀 **Stack Detectada:** ${parts.join(' · ')}`;
|
|
23
|
+
}
|
|
24
|
+
export function projectStructureBadge(ctx) {
|
|
25
|
+
const enriched = getEnriched(ctx);
|
|
26
|
+
const structure = enriched.projectStructure || 'unknown';
|
|
27
|
+
const labels = {
|
|
28
|
+
'clean-architecture': '🏛️ Clean Architecture / DDD',
|
|
29
|
+
'mvc': '📐 MVC (Model-View-Controller)',
|
|
30
|
+
'modular': '📦 Modular (Feature-based)',
|
|
31
|
+
'flat': '📄 Flat Structure',
|
|
32
|
+
'monorepo': '🏗️ Monorepo',
|
|
33
|
+
'unknown': '❓ Estrutura não identificada',
|
|
34
|
+
};
|
|
35
|
+
return labels[structure] || labels['unknown'];
|
|
36
|
+
}
|
|
37
|
+
export function toolchainCommands(ctx) {
|
|
38
|
+
const enriched = getEnriched(ctx);
|
|
39
|
+
if (!enriched.toolchain)
|
|
40
|
+
return '';
|
|
41
|
+
const tc = enriched.toolchain;
|
|
42
|
+
return `
|
|
43
|
+
## 🔧 Toolchain Detectado
|
|
44
|
+
|
|
45
|
+
\`\`\`bash
|
|
46
|
+
# Build
|
|
47
|
+
${tc.buildCmd}
|
|
48
|
+
|
|
49
|
+
# Testes
|
|
50
|
+
${tc.testCmd}
|
|
51
|
+
|
|
52
|
+
# Lint
|
|
53
|
+
${tc.lintCmd}
|
|
54
|
+
|
|
55
|
+
# Coverage
|
|
56
|
+
${tc.coverageCmd}
|
|
57
|
+
|
|
58
|
+
# Dev Server
|
|
59
|
+
${tc.runCmd}
|
|
60
|
+
|
|
61
|
+
# Instalar dependências
|
|
62
|
+
${tc.installCmd}
|
|
63
|
+
${tc.migrateCmd ? `\n# Migrations\n${tc.migrateCmd}` : ''}
|
|
64
|
+
\`\`\`
|
|
65
|
+
|
|
66
|
+
> **Deps file:** \`${tc.depsFile}\`
|
|
67
|
+
`;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=stack-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stack-helpers.js","sourceRoot":"","sources":["../../../../../../src/core/agent-generator/templates/helpers/stack-helpers.ts"],"names":[],"mappings":"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"}
|