@prism-d1/cli 1.9.1 → 1.10.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/assets/github-workflows/prism-eval-gate-kiro.yml +57 -5
- package/dist/assets/gitlab-workflows/prism-eval-gate.yml +46 -7
- package/dist/bin/cli.d.ts +2 -0
- package/dist/bin/cli.d.ts.map +1 -0
- package/dist/bin/cli.js +19 -0
- package/dist/bin/cli.js.map +1 -0
- package/dist/bin/prism-cli.js +12 -17
- package/dist/bin/prism-cli.js.map +1 -1
- package/dist/src/commands/_top/dashboard.d.ts +2 -0
- package/dist/src/commands/_top/dashboard.d.ts.map +1 -1
- package/dist/src/commands/_top/dashboard.js +43 -15
- package/dist/src/commands/_top/dashboard.js.map +1 -1
- package/dist/src/commands/_top/mcp.d.ts.map +1 -1
- package/dist/src/commands/_top/mcp.js +3 -15
- package/dist/src/commands/_top/mcp.js.map +1 -1
- package/dist/src/commands/_top/statusline.d.ts +13 -0
- package/dist/src/commands/_top/statusline.d.ts.map +1 -0
- package/dist/src/commands/_top/statusline.js +12 -0
- package/dist/src/commands/_top/statusline.js.map +1 -0
- package/dist/src/commands/_top/version.d.ts +2 -0
- package/dist/src/commands/_top/version.d.ts.map +1 -1
- package/dist/src/commands/_top/version.js +4 -0
- package/dist/src/commands/_top/version.js.map +1 -1
- package/dist/src/commands/assessment/deploy-cdk.js +1 -1
- package/dist/src/commands/assessment/deploy-cdk.js.map +1 -1
- package/dist/src/commands/enable/claude-code.d.ts +81 -0
- package/dist/src/commands/enable/claude-code.d.ts.map +1 -0
- package/dist/src/commands/enable/claude-code.js +381 -0
- package/dist/src/commands/enable/claude-code.js.map +1 -0
- package/dist/src/dashboard/page.d.ts +25 -0
- package/dist/src/dashboard/page.d.ts.map +1 -1
- package/dist/src/dashboard/page.js +66 -7
- package/dist/src/dashboard/page.js.map +1 -1
- package/dist/src/dashboard/setup-page.d.ts +1 -1
- package/dist/src/dashboard/setup-page.d.ts.map +1 -1
- package/dist/src/dashboard/setup-page.js +15 -2
- package/dist/src/dashboard/setup-page.js.map +1 -1
- package/dist/src/dashboard/snapshot.d.ts +31 -0
- package/dist/src/dashboard/snapshot.d.ts.map +1 -0
- package/dist/src/dashboard/snapshot.js +65 -0
- package/dist/src/dashboard/snapshot.js.map +1 -0
- package/dist/src/mcp/dashboard-process.d.ts +83 -0
- package/dist/src/mcp/dashboard-process.d.ts.map +1 -0
- package/dist/src/mcp/dashboard-process.js +184 -0
- package/dist/src/mcp/dashboard-process.js.map +1 -0
- package/dist/src/mcp/server.d.ts.map +1 -1
- package/dist/src/mcp/server.js +8 -3
- package/dist/src/mcp/server.js.map +1 -1
- package/dist/src/mcp/tools.d.ts +7 -1
- package/dist/src/mcp/tools.d.ts.map +1 -1
- package/dist/src/mcp/tools.js +100 -2
- package/dist/src/mcp/tools.js.map +1 -1
- package/dist/src/statusline/statusline.d.ts +135 -0
- package/dist/src/statusline/statusline.d.ts.map +1 -0
- package/dist/src/statusline/statusline.js +398 -0
- package/dist/src/statusline/statusline.js.map +1 -0
- package/package.json +1 -1
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
# .kiro/steering/code-review.md in your repo (review rules)
|
|
9
9
|
# - (Optional) PRISM_METRICS_ROLE_ARN for EventBridge metrics emission
|
|
10
10
|
# - (Optional) AWS Continuum configured for security scanning
|
|
11
|
+
# - (Optional) Review model: repository variable PRISM_REVIEW_MODEL, else
|
|
12
|
+
# eval.model in .prism/config.json on the base branch, else `auto`
|
|
11
13
|
#
|
|
12
14
|
# Secret scanning (gitleaks) needs no setup and no secret. It installs itself
|
|
13
15
|
# and always runs, so it is the only gate that still functions on a fork PR.
|
|
@@ -226,10 +228,50 @@ jobs:
|
|
|
226
228
|
KIRO_API_KEY: ${{ secrets.KIRO_API_KEY }}
|
|
227
229
|
BASE_SHA: ${{ github.event.pull_request.base.sha }}
|
|
228
230
|
HEAD_SHA: ${{ github.sha }}
|
|
231
|
+
# Repository variable (Settings > Secrets and variables > Actions > Variables).
|
|
232
|
+
PRISM_REVIEW_MODEL: ${{ vars.PRISM_REVIEW_MODEL }}
|
|
229
233
|
run: |
|
|
230
234
|
# Trim whitespace/newlines from API key (GitHub Secrets can add trailing chars)
|
|
231
235
|
export KIRO_API_KEY=$(echo -n "${KIRO_API_KEY}" | tr -d '[:space:]')
|
|
232
236
|
|
|
237
|
+
# --- review model: start (identical in every eval-gate workflow; cli/test/eval-gate-retry.test.ts checks) ---
|
|
238
|
+
# Order: the PRISM_REVIEW_MODEL variable, then eval.model in the BASE
|
|
239
|
+
# commit's .prism/config.json, then auto. Never the PR head's config:
|
|
240
|
+
# the PR author controls it, and a PR must not pick a weaker model to
|
|
241
|
+
# pass its own review. The value reaches a CLI argument, so it is
|
|
242
|
+
# validated here and never echoed when invalid.
|
|
243
|
+
REVIEW_MODEL="${PRISM_REVIEW_MODEL:-}"
|
|
244
|
+
REVIEW_MODEL_SOURCE="the PRISM_REVIEW_MODEL variable"
|
|
245
|
+
MODEL_ERROR=""
|
|
246
|
+
if [ -z "${REVIEW_MODEL}" ]; then
|
|
247
|
+
REVIEW_MODEL_SOURCE="the default"
|
|
248
|
+
if [ -n "${BASE_SHA}" ] && git cat-file -e "${BASE_SHA}:.prism/config.json" 2>/dev/null; then
|
|
249
|
+
if ! BASE_CFG_MODEL=$(git show "${BASE_SHA}:.prism/config.json" | jq -r '.eval.model? // empty | tostring'); then
|
|
250
|
+
MODEL_ERROR="the base branch's .prism/config.json could not be read as JSON"
|
|
251
|
+
elif [ -n "${BASE_CFG_MODEL}" ]; then
|
|
252
|
+
REVIEW_MODEL="${BASE_CFG_MODEL}"
|
|
253
|
+
REVIEW_MODEL_SOURCE="eval.model in the base branch's .prism/config.json"
|
|
254
|
+
fi
|
|
255
|
+
fi
|
|
256
|
+
REVIEW_MODEL="${REVIEW_MODEL:-auto}"
|
|
257
|
+
fi
|
|
258
|
+
if [ -z "${MODEL_ERROR}" ] && ! [[ "${REVIEW_MODEL}" =~ ^[A-Za-z0-9._:/-]{1,100}$ ]]; then
|
|
259
|
+
MODEL_ERROR="the model from ${REVIEW_MODEL_SOURCE} must match ^[A-Za-z0-9._:/-]{1,100}\$"
|
|
260
|
+
fi
|
|
261
|
+
# --- review model: end ---
|
|
262
|
+
|
|
263
|
+
if [ -n "${MODEL_ERROR}" ]; then
|
|
264
|
+
# FAIL CLOSED: a misconfigured model must not fall back silently.
|
|
265
|
+
echo "::error::Invalid review model: ${MODEL_ERROR}. Failing closed."
|
|
266
|
+
echo "result=ERROR" >> "$GITHUB_OUTPUT"
|
|
267
|
+
echo "model_error=true" >> "$GITHUB_OUTPUT"
|
|
268
|
+
echo "Eval gate review: invalid review model (${MODEL_ERROR}) -- failed closed." >> "$GITHUB_STEP_SUMMARY"
|
|
269
|
+
exit 0
|
|
270
|
+
fi
|
|
271
|
+
echo "Review model: ${REVIEW_MODEL} (from ${REVIEW_MODEL_SOURCE})"
|
|
272
|
+
echo "model=${REVIEW_MODEL}" >> "$GITHUB_OUTPUT"
|
|
273
|
+
echo "Eval gate review model: \`${REVIEW_MODEL}\` (from ${REVIEW_MODEL_SOURCE})." >> "$GITHUB_STEP_SUMMARY"
|
|
274
|
+
|
|
233
275
|
# Fork PRs don't receive secrets -- report neutral, never silently pass
|
|
234
276
|
if [ "${HAS_KIRO_KEY}" != "true" ]; then
|
|
235
277
|
echo "::warning::KIRO_API_KEY unavailable (fork PR or missing secret) -- review skipped"
|
|
@@ -273,7 +315,7 @@ jobs:
|
|
|
273
315
|
echo "::endgroup::"
|
|
274
316
|
|
|
275
317
|
echo "::group::kiro-cli smoke test"
|
|
276
|
-
echo "Say hello in JSON" | kiro-cli chat --no-interactive --model
|
|
318
|
+
echo "Say hello in JSON" | kiro-cli chat --no-interactive --model "${REVIEW_MODEL}" || echo "SMOKE TEST FAILED"
|
|
277
319
|
echo "::endgroup::"
|
|
278
320
|
|
|
279
321
|
echo "Reviewing ${FILES}"
|
|
@@ -300,7 +342,7 @@ jobs:
|
|
|
300
342
|
if [ "${ATTEMPT}" = "2" ]; then PROMPT="${REVIEW_PROMPT} ${RETRY_NOTE}"; fi
|
|
301
343
|
REVIEW_OUTPUT=$(timeout "${REVIEW_TIMEOUT_SECS}" kiro-cli chat --no-interactive \
|
|
302
344
|
--trust-all-tools \
|
|
303
|
-
--model
|
|
345
|
+
--model "${REVIEW_MODEL}" \
|
|
304
346
|
"${PROMPT}") || true
|
|
305
347
|
|
|
306
348
|
# Strip ANSI escapes, then extract the LAST JSON object that parses and
|
|
@@ -397,6 +439,8 @@ jobs:
|
|
|
397
439
|
REVIEW_MEDIUM: ${{ steps.review.outputs.medium }}
|
|
398
440
|
REVIEW_RESULT: ${{ steps.review.outputs.result }}
|
|
399
441
|
REVIEW_SUMMARY: ${{ steps.review.outputs.summary }}
|
|
442
|
+
REVIEW_MODEL: ${{ steps.review.outputs.model }}
|
|
443
|
+
REVIEW_MODEL_ERROR: ${{ steps.review.outputs.model_error }}
|
|
400
444
|
GITLEAKS_LEAKS: ${{ steps.gitleaks.outputs.leaks }}
|
|
401
445
|
GITLEAKS_ERROR: ${{ steps.gitleaks.outputs.error }}
|
|
402
446
|
GITLEAKS_INSTALL_ERROR: ${{ steps.gitleaks-install.outputs.error }}
|
|
@@ -410,6 +454,8 @@ jobs:
|
|
|
410
454
|
const result = process.env.REVIEW_RESULT || 'ERROR';
|
|
411
455
|
if (result === 'SKIPPED') {
|
|
412
456
|
body = '⚠️ **PRISM Eval Gate** -- Review skipped (no source files changed or no API key on fork PRs).';
|
|
457
|
+
} else if (result === 'ERROR' && process.env.REVIEW_MODEL_ERROR === 'true') {
|
|
458
|
+
body = '❌ **PRISM Eval Gate** -- The review model is invalid (see the job summary). Failing closed; fix `PRISM_REVIEW_MODEL` or `eval.model` in `.prism/config.json`.';
|
|
413
459
|
} else if (result === 'ERROR') {
|
|
414
460
|
body = '❌ **PRISM Eval Gate** -- Review output could not be parsed on either attempt (the review is retried once). Failing closed; re-run the workflow or review manually.';
|
|
415
461
|
} else {
|
|
@@ -440,7 +486,8 @@ jobs:
|
|
|
440
486
|
body += `| File | Line | Severity | Category | Issue |\n|---|---|---|---|---|\n${table}\n\n`;
|
|
441
487
|
}
|
|
442
488
|
|
|
443
|
-
|
|
489
|
+
// The model the review step resolved and validated, not a fixed label.
|
|
490
|
+
body += `> Powered by kiro-cli headless - Model: ${process.env.REVIEW_MODEL || '?'} - Threshold: 0.82`;
|
|
444
491
|
}
|
|
445
492
|
|
|
446
493
|
// Secret scanning is reported for every result path, including the
|
|
@@ -501,6 +548,7 @@ jobs:
|
|
|
501
548
|
REVIEW_RESULT: ${{ steps.review.outputs.result }}
|
|
502
549
|
REVIEW_FINDINGS: ${{ steps.review.outputs.findings }}
|
|
503
550
|
REVIEW_HIGH: ${{ steps.review.outputs.high }}
|
|
551
|
+
REVIEW_MODEL: ${{ steps.review.outputs.model }}
|
|
504
552
|
PR_NUMBER: ${{ github.event.pull_request.number }}
|
|
505
553
|
run: |
|
|
506
554
|
# Only emit when we have a real score (not SKIPPED/ERROR)
|
|
@@ -518,9 +566,10 @@ jobs:
|
|
|
518
566
|
--arg findings "${REVIEW_FINDINGS:-0}" \
|
|
519
567
|
--arg high "${REVIEW_HIGH:-0}" \
|
|
520
568
|
--arg pr_number "${PR_NUMBER}" \
|
|
569
|
+
--arg model "${REVIEW_MODEL}" \
|
|
521
570
|
'{team_id:$team_id,repo:$repo,timestamp:$timestamp,prism_level:2,
|
|
522
571
|
metric:{name:"eval_score",value:($score|tonumber),unit:"score"},
|
|
523
|
-
ai_context:{tool:"kiro-cli",model
|
|
572
|
+
ai_context:{tool:"kiro-cli",model:$model,origin:"ai-generated"},
|
|
524
573
|
eval:{score:($score|tonumber),result:$result,rubric:"kiro-headless",
|
|
525
574
|
findings:($findings|tonumber),high_findings:($high|tonumber),
|
|
526
575
|
pr_number:($pr_number|tonumber),method:"kiro-headless"}}')
|
|
@@ -862,6 +911,7 @@ jobs:
|
|
|
862
911
|
REVIEW_HIGH: ${{ steps.review.outputs.high }}
|
|
863
912
|
REVIEW_SCORE: ${{ steps.review.outputs.score }}
|
|
864
913
|
REVIEW_SUMMARY: ${{ steps.review.outputs.summary }}
|
|
914
|
+
REVIEW_MODEL_ERROR: ${{ steps.review.outputs.model_error }}
|
|
865
915
|
SEC_CRITICAL: ${{ steps.security-gate.outputs.critical }}
|
|
866
916
|
SEC_HIGH: ${{ steps.security-gate.outputs.high }}
|
|
867
917
|
SEC_SCAN_ERROR: ${{ steps.security-gate.outputs.scan_error }}
|
|
@@ -880,7 +930,9 @@ jobs:
|
|
|
880
930
|
echo " Rotate the credential first -- deleting it from the branch does not un-expose it."
|
|
881
931
|
echo " False positive? Add an allowlist entry to .gitleaks.toml."
|
|
882
932
|
fi
|
|
883
|
-
if [ "${
|
|
933
|
+
if [ "${REVIEW_MODEL_ERROR}" = "true" ]; then
|
|
934
|
+
echo "❌ Eval gate failed closed: the review model is invalid (see the job summary)"
|
|
935
|
+
elif [ "${REVIEW_RESULT}" = "ERROR" ]; then
|
|
884
936
|
echo "❌ Eval gate failed closed: review output could not be parsed"
|
|
885
937
|
elif [ "${REVIEW_RESULT}" = "FAIL" ]; then
|
|
886
938
|
echo "❌ Kiro found ${REVIEW_HIGH:-?} high-severity issues (score: ${REVIEW_SCORE:-?})"
|
|
@@ -9,6 +9,8 @@
|
|
|
9
9
|
# - CI/CD variable KIRO_API_KEY (masked). Generate at https://app.kiro.dev
|
|
10
10
|
# - PRISM_AWS_REGION variable in the variables: block below controls the region
|
|
11
11
|
# - (Optional) CI/CD variable PRISM_METRICS_ROLE_ARN for EventBridge metrics
|
|
12
|
+
# - (Optional) Review model: CI/CD variable PRISM_REVIEW_MODEL, else
|
|
13
|
+
# eval.model in .prism/config.json on the target branch, else `auto`
|
|
12
14
|
#
|
|
13
15
|
# The Bedrock rubric gate that used to live in this file is retired. It scored
|
|
14
16
|
# changed files against .prism/eval-harness/rubrics/*.json via run-eval.sh; the
|
|
@@ -180,7 +182,39 @@ prism-eval-gate:
|
|
|
180
182
|
|
|
181
183
|
echo ""
|
|
182
184
|
echo "── Code quality review (kiro-cli) ──"
|
|
183
|
-
|
|
185
|
+
|
|
186
|
+
# --- review model: start (identical in every eval-gate workflow; cli/test/eval-gate-retry.test.ts checks) ---
|
|
187
|
+
# Order: the PRISM_REVIEW_MODEL variable, then eval.model in the BASE
|
|
188
|
+
# commit's .prism/config.json, then auto. Never the PR head's config:
|
|
189
|
+
# the PR author controls it, and a PR must not pick a weaker model to
|
|
190
|
+
# pass its own review. The value reaches a CLI argument, so it is
|
|
191
|
+
# validated here and never echoed when invalid.
|
|
192
|
+
REVIEW_MODEL="${PRISM_REVIEW_MODEL:-}"
|
|
193
|
+
REVIEW_MODEL_SOURCE="the PRISM_REVIEW_MODEL variable"
|
|
194
|
+
MODEL_ERROR=""
|
|
195
|
+
if [ -z "${REVIEW_MODEL}" ]; then
|
|
196
|
+
REVIEW_MODEL_SOURCE="the default"
|
|
197
|
+
if [ -n "${BASE_SHA}" ] && git cat-file -e "${BASE_SHA}:.prism/config.json" 2>/dev/null; then
|
|
198
|
+
if ! BASE_CFG_MODEL=$(git show "${BASE_SHA}:.prism/config.json" | jq -r '.eval.model? // empty | tostring'); then
|
|
199
|
+
MODEL_ERROR="the base branch's .prism/config.json could not be read as JSON"
|
|
200
|
+
elif [ -n "${BASE_CFG_MODEL}" ]; then
|
|
201
|
+
REVIEW_MODEL="${BASE_CFG_MODEL}"
|
|
202
|
+
REVIEW_MODEL_SOURCE="eval.model in the base branch's .prism/config.json"
|
|
203
|
+
fi
|
|
204
|
+
fi
|
|
205
|
+
REVIEW_MODEL="${REVIEW_MODEL:-auto}"
|
|
206
|
+
fi
|
|
207
|
+
if [ -z "${MODEL_ERROR}" ] && ! [[ "${REVIEW_MODEL}" =~ ^[A-Za-z0-9._:/-]{1,100}$ ]]; then
|
|
208
|
+
MODEL_ERROR="the model from ${REVIEW_MODEL_SOURCE} must match ^[A-Za-z0-9._:/-]{1,100}\$"
|
|
209
|
+
fi
|
|
210
|
+
# --- review model: end ---
|
|
211
|
+
|
|
212
|
+
if [ -n "${MODEL_ERROR}" ]; then
|
|
213
|
+
# FAIL CLOSED: a misconfigured model must not fall back silently.
|
|
214
|
+
echo "❌ Invalid review model: ${MODEL_ERROR}. Failing closed."
|
|
215
|
+
REVIEW_MODEL=""
|
|
216
|
+
REVIEW_RESULT="ERROR"
|
|
217
|
+
elif [ -z "${KIRO_API_KEY:-}" ]; then
|
|
184
218
|
# Fork MRs receive no protected variables. Reported, never silently passed.
|
|
185
219
|
echo "⚠️ KIRO_API_KEY unavailable (fork MR or unset variable) — review skipped."
|
|
186
220
|
elif [ -z "${BASE_SHA}" ] || [ -z "${HEAD_SHA}" ]; then
|
|
@@ -213,6 +247,7 @@ prism-eval-gate:
|
|
|
213
247
|
REVIEW_RESULT="ERROR"
|
|
214
248
|
else
|
|
215
249
|
kiro-cli --version || true
|
|
250
|
+
echo "Review model: ${REVIEW_MODEL} (from ${REVIEW_MODEL_SOURCE})"
|
|
216
251
|
# Short prompt on purpose: kiro-cli has a bug putting long stdin
|
|
217
252
|
# into HTTP headers, so let it read the patch off disk itself.
|
|
218
253
|
git diff "${BASE_SHA}..${HEAD_SHA}" -- ${FILES} > /tmp/mr-diff.patch
|
|
@@ -233,7 +268,7 @@ prism-eval-gate:
|
|
|
233
268
|
PROMPT="${REVIEW_PROMPT}"
|
|
234
269
|
if [ "${ATTEMPT}" = "2" ]; then PROMPT="${REVIEW_PROMPT} ${RETRY_NOTE}"; fi
|
|
235
270
|
set +e
|
|
236
|
-
REVIEW_OUTPUT=$(timeout "${REVIEW_TIMEOUT_SECS}" kiro-cli chat --no-interactive --trust-all-tools --model
|
|
271
|
+
REVIEW_OUTPUT=$(timeout "${REVIEW_TIMEOUT_SECS}" kiro-cli chat --no-interactive --trust-all-tools --model "${REVIEW_MODEL}" "${PROMPT}")
|
|
237
272
|
set -e
|
|
238
273
|
|
|
239
274
|
# Extract the LAST JSON object that parses and has a numeric score
|
|
@@ -291,7 +326,7 @@ prism-eval-gate:
|
|
|
291
326
|
REVIEW_RESULT="PASS"
|
|
292
327
|
fi
|
|
293
328
|
|
|
294
|
-
echo "Score: ${REVIEW_SCORE} | Findings: ${REVIEW_TOTAL} (${REVIEW_HIGH} high) | ${REVIEW_RESULT}"
|
|
329
|
+
echo "Score: ${REVIEW_SCORE} | Findings: ${REVIEW_TOTAL} (${REVIEW_HIGH} high) | ${REVIEW_RESULT} | Model: ${REVIEW_MODEL}"
|
|
295
330
|
echo "Summary: ${REVIEW_SUMMARY}"
|
|
296
331
|
jq -r '.findings[] | " [\(.severity)] \(.file):\(.line) — \(.message)"' /tmp/kiro-review.json || true
|
|
297
332
|
fi
|
|
@@ -334,10 +369,10 @@ prism-eval-gate:
|
|
|
334
369
|
DETAIL=$(jq -n -c \
|
|
335
370
|
--arg team_id "${TEAM_ID}" --arg repo "${PRISM_REPO}" --arg timestamp "${TIMESTAMP}" \
|
|
336
371
|
--arg score "${REVIEW_SCORE}" --arg result "${REVIEW_RESULT}" \
|
|
337
|
-
--arg mr_iid "${CI_MERGE_REQUEST_IID:-0}" \
|
|
372
|
+
--arg mr_iid "${CI_MERGE_REQUEST_IID:-0}" --arg model "${REVIEW_MODEL}" \
|
|
338
373
|
'{team_id:$team_id,repo:$repo,timestamp:$timestamp,prism_level:2,
|
|
339
374
|
metric:{name:"eval_score",value:($score|tonumber),unit:"score"},
|
|
340
|
-
ai_context:{tool:"kiro-cli",model
|
|
375
|
+
ai_context:{tool:"kiro-cli",model:$model,origin:"ai-generated"},
|
|
341
376
|
eval:{score:($score|tonumber),result:$result,rubric:"kiro-headless",
|
|
342
377
|
mr_iid:($mr_iid|tonumber),method:"kiro-headless"}}')
|
|
343
378
|
aws events put-events --region "${AWS_DEFAULT_REGION}" --entries \
|
|
@@ -424,10 +459,14 @@ prism-eval-gate:
|
|
|
424
459
|
echo " deleting it from the branch does not un-expose what was pushed."
|
|
425
460
|
echo " False positive? Add an allowlist entry to .gitleaks.toml."
|
|
426
461
|
fi
|
|
427
|
-
[ "${
|
|
462
|
+
if [ -n "${MODEL_ERROR}" ]; then
|
|
463
|
+
echo " Review failed closed: invalid review model (${MODEL_ERROR})."
|
|
464
|
+
elif [ "${REVIEW_RESULT}" = "ERROR" ]; then
|
|
465
|
+
echo " Review failed closed: output could not be parsed."
|
|
466
|
+
fi
|
|
428
467
|
[ "${REVIEW_RESULT}" = "FAIL" ] && echo " Review score ${REVIEW_SCORE} below threshold, or high-severity findings."
|
|
429
468
|
exit 1
|
|
430
469
|
fi
|
|
431
470
|
|
|
432
|
-
echo "✅ PRISM Eval Gate passed (secret scan: clean, review: ${REVIEW_RESULT})"
|
|
471
|
+
echo "✅ PRISM Eval Gate passed (secret scan: clean, review: ${REVIEW_RESULT}, model: ${REVIEW_MODEL})"
|
|
433
472
|
exit 0
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":""}
|
package/dist/bin/cli.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// The commander CLI; bin/prism-cli.ts loads it for every command except the status line fast path.
|
|
2
|
+
import { program } from 'commander';
|
|
3
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
4
|
+
import { dirname, resolve } from 'node:path';
|
|
5
|
+
import { fileURLToPath } from 'node:url';
|
|
6
|
+
import { registerCommands } from '../src/index.js';
|
|
7
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
8
|
+
// Works from both cli/bin/ (source via tsx) and dist/bin/ (published)
|
|
9
|
+
const pkgPath = existsSync(resolve(__dirname, '..', 'package.json'))
|
|
10
|
+
? resolve(__dirname, '..', 'package.json')
|
|
11
|
+
: resolve(__dirname, '..', '..', 'package.json');
|
|
12
|
+
const pkg = JSON.parse(readFileSync(pkgPath, 'utf8'));
|
|
13
|
+
program
|
|
14
|
+
.name('prism-cli')
|
|
15
|
+
.description('PRISM D1 Velocity CLI tool')
|
|
16
|
+
.version(pkg.version);
|
|
17
|
+
await registerCommands(program);
|
|
18
|
+
program.parse();
|
|
19
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,sEAAsE;AACtE,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;IAClE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC;IAC1C,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;AACnD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAEtD,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,4BAA4B,CAAC;KACzC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAExB,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAEhC,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
package/dist/bin/prism-cli.js
CHANGED
|
@@ -1,19 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
.name('prism-cli')
|
|
15
|
-
.description('PRISM D1 Velocity CLI tool')
|
|
16
|
-
.version(pkg.version);
|
|
17
|
-
await registerCommands(program);
|
|
18
|
-
program.parse();
|
|
2
|
+
// The status line runs on every Claude Code update: skip commander and the
|
|
3
|
+
// command registry (about 20 ms) when it is called with only its own flags.
|
|
4
|
+
const STATUSLINE_FLAGS = new Set(['--no-session', '--json']);
|
|
5
|
+
const argv = process.argv.slice(2);
|
|
6
|
+
if (argv[0] === 'statusline' && argv.slice(1).every((a) => STATUSLINE_FLAGS.has(a))) {
|
|
7
|
+
const { main } = await import('../src/statusline/statusline.js');
|
|
8
|
+
await main({ session: !argv.includes('--no-session'), json: argv.includes('--json') });
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
await import('./cli.js');
|
|
12
|
+
}
|
|
13
|
+
export {};
|
|
19
14
|
//# sourceMappingURL=prism-cli.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prism-cli.js","sourceRoot":"","sources":["../../bin/prism-cli.ts"],"names":[],"mappings":";AACA,
|
|
1
|
+
{"version":3,"file":"prism-cli.js","sourceRoot":"","sources":["../../bin/prism-cli.ts"],"names":[],"mappings":";AACA,2EAA2E;AAC3E,4EAA4E;AAC5E,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC7D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpF,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC;IACjE,MAAM,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACzF,CAAC;KAAM,CAAC;IACN,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;AAC3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../../../src/commands/_top/dashboard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../../../src/commands/_top/dashboard.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAoB,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAOlF,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAMvD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAErD;;;;;;;iBAgBoB;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE;;AAdtL,wBAiHE"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { spawn } from 'node:child_process';
|
|
2
1
|
import { homedir } from 'node:os';
|
|
3
2
|
import { buildPayload } from '../../dashboard/payload.js';
|
|
4
3
|
import { cachedPayload, startServer, BIND_HOST } from '../../dashboard/server.js';
|
|
@@ -9,20 +8,9 @@ import { repoRootOf } from '../../aws/connection.js';
|
|
|
9
8
|
import { systemdUserAvailable } from '../../utils/otel-sync-schedule.js';
|
|
10
9
|
import { collectUsage, emptyUsage } from '../../dashboard/usage.js';
|
|
11
10
|
import { UsageCache, usageCachePath } from '../../dashboard/usage-cache.js';
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
: process.platform === 'win32' ? ['rundll32', ['url.dll,FileProtocolHandler', url]]
|
|
16
|
-
: ['xdg-open', [url]];
|
|
17
|
-
try {
|
|
18
|
-
const child = spawn(cmd, args, { stdio: 'ignore', detached: true });
|
|
19
|
-
child.on('error', () => console.log(' (could not open a browser; open the URL above)'));
|
|
20
|
-
child.unref();
|
|
21
|
-
}
|
|
22
|
-
catch {
|
|
23
|
-
console.log(' (could not open a browser; open the URL above)');
|
|
24
|
-
}
|
|
25
|
-
}
|
|
11
|
+
import { buildSnapshotHtml, canOpen, openBrowser, writeSnapshot } from '../../dashboard/snapshot.js';
|
|
12
|
+
import { ownVersion } from './version.js';
|
|
13
|
+
import { resolve } from 'node:path';
|
|
26
14
|
export function parsePort(v) {
|
|
27
15
|
if (v === undefined)
|
|
28
16
|
return 0;
|
|
@@ -44,6 +32,9 @@ export default {
|
|
|
44
32
|
{ flags: '--all', description: '[deprecated, no effect] every repo under --root is now shown by default' },
|
|
45
33
|
{ flags: '--port <n>', description: 'Port on 127.0.0.1 (default: a random free port)' },
|
|
46
34
|
{ flags: '--no-open', description: 'Do not open a browser' },
|
|
35
|
+
{ flags: '--snapshot <file>', description: 'Write the dashboard as one static HTML file (data embedded, no server, no token, mode 0600) and exit' },
|
|
36
|
+
{ flags: '--exit-on-stdin-close', description: 'Stop the server when stdin closes (prism-cli mcp uses this so the dashboard ends with the session)' },
|
|
37
|
+
{ flags: '--open', description: 'With --snapshot: open the file in a browser when a display is available' },
|
|
47
38
|
{ flags: '--fresh', description: 'With --json: run the codeburn exports now instead of using the usage cache (~/.prism/cache, 5 minutes)' },
|
|
48
39
|
{ flags: '--timing', description: 'With --json: print how long each stage took to stderr' },
|
|
49
40
|
],
|
|
@@ -52,6 +43,38 @@ export default {
|
|
|
52
43
|
if (opts.all)
|
|
53
44
|
console.error('prism: --all is deprecated and has no effect; the dashboard now scans your home directory (or --root) by default.');
|
|
54
45
|
const usageCache = new UsageCache({ file: usageCachePath(homedir()), collect: () => collectUsage() });
|
|
46
|
+
if (opts.snapshot !== undefined) {
|
|
47
|
+
if (opts.json) {
|
|
48
|
+
console.error('Error: --snapshot and --json are separate outputs; pick one.');
|
|
49
|
+
process.exit(1);
|
|
50
|
+
}
|
|
51
|
+
let refresh = null;
|
|
52
|
+
const file = resolve(opts.snapshot);
|
|
53
|
+
let bytes;
|
|
54
|
+
try {
|
|
55
|
+
const html = await buildSnapshotHtml({
|
|
56
|
+
cwd: process.cwd(), home: homedir(), root: opts.root, version: ownVersion(),
|
|
57
|
+
usage: async () => { const r = await usageCache.get({ fresh: opts.fresh }); refresh = r.refresh; return r; },
|
|
58
|
+
});
|
|
59
|
+
bytes = writeSnapshot(file, html);
|
|
60
|
+
}
|
|
61
|
+
catch (e) {
|
|
62
|
+
console.error(`Error: could not write the snapshot to ${file}: ${e?.message || e}`);
|
|
63
|
+
process.exit(1);
|
|
64
|
+
}
|
|
65
|
+
process.stdout.write(file + '\n');
|
|
66
|
+
console.error(`prism dashboard: snapshot written (${Math.round(bytes / 1024)} KB, mode 0600). It shows local paths; share it with care.`);
|
|
67
|
+
// --open shares opts.open with --no-open, whose default is true, so ask argv whether it was given.
|
|
68
|
+
if (process.argv.includes('--open')) {
|
|
69
|
+
if (canOpen(process.env, process.platform))
|
|
70
|
+
openBrowser(file);
|
|
71
|
+
else
|
|
72
|
+
console.error('prism dashboard: no display here (SSH session?), so it was not opened. Copy the file to your machine and open it there.');
|
|
73
|
+
}
|
|
74
|
+
if (refresh)
|
|
75
|
+
await refresh;
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
55
78
|
if (opts.json) {
|
|
56
79
|
let refresh = null;
|
|
57
80
|
const payload = await buildPayload({
|
|
@@ -123,6 +146,11 @@ export default {
|
|
|
123
146
|
const stop = () => { srv.close().finally(() => process.exit(0)); setTimeout(() => process.exit(0), 2000).unref(); };
|
|
124
147
|
process.on('SIGINT', stop);
|
|
125
148
|
process.on('SIGTERM', stop);
|
|
149
|
+
if (opts.exitOnStdinClose) {
|
|
150
|
+
process.stdin.on('end', stop);
|
|
151
|
+
process.stdin.on('close', stop);
|
|
152
|
+
process.stdin.resume();
|
|
153
|
+
}
|
|
126
154
|
},
|
|
127
155
|
};
|
|
128
156
|
//# sourceMappingURL=dashboard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../../../src/commands/_top/dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../../../src/commands/_top/dashboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../../src/commands/_top/mcp.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../../src/commands/_top/mcp.ts"],"names":[],"mappings":";;;;;AAIA,wBAME"}
|
|
@@ -1,23 +1,11 @@
|
|
|
1
|
-
import { readFileSync } from 'node:fs';
|
|
2
1
|
import { homedir } from 'node:os';
|
|
3
|
-
import {
|
|
4
|
-
import { fileURLToPath } from 'node:url';
|
|
5
|
-
import { findPackageDir } from './version.js';
|
|
2
|
+
import { ownVersion } from './version.js';
|
|
6
3
|
import { runStdio } from '../../mcp/server.js';
|
|
7
|
-
function cliVersion() {
|
|
8
|
-
const dir = findPackageDir(dirname(fileURLToPath(import.meta.url)));
|
|
9
|
-
try {
|
|
10
|
-
return dir ? String(JSON.parse(readFileSync(join(dir, 'package.json'), 'utf8')).version) : 'unknown';
|
|
11
|
-
}
|
|
12
|
-
catch {
|
|
13
|
-
return 'unknown';
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
4
|
export default {
|
|
17
|
-
description: 'MCP server on stdio for Kiro, Claude Code and other MCP clients: read-only codewatch findings and reports, cached spend and the setup checklist.
|
|
5
|
+
description: 'MCP server on stdio for Kiro, Claude Code and other MCP clients: read-only codewatch findings and reports, cached spend and the setup checklist, a static dashboard snapshot file, and the live dashboard on 127.0.0.1 as a child process. The MCP server itself opens no port; it exits when stdin closes, stopping that dashboard.',
|
|
18
6
|
options: [],
|
|
19
7
|
async action() {
|
|
20
|
-
await runStdio({ cwd: process.cwd(), home: homedir(), version:
|
|
8
|
+
await runStdio({ cwd: process.cwd(), home: homedir(), version: ownVersion() });
|
|
21
9
|
},
|
|
22
10
|
};
|
|
23
11
|
//# sourceMappingURL=mcp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../../src/commands/_top/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../../src/commands/_top/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,eAAe;IACb,WAAW,EAAE,sUAAsU;IACnV,OAAO,EAAE,EAAE;IACX,KAAK,CAAC,MAAM;QACV,MAAM,QAAQ,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IACjF,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
description: string;
|
|
3
|
+
options: {
|
|
4
|
+
flags: string;
|
|
5
|
+
description: string;
|
|
6
|
+
}[];
|
|
7
|
+
action(opts: {
|
|
8
|
+
session?: boolean;
|
|
9
|
+
json?: boolean;
|
|
10
|
+
}): Promise<void>;
|
|
11
|
+
};
|
|
12
|
+
export default _default;
|
|
13
|
+
//# sourceMappingURL=statusline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statusline.d.ts","sourceRoot":"","sources":["../../../../src/commands/_top/statusline.ts"],"names":[],"mappings":";;;;;;iBAQqB;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE;;AAN1D,wBASE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { main } from '../../statusline/statusline.js';
|
|
2
|
+
export default {
|
|
3
|
+
description: 'Claude Code status line: reads Claude Code\'s status JSON on stdin and prints the latest codewatch review counts, spend today and this month, and the session\'s cost, lines, context and cache. Reads cached files only; set it up with prism-cli enable claude-code.',
|
|
4
|
+
options: [
|
|
5
|
+
{ flags: '--no-session', description: 'Print only the PRISM row, not the session row' },
|
|
6
|
+
{ flags: '--json', description: 'Debug: print what it would show, and the files it read, as JSON' },
|
|
7
|
+
],
|
|
8
|
+
async action(opts) {
|
|
9
|
+
await main({ session: opts.session, json: opts.json });
|
|
10
|
+
},
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=statusline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statusline.js","sourceRoot":"","sources":["../../../../src/commands/_top/statusline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAC;AAEtD,eAAe;IACb,WAAW,EAAE,wQAAwQ;IACrR,OAAO,EAAE;QACP,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,+CAA+C,EAAE;QACvF,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,iEAAiE,EAAE;KACpG;IACD,KAAK,CAAC,MAAM,CAAC,IAA2C;QACtD,MAAM,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;CACF,CAAC"}
|
|
@@ -37,6 +37,8 @@ export interface VersionDeps {
|
|
|
37
37
|
}
|
|
38
38
|
/** Walks up from `start` to the package.json of @prism-d1/cli, at most 6 levels. */
|
|
39
39
|
export declare function findPackageDir(start: string): string | null;
|
|
40
|
+
/** This prism-cli's own version, from its package.json; 'unknown' when it cannot be read. */
|
|
41
|
+
export declare function ownVersion(): string;
|
|
40
42
|
/** -1, 0 or 1, comparing dotted numeric versions; pre-release tags are ignored. */
|
|
41
43
|
export declare function compareVersions(a: string, b: string): number;
|
|
42
44
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../../src/commands/_top/version.ts"],"names":[],"mappings":"AAcA,OAAO,EAA4D,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE1H,eAAO,MAAM,YAAY,kBAAkB,CAAC;AAK5C,MAAM,WAAW,OAAO;IACtB,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,wCAAwC;IACxC,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,eAAe,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,yDAAyD;IACzD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,0EAA0E;IAC1E,WAAW,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,WAAW;IAC1B,qDAAqD;IACrD,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,SAAS,EAAE,MAAM;QAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D,uFAAuF;IACvF,WAAW,CAAC,EAAE,MAAM,gBAAgB,GAAG,IAAI,CAAC;CAC7C;AAED,oFAAoF;AACpF,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAc3D;AAWD,mFAAmF;AACnF,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAK5D;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,EAAE,CAoBhF;AAMD,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,CAAC,EAAE,WAAW,GAAG,aAAa,CA+BtF;AAED,0EAA0E;AAC1E,wBAAgB,WAAW,CAAC,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAE3E;AAED,kFAAkF;AAClF,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAGzF;AAeD,wBAAgB,WAAW,IAAI,WAAW,CAOzC;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,aAAa,EAAE,GAAG,GAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAkB,GAAG,IAAI,CAS1F;;;;;;;iBAQoB;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE;;AAN1D,wBAWE"}
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../../src/commands/_top/version.ts"],"names":[],"mappings":"AAcA,OAAO,EAA4D,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE1H,eAAO,MAAM,YAAY,kBAAkB,CAAC;AAK5C,MAAM,WAAW,OAAO;IACtB,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,wCAAwC;IACxC,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,eAAe,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,yDAAyD;IACzD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,0EAA0E;IAC1E,WAAW,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,WAAW;IAC1B,qDAAqD;IACrD,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,SAAS,EAAE,MAAM;QAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D,uFAAuF;IACvF,WAAW,CAAC,EAAE,MAAM,gBAAgB,GAAG,IAAI,CAAC;CAC7C;AAED,oFAAoF;AACpF,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAc3D;AAED,6FAA6F;AAC7F,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAWD,mFAAmF;AACnF,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAK5D;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,EAAE,CAoBhF;AAMD,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,CAAC,EAAE,WAAW,GAAG,aAAa,CA+BtF;AAED,0EAA0E;AAC1E,wBAAgB,WAAW,CAAC,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAE3E;AAED,kFAAkF;AAClF,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAGzF;AAeD,wBAAgB,WAAW,IAAI,WAAW,CAOzC;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,aAAa,EAAE,GAAG,GAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAkB,GAAG,IAAI,CAS1F;;;;;;;iBAQoB;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE;;AAN1D,wBAWE"}
|
|
@@ -36,6 +36,10 @@ export function findPackageDir(start) {
|
|
|
36
36
|
}
|
|
37
37
|
return null;
|
|
38
38
|
}
|
|
39
|
+
/** This prism-cli's own version, from its package.json; 'unknown' when it cannot be read. */
|
|
40
|
+
export function ownVersion() {
|
|
41
|
+
return packageVersion(findPackageDir(dirname(fileURLToPath(import.meta.url)))) ?? 'unknown';
|
|
42
|
+
}
|
|
39
43
|
function packageVersion(dir) {
|
|
40
44
|
if (!dir)
|
|
41
45
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../../../src/commands/_top/version.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../../../src/commands/_top/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,gBAAgB,EAAyB,MAAM,yBAAyB,CAAC;AAE1H,MAAM,CAAC,MAAM,YAAY,GAAG,eAAe,CAAC;AAC5C,MAAM,QAAQ,GAAG,WAAW,CAAC;AAC7B,8EAA8E;AAC9E,MAAM,cAAc,GAAG,IAAI,CAAC;AAqC5B,oFAAoF;AACpF,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QACtC,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY;oBAAE,OAAO,GAAG,CAAC;YAC9E,CAAC;YAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;QAC5B,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,UAAU;IACxB,OAAO,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;AAC9F,CAAC;AAED,SAAS,cAAc,CAAC,GAAkB;IACxC,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACrF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,eAAe,CAAC,CAAS,EAAE,CAAS;IAClD,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACxE,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACxE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe,EAAE,aAAqB;IACnE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,GAAG,GAAc,EAAE,CAAC;IAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAChE,MAAM,GAAG,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IACtC,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3C,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,QAAQ,GAAG,GAAG,CAAC,CAAC;YACpC,IAAI,CAAC;gBACH,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;oBAAE,SAAS;YACtC,CAAC;YAAC,MAAM,CAAC;gBAAC,SAAS;YAAC,CAAC;YACrB,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YAC7B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACf,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7C,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;QACzH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,UAAU,CAAC,CAAS;IAC3B,IAAI,CAAC;QAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAA2B,EAAE,CAAc;IACrE,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC;IAC7D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,wDAAwD,CAAC,CAAC;IACrF,CAAC;SAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACzB,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,kBAAkB,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,IAAI,iBAAiB,oBAAoB,OAAO,KAAK,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC;IACpJ,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;IACpF,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,QAAQ,CAAC,IAAI,CAAC,WAAW,QAAQ,aAAa,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,IAAI,iBAAiB,kBAAkB,KAAK,CAAC,IAAI,wFAAwF,YAAY,IAAI,CAAC,CAAC;IAC/N,CAAC;IAED,IAAI,MAAM,GAAkB,IAAI,CAAC;IACjC,IAAI,UAAU,GAAkB,IAAI,CAAC;IACrC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,UAAU,GAAG,SAAS,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;QACxB,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC;QACnB,IAAI,CAAC,MAAM;YAAE,UAAU,GAAG,CAAC,CAAC,KAAK,IAAI,yBAAyB,CAAC;IACjE,CAAC;IACD,MAAM,eAAe,GAAG,MAAM,IAAI,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEtG,IAAI,WAAW,GAA4B,IAAI,CAAC;IAChD,IAAI,CAAC;QAAC,WAAW,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,IAAI,IAAI,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,0CAA0C,CAAC,CAAC;IAErG,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;AAC5I,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,WAAW,CAAC,CAAsC;IAChE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,IAAI,CAAC,CAAC,OAAO,IAAI,eAAe,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,mBAAmB,CAAC,CAAsC;IACxE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACjC,OAAO,iBAAiB,iBAAiB,IAAI,CAAE,CAAC,SAAS,eAAe,CAAE,CAAC,OAAO,iBAAiB,mBAAmB,EAAE,CAAC;AAC3H,CAAC;AAED,SAAS,aAAa;IACpB,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAe,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAA+B,EAAE,CAAC;IAClI,2EAA2E;IAC3E,gEAAgE;IAChE,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO;QACpC,CAAC,CAAC,SAAS,CAAC,YAAY,YAAY,UAAU,EAAE,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACtE,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3D,IAAI,CAAC,CAAC,KAAK;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAG,CAAC,CAAC,KAA+B,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,6BAA6B,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAChL,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IACxH,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAClC,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC;AACvG,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO;QACL,aAAa,EAAE,cAAc,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE;QACvF,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE;QAC/B,SAAS,EAAE,aAAa;QACxB,WAAW,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;KACzD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,CAAgB,EAAE,MAA2B,OAAO,CAAC,GAAG;IAClF,GAAG,CAAC,GAAG,QAAQ,IAAI,CAAC,CAAC,OAAO,UAAU,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;IACjD,IAAI,CAAC,CAAC,eAAe;QAAE,GAAG,CAAC,qBAAqB,CAAC,CAAC,MAAM,yBAAyB,YAAY,EAAE,CAAC,CAAC;SAC5F,IAAI,CAAC,CAAC,MAAM;QAAE,GAAG,CAAC,8BAA8B,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;SAC9D,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS;QAAE,GAAG,CAAC,mCAAmC,CAAC,CAAC;;QACzE,GAAG,CAAC,8BAA8B,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC;IACzD,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ;QAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3C,MAAM,EAAE,GAAG,mBAAmB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAC9C,IAAI,EAAE;QAAE,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,eAAe;IACb,WAAW,EAAE,qGAAqG;IAClH,OAAO,EAAE;QACP,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAE;QAC5D,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,oBAAoB,EAAE;KAC1D;IACD,KAAK,CAAC,MAAM,CAAC,IAA2C;QACtD,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;;YACvD,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;CACF,CAAC"}
|