@tacuchi/agent-workflow-cli 6.2.0 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/README.md +65 -12
  2. package/dist/application/profile/profile-service.d.ts +53 -0
  3. package/dist/application/profile/profile-service.d.ts.map +1 -0
  4. package/dist/application/profile/profile-service.js +210 -0
  5. package/dist/application/profile/profile-service.js.map +1 -0
  6. package/dist/application/self/bootstrap.js +2 -1
  7. package/dist/application/self/bootstrap.js.map +1 -1
  8. package/dist/application/self/detect-hosts.d.ts +18 -0
  9. package/dist/application/self/detect-hosts.d.ts.map +1 -0
  10. package/dist/application/self/detect-hosts.js +37 -0
  11. package/dist/application/self/detect-hosts.js.map +1 -0
  12. package/dist/application/self/install-hooks.d.ts +30 -0
  13. package/dist/application/self/install-hooks.d.ts.map +1 -0
  14. package/dist/application/self/install-hooks.js +253 -0
  15. package/dist/application/self/install-hooks.js.map +1 -0
  16. package/dist/application/self/install-skill.d.ts +2 -0
  17. package/dist/application/self/install-skill.d.ts.map +1 -1
  18. package/dist/application/self/install-skill.js +69 -3
  19. package/dist/application/self/install-skill.js.map +1 -1
  20. package/dist/cli/commands/self.d.ts.map +1 -1
  21. package/dist/cli/commands/self.js +9 -1
  22. package/dist/cli/commands/self.js.map +1 -1
  23. package/dist/cli/tui/tabs/skills-tab.d.ts.map +1 -1
  24. package/dist/cli/tui/tabs/skills-tab.js +100 -24
  25. package/dist/cli/tui/tabs/skills-tab.js.map +1 -1
  26. package/package.json +2 -2
  27. package/skills/agent-workflow/commands/README.md +24 -0
  28. package/skills/agent-workflow/commands/agent-workflow-compact.md +24 -0
  29. package/skills/agent-workflow/commands/agent-workflow-doctor.md +100 -0
  30. package/skills/agent-workflow/commands/agent-workflow-export-arq.md +77 -0
  31. package/skills/agent-workflow/commands/agent-workflow-export-conclusions.md +78 -0
  32. package/skills/agent-workflow/commands/agent-workflow-export-plan.md +74 -0
  33. package/skills/agent-workflow/commands/agent-workflow-export-qa-note.md +30 -0
  34. package/skills/agent-workflow/commands/agent-workflow-export-report.md +78 -0
  35. package/skills/agent-workflow/commands/agent-workflow-export-requirement.md +30 -0
  36. package/skills/agent-workflow/commands/agent-workflow-export-scripts.md +92 -0
  37. package/skills/agent-workflow/commands/agent-workflow-export-tech-manuals.md +75 -0
  38. package/skills/agent-workflow/commands/agent-workflow-export-tech-note.md +30 -0
  39. package/skills/agent-workflow/commands/agent-workflow-hub-init.md +82 -0
  40. package/skills/agent-workflow/commands/agent-workflow-migrate.md +56 -0
  41. package/skills/agent-workflow/commands/agent-workflow-project-init.md +60 -0
  42. package/skills/agent-workflow/commands/agent-workflow-resume.md +22 -0
  43. package/skills/agent-workflow/commands/agent-workflow-rules.md +40 -0
  44. package/skills/agent-workflow/commands/agent-workflow-session.md +35 -0
  45. package/skills/agent-workflow/doctrine/README.md +15 -0
  46. package/skills/agent-workflow/doctrine/compact/SKILL.md +145 -0
  47. package/skills/agent-workflow/doctrine/doctor/SKILL.md +86 -0
  48. package/skills/agent-workflow/doctrine/doctor/SKILL.md.tmp +0 -0
  49. package/skills/agent-workflow/doctrine/hub-init/SKILL.md +157 -0
  50. package/skills/agent-workflow/doctrine/hub-init/SKILL.md.tmp +0 -0
  51. package/skills/agent-workflow/doctrine/hub-init/references/multiroot-manual.md +51 -0
  52. package/skills/agent-workflow/doctrine/implement/SKILL.md +290 -0
  53. package/skills/agent-workflow/doctrine/implement/references/branch-verification.md +16 -0
  54. package/skills/agent-workflow/doctrine/implement/references/design-md-template.md +108 -0
  55. package/skills/agent-workflow/doctrine/implement/references/rollback-guide.md +81 -0
  56. package/skills/agent-workflow/doctrine/migrate/SKILL.md +281 -0
  57. package/skills/agent-workflow/doctrine/migrate/SKILL.md.tmp +0 -0
  58. package/skills/agent-workflow/doctrine/project-init/SKILL.md +100 -0
  59. package/skills/agent-workflow/doctrine/project-init/SKILL.md.tmp +0 -0
  60. package/skills/agent-workflow/doctrine/refactor/SKILL.md +208 -0
  61. package/skills/agent-workflow/doctrine/refactor/references/refactor-md-template.md +108 -0
  62. package/skills/agent-workflow/doctrine/refactor/references/strangler-checklist.md +116 -0
  63. package/skills/agent-workflow/doctrine/resume/SKILL.md +199 -0
  64. package/skills/agent-workflow/doctrine/rules/SKILL.md +224 -0
  65. package/skills/agent-workflow/doctrine/rules/SKILL.md.tmp +0 -0
  66. package/skills/agent-workflow/doctrine/session/SKILL.md +383 -0
  67. package/skills/agent-workflow/doctrine/session/references/auto-plan-rules.md +63 -0
  68. package/skills/agent-workflow/doctrine/session/references/backlog-template.md +95 -0
  69. package/skills/agent-workflow/doctrine/session/references/branch-verification.md +198 -0
  70. package/skills/agent-workflow/doctrine/session/references/commits-policy.md +111 -0
  71. package/skills/agent-workflow/doctrine/session/references/communication-style.md +50 -0
  72. package/skills/agent-workflow/doctrine/session/references/graduacion-routing.md +88 -0
  73. package/skills/agent-workflow/doctrine/session/references/lifecycle-deep.md +160 -0
  74. package/skills/agent-workflow/doctrine/session/references/prompts/C1-specialty-selection.md +11 -0
  75. package/skills/agent-workflow/doctrine/session/references/prompts/C2-cost-guard.md +14 -0
  76. package/skills/agent-workflow/doctrine/session/references/prompts/M1-closure-commit-prompt.md +104 -0
  77. package/skills/agent-workflow/doctrine/session/references/prompts/M10-next-step.md +17 -0
  78. package/skills/agent-workflow/doctrine/session/references/prompts/M11-context.md +16 -0
  79. package/skills/agent-workflow/doctrine/session/references/prompts/M2-branch-caso-A.md +14 -0
  80. package/skills/agent-workflow/doctrine/session/references/prompts/M3-branch-caso-C.md +33 -0
  81. package/skills/agent-workflow/doctrine/session/references/prompts/M4-cross-source-hard-gate.md +33 -0
  82. package/skills/agent-workflow/doctrine/session/references/prompts/M5-modality-analyze.md +15 -0
  83. package/skills/agent-workflow/doctrine/session/references/prompts/M6-phase-gate.md +31 -0
  84. package/skills/agent-workflow/doctrine/session/references/prompts/M7-refactor-legacy-detected.md +28 -0
  85. package/skills/agent-workflow/doctrine/session/references/prompts/M8-refactor-cleanup.md +16 -0
  86. package/skills/agent-workflow/doctrine/session/references/prompts/M9-contract-review.md +39 -0
  87. package/skills/agent-workflow/doctrine/session/references/prompts/S1-type-design.md +15 -0
  88. package/skills/agent-workflow/doctrine/session/references/prompts/S2-topic-change-detection.md +14 -0
  89. package/skills/agent-workflow/doctrine/session/references/prompts/S3-flow-detection.md +28 -0
  90. package/skills/agent-workflow/doctrine/session/references/prompts/S4-resume.md +27 -0
  91. package/skills/agent-workflow/doctrine/session/references/prompts/S5-post-compact.md +17 -0
  92. package/skills/agent-workflow/doctrine/session/references/prompts/S6-scope.md +16 -0
  93. package/skills/agent-workflow/doctrine/session/references/prompts/S7-design-review.md +37 -0
  94. package/skills/agent-workflow/doctrine/session/references/prompts-catalog.md +210 -0
  95. package/skills/agent-workflow/doctrine/session/references/sandbox-readonly-rules.md +82 -0
  96. package/skills/agent-workflow/doctrine/session/references/specialty-decision-tree.md +56 -0
  97. package/skills/agent-workflow/doctrine/session/references/topic-change-rules.md +67 -0
  98. package/skills/agent-workflow/exports/README.md +15 -0
  99. package/skills/agent-workflow/exports/export-arq/SKILL.md +229 -0
  100. package/skills/agent-workflow/exports/export-arq/SKILL.md.tmp +0 -0
  101. package/skills/agent-workflow/exports/export-arq/references/lexico-tecnico.md +94 -0
  102. package/skills/agent-workflow/exports/export-arq/references/template-c4.md +293 -0
  103. package/skills/agent-workflow/exports/export-arq/references/template-plantuml.puml +77 -0
  104. package/skills/agent-workflow/exports/export-arq/references/template-structurizr.dsl +72 -0
  105. package/skills/agent-workflow/exports/export-arq/references/validations.md +231 -0
  106. package/skills/agent-workflow/exports/export-conclusions/SKILL.md +169 -0
  107. package/skills/agent-workflow/exports/export-conclusions/references/dedup-rules.md +154 -0
  108. package/skills/agent-workflow/exports/export-conclusions/references/template-conclusions.md +158 -0
  109. package/skills/agent-workflow/exports/export-plan/SKILL.md +225 -0
  110. package/skills/agent-workflow/exports/export-plan/references/state-transitions.md +141 -0
  111. package/skills/agent-workflow/exports/export-plan/references/template-plan.md +132 -0
  112. package/skills/agent-workflow/exports/export-qa-note/SKILL.md +31 -0
  113. package/skills/agent-workflow/exports/export-report/SKILL.md +262 -0
  114. package/skills/agent-workflow/exports/export-report/SKILL.md.tmp +0 -0
  115. package/skills/agent-workflow/exports/export-report/references/lexico.md +174 -0
  116. package/skills/agent-workflow/exports/export-report/references/template-a.md +95 -0
  117. package/skills/agent-workflow/exports/export-report/references/template-b.md +221 -0
  118. package/skills/agent-workflow/exports/export-report/references/template-c.md +180 -0
  119. package/skills/agent-workflow/exports/export-report/references/validations.md +255 -0
  120. package/skills/agent-workflow/exports/export-requirement/SKILL.md +31 -0
  121. package/skills/agent-workflow/exports/export-scripts/SKILL.md +324 -0
  122. package/skills/agent-workflow/exports/export-scripts/references/code-scan-recommendations.md +83 -0
  123. package/skills/agent-workflow/exports/export-scripts/references/deprecation-plan.md +80 -0
  124. package/skills/agent-workflow/exports/export-scripts/references/lexico-tecnico.md +80 -0
  125. package/skills/agent-workflow/exports/export-scripts/references/manifest-template.md +253 -0
  126. package/skills/agent-workflow/exports/export-scripts/references/readme-template.md +79 -0
  127. package/skills/agent-workflow/exports/export-scripts/references/theme-handling.md +168 -0
  128. package/skills/agent-workflow/exports/export-scripts/references/validations.md +242 -0
  129. package/skills/agent-workflow/exports/export-tech-manuals/SKILL.md +214 -0
  130. package/skills/agent-workflow/exports/export-tech-manuals/references/lexico-tecnico.md +97 -0
  131. package/skills/agent-workflow/exports/export-tech-manuals/references/template-index.md +123 -0
  132. package/skills/agent-workflow/exports/export-tech-manuals/references/template-manual.md +143 -0
  133. package/skills/agent-workflow/exports/export-tech-manuals/references/validations.md +211 -0
  134. package/skills/agent-workflow/exports/export-tech-note/SKILL.md +31 -0
  135. package/skills/agent-workflow/hooks/README.md +15 -0
  136. package/skills/agent-workflow/hooks/hooks.template.json +90 -0
  137. package/skills/agent-workflow/references/README.md +12 -0
  138. package/skills/agent-workflow/references/legacy-anchors.md +50 -0
  139. package/skills/agent-workflow/references/profile-parametrization.md +88 -0
  140. package/skills/agent-workflow/specialties/README.md +14 -0
  141. package/skills/agent-workflow/specialties/analyze-conclude/SKILL.md +175 -0
  142. package/skills/agent-workflow/specialties/analyze-conclude/references/incident-classification.md +61 -0
  143. package/skills/agent-workflow/specialties/analyze-investigate/SKILL.md +148 -0
  144. package/skills/agent-workflow/specialties/analyze-investigate/SKILL.md.tmp +0 -0
  145. package/skills/agent-workflow/specialties/analyze-investigate/references/cost-guard.md +85 -0
  146. package/skills/agent-workflow/specialties/analyze-synthesize/SKILL.md +127 -0
  147. package/skills/agent-workflow/specialties/design-brief/SKILL.md +90 -0
  148. package/skills/agent-workflow/specialties/design-deliver/SKILL.md +121 -0
  149. package/skills/agent-workflow/specialties/design-develop/SKILL.md +115 -0
  150. package/skills/agent-workflow/specialties/design-discover/SKILL.md +103 -0
  151. package/skills/agent-workflow/standards/README.md +12 -0
  152. package/skills/agent-workflow/standards/coding-standards/SKILL.md +102 -0
  153. package/skills/agent-workflow/standards/coding-standards/SKILL.md.tmp +0 -0
  154. package/skills/agent-workflow/standards/coding-standards/references/angular-typescript.md +266 -0
  155. package/skills/agent-workflow/standards/coding-standards/references/database-conventions.md +170 -0
  156. package/skills/agent-workflow/standards/coding-standards/references/fe-be-integration.md +300 -0
  157. package/skills/agent-workflow/standards/coding-standards/references/frontend-structure.md +182 -0
  158. package/skills/agent-workflow/standards/coding-standards/references/java-spring.md +244 -0
  159. package/skills/agent-workflow/standards/coding-standards/references/project-structure.md +197 -0
  160. package/skills/agent-workflow/standards/frontend-design/SKILL.md +62 -0
  161. package/skills/agent-workflow/standards/frontend-design/references/feedback-toasts-patterns.md +249 -0
  162. package/skills/agent-workflow/standards/frontend-design/references/form-patterns.md +278 -0
  163. package/skills/agent-workflow/standards/frontend-design/references/list-patterns.md +256 -0
  164. package/skills/agent-workflow/standards/frontend-design/references/modal-patterns.md +220 -0
  165. package/skills/agent-workflow/standards/frontend-design/references/navigation-patterns.md +224 -0
  166. package/skills/agent-workflow/standards/redaccion-simple/SKILL.md +128 -0
  167. package/skills/agent-workflow/standards/sql-rollback-generator/SKILL.md +197 -0
  168. package/skills/agent-workflow/standards/sql-rollback-generator/references/irreversible-checklist.md +161 -0
  169. package/skills/agent-workflow/standards/sql-rollback-generator/references/release-rollback.md +131 -0
  170. package/skills/agent-workflow/standards/sql-rollback-generator/references/rollback-patterns.md +255 -0
  171. package/skills/agent-workflow/standards/sql-script-organizer/SKILL.md +244 -0
  172. package/skills/agent-workflow/standards/sql-script-organizer/references/bundle-readme-template.md +82 -0
  173. package/skills/agent-workflow/standards/sql-script-organizer/references/categorization-rules.md +122 -0
  174. package/skills/agent-workflow/standards/sql-script-organizer/references/consolidation-cross-session.md +125 -0
  175. package/skills/agent-workflow/standards/sql-script-organizer/references/scripts-sql-format.md +140 -0
  176. package/skills/agent-workflow/standards/testing-strategy/SKILL.md +113 -0
  177. package/skills/agent-workflow/standards/testing-strategy/references/test-levels.md +255 -0
  178. package/skills/agent-workflow/workflows/README.md +12 -0
  179. package/skills/agent-workflow/workflows/analyze-workflow/SKILL.md +107 -0
  180. package/skills/agent-workflow/workflows/design-workflow/SKILL.md +100 -0
  181. package/skills/agent-workflow/workflows/dev-workflow/SKILL.md +195 -0
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @tacuchi/agent-workflow-cli
2
2
 
