@weiyentan/opencode-plugin-awx 0.2.0 → 0.3.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/README.md +122 -9
- package/dist/auth.d.ts +2 -2
- package/dist/auth.js +4 -4
- package/dist/auth.js.map +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +2 -1
- package/dist/client.js.map +1 -1
- package/dist/contracts/inventory-detail.d.ts +46 -0
- package/dist/contracts/inventory-detail.d.ts.map +1 -0
- package/dist/contracts/inventory-detail.js +22 -0
- package/dist/contracts/inventory-detail.js.map +1 -0
- package/dist/contracts/job-detail.d.ts +50 -116
- package/dist/contracts/job-detail.d.ts.map +1 -1
- package/dist/contracts/job-detail.js +1 -73
- package/dist/contracts/job-detail.js.map +1 -1
- package/dist/contracts/project-detail.d.ts +58 -0
- package/dist/contracts/project-detail.d.ts.map +1 -0
- package/dist/contracts/project-detail.js +23 -0
- package/dist/contracts/project-detail.js.map +1 -0
- package/dist/contracts/sync-project.d.ts +9 -14
- package/dist/contracts/sync-project.d.ts.map +1 -1
- package/dist/contracts/sync-project.js +1 -14
- package/dist/contracts/sync-project.js.map +1 -1
- package/dist/contracts/template-detail.d.ts +55 -0
- package/dist/contracts/template-detail.d.ts.map +1 -0
- package/dist/contracts/template-detail.js +22 -0
- package/dist/contracts/template-detail.js.map +1 -0
- package/dist/get-resource.d.ts +49 -0
- package/dist/get-resource.d.ts.map +1 -0
- package/dist/get-resource.js +49 -0
- package/dist/get-resource.js.map +1 -0
- package/dist/index.d.ts +12 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +276 -78
- package/dist/index.js.map +1 -1
- package/dist/list-projects.d.ts +8 -1
- package/dist/list-projects.d.ts.map +1 -1
- package/dist/list-projects.js +22 -3
- package/dist/list-projects.js.map +1 -1
- package/dist/list-templates.d.ts +8 -1
- package/dist/list-templates.d.ts.map +1 -1
- package/dist/list-templates.js +22 -5
- package/dist/list-templates.js.map +1 -1
- package/dist/mappers/map-inventory.d.ts +34 -0
- package/dist/mappers/map-inventory.d.ts.map +1 -0
- package/dist/mappers/map-inventory.js +35 -0
- package/dist/mappers/map-inventory.js.map +1 -0
- package/dist/mappers/map-project.d.ts +35 -0
- package/dist/mappers/map-project.d.ts.map +1 -0
- package/dist/mappers/map-project.js +42 -0
- package/dist/mappers/map-project.js.map +1 -0
- package/dist/mappers/map-template.d.ts +34 -0
- package/dist/mappers/map-template.d.ts.map +1 -0
- package/dist/mappers/map-template.js +45 -0
- package/dist/mappers/map-template.js.map +1 -0
- package/package.json +2 -3
package/README.md
CHANGED
|
@@ -12,16 +12,32 @@ The AWX plugin delivers these modules:
|
|
|
12
12
|
|
|
13
13
|
| Module | File | Purpose |
|
|
14
14
|
|--------|------|---------|
|
|
15
|
-
| **Plugin entry** | `src/index.ts` | Registers all AWX tools (awx-list-templates, awx-list-projects, awx-launch-job, awx-job-status, awx-wait-job, awx-get-job-events, awx-sync-project) + hello-world scaffold; wires HTTP client, metrics lifecycle, and dispose hook |
|
|
15
|
+
| **Plugin entry** | `src/index.ts` | Registers all AWX tools (awx-list-templates, awx-list-projects, awx-launch-job, awx-job-status, awx-wait-job, awx-get-job-events, awx-sync-project, awx-get-resource, awx-debug-env) + hello-world scaffold; wires HTTP client, metrics lifecycle, and dispose hook |
|
|
16
16
|
| **Auth hook** | `src/auth.ts` | Bearer token / PAT authentication via OpenCode's `type: "api"` auth hook with init-time validation |
|
|
17
|
-
| **Output contract** | `src/contracts/job-detail.ts` |
|
|
17
|
+
| **Output contract** | `src/contracts/job-detail.ts` | TypeScript types (`JobDetailOutput`) matching `awx_job_detail.py` v1.0 |
|
|
18
18
|
| **Transforms** | `src/transforms.ts` | Pure functions: SSH→HTTPS URL conversion, git branch inference, required-var validation |
|
|
19
19
|
| **Client middleware** | `src/client.ts` | HTTP middleware pipeline: circuit breaker, retry/backoff, timeout via native `fetch` |
|
|
20
20
|
| **Metrics** | `src/metrics.ts` | Per-tool counters with file-backed durability for operational visibility |
|
|
21
21
|
| **Node shim** | `src/node-shim.d.ts` | Minimal Node.js built-in declarations (avoids `@types/node` dependency) |
|
|
22
22
|
| **Snapshot generator** | `scripts/generate-snapshots.py` | Python script that regenerates contract snapshots from fixture data |
|
|
23
23
|
|
|
24
|
-
Tool implementation (Phase 2) is complete — all
|
|
24
|
+
Tool implementation (Phase 2) is complete — all 9 AWX tools are implemented and tested. See the [issue tracker](https://github.com/weiyentan/opencode-plugins/issues) for upcoming enhancements.
|
|
25
|
+
|
|
26
|
+
### Tool Output Formats
|
|
27
|
+
|
|
28
|
+
| Tool | Output Format | Filter Support |
|
|
29
|
+
|------|--------------|----------------|
|
|
30
|
+
| `awx-list-templates` | Pipe-delimited Markdown table (ID / Name / Description) | `--filter` (e.g., `name__icontains=workspace`) |
|
|
31
|
+
| `awx-list-projects` | Pipe-delimited Markdown table (ID / Name / Description / SCM) | `--filter` (e.g., `name__icontains=workspace`) |
|
|
32
|
+
| `awx-sync-project` | Plain text message + structured metadata | — |
|
|
33
|
+
| `awx-launch-job` | Plain text message + structured metadata | — |
|
|
34
|
+
| `awx-job-status` | Plain text message + `JobDetailOutput` v1.0 metadata | — |
|
|
35
|
+
| `awx-wait-job` | Plain text message + `JobDetailOutput` v1.0 metadata | — |
|
|
36
|
+
| `awx-get-job-events` | Plain text message + structured metadata | — |
|
|
37
|
+
| `awx-debug-env` | JSON string | — |
|
|
38
|
+
| `awx-get-resource` | Plain text structured summary + metadata with `{ schema_version, resource_type, id, data }` envelope | `type` (template\|project\|inventory) + `id` |
|
|
39
|
+
|
|
40
|
+
Both `awx-list-templates` and `awx-list-projects` accept `--timeout` (total tool timeout in ms, default 30000).
|
|
25
41
|
|
|
26
42
|
## Prerequisites
|
|
27
43
|
|
|
@@ -43,6 +59,66 @@ npm install
|
|
|
43
59
|
|
|
44
60
|
This package is consumed by the OpenCode plugin server as a dependency — no standalone runtime is needed.
|
|
45
61
|
|
|
62
|
+
## Connecting to AWX
|
|
63
|
+
|
|
64
|
+
Before using the AWX tools, the plugin needs to know where your AWX instance is and how to authenticate.
|
|
65
|
+
|
|
66
|
+
### 1. Set the instance URL
|
|
67
|
+
|
|
68
|
+
The plugin reads `AWX_BASE_URL` from the environment. Set it to the base URL of your AWX or Ansible Automation Platform instance:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
# Linux/macOS
|
|
72
|
+
export AWX_BASE_URL="https://awx.example.com"
|
|
73
|
+
|
|
74
|
+
# Windows PowerShell
|
|
75
|
+
$env:AWX_BASE_URL = "https://awx.example.com"
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
This variable is **required** — the plugin will fail to load without it.
|
|
79
|
+
|
|
80
|
+
### 2. Authenticate
|
|
81
|
+
|
|
82
|
+
The plugin needs a Personal Access Token (PAT) to call the AWX API. Generate one in AWX:
|
|
83
|
+
|
|
84
|
+
1. Go to your **user profile** → **Tokens** → **Add token**
|
|
85
|
+
2. Set the scope (Write scope is needed for launch/update operations; Read scope is sufficient for listing and status checks)
|
|
86
|
+
3. Copy the generated token
|
|
87
|
+
|
|
88
|
+
There are two ways to provide the token:
|
|
89
|
+
|
|
90
|
+
**Option A — Auth hook (recommended):** Launch OpenCode and the plugin will prompt you to enter your PAT on first use. The token is stored securely by OpenCode's auth system.
|
|
91
|
+
|
|
92
|
+
**Option B — Environment variable:** Set `AWX_PAT` in your environment:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
# Linux/macOS
|
|
96
|
+
export AWX_PAT="your-personal-access-token-here"
|
|
97
|
+
|
|
98
|
+
# Windows PowerShell
|
|
99
|
+
$env:AWX_PAT = "your-personal-access-token-here"
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
The plugin checks the auth hook first, then falls back to `AWX_PAT` if no token is stored.
|
|
103
|
+
|
|
104
|
+
### 3. Verify the connection
|
|
105
|
+
|
|
106
|
+
Once OpenCode is running, call the `awx-debug-env` tool to confirm the plugin is connected:
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
awx-debug-env
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
It will report whether `AWX_BASE_URL` is set and what its value is. You can also call `hello` from the plugin to confirm it loaded correctly.
|
|
113
|
+
|
|
114
|
+
To test a live API call:
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
awx-list-projects
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
This lists all AWX projects your token has access to. If you see project data, the connection is working.
|
|
121
|
+
|
|
46
122
|
## Scripts
|
|
47
123
|
|
|
48
124
|
| Command | Description |
|
|
@@ -79,11 +155,20 @@ The suite `tests/integration/job-lifecycle.test.ts` covers the full AWX job life
|
|
|
79
155
|
- `awx-wait-job` → non-blocking status check (no polling)
|
|
80
156
|
- `awx-get-job-events` → retrieves job events
|
|
81
157
|
|
|
82
|
-
####
|
|
158
|
+
#### Environment Variables
|
|
159
|
+
|
|
160
|
+
The plugin reads configuration from these environment variables:
|
|
83
161
|
|
|
84
162
|
| Env Var | Default | Required | Description |
|
|
85
163
|
|---------|---------|----------|-------------|
|
|
86
|
-
| `
|
|
164
|
+
| `AWX_BASE_URL` | — | **Yes** | Base URL of the AAP/AWX instance (e.g. `https://example.com`) |
|
|
165
|
+
| `AWX_PAT` | — | No | Personal Access Token fallback (primary: auth hook / `getSecret`). Used when no token is stored in the auth hook. |
|
|
166
|
+
|
|
167
|
+
#### Test Prerequisites
|
|
168
|
+
|
|
169
|
+
| Env Var | Default | Required | Description |
|
|
170
|
+
|---------|---------|----------|-------------|
|
|
171
|
+
| `AWX_TOKEN` | — | **Yes** | Valid AAP Personal Access Token (PAT) for integration tests |
|
|
87
172
|
| `AAP_BASE_URL` | `https://example.com` | No | Base URL of the AAP instance |
|
|
88
173
|
| `JOB_TEMPLATE_ID` | `10` | No | Non-production AWX job template ID to launch |
|
|
89
174
|
| `EXTRA_VARS_INVENTORY` | `"test"` | No | Inventory name for extra_vars |
|
|
@@ -163,7 +248,19 @@ Hot-reload verification is performed structurally (the `tsc --noEmit` / `vitest
|
|
|
163
248
|
|
|
164
249
|
The `package.json` `main`, `types`, and `exports` fields point to the compiled `dist/` output. This is the production-safe configuration — consumers import the compiled JavaScript with type declarations.
|
|
165
250
|
|
|
166
|
-
|
|
251
|
+
#### Local Development (`opencode-plugin-dev/plugins/`)
|
|
252
|
+
|
|
253
|
+
For local testing without publishing, a re-export wrapper is set up at `opencode-plugin-dev/plugins/awx-plugin.js` which re-exports `AwxPlugin` from the compiled `dist/` output. The directory is named without a leading dot to prevent OpenCode from auto-discovering it at startup, keeping development artifacts isolated from the live plugin system.
|
|
254
|
+
|
|
255
|
+
After making changes:
|
|
256
|
+
|
|
257
|
+
```bash
|
|
258
|
+
cd packages/awx
|
|
259
|
+
npm run build # Recompile to dist/
|
|
260
|
+
# Restart OpenCode server to pick up the new build
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
Build outputs are gitignored (`opencode-plugin-dev/` is in `.gitignore`), so the wrapper is local-only and never committed.
|
|
167
264
|
|
|
168
265
|
## CI Requirements
|
|
169
266
|
|
|
@@ -211,23 +308,39 @@ packages/awx/
|
|
|
211
308
|
│ ├── index.ts # Plugin entry point — Hooks (auth + tools + dispose); client wiring & metrics lifecycle
|
|
212
309
|
│ ├── auth.ts # Bearer token auth hook (type: "api")
|
|
213
310
|
│ ├── client.ts # HTTP middleware pipeline (circuit breaker, retry, timeout)
|
|
311
|
+
│ ├── get-resource.ts # Shared resource detail orchestrator — type→endpoint registry, fetch, map dispatch
|
|
214
312
|
│ ├── metrics.ts # Per-tool counters with file-backed durability
|
|
215
313
|
│ ├── node-shim.d.ts # Minimal Node.js declarations (fs/promises, path)
|
|
216
|
-
│
|
|
217
|
-
│
|
|
314
|
+
│ ├── contracts/
|
|
315
|
+
│ │ ├── job-detail.ts # JobDetailOutput v1.0 TypeScript interface
|
|
316
|
+
│ │ ├── template-detail.ts # TemplateDetailOutput contract (schema_version, resource_type, id, data)
|
|
317
|
+
│ │ ├── project-detail.ts # ProjectDetailOutput contract
|
|
318
|
+
│ │ └── inventory-detail.ts # InventoryDetailOutput contract
|
|
319
|
+
│ └── mappers/
|
|
320
|
+
│ ├── map-template.ts # Raw AWX API response → TemplateDetailOutput
|
|
321
|
+
│ ├── map-project.ts # Raw AWX API response → ProjectDetailOutput
|
|
322
|
+
│ └── map-inventory.ts # Raw AWX API response → InventoryDetailOutput
|
|
218
323
|
├── tests/
|
|
219
324
|
│ ├── plugin.test.ts # Plugin registration and lifecycle tests
|
|
220
325
|
│ ├── client.test.ts # Client middleware pipeline tests
|
|
221
326
|
│ ├── lifecycle.test.ts # Lazy client/auth lifecycle tests (no-token → token → client-created)
|
|
222
327
|
│ ├── metrics.test.ts # MetricsStore persistence & counter tests incl. concurrent serialization
|
|
223
328
|
│ ├── plugin-init-timeout.test.ts # Init-time timeout cleanup tests (clear() called after validation)
|
|
329
|
+
│ ├── get-resource.test.ts # getResource orchestrator unit tests (dispatch, error handling, registry)
|
|
330
|
+
│ ├── get-resource-tool.test.ts # awx-get-resource tool integration tests (via plugin tool registration)
|
|
331
|
+
│ ├── map-template.test.ts # mapTemplate mapper unit tests
|
|
332
|
+
│ ├── map-project.test.ts # mapProject mapper unit tests
|
|
333
|
+
│ ├── map-inventory.test.ts # mapInventory mapper unit tests
|
|
224
334
|
│ ├── contracts/
|
|
225
335
|
│ │ ├── contract.test.ts # Contract compatibility tests
|
|
226
336
|
│ │ └── __snapshots__/ # Canonical contract output (ground truth)
|
|
227
337
|
│ └── fixtures/
|
|
228
338
|
│ ├── awx_job_success.json
|
|
229
339
|
│ ├── awx_job_partial.json
|
|
230
|
-
│
|
|
340
|
+
│ ├── awx_job_failure.json
|
|
341
|
+
│ ├── raw_awx_template.json # Raw AWX API response fixture (template)
|
|
342
|
+
│ ├── raw_awx_project.json # Raw AWX API response fixture (project)
|
|
343
|
+
│ └── raw_awx_inventory.json # Raw AWX API response fixture (inventory)
|
|
231
344
|
└── scripts/
|
|
232
345
|
└── generate-snapshots.py # Python script to regenerate snapshots
|
|
233
346
|
```
|
package/dist/auth.d.ts
CHANGED
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
* Failed auth produces user-actionable error messages:
|
|
27
27
|
* - No token configured: "AWX auth not configured. Set your Personal Access
|
|
28
28
|
* Token in the plugin settings."
|
|
29
|
-
* - Network failure: "Cannot reach AAP at <baseUrl>. Check
|
|
30
|
-
*
|
|
29
|
+
* - Network failure: "Cannot reach AAP at <baseUrl>. Check AWX_BASE_URL
|
|
30
|
+
* and ensure the AAP instance is reachable."
|
|
31
31
|
* - Invalid token (401): "AWX token is invalid or expired. Generate a new
|
|
32
32
|
* Personal Access Token at <baseUrl>/api/v2/tokens/ or Profile → Tokens."
|
|
33
33
|
* - Forbidden (403): "AWX token lacks sufficient permissions. Ensure the
|
package/dist/auth.js
CHANGED
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
* Failed auth produces user-actionable error messages:
|
|
27
27
|
* - No token configured: "AWX auth not configured. Set your Personal Access
|
|
28
28
|
* Token in the plugin settings."
|
|
29
|
-
* - Network failure: "Cannot reach AAP at <baseUrl>. Check
|
|
30
|
-
*
|
|
29
|
+
* - Network failure: "Cannot reach AAP at <baseUrl>. Check AWX_BASE_URL
|
|
30
|
+
* and ensure the AAP instance is reachable."
|
|
31
31
|
* - Invalid token (401): "AWX token is invalid or expired. Generate a new
|
|
32
32
|
* Personal Access Token at <baseUrl>/api/v2/tokens/ or Profile → Tokens."
|
|
33
33
|
* - Forbidden (403): "AWX token lacks sufficient permissions. Ensure the
|
|
@@ -103,7 +103,7 @@ export async function validateToken(baseUrl, token, signal) {
|
|
|
103
103
|
valid: false,
|
|
104
104
|
error: [
|
|
105
105
|
`Timeout connecting to AAP at ${baseUrl}.`,
|
|
106
|
-
`Check
|
|
106
|
+
`Check AWX_BASE_URL and ensure the AAP instance is reachable.`,
|
|
107
107
|
].join(" "),
|
|
108
108
|
status: null,
|
|
109
109
|
};
|
|
@@ -114,7 +114,7 @@ export async function validateToken(baseUrl, token, signal) {
|
|
|
114
114
|
valid: false,
|
|
115
115
|
error: [
|
|
116
116
|
`Cannot reach AAP at ${baseUrl}.`,
|
|
117
|
-
`Check
|
|
117
|
+
`Check AWX_BASE_URL and ensure the AAP instance is reachable.`,
|
|
118
118
|
`Details: ${message}`,
|
|
119
119
|
].join(" "),
|
|
120
120
|
status: null,
|
package/dist/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAYH;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAe,EACf,KAAa,EACb,MAAoB;IAEpB,2BAA2B;IAC3B,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC;IACvE,MAAM,GAAG,GAAG,GAAG,cAAc,YAAY,CAAC;IAE1C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,MAAM,EAAE,kBAAkB;gBAC1B,aAAa,EAAE,UAAU,KAAK,EAAE;aACjC;YACD,MAAM;SACP,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC/D,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE;oBACL,kCAAkC;oBAClC,2CAA2C,cAAc,gBAAgB;oBACzE,oCAAoC;iBACrC,CAAC,IAAI,CAAC,GAAG,CAAC;gBACX,MAAM,EAAE,GAAG;aACZ,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE;oBACL,yCAAyC;oBACzC,2DAA2D;iBAC5D,CAAC,IAAI,CAAC,GAAG,CAAC;gBACX,MAAM,EAAE,GAAG;aACZ,CAAC;QACJ,CAAC;QAED,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,qBAAqB,QAAQ,CAAC,MAAM,iCAAiC;YAC5E,MAAM,EAAE,QAAQ,CAAC,MAAM;SACxB,CAAC;IACJ,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,2CAA2C;QAC3C,IAAI,GAAG,YAAY,YAAY,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,YAAY,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,CAAC,EAAE,CAAC;YAC9F,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE;oBACL,gCAAgC,OAAO,GAAG;oBAC1C,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAkB5C;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAInD;AAED;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAClC,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAoBf;AAID;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,IAAI,CAAA;CAAE,CAU1F;AA2BD,+BAA+B;AAC/B,MAAM,WAAW,aAAa;IAC5B,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sFAAsF;IACtF,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,uDAAuD;IACvD,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,mDAAmD;AACnD,MAAM,WAAW,SAAS;IACxB;;;;;;;OAOG;IACH,OAAO,CACL,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,WAAW,EAClB,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,QAAQ,CAAC,CAAC;CACtB;AAID,4BAA4B;AAC5B,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;AAE/D,qCAAqC;AACrC,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,gBAAgB,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;GAUG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IAEpC;;;OAGG;gBACS,aAAa,SAAI,EAAE,UAAU,SAAS;IAKlD;;;;;;;;;OASG;IACH,UAAU,IAAI,OAAO;IAYrB,kEAAkE;IAClE,aAAa,IAAI,IAAI;IAMrB;;;;;;;OAOG;IACH,aAAa,IAAI,IAAI;IAarB,+DAA+D;IAC/D,QAAQ,IAAI,YAAY;CAOzB;AAID;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,aAAa,GACnB,SAAS,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAkB5C;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAInD;AAED;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAClC,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAoBf;AAID;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,IAAI,CAAA;CAAE,CAU1F;AA2BD,+BAA+B;AAC/B,MAAM,WAAW,aAAa;IAC5B,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sFAAsF;IACtF,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,uDAAuD;IACvD,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,mDAAmD;AACnD,MAAM,WAAW,SAAS;IACxB;;;;;;;OAOG;IACH,OAAO,CACL,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,WAAW,EAClB,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,QAAQ,CAAC,CAAC;CACtB;AAID,4BAA4B;AAC5B,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;AAE/D,qCAAqC;AACrC,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,gBAAgB,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;GAUG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IAEpC;;;OAGG;gBACS,aAAa,SAAI,EAAE,UAAU,SAAS;IAKlD;;;;;;;;;OASG;IACH,UAAU,IAAI,OAAO;IAYrB,kEAAkE;IAClE,aAAa,IAAI,IAAI;IAMrB;;;;;;;OAOG;IACH,aAAa,IAAI,IAAI;IAarB,+DAA+D;IAC/D,QAAQ,IAAI,YAAY;CAOzB;AAID;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,aAAa,GACnB,SAAS,CAiKX"}
|
package/dist/client.js
CHANGED
|
@@ -201,7 +201,8 @@ export class CircuitBreaker {
|
|
|
201
201
|
*/
|
|
202
202
|
export function createClient(baseUrl, token, opts) {
|
|
203
203
|
const normalizedBase = baseUrl.endsWith("/") ? baseUrl : `${baseUrl}/`;
|
|
204
|
-
const
|
|
204
|
+
const rawTimeout = opts?.timeoutMs;
|
|
205
|
+
const timeoutMs = (typeof rawTimeout === "number" && !Number.isNaN(rawTimeout)) ? rawTimeout : 30_000;
|
|
205
206
|
const maxRetries = opts?.maxRetries ?? DEFAULT_MAX_RETRIES;
|
|
206
207
|
const breakerThreshold = opts?.circuitBreakerThreshold ?? 5;
|
|
207
208
|
const breakerCooldownMs = opts?.circuitBreakerCooldownMs ?? 30_000;
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AWX Inventory Detail Output Contract — v1.0
|
|
3
|
+
*
|
|
4
|
+
* TypeScript interface defining the structured output for inventory
|
|
5
|
+
* detail requests. Used by `mapInventory()` to shape raw AWX API responses
|
|
6
|
+
* into the canonical format.
|
|
7
|
+
*
|
|
8
|
+
* ## Schema Fields
|
|
9
|
+
*
|
|
10
|
+
* - **schema_version**: Always "1.0"
|
|
11
|
+
* - **resource_type**: Always "inventory"
|
|
12
|
+
* - **id**: The numeric resource ID
|
|
13
|
+
* - **data**: Core inventory data with resolved related names
|
|
14
|
+
*
|
|
15
|
+
* ## Field Naming Convention
|
|
16
|
+
*
|
|
17
|
+
* - Related resource names are resolved from `summary_fields` (not raw IDs)
|
|
18
|
+
* - `kind` is the inventory type (e.g. "smart" for smart inventories, "" for normal)
|
|
19
|
+
* - `variables` is a raw JSON/YAML string, or empty if not set
|
|
20
|
+
*/
|
|
21
|
+
export interface InventoryData {
|
|
22
|
+
id: number;
|
|
23
|
+
name: string;
|
|
24
|
+
description: string;
|
|
25
|
+
/** Inventory kind: "smart" for smart inventories, "" for normal */
|
|
26
|
+
kind: string;
|
|
27
|
+
/** Number of hosts in this inventory */
|
|
28
|
+
host_count: number;
|
|
29
|
+
/** Total groups in this inventory */
|
|
30
|
+
total_groups: number;
|
|
31
|
+
/** Whether this inventory has any inventory sources */
|
|
32
|
+
has_inventory_sources: boolean;
|
|
33
|
+
/** Total inventory sources (e.g., project SCM sources) */
|
|
34
|
+
total_inventory_sources: number;
|
|
35
|
+
/** Resolved from summary_fields.organization.name */
|
|
36
|
+
organization_name: string;
|
|
37
|
+
/** Raw variables string (JSON or YAML), empty string if not set */
|
|
38
|
+
variables: string;
|
|
39
|
+
}
|
|
40
|
+
export interface InventoryDetailOutput {
|
|
41
|
+
schema_version: "1.0";
|
|
42
|
+
resource_type: "inventory";
|
|
43
|
+
id: number;
|
|
44
|
+
data: InventoryData;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=inventory-detail.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inventory-detail.d.ts","sourceRoot":"","sources":["../../src/contracts/inventory-detail.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,qBAAqB,EAAE,OAAO,CAAC;IAC/B,0DAA0D;IAC1D,uBAAuB,EAAE,MAAM,CAAC;IAChC,qDAAqD;IACrD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,KAAK,CAAC;IACtB,aAAa,EAAE,WAAW,CAAC;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,aAAa,CAAC;CACrB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AWX Inventory Detail Output Contract — v1.0
|
|
3
|
+
*
|
|
4
|
+
* TypeScript interface defining the structured output for inventory
|
|
5
|
+
* detail requests. Used by `mapInventory()` to shape raw AWX API responses
|
|
6
|
+
* into the canonical format.
|
|
7
|
+
*
|
|
8
|
+
* ## Schema Fields
|
|
9
|
+
*
|
|
10
|
+
* - **schema_version**: Always "1.0"
|
|
11
|
+
* - **resource_type**: Always "inventory"
|
|
12
|
+
* - **id**: The numeric resource ID
|
|
13
|
+
* - **data**: Core inventory data with resolved related names
|
|
14
|
+
*
|
|
15
|
+
* ## Field Naming Convention
|
|
16
|
+
*
|
|
17
|
+
* - Related resource names are resolved from `summary_fields` (not raw IDs)
|
|
18
|
+
* - `kind` is the inventory type (e.g. "smart" for smart inventories, "" for normal)
|
|
19
|
+
* - `variables` is a raw JSON/YAML string, or empty if not set
|
|
20
|
+
*/
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=inventory-detail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inventory-detail.js","sourceRoot":"","sources":["../../src/contracts/inventory-detail.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG"}
|
|
@@ -4,12 +4,6 @@
|
|
|
4
4
|
* Canonical TypeScript representation of the `awx_job_detail.py` v1.0 output schema.
|
|
5
5
|
* Every job-related tool MUST return output matching this contract.
|
|
6
6
|
*
|
|
7
|
-
* This file provides **both**:
|
|
8
|
-
* - Zod schemas for runtime validation (e.g., API response parsing)
|
|
9
|
-
* - Inferred TypeScript types for static type checking
|
|
10
|
-
*
|
|
11
|
-
* The contract has been verified against fixture snapshots in `tests/contracts/__snapshots__/`.
|
|
12
|
-
*
|
|
13
7
|
* ## Schema Fields
|
|
14
8
|
*
|
|
15
9
|
* - **schema_version**: Always "1.0"
|
|
@@ -27,115 +21,55 @@
|
|
|
27
21
|
* - Use `derived` — NOT `extra_vars_summary`
|
|
28
22
|
* - `related` fields are resolved names, not raw URLs
|
|
29
23
|
* - `job.limit` is the AWX job limit (host pattern), not a pagination value
|
|
30
|
-
*
|
|
31
|
-
* ## Snapshot Testing
|
|
32
|
-
*
|
|
33
|
-
* Fixture JSON files in `tests/fixtures/` serve as contract snapshots.
|
|
34
|
-
* When the Python `awx_job_detail.py` v1.0 output contract changes,
|
|
35
|
-
* regenerate the fixtures (see README.md for instructions) and re-run
|
|
36
|
-
* tests to verify schema compatibility.
|
|
37
|
-
*
|
|
38
|
-
* ## Regeneration
|
|
39
|
-
*
|
|
40
|
-
* To regenerate the contract snapshots after fixture changes:
|
|
41
|
-
* ```bash
|
|
42
|
-
* python3 scripts/generate-snapshots.py
|
|
43
|
-
* ```
|
|
44
24
|
*/
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
started: z.ZodNullable<z.ZodString>;
|
|
96
|
-
finished: z.ZodNullable<z.ZodString>;
|
|
97
|
-
elapsed: z.ZodNullable<z.ZodNumber>;
|
|
98
|
-
execution_node: z.ZodString;
|
|
99
|
-
controller_node: z.ZodString;
|
|
100
|
-
scm_branch: z.ZodString;
|
|
101
|
-
verbosity: z.ZodNumber;
|
|
102
|
-
forks: z.ZodNullable<z.ZodNumber>;
|
|
103
|
-
limit: z.ZodString;
|
|
104
|
-
}, z.core.$strip>;
|
|
105
|
-
related: z.ZodObject<{
|
|
106
|
-
inventory_name: z.ZodString;
|
|
107
|
-
project_name: z.ZodString;
|
|
108
|
-
job_template_name: z.ZodString;
|
|
109
|
-
instance_group_name: z.ZodString;
|
|
110
|
-
created_by: z.ZodString;
|
|
111
|
-
credential_names: z.ZodArray<z.ZodString>;
|
|
112
|
-
label_names: z.ZodArray<z.ZodString>;
|
|
113
|
-
}, z.core.$strip>;
|
|
114
|
-
host_status_counts: z.ZodObject<{
|
|
115
|
-
ok: z.ZodNumber;
|
|
116
|
-
failed: z.ZodNumber;
|
|
117
|
-
skipped: z.ZodNumber;
|
|
118
|
-
changed: z.ZodNumber;
|
|
119
|
-
unreachable: z.ZodNumber;
|
|
120
|
-
}, z.core.$strip>;
|
|
121
|
-
derived: z.ZodObject<{
|
|
122
|
-
is_successful: z.ZodBoolean;
|
|
123
|
-
is_failed: z.ZodBoolean;
|
|
124
|
-
has_unreachable_hosts: z.ZodBoolean;
|
|
125
|
-
}, z.core.$strip>;
|
|
126
|
-
warnings: z.ZodArray<z.ZodString>;
|
|
127
|
-
errors: z.ZodArray<z.ZodString>;
|
|
128
|
-
stdout: z.ZodOptional<z.ZodString>;
|
|
129
|
-
raw_events: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
|
|
130
|
-
}, z.core.$strip>;
|
|
131
|
-
/** Core job metadata fields */
|
|
132
|
-
export type JobCore = z.infer<typeof JobCoreSchema>;
|
|
133
|
-
/** Resolved names for related AWX resources */
|
|
134
|
-
export type Related = z.infer<typeof RelatedSchema>;
|
|
135
|
-
/** Count of hosts in each Ansible state */
|
|
136
|
-
export type HostStatusCounts = z.infer<typeof HostStatusCountsSchema>;
|
|
137
|
-
/** Computed boolean flags */
|
|
138
|
-
export type Derived = z.infer<typeof DerivedSchema>;
|
|
139
|
-
/** Top-level JobDetailOutput contract (v1.0) */
|
|
140
|
-
export type JobDetailOutput = z.infer<typeof JobDetailOutputSchema>;
|
|
25
|
+
export interface JobCore {
|
|
26
|
+
id: number;
|
|
27
|
+
name: string;
|
|
28
|
+
status: string;
|
|
29
|
+
failed: boolean;
|
|
30
|
+
job_type: string;
|
|
31
|
+
playbook: string;
|
|
32
|
+
created: string;
|
|
33
|
+
started: string | null;
|
|
34
|
+
finished: string | null;
|
|
35
|
+
elapsed: number | null;
|
|
36
|
+
execution_node: string;
|
|
37
|
+
controller_node: string;
|
|
38
|
+
scm_branch: string;
|
|
39
|
+
verbosity: number;
|
|
40
|
+
forks: number | null;
|
|
41
|
+
limit: string;
|
|
42
|
+
}
|
|
43
|
+
export interface Related {
|
|
44
|
+
inventory_name: string;
|
|
45
|
+
project_name: string;
|
|
46
|
+
job_template_name: string;
|
|
47
|
+
instance_group_name: string;
|
|
48
|
+
created_by: string;
|
|
49
|
+
credential_names: string[];
|
|
50
|
+
label_names: string[];
|
|
51
|
+
}
|
|
52
|
+
export interface HostStatusCounts {
|
|
53
|
+
ok: number;
|
|
54
|
+
failed: number;
|
|
55
|
+
skipped: number;
|
|
56
|
+
changed: number;
|
|
57
|
+
unreachable: number;
|
|
58
|
+
}
|
|
59
|
+
export interface Derived {
|
|
60
|
+
is_successful: boolean;
|
|
61
|
+
is_failed: boolean;
|
|
62
|
+
has_unreachable_hosts: boolean;
|
|
63
|
+
}
|
|
64
|
+
export interface JobDetailOutput {
|
|
65
|
+
schema_version: "1.0";
|
|
66
|
+
job: JobCore;
|
|
67
|
+
related: Related;
|
|
68
|
+
host_status_counts: HostStatusCounts;
|
|
69
|
+
derived: Derived;
|
|
70
|
+
warnings: string[];
|
|
71
|
+
errors: string[];
|
|
72
|
+
stdout?: string;
|
|
73
|
+
raw_events?: unknown[];
|
|
74
|
+
}
|
|
141
75
|
//# sourceMappingURL=job-detail.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job-detail.d.ts","sourceRoot":"","sources":["../../src/contracts/job-detail.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"job-detail.d.ts","sourceRoot":"","sources":["../../src/contracts/job-detail.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAIH,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,OAAO;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,OAAO;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAID,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,KAAK,CAAC;IACtB,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,kBAAkB,EAAE,gBAAgB,CAAC;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC;CACxB"}
|