@vreko/cli 3.0.1
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/LICENSE +201 -0
- package/README.md +45 -0
- package/dist/CeremonyView-LQS7FTMK.js +134 -0
- package/dist/CeremonyView-LQS7FTMK.js.map +1 -0
- package/dist/InitApp-7K5DTYSW.js +1479 -0
- package/dist/InitApp-7K5DTYSW.js.map +1 -0
- package/dist/SkippedTestDetector-PJSKSOZR.js +7 -0
- package/dist/SkippedTestDetector-PJSKSOZR.js.map +1 -0
- package/dist/TuiApp-FX23XQBK.js +8 -0
- package/dist/TuiApp-FX23XQBK.js.map +1 -0
- package/dist/analysis-ABEO6RTN.js +8 -0
- package/dist/analysis-ABEO6RTN.js.map +1 -0
- package/dist/auth-XNBEBNPY.js +7669 -0
- package/dist/auth-XNBEBNPY.js.map +1 -0
- package/dist/ceremony-M7CXVBVA.js +45 -0
- package/dist/ceremony-M7CXVBVA.js.map +1 -0
- package/dist/chunk-A3QSZJPD.js +3147 -0
- package/dist/chunk-A3QSZJPD.js.map +1 -0
- package/dist/chunk-ASGZ5B6C.js +3969 -0
- package/dist/chunk-ASGZ5B6C.js.map +1 -0
- package/dist/chunk-DMXC2JTC.js +58 -0
- package/dist/chunk-DMXC2JTC.js.map +1 -0
- package/dist/chunk-EEBSK2IH.js +161 -0
- package/dist/chunk-EEBSK2IH.js.map +1 -0
- package/dist/chunk-EWOJGXRX.js +22 -0
- package/dist/chunk-EWOJGXRX.js.map +1 -0
- package/dist/chunk-F7GEJLP7.js +2389 -0
- package/dist/chunk-F7GEJLP7.js.map +1 -0
- package/dist/chunk-GOYL3F4T.js +605 -0
- package/dist/chunk-GOYL3F4T.js.map +1 -0
- package/dist/chunk-GRMRYWYS.js +17 -0
- package/dist/chunk-GRMRYWYS.js.map +1 -0
- package/dist/chunk-GSUGROXB.js +1951 -0
- package/dist/chunk-GSUGROXB.js.map +1 -0
- package/dist/chunk-H7773ONB.js +50 -0
- package/dist/chunk-H7773ONB.js.map +1 -0
- package/dist/chunk-HFQHU5LC.js +445 -0
- package/dist/chunk-HFQHU5LC.js.map +1 -0
- package/dist/chunk-IVHUBLJD.js +318 -0
- package/dist/chunk-IVHUBLJD.js.map +1 -0
- package/dist/chunk-KJWKY4L4.js +14 -0
- package/dist/chunk-KJWKY4L4.js.map +1 -0
- package/dist/chunk-MJVY2XUN.js +1793 -0
- package/dist/chunk-MJVY2XUN.js.map +1 -0
- package/dist/chunk-QWZVCJII.js +1797 -0
- package/dist/chunk-QWZVCJII.js.map +1 -0
- package/dist/chunk-VTSNRV3V.js +3237 -0
- package/dist/chunk-VTSNRV3V.js.map +1 -0
- package/dist/chunk-W5B4GTXR.js +1466 -0
- package/dist/chunk-W5B4GTXR.js.map +1 -0
- package/dist/chunk-WZEZLVOW.js +4995 -0
- package/dist/chunk-WZEZLVOW.js.map +1 -0
- package/dist/chunk-YPTTIXKC.js +199 -0
- package/dist/chunk-YPTTIXKC.js.map +1 -0
- package/dist/chunk-Z55UGM6X.js +6360 -0
- package/dist/chunk-Z55UGM6X.js.map +1 -0
- package/dist/chunk-ZIIRQODJ.js +110 -0
- package/dist/chunk-ZIIRQODJ.js.map +1 -0
- package/dist/chunk-ZSUQ4FMB.js +77 -0
- package/dist/chunk-ZSUQ4FMB.js.map +1 -0
- package/dist/client-JMTSZS3V.js +10 -0
- package/dist/client-JMTSZS3V.js.map +1 -0
- package/dist/deprecated-snap.js +19 -0
- package/dist/deprecated-snap.js.map +1 -0
- package/dist/dist-2KWBZFLA.js +14 -0
- package/dist/dist-2KWBZFLA.js.map +1 -0
- package/dist/dist-5ZYKNNU3.js +7 -0
- package/dist/dist-5ZYKNNU3.js.map +1 -0
- package/dist/dist-CP3RFHPI.js +11 -0
- package/dist/dist-CP3RFHPI.js.map +1 -0
- package/dist/gecko-53ITAGG6.js +56 -0
- package/dist/gecko-53ITAGG6.js.map +1 -0
- package/dist/guards-QAFC64NO.js +7 -0
- package/dist/guards-QAFC64NO.js.map +1 -0
- package/dist/index.js +57785 -0
- package/dist/index.js.map +1 -0
- package/dist/init-command-246JIVXM.js +7 -0
- package/dist/init-command-246JIVXM.js.map +1 -0
- package/dist/init-core-KAI7LCXZ.js +12 -0
- package/dist/init-core-KAI7LCXZ.js.map +1 -0
- package/dist/init-scan-RZNYDTUV.js +1919 -0
- package/dist/init-scan-RZNYDTUV.js.map +1 -0
- package/dist/local-service-adapter-6KNN6WQL.js +8 -0
- package/dist/local-service-adapter-6KNN6WQL.js.map +1 -0
- package/dist/secure-credentials-JXWAQLS2.js +306 -0
- package/dist/secure-credentials-JXWAQLS2.js.map +1 -0
- package/dist/tui-TPJPUS2R.js +111 -0
- package/dist/tui-TPJPUS2R.js.map +1 -0
- package/dist/vreko-dir-O3RLG7PI.js +8 -0
- package/dist/vreko-dir-O3RLG7PI.js.map +1 -0
- package/package.json +132 -0
- package/scripts/check-banned-words.ts +152 -0
- package/scripts/hooks/posttooluse-file-notify.sh +108 -0
- package/scripts/hooks/pretooluse-fragile-guard.sh +82 -0
- package/scripts/post-install-notice.js +24 -0
- package/scripts/postinstall.mjs +84 -0
- package/scripts/preuninstall.mjs +34 -0
- package/scripts/verify-jsx-transform.mjs +55 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { __name } from './chunk-EWOJGXRX.js';
|
|
3
|
+
|
|
4
|
+
process.env.VREKO_CLI='true';process.env.NODE_NO_WARNINGS='1';
|
|
5
|
+
|
|
6
|
+
// src/ui/ceremony.ts
|
|
7
|
+
var LABEL_WIDTH = 21;
|
|
8
|
+
var VALUE_WIDTH = 15;
|
|
9
|
+
function renderCeremony(record) {
|
|
10
|
+
if (!record) {
|
|
11
|
+
return [
|
|
12
|
+
"## Vreko Session Summary",
|
|
13
|
+
"",
|
|
14
|
+
"Service not connected - ceremony data unavailable.",
|
|
15
|
+
"",
|
|
16
|
+
"Run `vreko session end` with a live service to see full summary."
|
|
17
|
+
].join("\n");
|
|
18
|
+
}
|
|
19
|
+
const row = /* @__PURE__ */ __name((label, val) => `| ${label.padEnd(LABEL_WIDTH)}| ${String(val).padEnd(VALUE_WIDTH)}|`, "row");
|
|
20
|
+
const workspaceShort = record.workspacePath ? record.workspacePath.slice(-12) : "unknown";
|
|
21
|
+
const durationMin = record.duration != null ? `${Math.round(record.duration / 6e4)} min` : " - ";
|
|
22
|
+
const fragilityDisplay = record.fragilityExposure != null ? record.fragilityExposure.toFixed(1) : " - ";
|
|
23
|
+
return [
|
|
24
|
+
"## Vreko Session Summary",
|
|
25
|
+
"",
|
|
26
|
+
"| Metric | Value |",
|
|
27
|
+
"|---------------------|---------------|",
|
|
28
|
+
row("Duration", durationMin),
|
|
29
|
+
row("Learnings captured", record.learningsCaptured ?? 0),
|
|
30
|
+
row("Patterns surfaced", record.signalMetrics?.protectionDecisions ?? 0),
|
|
31
|
+
row("Pitfalls avoided", record.pitfallsAvoided ?? 0),
|
|
32
|
+
row("Fragility exposure", fragilityDisplay),
|
|
33
|
+
row("Snapshots created", record.checkpointsCreated ?? 0),
|
|
34
|
+
row("Token savings", `~${record.tokensSaved ?? 0}`),
|
|
35
|
+
"",
|
|
36
|
+
`Session ID: ${record.sessionId ?? "unknown"}`,
|
|
37
|
+
`Workspace: ${workspaceShort}`,
|
|
38
|
+
`Generated: ${(/* @__PURE__ */ new Date()).toISOString()}`
|
|
39
|
+
].join("\n");
|
|
40
|
+
}
|
|
41
|
+
__name(renderCeremony, "renderCeremony");
|
|
42
|
+
|
|
43
|
+
export { renderCeremony };
|
|
44
|
+
//# sourceMappingURL=ceremony-M7CXVBVA.js.map
|
|
45
|
+
//# sourceMappingURL=ceremony-M7CXVBVA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/ui/ceremony.ts"],"names":["LABEL_WIDTH","VALUE_WIDTH","renderCeremony","record","join","row","label","val","padEnd","String","workspaceShort","workspacePath","slice","durationMin","duration","Math","round","fragilityDisplay","fragilityExposure","toFixed","learningsCaptured","signalMetrics","protectionDecisions","pitfallsAvoided","checkpointsCreated","tokensSaved","sessionId","Date","toISOString"],"mappings":";;;;;;AAqDA,IAAMA,WAAAA,GAAc,EAAA;AACpB,IAAMC,WAAAA,GAAc,EAAA;AAgBb,SAASC,eAAeC,MAAAA,EAAoC;AAClE,EAAA,IAAI,CAACA,MAAAA,EAAQ;AACZ,IAAA,OAAO;AACN,MAAA,0BAAA;AACA,MAAA,EAAA;AACA,MAAA,sDAAA;AACA,MAAA,EAAA;AACA,MAAA;AACCC,KAAAA,CAAAA,IAAAA,CAAK,IAAA,CAAA;AACR,EAAA;AAGA,EAAA,MAAMC,sBAAM,MAAA,CAAA,CAACC,KAAAA,EAAeC,GAAAA,KAC3B,CAAA,EAAA,EAAKD,MAAME,MAAAA,CAAOR,WAAAA,CAAAA,CAAAA,EAAAA,EAAiBS,OAAOF,GAAAA,CAAAA,CAAKC,MAAAA,CAAOP,WAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAD3C,KAAA,CAAA;AAIZ,EAAA,MAAMS,iBAAiBP,MAAAA,CAAOQ,aAAAA,GAAgBR,OAAOQ,aAAAA,CAAcC,KAAAA,CAAM,GAAC,CAAA,GAAM,SAAA;AAEhF,EAAA,MAAMC,WAAAA,GAAcV,MAAAA,CAAOW,QAAAA,IAAY,IAAA,GAAO,CAAA,EAAGC,IAAAA,CAAKC,KAAAA,CAAMb,MAAAA,CAAOW,QAAAA,GAAW,GAAA,CAAA,CAAA,IAAA,CAAA,GAAgB,KAAA;AAE9F,EAAA,MAAMG,gBAAAA,GAAmBd,OAAOe,iBAAAA,IAAqB,IAAA,GAAOf,OAAOe,iBAAAA,CAAkBC,OAAAA,CAAQ,CAAA,CAAA,GAAK,KAAA;AAElG,EAAA,OAAO;AACN,IAAA,0BAAA;AACA,IAAA,EAAA;AACA,IAAA,yCAAA;AACA,IAAA,yCAAA;AACAd,IAAAA,GAAAA,CAAI,YAAYQ,WAAAA,CAAAA;IAChBR,GAAAA,CAAI,oBAAA,EAAsBF,MAAAA,CAAOiB,iBAAAA,IAAqB,CAAA,CAAA;AACtDf,IAAAA,GAAAA,CAAI,mBAAA,EAAqBF,MAAAA,CAAOkB,aAAAA,EAAeC,mBAAAA,IAAuB,CAAA,CAAA;IACtEjB,GAAAA,CAAI,kBAAA,EAAoBF,MAAAA,CAAOoB,eAAAA,IAAmB,CAAA,CAAA;AAClDlB,IAAAA,GAAAA,CAAI,sBAAsBY,gBAAAA,CAAAA;IAC1BZ,GAAAA,CAAI,mBAAA,EAAqBF,MAAAA,CAAOqB,kBAAAA,IAAsB,CAAA,CAAA;AACtDnB,IAAAA,GAAAA,CAAI,eAAA,EAAiB,CAAA,CAAA,EAAIF,MAAAA,CAAOsB,WAAAA,IAAe,CAAA,CAAA,CAAG,CAAA;AAClD,IAAA,EAAA;IACA,CAAA,YAAA,EAAetB,MAAAA,CAAOuB,aAAa,SAAA,CAAA,CAAA;AACnC,IAAA,CAAA,YAAA,EAAehB,cAAAA,CAAAA,CAAAA;AACf,IAAA,CAAA,YAAA,EAAA,iBAAe,IAAIiB,IAAAA,EAAAA,EAAOC,WAAAA,EAAW,CAAA;AACpCxB,GAAAA,CAAAA,IAAAA,CAAK,IAAA,CAAA;AACR;AAvCgBF,MAAAA,CAAAA,cAAAA,EAAAA,gBAAAA,CAAAA","file":"ceremony-M7CXVBVA.js","sourcesContent":["/**\n * Ceremony Renderer\n *\n * Renders closing ceremony data as ≤80-char terminal output that is also valid markdown.\n * Used by `session end --ceremony` to display the session summary after daemon RPC call.\n *\n * CEREM-02: Every line MUST be ≤ 80 chars.\n * CEREM-03: All numeric values derived from bound observation records - no fabrication.\n * CEREM-04: This function is the CLI half of the ceremony surface.\n *\n * @module ui/ceremony\n */\n\n// =============================================================================\n// Types\n// =============================================================================\n\n/**\n * Ceremony display record - fields needed by renderCeremony().\n *\n * This is a structural subset compatible with ClosingCeremonyRecord from\n * apps/local-service. The CLI does not import from apps/local-service directly\n * (cross-app imports are forbidden per CLAUDE.md). Fields are optional to\n * support partial RPC responses and the null fallback path.\n */\nexport interface CeremonyDisplayRecord {\n\tsessionId?: string;\n\tworkspacePath?: string;\n\t/** Duration in milliseconds */\n\tduration?: number;\n\tlearningsCaptured?: number;\n\tcheckpointsCreated?: number;\n\ttokensSaved?: number;\n\ttokensSavedIsEstimate?: true;\n\tfragileFilesInSession?: Array<{ path: string; riskScore: number }>;\n\tsignalMetrics?: {\n\t\tprotectionDecisions?: number;\n\t\t[key: string]: unknown;\n\t};\n\t/** Count of critical signals - proxy for pitfalls avoided (CEREM-03) */\n\tpitfallsAvoided?: number;\n\t/** Sum of riskScores from fragile files in session (CEREM-03) */\n\tfragilityExposure?: number;\n\t[key: string]: unknown;\n}\n\n// =============================================================================\n// Constants\n// =============================================================================\n\n// Column widths: label col 21 chars, value col 15 chars\n// Row format: \"| {label:21}| {value:15}|\" = 2+21+1+1+15+1 = 41 chars total\n// Well within 80-char limit per CEREM-02.\nconst LABEL_WIDTH = 21;\nconst VALUE_WIDTH = 15;\n\n// =============================================================================\n// Renderer\n// =============================================================================\n\n/**\n * Render ceremony data as ≤80-char terminal output that is also valid markdown.\n * Returns the markdown string (caller writes to stdout).\n *\n * CEREM-02: Every line MUST be ≤ 80 chars.\n * CEREM-03: All numeric values derived from bound observation records - no fabrication.\n * CEREM-04: This function is the CLI half of the ceremony surface.\n *\n * @param record - Ceremony data from daemon RPC, or null if daemon unavailable.\n */\nexport function renderCeremony(record: CeremonyDisplayRecord | null): string {\n\tif (!record) {\n\t\treturn [\n\t\t\t\"## Vreko Session Summary\",\n\t\t\t\"\",\n\t\t\t\"Service not connected - ceremony data unavailable.\",\n\t\t\t\"\",\n\t\t\t\"Run `vreko session end` with a live service to see full summary.\",\n\t\t].join(\"\\n\");\n\t}\n\n\t// Format a table row: \"| {label:21}| {value:15}|\"\n\tconst row = (label: string, val: string | number): string =>\n\t\t`| ${label.padEnd(LABEL_WIDTH)}| ${String(val).padEnd(VALUE_WIDTH)}|`;\n\n\t// Privacy rule: show only last 12 chars of workspacePath (INV-PA-01/PA-02)\n\tconst workspaceShort = record.workspacePath ? record.workspacePath.slice(-12) : \"unknown\";\n\n\tconst durationMin = record.duration != null ? `${Math.round(record.duration / 60_000)} min` : \" - \";\n\n\tconst fragilityDisplay = record.fragilityExposure != null ? record.fragilityExposure.toFixed(1) : \" - \";\n\n\treturn [\n\t\t\"## Vreko Session Summary\",\n\t\t\"\",\n\t\t\"| Metric | Value |\",\n\t\t\"|---------------------|---------------|\",\n\t\trow(\"Duration\", durationMin),\n\t\trow(\"Learnings captured\", record.learningsCaptured ?? 0),\n\t\trow(\"Patterns surfaced\", record.signalMetrics?.protectionDecisions ?? 0),\n\t\trow(\"Pitfalls avoided\", record.pitfallsAvoided ?? 0),\n\t\trow(\"Fragility exposure\", fragilityDisplay),\n\t\trow(\"Snapshots created\", record.checkpointsCreated ?? 0),\n\t\trow(\"Token savings\", `~${record.tokensSaved ?? 0}`),\n\t\t\"\",\n\t\t`Session ID: ${record.sessionId ?? \"unknown\"}`,\n\t\t`Workspace: ${workspaceShort}`,\n\t\t`Generated: ${new Date().toISOString()}`,\n\t].join(\"\\n\");\n}\n"]}
|