3
- Agnostic runtime CLI for session-lifecycle workflows. Pairs with namespace-aware plugins to provide commands like `sessions`, `session-create`, `session-close`, `checkpoint-write`, `plugin-doctor`, `auto-plan-decide`, and more.
3
+ Agnostic runtime CLI for session-lifecycle workflows. Bundles the universal `agent-workflow` skill (35 skills + 17 commands + 7 hooks template) and supports multi-empresa parametrization via `profile.json` cascade. Pairs with optional company-specific plugins for legacy aliases.
4
4
 
5
5
  ## Install
6
6
 
@@ -10,31 +10,84 @@ npm install -g @tacuchi/agent-workflow-cli
10
10
 
11
11
  The CLI exposes two binaries: `agent-workflow` (canonical) and `aw` (short alias).
12
12
 
13
- ## Bundled skill manager (v2.0.0+)
13
+ ## Bundled SKILL (v7.0.0+)
14
14
 
15
- The published tarball bundles the `agent-workflow-manager` skill under `skills/agent-workflow-manager/`. Install it into your Claude Code skills directory with:
15
+ The published tarball bundles the universal `agent-workflow` SKILL under `skills/agent-workflow/`. Install it into your host's skill directory with `--target` (obligatorio desde v7.0.0):
16
16
 
