guardian-framework 0.1.22 → 0.1.24

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/cli.js CHANGED
@@ -1335,7 +1335,7 @@ __export(exports_package, {
1335
1335
  bin: () => bin,
1336
1336
  author: () => author
1337
1337
  });
1338
- var name = "guardian-framework", version = "0.1.22", description = "Token-optimized agentic framework scaffolder with pi-first architecture", type = "module", main = "dist/exports.js", exports, types = "dist/exports.d.ts", bin, files, engines, scripts, publishConfig, pi, repository, homepage = "https://github.com/arman-jalili/guardian-framework#readme", bugs, dependencies, devDependencies, keywords, author = "Arman Wolkensteiner-Jalili", license = "MIT", package_default;
1338
+ var name = "guardian-framework", version = "0.1.24", description = "Token-optimized agentic framework scaffolder with pi-first architecture", type = "module", main = "dist/exports.js", exports, types = "dist/exports.d.ts", bin, files, engines, scripts, publishConfig, pi, repository, homepage = "https://github.com/arman-jalili/guardian-framework#readme", bugs, dependencies, devDependencies, keywords, author = "Arman Wolkensteiner-Jalili", license = "MIT", package_default;
1339
1339
  var init_package = __esm(() => {
1340
1340
  exports = {
1341
1341
  ".": {
@@ -1571,7 +1571,7 @@ var init_templates = __esm(() => {
1571
1571
  TEMPLATE_DIR = findTemplateDir();
1572
1572
  PI_TEMPLATE_DIR = path4.join(TEMPLATE_DIR, "pi");
1573
1573
  LANGUAGES_DIR = path4.join(TEMPLATE_DIR, "languages");
1574
- SUPPORTED_LANGUAGES = ["typescript", "rust", "python", "go", "java"];
1574
+ SUPPORTED_LANGUAGES = ["typescript", "rust", "python", "go", "java", "nextjs", "angular"];
1575
1575
  AVAILABLE_VALIDATORS = [
1576
1576
  "ci",
1577
1577
  "tests",
@@ -1677,6 +1677,30 @@ var init_templates = __esm(() => {
1677
1677
  tracingPattern: "Micrometer Observation / SLF4j MDC",
1678
1678
  cancellationPattern: "Reactive Streams cancellation / @Async CompletableFuture",
1679
1679
  atomicWritePattern: "Spring Data CrudRepository.save()"
1680
+ },
1681
+ nextjs: {
1682
+ buildCommand: "npm run build",
1683
+ testCommand: "npm test",
1684
+ lintCommand: "next lint",
1685
+ formatCommand: "prettier --write .",
1686
+ formatCheckCommand: "prettier --check .",
1687
+ securityAuditCommand: "npm audit",
1688
+ errorHandlingPattern: "Result type pattern (ok/error)",
1689
+ tracingPattern: "Structured JSON logging with pino",
1690
+ cancellationPattern: "AbortController pattern",
1691
+ atomicWritePattern: "Write-rename with .tmp file"
1692
+ },
1693
+ angular: {
1694
+ buildCommand: "ng build",
1695
+ testCommand: "ng test --browsers ChromeHeadless --watch=false",
1696
+ lintCommand: "ng lint",
1697
+ formatCommand: "npx prettier --write .",
1698
+ formatCheckCommand: "npx prettier --check .",
1699
+ securityAuditCommand: "npm audit",
1700
+ errorHandlingPattern: "HttpErrorResponse with typed error classes",
1701
+ tracingPattern: "Angular HttpInterceptor with structured logging",
1702
+ cancellationPattern: "RxJS Subscription.unsubscribe() / takeUntil",
1703
+ atomicWritePattern: "Write-rename with .tmp file"
1680
1704
  }
1681
1705
  };
1682
1706
  GRADLE_COMMANDS = {
@@ -11030,6 +11054,8 @@ async function runInitPrompts() {
11030
11054
  message: "Select programming language",
11031
11055
  options: [
11032
11056
  { value: "typescript", label: "TypeScript/JavaScript (Bun)" },
11057
+ { value: "nextjs", label: "Next.js (React)" },
11058
+ { value: "angular", label: "Angular" },
11033
11059
  { value: "rust", label: "Rust" },
11034
11060
  { value: "python", label: "Python" },
11035
11061
  { value: "go", label: "Go" },
package/dist/exports.js CHANGED
@@ -995,7 +995,7 @@ __export(exports_package, {
995
995
  bin: () => bin,
996
996
  author: () => author
997
997
  });
998
- var name = "guardian-framework", version = "0.1.22", description = "Token-optimized agentic framework scaffolder with pi-first architecture", type = "module", main = "dist/exports.js", exports, types = "dist/exports.d.ts", bin, files, engines, scripts, publishConfig, pi, repository, homepage = "https://github.com/arman-jalili/guardian-framework#readme", bugs, dependencies, devDependencies, keywords, author = "Arman Wolkensteiner-Jalili", license = "MIT", package_default;
998
+ var name = "guardian-framework", version = "0.1.24", description = "Token-optimized agentic framework scaffolder with pi-first architecture", type = "module", main = "dist/exports.js", exports, types = "dist/exports.d.ts", bin, files, engines, scripts, publishConfig, pi, repository, homepage = "https://github.com/arman-jalili/guardian-framework#readme", bugs, dependencies, devDependencies, keywords, author = "Arman Wolkensteiner-Jalili", license = "MIT", package_default;
999
999
  var init_package = __esm(() => {
1000
1000
  exports = {
1001
1001
  ".": {
@@ -1231,7 +1231,7 @@ var init_templates = __esm(() => {
1231
1231
  TEMPLATE_DIR = findTemplateDir();
1232
1232
  PI_TEMPLATE_DIR = path2.join(TEMPLATE_DIR, "pi");
1233
1233
  LANGUAGES_DIR = path2.join(TEMPLATE_DIR, "languages");
1234
- SUPPORTED_LANGUAGES = ["typescript", "rust", "python", "go", "java"];
1234
+ SUPPORTED_LANGUAGES = ["typescript", "rust", "python", "go", "java", "nextjs", "angular"];
1235
1235
  AVAILABLE_VALIDATORS = [
1236
1236
  "ci",
1237
1237
  "tests",
@@ -1337,6 +1337,30 @@ var init_templates = __esm(() => {
1337
1337
  tracingPattern: "Micrometer Observation / SLF4j MDC",
1338
1338
  cancellationPattern: "Reactive Streams cancellation / @Async CompletableFuture",
1339
1339
  atomicWritePattern: "Spring Data CrudRepository.save()"
1340
+ },
1341
+ nextjs: {
1342
+ buildCommand: "npm run build",
1343
+ testCommand: "npm test",
1344
+ lintCommand: "next lint",
1345
+ formatCommand: "prettier --write .",
1346
+ formatCheckCommand: "prettier --check .",
1347
+ securityAuditCommand: "npm audit",
1348
+ errorHandlingPattern: "Result type pattern (ok/error)",
1349
+ tracingPattern: "Structured JSON logging with pino",
1350
+ cancellationPattern: "AbortController pattern",
1351
+ atomicWritePattern: "Write-rename with .tmp file"
1352
+ },
1353
+ angular: {
1354
+ buildCommand: "ng build",
1355
+ testCommand: "ng test --browsers ChromeHeadless --watch=false",
1356
+ lintCommand: "ng lint",
1357
+ formatCommand: "npx prettier --write .",
1358
+ formatCheckCommand: "npx prettier --check .",
1359
+ securityAuditCommand: "npm audit",
1360
+ errorHandlingPattern: "HttpErrorResponse with typed error classes",
1361
+ tracingPattern: "Angular HttpInterceptor with structured logging",
1362
+ cancellationPattern: "RxJS Subscription.unsubscribe() / takeUntil",
1363
+ atomicWritePattern: "Write-rename with .tmp file"
1340
1364
  }
1341
1365
  };
1342
1366
  GRADLE_COMMANDS = {
@@ -9793,6 +9817,8 @@ async function runInitPrompts() {
9793
9817
  message: "Select programming language",
9794
9818
  options: [
9795
9819
  { value: "typescript", label: "TypeScript/JavaScript (Bun)" },
9820
+ { value: "nextjs", label: "Next.js (React)" },
9821
+ { value: "angular", label: "Angular" },
9796
9822
  { value: "rust", label: "Rust" },
9797
9823
  { value: "python", label: "Python" },
9798
9824
  { value: "go", label: "Go" },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "guardian-framework",
3
- "version": "0.1.22",
3
+ "version": "0.1.24",
4
4
  "description": "Token-optimized agentic framework scaffolder with pi-first architecture",
5
5
  "type": "module",
6
6
  "main": "dist/exports.js",
@@ -0,0 +1,38 @@
1
+ # Angular Code Patterns
2
+
3
+ > **Purpose:** Reusable Angular patterns for Guardian projects.
4
+ > **Source:** Guardian DDD + Angular 18+ conventions.
5
+ > **Framework:** Angular 18+ with standalone components.
6
+
7
+ ---
8
+
9
+ ## DDD Module Structure
10
+
11
+ ```
12
+ module/
13
+ ├── domain/ # Pure business logic (framework-free)
14
+ │ ├── entity.ts
15
+ │ ├── value.ts
16
+ │ └── errors.ts
17
+ ├── application/ # State stores, services, use cases
18
+ │ ├── store.ts # Signal-based store
19
+ │ ├── service.ts # Injectable service
20
+ │ └── dto.ts
21
+ ├── infrastructure/ # External adapters
22
+ │ ├── api-client.ts # HTTP client wrapper
23
+ │ └── storage.ts # localStorage wrapper
24
+ └── interfaces/ # UI Components
25
+ ├── component.ts # Standalone component
26
+ └── page.component.ts
27
+ ```
28
+
29
+ ## Commands
30
+
31
+ | Command | Purpose |
32
+ |---------|---------|
33
+ | `ng serve` | Dev server |
34
+ | `ng build` | Production build |
35
+ | `ng test --watch=false` | Run tests (headless) |
36
+ | `ng lint` | Lint |
37
+ | `prettier --write .` | Format |
38
+ | `npm audit` | Security audit |
@@ -0,0 +1,39 @@
1
+ # Next.js Code Patterns
2
+
3
+ > **Purpose:** Reusable Next.js patterns for Guardian projects.
4
+ > **Source:** Guardian DDD + Next.js App Router conventions.
5
+ > **Framework:** Next.js 14+ with App Router.
6
+
7
+ ---
8
+
9
+ ## DDD Module Structure
10
+
11
+ ```
12
+ module/
13
+ ├── domain/ # Pure business logic (framework-free)
14
+ │ ├── entity.ts
15
+ │ ├── value.ts
16
+ │ └── errors.ts
17
+ ├── application/ # Server actions, state stores
18
+ │ ├── store.ts # Zustand store
19
+ │ ├── actions.ts # Server actions
20
+ │ └── dto.ts
21
+ ├── infrastructure/ # External adapters
22
+ │ ├── api-client.ts # API calls (fetch, tRPC)
23
+ │ └── storage.ts # localStorage / cookies
24
+ └── interfaces/ # UI Components
25
+ ├── page.tsx # Next.js page
26
+ ├── component.tsx # React component
27
+ └── layout.tsx # Layout wrapper
28
+ ```
29
+
30
+ ## Commands
31
+
32
+ | Command | Purpose |
33
+ |---------|---------|
34
+ | `npm run dev` | Dev server |
35
+ | `npm run build` | Production build |
36
+ | `npm test` | Run tests |
37
+ | `next lint` | Lint |
38
+ | `prettier --write .` | Format |
39
+ | `npm audit` | Security audit |
@@ -238,6 +238,8 @@ export function codegenSkillName(language: string): string {
238
238
  "python": "python-codegen",
239
239
  "typescript": "typescript-codegen",
240
240
  "java": "java-codegen",
241
+ "nextjs": "nextjs-codegen",
242
+ "angular": "angular-codegen",
241
243
  };
242
244
  return map[language] || "typescript-codegen";
243
245
  }
@@ -1,5 +1,5 @@
1
1
  {
2
- "timestamp": "2026-07-03T07:30:24Z",
2
+ "timestamp": "2026-07-03T07:45:52Z",
3
3
  "mode": "all",
4
4
  "stages_run": [],
5
5
  "summary": {
@@ -80,7 +80,9 @@ get_source_extensions() {
80
80
  typescript) echo "ts" ;;
81
81
  python) echo "py" ;;
82
82
  java) echo "java" ;;
83
- *) echo "rs go ts py java" ;;
83
+ nextjs) echo "ts tsx" ;;
84
+ angular) echo "ts" ;;
85
+ *) echo "rs go ts py java tsx" ;;
84
86
  esac
85
87
  }
86
88
 
@@ -0,0 +1,36 @@
1
+ ---
2
+ name: angular-codegen
3
+ description: Minimal skill for Angular code generation with DDD + Clean Architecture. References full patterns on demand — never loads inline. Use when implementing Angular modules following enterprise patterns.
4
+ model: inherit
5
+ tools: [Read, Grep]
6
+ ---
7
+
8
+ # Angular Code Generation — DDD + Clean Architecture Patterns
9
+
10
+ > Full reference: `.pi/skills/angular-enterprise-codegen.md`
11
+
12
+ ## Quick Reference
13
+
14
+ | When you need... | Read this section |
15
+ |-----------------|-------------------|
16
+ | Module structure | Section 1 — 4-layer DDD for Angular |
17
+ | Domain entities | Section 2 — Pure business logic, no Angular |
18
+ | Application layer | Section 3 — Injectable services, Signal stores |
19
+ | Infrastructure | Section 4 — HttpClient wrappers |
20
+ | UI Components | Section 5 — Standalone components, control flow |
21
+ | Testing | Section 6 — TestBed patterns |
22
+
23
+ ## DDD Layer Contract
24
+
25
+ | Layer | Purpose | Dependencies |
26
+ |-------|---------|-------------|
27
+ | `domain/` | Pure business logic | None (no Angular imports) |
28
+ | `application/` | Services, stores | `domain/` |
29
+ | `infrastructure/` | HTTP clients, adapters | `domain/` + `application/` |
30
+ | `interfaces/` | Components, pages | `application/` |
31
+
32
+ ## Rules
33
+ - NEVER read full reference — read specific sections
34
+ - Domain layer has ZERO Angular imports
35
+ - Use `inject()` for DI, never constructor injection
36
+ - Use `signal()` over BehaviorSubject for state
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: nextjs-codegen
3
+ description: Minimal skill for Next.js code generation with DDD + Clean Architecture. References full patterns on demand — never loads inline. Use when implementing Next.js modules following enterprise patterns.
4
+ model: inherit
5
+ tools: [Read, Grep]
6
+ ---
7
+
8
+ # Next.js Code Generation — DDD + Clean Architecture Patterns
9
+
10
+ > Full reference: `.pi/skills/nextjs-enterprise-codegen.md`
11
+
12
+ ## Quick Reference
13
+
14
+ | When you need... | Read this section |
15
+ |-----------------|-------------------|
16
+ | Module structure | Section 1 — 4-layer DDD for Next.js |
17
+ | Domain entities | Section 2 — Pure business logic, no framework |
18
+ | Application layer | Section 3 — Server actions, Zustand stores |
19
+ | Infrastructure | Section 4 — API clients, storage adapters |
20
+ | UI Components | Section 5 — App Router pages, client components |
21
+
22
+ ## DDD Layer Contract
23
+
24
+ | Layer | Purpose | Dependencies |
25
+ |-------|---------|-------------|
26
+ | `domain/` | Pure business logic | None (no Next.js imports) |
27
+ | `application/` | Server actions, stores | `domain/` |
28
+ | `infrastructure/` | API clients, adapters | `domain/` + `application/` |
29
+ | `interfaces/` | Pages, components | `application/` |
30
+
31
+ ## Rules
32
+ - NEVER read full reference — read specific sections
33
+ - Domain layer has ZERO Next.js/React imports
34
+ - Use `'use client'` only in interfaces/ layer