17
17
  ```bash
18
- agent-workflow self install-skill
18
+ # Specific host
19
+ agent-workflow self install-skill --target claude
20
+ agent-workflow self install-skill --target codex
21
+ agent-workflow self install-skill --target warp
22
+
23
+ # All detected hosts (requires --confirm-all)
24
+ agent-workflow self install-skill --target all --confirm-all
25
+ ```
26
+
27
+ By default, the CLI clears any plugin cache for the target host before installing. Opt out with `--keep-cache`.
28
+
29
+ ```bash
30
+ # Detect which hosts are present + which already have the SKILL
31
+ agent-workflow self detect-hosts
32
+
33
+ # Install hooks into ~/.claude/settings.json (claude only for now)
34
+ agent-workflow self install-hooks --target claude
35
+
36
+ # Dry-run
37
+ agent-workflow self install-skill --target claude --dry-run
19
38
  ```
20
39
 
21
- This copies the bundled skill to `~/.claude/skills/agent-workflow-manager/`. No network required.
40
+ ## Multi-empresa via profile.json
41
+
42
+ The universal SKILL reads a `profile.json` to parametrize 10 sensitive skills (project-init, hub-init, doctor, migrate, rules, analyze-investigate, coding-standards, export-arq, export-report, refactor). Profile resolution cascade (highest precedence first):
43
+
44
+ 1. `--profile <path>` flag (explicit)
45
+ 2. `AW_PROFILE` env var
46
+ 3. `~/.config/agent-workflow/profile.json` (user-level)
47
+ 4. `<cwd>/.<namespace>/profile.json` (workspace-level)
48
+ 5. Embedded `DEFAULT_PROFILE` (8 fields with agnostic defaults)
49
+
50
+ Schema (8 fields): `namespace` (kebab) · `company` · `claude_md_block` (`[A-Z][A-Z0-9_-]*`) · `mcp_databases[]` · `lexicon_path` · `examples_path` · `migrate_legacy_rules[]` · `custom_anchors[]`. See `skills/agent-workflow/references/profile-parametrization.md` for the per-skill contract.
51
+
52
+ Example QTC profile:
53
+
54
+ ```json
55
+ {
56
+ "namespace": "qtc",
57
+ "company": "QuetalCompra",
58
+ "claude_md_block": "QTC-PROJECT",
59
+ "mcp_databases": [
60
+ { "alias": "qtc-cert", "host": "10.0.0.10", "port": 5432, "database": "qtc_cert" },
61
+ { "alias": "qtc-prod", "host": "10.0.0.11", "port": 5432, "database": "qtc_prod" }
62
+ ],
63
+ "lexicon_path": "profiles/lexico-qtc.md",
64
+ "examples_path": "profiles/examples-qtc.md",
65
+ "migrate_legacy_rules": [
66
+ { "from": ".claude/sessions", "to": ".workflow/sessions", "scope": "anchor" }
67
+ ],
68
+ "custom_anchors": [
69
+ { "anchor": "qtc:super-admin-bypass", "target": "profiles/anchors/qtc-super-admin-bypass.md" }
70
+ ]
71
+ }
72
+ ```
73
+
74
+ The QTC profile + legacy aliases ship in the `qtc-workflow-plugin` companion plugin (v4.0.0+).
22
75
 
23
76
  ### Override the source
24
77
 
25
- Power users who want a specific revision (e.g., bleeding-edge from the upstream repo) can pass `--from`:
78
+ Power users who want a specific revision can pass `--from`:
26
79
 
27
80
  ```bash
28
- # Clone from a git URL
29
- agent-workflow self install-skill --from https://github.com/Tacuchi/agent-workflow-manager.git
30
-
31
- # Copy from a local checkout
32
- agent-workflow self install-skill --from /path/to/agent-workflow-manager
81
+ # Copy from a local checkout (skill development)
82
+ agent-workflow self install-skill --target claude --from /path/to/agent-workflow-cli/skills/agent-workflow
33
83
  ```
34
84
 
35
85
  Flags:
36
86
 
37
- - `--force`overwrite an existing destination.
87
+ - `--target <claude|codex|warp|oz|agents|all>` obligatorio.
88
+ - `--confirm-all` — required when `--target all`.
89
+ - `--keep-cache` — skip the automatic plugin cache clear before install.
90
+ - `--force` — overwrite existing destination.
38
91
  - `--dry-run` — preview without writing.
39
92
 
40
93
  ## Namespace resolution
@@ -0,0 +1,53 @@
1
+ import type { EnvPort } from "../../ports/env.js";
2
+ import type { FileSystemPort } from "../../ports/file-system.js";
3
+ export declare const ENV_VAR_PROFILE = "AW_PROFILE";
4
+ export declare const USER_CONFIG_RELPATH: string;
5
+ export declare const WORKSPACE_PROFILE_FILENAME = "profile.json";
6
+ export declare const DEFAULT_NAMESPACE = "agent-workflow";
7
+ export interface ProfileMcpDatabase {
8
+ alias: string;
9
+ host: string;
10
+ port: number;
11
+ database: string;
12
+ schema?: string;
13
+ }
14
+ export interface ProfileLegacyRule {
15
+ from: string;
16
+ to: string;
17
+ scope?: "skill" | "command" | "hook" | "anchor";
18
+ }
19
+ export interface ProfileCustomAnchor {
20
+ anchor: string;
21
+ target: string;
22
+ }
23
+ export interface Profile {
24
+ namespace: string;
25
+ company: string;
26
+ claude_md_block: string;
27
+ mcp_databases: ProfileMcpDatabase[];
28
+ lexicon_path: string | null;
29
+ examples_path: string | null;
30
+ migrate_legacy_rules: ProfileLegacyRule[];
31
+ custom_anchors: ProfileCustomAnchor[];
32
+ }
33
+ export declare const DEFAULT_PROFILE: Profile;
34
+ export type ProfileSource = "flag" | "env" | "user-config" | "workspace" | "default";
35
+ export interface ResolvedProfile {
36
+ profile: Profile;
37
+ source: ProfileSource;
38
+ path: string | null;
39
+ }
40
+ export type ProfileErrorCode = "PROFILE_NOT_FOUND" | "PROFILE_INVALID_JSON" | "PROFILE_INVALID_SCHEMA";
41
+ export interface ProfileError {
42
+ code: ProfileErrorCode;
43
+ message: string;
44
+ path?: string;
45
+ field?: string;
46
+ }
47
+ export interface ResolveProfileInput {
48
+ flagPath?: string | null;
49
+ workspaceNamespace?: string;
50
+ }
51
+ export declare function resolveProfile(fs: FileSystemPort, env: EnvPort, input?: ResolveProfileInput): Promise<ResolvedProfile | ProfileError>;
52
+ export declare function validateProfile(raw: unknown, path?: string): Profile | ProfileError;
53
+ //# sourceMappingURL=profile-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-service.d.ts","sourceRoot":"","sources":["../../../src/application/profile/profile-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,eAAO,MAAM,eAAe,eAAe,CAAC;AAC5C,eAAO,MAAM,mBAAmB,QAAoD,CAAC;AACrF,eAAO,MAAM,0BAA0B,iBAAiB,CAAC;AACzD,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAElD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;CACjD;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,kBAAkB,EAAE,CAAC;IACpC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,oBAAoB,EAAE,iBAAiB,EAAE,CAAC;IAC1C,cAAc,EAAE,mBAAmB,EAAE,CAAC;CACvC;AAED,eAAO,MAAM,eAAe,EAAE,OASjB,CAAC;AAEd,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,KAAK,GAAG,aAAa,GAAG,WAAW,GAAG,SAAS,CAAC;AAErF,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,MAAM,MAAM,gBAAgB,GACxB,mBAAmB,GACnB,sBAAsB,GACtB,wBAAwB,CAAC;AAE7B,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAsB,cAAc,CAClC,EAAE,EAAE,cAAc,EAClB,GAAG,EAAE,OAAO,EACZ,KAAK,GAAE,mBAAwB,GAC9B,OAAO,CAAC,eAAe,GAAG,YAAY,CAAC,CA4BzC;AAkCD,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,YAAY,CAgBnF"}
@@ -0,0 +1,210 @@
1
+ import { isAbsolute, join } from "node:path";
2
+ export const ENV_VAR_PROFILE = "AW_PROFILE";
3
+ export const USER_CONFIG_RELPATH = join(".config", "agent-workflow", "profile.json");
4
+ export const WORKSPACE_PROFILE_FILENAME = "profile.json";
5
+ export const DEFAULT_NAMESPACE = "agent-workflow";
6
+ export const DEFAULT_PROFILE = Object.freeze({
7
+ namespace: DEFAULT_NAMESPACE,
8
+ company: "agent-workflow",
9
+ claude_md_block: "AW-PROJECT",
10
+ mcp_databases: [],
11
+ lexicon_path: null,
12
+ examples_path: null,
13
+ migrate_legacy_rules: [],
14
+ custom_anchors: [],
15
+ });
16
+ export async function resolveProfile(fs, env, input = {}) {
17
+ const cwd = env.cwd();
18
+ const home = env.homeDir();
19
+ const wsNs = (input.workspaceNamespace ?? DEFAULT_NAMESPACE).trim() || DEFAULT_NAMESPACE;
20
+ const flagPath = (input.flagPath ?? "").trim();
21
+ if (flagPath.length > 0) {
22
+ const abs = isAbsolute(flagPath) ? flagPath : join(cwd, flagPath);
23
+ return loadOrFail(fs, abs, "flag");
24
+ }
25
+ const envValue = (env.get(ENV_VAR_PROFILE) ?? "").trim();
26
+ if (envValue.length > 0) {
27
+ const abs = isAbsolute(envValue) ? envValue : join(cwd, envValue);
28
+ return loadOrFail(fs, abs, "env");
29
+ }
30
+ const userPath = join(home, USER_CONFIG_RELPATH);
31
+ if (await fs.exists(userPath)) {
32
+ return loadOrFail(fs, userPath, "user-config");
33
+ }
34
+ const workspacePath = join(cwd, `.${wsNs}`, WORKSPACE_PROFILE_FILENAME);
35
+ if (await fs.exists(workspacePath)) {
36
+ return loadOrFail(fs, workspacePath, "workspace");
37
+ }
38
+ return { profile: cloneProfile(DEFAULT_PROFILE), source: "default", path: null };
39
+ }
40
+ async function loadOrFail(fs, path, source) {
41
+ if (!(await fs.exists(path))) {
42
+ return {
43
+ code: "PROFILE_NOT_FOUND",
44
+ message: `profile no encontrado (${source}): ${path}`,
45
+ path,
46
+ };
47
+ }
48
+ const text = await fs.readText(path);
49
+ const parsed = parseAndValidate(text, path);
50
+ if ("code" in parsed)
51
+ return parsed;
52
+ return { profile: parsed, source, path };
53
+ }
54
+ function parseAndValidate(text, path) {
55
+ let raw;
56
+ try {
57
+ raw = JSON.parse(text);
58
+ }
59
+ catch (err) {
60
+ return {
61
+ code: "PROFILE_INVALID_JSON",
62
+ message: `JSON inválido en ${path}: ${err.message}`,
63
+ path,
64
+ };
65
+ }
66
+ return validateProfile(raw, path);
67
+ }
68
+ export function validateProfile(raw, path) {
69
+ if (!isObject(raw))
70
+ return failSchema("root", "objeto esperado", path);
71
+ const scalarErr = validateScalarFields(raw, path);
72
+ if (scalarErr !== null)
73
+ return scalarErr;
74
+ const arrayErr = validateArrayFields(raw, path);
75
+ if (arrayErr !== null)
76
+ return arrayErr;
77
+ return {
78
+ namespace: raw.namespace,
79
+ company: raw.company,
80
+ claude_md_block: raw.claude_md_block,
81
+ mcp_databases: raw.mcp_databases.map((d) => ({ ...d })),
82
+ lexicon_path: (raw.lexicon_path ?? null),
83
+ examples_path: (raw.examples_path ?? null),
84
+ migrate_legacy_rules: raw.migrate_legacy_rules.map((r) => ({ ...r })),
85
+ custom_anchors: raw.custom_anchors.map((a) => ({ ...a })),
86
+ };
87
+ }
88
+ function validateScalarFields(raw, path) {
89
+ if (!isNonEmptyString(raw.namespace) || !isKebab(raw.namespace)) {
90
+ return failSchema("namespace", "string kebab no vacío (^[a-z][a-z0-9-]*$)", path);
91
+ }
92
+ if (!isNonEmptyString(raw.company)) {
93
+ return failSchema("company", "string no vacío", path);
94
+ }
95
+ if (!isNonEmptyString(raw.claude_md_block) ||
96
+ !/^[A-Z][A-Z0-9_-]*$/.test(raw.claude_md_block)) {
97
+ return failSchema("claude_md_block", "string [A-Z][A-Z0-9_-]*", path);
98
+ }
99
+ const lexErr = validateNullableString(raw.lexicon_path, "lexicon_path", path);
100
+ if (lexErr !== null)
101
+ return lexErr;
102
+ const exErr = validateNullableString(raw.examples_path, "examples_path", path);
103
+ if (exErr !== null)
104
+ return exErr;
105
+ return null;
106
+ }
107
+ function validateNullableString(value, field, path) {
108
+ if (value === null || value === undefined)
109
+ return null;
110
+ if (!isNonEmptyString(value))
111
+ return failSchema(field, "string no vacío o null", path);
112
+ return null;
113
+ }
114
+ function validateArrayFields(raw, path) {
115
+ const mcpErr = validateArray(raw.mcp_databases, "mcp_databases", validateMcpDatabase, path);
116
+ if (mcpErr !== null)
117
+ return mcpErr;
118
+ const ruleErr = validateArray(raw.migrate_legacy_rules, "migrate_legacy_rules", validateLegacyRule, path);
119
+ if (ruleErr !== null)
120
+ return ruleErr;
121
+ const anchorErr = validateArray(raw.custom_anchors, "custom_anchors", validateAnchor, path);
122
+ if (anchorErr !== null)
123
+ return anchorErr;
124
+ return null;
125
+ }
126
+ function validateArray(value, field, item, path) {
127
+ if (!Array.isArray(value))
128
+ return failSchema(field, "array", path);
129
+ for (let i = 0; i < value.length; i++) {
130
+ const err = item(value[i], i, path);
131
+ if (err !== null)
132
+ return err;
133
+ }
134
+ return null;
135
+ }
136
+ function validateMcpDatabase(raw, idx, path) {
137
+ const field = `mcp_databases[${idx}]`;
138
+ if (!isObject(raw))
139
+ return failSchema(field, "objeto esperado", path);
140
+ if (!isNonEmptyString(raw.alias))
141
+ return failSchema(`${field}.alias`, "string no vacío", path);
142
+ if (!isNonEmptyString(raw.host))
143
+ return failSchema(`${field}.host`, "string no vacío", path);
144
+ if (typeof raw.port !== "number" ||
145
+ !Number.isInteger(raw.port) ||
146
+ raw.port <= 0 ||
147
+ raw.port > 65535) {
148
+ return failSchema(`${field}.port`, "entero 1-65535", path);
149
+ }
150
+ if (!isNonEmptyString(raw.database))
151
+ return failSchema(`${field}.database`, "string no vacío", path);
152
+ if (raw.schema !== undefined && !isNonEmptyString(raw.schema)) {
153
+ return failSchema(`${field}.schema`, "string no vacío o undefined", path);
154
+ }
155
+ return null;
156
+ }
157
+ function validateLegacyRule(raw, idx, path) {
158
+ const field = `migrate_legacy_rules[${idx}]`;
159
+ if (!isObject(raw))
160
+ return failSchema(field, "objeto esperado", path);
161
+ if (!isNonEmptyString(raw.from))
162
+ return failSchema(`${field}.from`, "string no vacío", path);
163
+ if (!isNonEmptyString(raw.to))
164
+ return failSchema(`${field}.to`, "string no vacío", path);
165
+ if (raw.scope !== undefined &&
166
+ !["skill", "command", "hook", "anchor"].includes(raw.scope)) {
167
+ return failSchema(`${field}.scope`, "skill|command|hook|anchor o undefined", path);
168
+ }
169
+ return null;
170
+ }
171
+ function validateAnchor(raw, idx, path) {
172
+ const field = `custom_anchors[${idx}]`;
173
+ if (!isObject(raw))
174
+ return failSchema(field, "objeto esperado", path);
175
+ if (!isNonEmptyString(raw.anchor))
176
+ return failSchema(`${field}.anchor`, "string no vacío", path);
177
+ if (!isNonEmptyString(raw.target))
178
+ return failSchema(`${field}.target`, "string no vacío", path);
179
+ return null;
180
+ }
181
+ function isObject(v) {
182
+ return typeof v === "object" && v !== null && !Array.isArray(v);
183
+ }
184
+ function isNonEmptyString(v) {
185
+ return typeof v === "string" && v.trim().length > 0;
186
+ }
187
+ function isKebab(s) {
188
+ return /^[a-z][a-z0-9-]*$/.test(s);
189
+ }
190
+ function failSchema(field, expected, path) {
191
+ return {
192
+ code: "PROFILE_INVALID_SCHEMA",
193
+ message: `${field}: ${expected}`,
194
+ field,
195
+ ...(path !== undefined ? { path } : {}),
196
+ };
197
+ }
198
+ function cloneProfile(p) {
199
+ return {
200
+ namespace: p.namespace,
201
+ company: p.company,
202
+ claude_md_block: p.claude_md_block,
203
+ mcp_databases: p.mcp_databases.map((d) => ({ ...d })),
204
+ lexicon_path: p.lexicon_path,
205
+ examples_path: p.examples_path,
206
+ migrate_legacy_rules: p.migrate_legacy_rules.map((r) => ({ ...r })),
207
+ custom_anchors: p.custom_anchors.map((a) => ({ ...a })),
208
+ };
209
+ }
210
+ //# sourceMappingURL=profile-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-service.js","sourceRoot":"","sources":["../../../src/application/profile/profile-service.ts"],"names":[],"mappings":"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"}
@@ -68,10 +68,11 @@ function buildUninstallArgs(dryRun) {
68
68
  };
69
69
  }
70
70
  function buildInstallArgs(dryRun) {
71
+ const baseFlags = dryRun ? ["--force", "--dry-run"] : ["--force", "--confirm-all"];
71
72
  return {
72
73
  rest: [],
73
74
  plugin: {},
74
- flags: new Set(dryRun ? ["--force", "--dry-run"] : ["--force"]),
75
+ flags: new Set(baseFlags),
75
76
  values: new Map([["target", "all"]]),
76
77
  valuesMulti: new Map(),
77
78
  };
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../src/application/self/bootstrap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../src/application/self/bootstrap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { CliContext } from "../../cli/types.js";
2
+ import type { CommandResult } from "../../domain/types.js";
3
+ import { type InstallTarget } from "./install-skill.js";
4
+ export interface DetectedHost {
5
+ target: InstallTarget;
6
+ config_dir: string;
7
+ config_dir_present: boolean;
8
+ skill_installed: boolean;
9
+ skill_path: string;
10
+ }
11
+ export interface SelfDetectHostsData {
12
+ hosts: DetectedHost[];
13
+ detected_count: number;
14
+ installed_count: number;
15
+ summary: string;
16
+ }
17
+ export declare function selfDetectHosts(ctx: CliContext): Promise<CommandResult<SelfDetectHostsData>>;
18
+ //# sourceMappingURL=detect-hosts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect-hosts.d.ts","sourceRoot":"","sources":["../../../src/application/self/detect-hosts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,KAAK,aAAa,EAAgC,MAAM,oBAAoB,CAAC;AAEtF,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAID,wBAAsB,eAAe,CACnC,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC,CA6B7C"}
@@ -0,0 +1,37 @@
1
+ import { join } from "node:path";
2
+ import { SKILL_DIR_NAME, TARGET_ROOTS } from "./install-skill.js";
3
+ const HOST_ORDER = ["claude", "codex", "warp", "oz", "agents"];
4
+ export async function selfDetectHosts(ctx) {
5
+ const home = ctx.env.homeDir();
6
+ const hosts = [];
7
+ for (const target of HOST_ORDER) {
8
+ const skillPath = join(home, ...TARGET_ROOTS[target], SKILL_DIR_NAME);
9
+ const configDir = join(home, `.${target}`);
10
+ const [configPresent, skillInstalled] = await Promise.all([
11
+ ctx.fs.exists(configDir),
12
+ ctx.fs.exists(skillPath),
13
+ ]);
14
+ hosts.push({
15
+ target,
16
+ config_dir: configDir,
17
+ config_dir_present: configPresent,
18
+ skill_installed: skillInstalled,
19
+ skill_path: skillPath,
20
+ });
21
+ }
22
+ const detectedCount = hosts.filter((h) => h.config_dir_present).length;
23
+ const installedCount = hosts.filter((h) => h.skill_installed).length;
24
+ const summary = buildSummary(detectedCount, installedCount);
25
+ return {
26
+ ok: true,
27
+ data: { hosts, detected_count: detectedCount, installed_count: installedCount, summary },
28
+ exitCode: 0,
29
+ };
30
+ }
31
+ function buildSummary(detected, installed) {
32
+ if (detected === 0) {
33
+ return "No host config directories detected. Run any host (Claude Code / Codex / Warp / OZ) once to create them.";
34
+ }
35
+ return `Detected ${detected} host config dir(s); SKILL installed in ${installed}.`;
36
+ }
37
+ //# sourceMappingURL=detect-hosts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect-hosts.js","sourceRoot":"","sources":["../../../src/application/self/detect-hosts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAsB,cAAc,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAiBtF,MAAM,UAAU,GAA6B,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AAEzF,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAe;IAEf,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAmB,EAAE,CAAC;IAEjC,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC,CAAC;QACtE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,MAAM,EAAE,CAAC,CAAC;QAC3C,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACxD,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC;YACxB,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC;SACzB,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC;YACT,MAAM;YACN,UAAU,EAAE,SAAS;YACrB,kBAAkB,EAAE,aAAa;YACjC,eAAe,EAAE,cAAc;YAC/B,UAAU,EAAE,SAAS;SACtB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC;IACvE,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC;IACrE,MAAM,OAAO,GAAG,YAAY,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IAE5D,OAAO;QACL,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,EAAE;QACxF,QAAQ,EAAE,CAAC;KACZ,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,QAAgB,EAAE,SAAiB;IACvD,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QACnB,OAAO,0GAA0G,CAAC;IACpH,CAAC;IACD,OAAO,YAAY,QAAQ,2CAA2C,SAAS,GAAG,CAAC;AACrF,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { ParsedArgs } from "../../cli/parser.js";
2
+ import type { CliContext } from "../../cli/types.js";
3
+ import type { CommandResult } from "../../domain/types.js";
4
+ import type { InstallTarget } from "./install-skill.js";
5
+ export interface HookEntry {
6
+ matcher?: string;
7
+ hooks: HookCommand[];
8
+ }
9
+ export interface HookCommand {
10
+ type: string;
11
+ command?: string;
12
+ prompt?: string;
13
+ timeout?: number;
14
+ statusMessage?: string;
15
+ }
16
+ export interface HooksTemplate {
17
+ hooks: Record<string, HookEntry[]>;
18
+ }
19
+ export interface SelfInstallHooksData {
20
+ status: "installed" | "dry-run" | "noop" | "unsupported";
21
+ target: InstallTarget;
22
+ config_path: string | null;
23
+ events_installed: string[];
24
+ events_already_present: string[];
25
+ backup_path: string | null;
26
+ warning?: string;
27
+ }
28
+ export declare function selfInstallHooks(args: ParsedArgs, ctx: CliContext, resolveTemplate?: () => Promise<string | null>): Promise<CommandResult<SelfInstallHooksData>>;
29
+ export declare function resolveBundledHookTemplate(): Promise<string | null>;
30
+ //# sourceMappingURL=install-hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-hooks.d.ts","sourceRoot":"","sources":["../../../src/application/self/install-hooks.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,aAAa,CAAC;IACzD,MAAM,EAAE,aAAa,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAMD,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,UAAU,EACf,eAAe,GAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAA8B,GACzE,OAAO,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CA+F9C;AA8ID,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAmBzE"}