@maind-dev/cli 0.4.0 → 0.6.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,EAAE;AACF,gCAAgC;AAChC,EAAE;AACF,uEAAuE;AACvE,2EAA2E;AAC3E,gFAAgF;AAChF,sEAAsE;AACtE,EAAE;AACF,yEAAyE;AACzE,qEAAqE;AAErE,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtE,MAAM,OAAO,GAAG,OAAO,CAAC;AAExB,MAAM,IAAI,GAAG,SAAS,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkD5B,CAAC;AAEF,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAEpB,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;QAC/D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;QACrC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;QAC1B,OAAO,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;QACxB,OAAO,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;QACxB,OAAO,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,GAAG,0BAA0B,CAAC,CAAC;IAC/E,OAAO,CAAC,CAAC;AACX,CAAC;AAED,IAAI,EAAE;KACH,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAClC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACb,+EAA+E;IAC/E,2EAA2E;IAC3E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,7 @@ export class McpClient {
22
22
  apiKey;
23
23
  deviceId;
24
24
  clientVersion;
25
+ projectKey;
25
26
  sessionId = null;
26
27
  nextId = 1;
27
28
  initialized = false;
@@ -29,6 +30,7 @@ export class McpClient {
29
30
  this.apiKey = cfg.apiKey;
30
31
  this.deviceId = cfg.deviceId;
31
32
  this.clientVersion = cfg.clientVersion;
33
+ this.projectKey = cfg.projectKey ?? null;
32
34
  this.mcpUrl = cfg.mcpUrl ?? process.env.MAIND_MCP_URL ?? DEFAULT_MCP_URL;
33
35
  }
34
36
  headers() {
@@ -41,6 +43,8 @@ export class McpClient {
41
43
  };
42
44
  if (this.deviceId)
43
45
  h["x-maind-device-id"] = this.deviceId;
46
+ if (this.projectKey)
47
+ h["x-maind-project-key"] = this.projectKey;
44
48
  if (this.sessionId)
45
49
  h["mcp-session-id"] = this.sessionId;
46
50
  return h;
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-client.js","sourceRoot":"","sources":["../src/mcp-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-client.js","sourceRoot":"","sources":["../src/mcp-client.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,8EAA8E;AAC9E,6EAA6E;AAC7E,+EAA+E;AAC/E,0EAA0E;AAC1E,EAAE;AACF,4EAA4E;AAC5E,0EAA0E;AAE1E,MAAM,eAAe,GAAG,2BAA2B,CAAC;AACpD,MAAM,aAAa,GAAG,WAAW,CAAC;AA0BlC,MAAM,OAAO,QAAS,SAAQ,KAAK;IAGf;IAFlB,YACE,OAAe,EACC,IAAa;QAE7B,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,SAAI,GAAJ,IAAI,CAAS;QAG7B,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;AAED,MAAM,OAAO,SAAS;IACH,MAAM,CAAS;IACf,MAAM,CAAS;IACf,QAAQ,CAAgB;IACxB,aAAa,CAAS;IACtB,UAAU,CAAgB;IACnC,SAAS,GAAkB,IAAI,CAAC;IAChC,MAAM,GAAG,CAAC,CAAC;IACX,WAAW,GAAG,KAAK,CAAC;IAE5B,YAAY,GAAoB;QAC9B,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAC7B,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,eAAe,CAAC;IAC3E,CAAC;IAEO,OAAO;QACb,MAAM,CAAC,GAA2B;YAChC,cAAc,EAAE,kBAAkB;YAClC,MAAM,EAAE,qCAAqC;YAC7C,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;YACtC,uBAAuB,EAAE,aAAa;YACtC,wBAAwB,EAAE,IAAI,CAAC,aAAa;SAC7C,CAAC;QACF,IAAI,IAAI,CAAC,QAAQ;YAAE,CAAC,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC1D,IAAI,IAAI,CAAC,UAAU;YAAE,CAAC,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QAChE,IAAI,IAAI,CAAC,SAAS;YAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACzD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,oFAAoF;IACpF,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAC7B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE;YACjB,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE;gBACN,eAAe,EAAE,YAAY;gBAC7B,YAAY,EAAE,EAAE;gBAChB,UAAU,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE;aACjE;SACF,CAAC,CAAC;QACH,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,IAAI,QAAQ,CAAC,sBAAsB,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChG,CAAC;QACD,IAAI,GAAG,CAAC,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;QAClD,4EAA4E;QAC5E,uEAAuE;QACvE,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,2BAA2B,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CAAc,IAAY,EAAE,IAA6B;QACrE,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE;YACjB,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;SAClC,CAAC,CAAC;QACH,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,IAAI,QAAQ,CAAC,QAAQ,IAAI,YAAY,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClG,CAAC;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,MAAoC,CAAC;QAChE,MAAM,IAAI,GAAG,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,IAAI,CAAC;QACjG,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,IAAI,QAAQ,CAAC,QAAQ,IAAI,2BAA2B,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,QAAQ,CAAC,QAAQ,IAAI,yBAAyB,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,MAAW,CAAC;IACrB,CAAC;IAED,mEAAmE;IAC3D,KAAK,CAAC,IAAI,CAChB,KAA8B;QAE9B,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE;gBAClC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;gBACvB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;aAC5B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,QAAQ,CAAC,4BAA4B,IAAI,CAAC,MAAM,KAAK,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtF,CAAC;QAED,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAEnD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACnD,MAAM,IAAI,QAAQ,CAAC,wBAAwB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QACxE,CAAC;QACD,8EAA8E;QAC9E,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;QACvE,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACnD,MAAM,IAAI,QAAQ,CAAC,iBAAiB,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjG,CAAC;QAED,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC/D,MAAM,GAAG,GAAG,WAAW,CAAC,UAAU,CAAC,mBAAmB,CAAC;YACrD,CAAC,CAAC,MAAM,cAAc,CAAC,QAAQ,CAAC;YAChC,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAE1B,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;QACvE,CAAC;QACD,IAAI,OAAwB,CAAC;QAC7B,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAoB,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,QAAQ,CAAC,sCAAsC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAChF,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;IACrC,CAAC;CACF;AAED;;;GAGG;AACH,KAAK,UAAU,cAAc,CAAC,QAAkB;IAC9C,IAAI,CAAC,QAAQ,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,SAAS,GAAa,EAAE,CAAC;IAC7B,IAAI,WAAW,GAAG,EAAE,CAAC;IAErB,MAAM,KAAK,GAAG,GAAS,EAAE;QACvB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACnC,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5C,SAAS,GAAG,EAAE,CAAC;QACf,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,WAAW,GAAG,OAAO,CAAC;IAChD,CAAC,CAAC;IAEF,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,IAAI;YAAE,MAAM;QAChB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,IAAI,EAAU,CAAC;QACf,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACpC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACrE,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;gBAChB,KAAK,EAAE,CAAC;gBACR,SAAS;YACX,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS,CAAC,qBAAqB;YACzD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;gBAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IACD,KAAK,EAAE,CAAC;IACR,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,YAAY,CAAC,GAAY;IAChC,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,uCAAuC;IACzC,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACvC,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,GAAG,IAAI,KAAK;QAAE,OAAO,SAAS,CAAC;IACnC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
@@ -0,0 +1,231 @@
1
+ // Rendering of the `maind review` artifacts (ADR-228, Review-Layer M2):
2
+ // - review.md — full findings report for the human/agent (always written)
3
+ // - review manifest — machine-facing JSON (schema maind.review.manifest/v1),
4
+ // the attribution backbone analog to buildManifest()
5
+ // - PR comment — provider-neutral markdown the CI workflow posts via
6
+ // `gh api`; line 1 carries the idempotency marker so the
7
+ // workflow can update-instead-of-duplicate
8
+ //
9
+ // Binding format decisions (HANDOFF 2026-07-14 M2):
10
+ // - severities as text badges (`**[required]**`), no images/emoji
11
+ // - conventions cited as `id@version` WITHOUT links (no public convention page
12
+ // exists — don't invent 404s); lesson hints unlinked for the same reason
13
+ // - coverage_note verbatim as blockquote
14
+ // - comment capped at ~30 findings + pointer to the report artifact
15
+ // - footer "maind review · deterministic, provenance-backed"
16
+ const COMMENT_MARKER = "<!-- maind-review -->";
17
+ const COMMENT_FINDINGS_CAP = 30;
18
+ const FOOTER = "maind review · deterministic, provenance-backed";
19
+ export function buildReviewManifest(data, verdict, meta) {
20
+ const review = data.review;
21
+ return {
22
+ schema: "maind.review.manifest/v1",
23
+ generated_at: meta.generatedAt,
24
+ key_prefix: meta.keyPrefix,
25
+ run_ref: meta.runRef,
26
+ base: meta.base,
27
+ diff_stats: meta.diffStats,
28
+ symbol_count: meta.symbolCount,
29
+ risk_flags: review?.risk_flags ?? [],
30
+ findings: (review?.convention_findings ?? []).map((f) => ({
31
+ convention_id: f.convention_id,
32
+ version: f.convention_version,
33
+ severity: f.severity,
34
+ grade: f.grade,
35
+ matched_symbol_count: f.matched_symbols.length,
36
+ matched_changed_symbol_count: f.matched_changed_symbols?.length ?? 0,
37
+ })),
38
+ served: (review?.lesson_hints ?? []).map((l) => ({
39
+ id: l.id,
40
+ version: typeof l.version === "number" ? l.version : null,
41
+ tier: l.tier ?? null,
42
+ })),
43
+ verdict: verdict?.ok === true && typeof verdict.verdict === "string"
44
+ ? {
45
+ verdict: verdict.verdict,
46
+ counts: {
47
+ block: verdict.counts?.block ?? 0,
48
+ warn: verdict.counts?.warn ?? 0,
49
+ note: verdict.counts?.note ?? 0,
50
+ },
51
+ fail_on: meta.failOn,
52
+ }
53
+ : null,
54
+ coverage_note: review?.coverage_note ?? null,
55
+ };
56
+ }
57
+ function severityBadge(f) {
58
+ return `**[${f.severity}]**`;
59
+ }
60
+ function findingLine(f) {
61
+ const cite = `\`${f.convention_id}@v${f.convention_version}\``;
62
+ const grade = f.grade === "verdict" ? " · verdict-grade" : "";
63
+ const changed = f.matched_changed_symbols?.length ?? 0;
64
+ const matchInfo = changed > 0
65
+ ? `matched on changed symbols: ${formatSymbols(f.matched_changed_symbols ?? [])}`
66
+ : `matched (co-located): ${formatSymbols(f.matched_symbols)}`;
67
+ const summary = f.summary?.trim() ? ` — ${f.summary.trim()}` : "";
68
+ return `- ${severityBadge(f)} ${cite}${summary}${grade}\n ${matchInfo}`;
69
+ }
70
+ function formatSymbols(symbols, max = 4) {
71
+ const shown = symbols.slice(0, max).map((s) => `\`${s}\``);
72
+ const rest = symbols.length - shown.length;
73
+ return shown.join(", ") + (rest > 0 ? ` (+${rest} more)` : "");
74
+ }
75
+ function verdictLabel(verdict) {
76
+ const counts = verdict.counts ?? {};
77
+ return (`**Verdict: ${(verdict.verdict ?? "?").toUpperCase()}** ` +
78
+ `(block: ${counts.block ?? 0} · warn: ${counts.warn ?? 0} · note: ${counts.note ?? 0})`);
79
+ }
80
+ function baseLabel(meta) {
81
+ return meta.base ? `against \`${meta.base}\`` : "uncommitted work";
82
+ }
83
+ /** The full report artifact (`--out`, default .maind/review.md). */
84
+ export function renderReviewMarkdown(data, verdict, meta) {
85
+ const review = data.review;
86
+ const findings = review?.convention_findings ?? [];
87
+ const hints = review?.lesson_hints ?? [];
88
+ const riskFlags = review?.risk_flags ?? [];
89
+ const lines = [];
90
+ lines.push("<!-- Generated by `maind review` — do not edit by hand. -->");
91
+ lines.push(`<!-- generated_at: ${meta.generatedAt} | key: ${meta.keyPrefix}${meta.runRef ? ` | run: ${meta.runRef}` : ""} -->`);
92
+ lines.push("");
93
+ lines.push("# maind review");
94
+ lines.push("");
95
+ lines.push(`Reviewed ${baseLabel(meta)}: ${meta.symbolCount} changed symbol(s) across ` +
96
+ `${meta.diffStats?.changed_file_count ?? 0} file(s) · findings: ${findings.length} · ` +
97
+ `risk flags: ${riskFlags.length} · lesson hints: ${hints.length}`);
98
+ lines.push("");
99
+ if (verdict?.ok === true && verdict.verdict) {
100
+ lines.push(verdictLabel(verdict));
101
+ if (verdict.trust_note) {
102
+ lines.push("");
103
+ lines.push(`_${verdict.trust_note}_`);
104
+ }
105
+ lines.push("");
106
+ }
107
+ if (findings.length > 0) {
108
+ lines.push("## Convention findings");
109
+ lines.push("");
110
+ for (const f of findings)
111
+ lines.push(findingLine(f));
112
+ lines.push("");
113
+ }
114
+ else {
115
+ lines.push("## Convention findings");
116
+ lines.push("");
117
+ lines.push("_No convention findings for this change set._");
118
+ lines.push("");
119
+ }
120
+ if (riskFlags.length > 0) {
121
+ lines.push("## Risk flags");
122
+ lines.push("");
123
+ lines.push("_Path heuristics from the local diff — informational, they never block._");
124
+ lines.push("");
125
+ for (const flag of riskFlags)
126
+ lines.push(`- \`${flag}\``);
127
+ lines.push("");
128
+ }
129
+ if (hints.length > 0) {
130
+ lines.push("## Lesson hints");
131
+ lines.push("");
132
+ lines.push("_Semantic suggestions — advisory, never part of a verdict._");
133
+ lines.push("");
134
+ for (const h of hints) {
135
+ const parts = [`\`${h.id}\``];
136
+ if (h.tier)
137
+ parts.push(h.tier);
138
+ if (h.match_reason)
139
+ parts.push(h.match_reason);
140
+ lines.push(`- **${h.title}** (${parts.join(" · ")})`);
141
+ }
142
+ lines.push("");
143
+ }
144
+ if (review?.coverage_note) {
145
+ lines.push("## Coverage");
146
+ lines.push("");
147
+ lines.push(`> ${review.coverage_note}`);
148
+ lines.push("");
149
+ }
150
+ lines.push("---");
151
+ lines.push(FOOTER);
152
+ lines.push("");
153
+ return lines.join("\n");
154
+ }
155
+ /**
156
+ * The PR comment artifact (`--comment`). Line 1 is the idempotency marker the
157
+ * workflow greps for to update the existing comment instead of stacking a new
158
+ * one. The CLI never posts this itself — provider tokens stay in the workflow.
159
+ */
160
+ export function renderReviewComment(data, verdict, meta, reportPath) {
161
+ const review = data.review;
162
+ const findings = review?.convention_findings ?? [];
163
+ const riskFlags = review?.risk_flags ?? [];
164
+ const hints = review?.lesson_hints ?? [];
165
+ const lines = [];
166
+ lines.push(COMMENT_MARKER);
167
+ lines.push("## maind review");
168
+ lines.push("");
169
+ if (verdict?.ok === true && verdict.verdict) {
170
+ lines.push(verdictLabel(verdict));
171
+ lines.push("");
172
+ }
173
+ if (findings.length === 0) {
174
+ lines.push(`No convention findings for this change set (${meta.symbolCount} changed symbol(s) reviewed ${baseLabel(meta)}).`);
175
+ lines.push("");
176
+ }
177
+ else {
178
+ const shown = findings.slice(0, COMMENT_FINDINGS_CAP);
179
+ for (const f of shown)
180
+ lines.push(findingLine(f));
181
+ if (findings.length > shown.length) {
182
+ lines.push("");
183
+ lines.push(`…and ${findings.length - shown.length} more finding(s) — see the \`${reportPath}\` build artifact.`);
184
+ }
185
+ lines.push("");
186
+ }
187
+ if (riskFlags.length > 0) {
188
+ lines.push(`**Risk flags:** ${riskFlags.map((f) => `\`${f}\``).join(" · ")} _(heuristics, never blocking)_`);
189
+ lines.push("");
190
+ }
191
+ if (hints.length > 0) {
192
+ lines.push("**Related lessons:** " + hints.map((h) => `\`${h.id}\``).join(" · "));
193
+ lines.push("");
194
+ }
195
+ if (review?.coverage_note) {
196
+ lines.push(`> ${review.coverage_note}`);
197
+ lines.push("");
198
+ }
199
+ lines.push("---");
200
+ lines.push(`_${FOOTER}_`);
201
+ lines.push("");
202
+ return lines.join("\n");
203
+ }
204
+ /** Fail-open report — written so the artifact path always exists (CI-stable). */
205
+ export function renderFailOpenReview(meta, reason) {
206
+ return [
207
+ "<!-- Generated by `maind review` (fail-open path). -->",
208
+ `<!-- generated_at: ${meta.generatedAt} -->`,
209
+ "",
210
+ "# maind review",
211
+ "",
212
+ `_maind review was unavailable for this run: ${reason}_`,
213
+ "",
214
+ "The build can proceed normally — this file is informational only.",
215
+ "",
216
+ ].join("\n");
217
+ }
218
+ /** Fail-open PR comment — keeps the marker so a later fixed run replaces it. */
219
+ export function renderFailOpenComment(meta, reason) {
220
+ return [
221
+ COMMENT_MARKER,
222
+ "## maind review",
223
+ "",
224
+ `_maind review was unavailable for this run: ${reason}_`,
225
+ "",
226
+ "---",
227
+ `_${FOOTER}_`,
228
+ "",
229
+ ].join("\n");
230
+ }
231
+ //# sourceMappingURL=review-render.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-render.js","sourceRoot":"","sources":["../src/review-render.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,296 @@
1
+ // `maind review` — provenance-backed review findings for a change set (ADR-228,
2
+ // Review-Layer M2). Links the engine DIRECTLY (@maind/code-index/node — no bridge
3
+ // in CI): enumerates hunk-graded symbols + risk flags locally, sends the path-free
4
+ // review_args equivalent to the cloud tool review_changes, and renders the
5
+ // findings as a report artifact + optional PR-comment markdown.
6
+ //
7
+ // The CLI never posts the PR comment itself — provider tokens (GITHUB_TOKEN) stay
8
+ // in the workflow; the comment file carries the idempotency marker in line 1.
9
+ //
10
+ // Exit semantics (binding, HANDOFF 2026-07-14 M2):
11
+ // 0 advisory/pass — the default, fail-open like `context`/`ci-*`: findings,
12
+ // quota limits, plan gates, and infra errors all exit 0 so CI proceeds
13
+ // 1 ONLY a server verdict crossing `--fail-on` (requires `--gate`)
14
+ // 2 infra errors ONLY under `--strict`
15
+ // Plan-gate on `--gate` (no Team plan) = config hint + exit 0, findings still
16
+ // rendered — the advisory half never degrades because the gate half is gated.
17
+ import { execFileSync } from "node:child_process";
18
+ import { mkdirSync, writeFileSync } from "node:fs";
19
+ import { dirname } from "node:path";
20
+ import { createNodeCodeIndex } from "@maind/code-index/node";
21
+ import { MissingApiKeyError, resolveAuth } from "./auth.js";
22
+ import { gatherGitState } from "./git.js";
23
+ import { McpClient } from "./mcp-client.js";
24
+ import { buildReviewManifest, renderFailOpenComment, renderFailOpenReview, renderReviewComment, renderReviewMarkdown, } from "./review-render.js";
25
+ const PROJECT_KEY_RE = /^[a-f0-9]{64}$/;
26
+ const CLI_CLIENT_VERSION = "0.6.0";
27
+ const DEFAULT_COMMENT_PATH = ".maind/review-comment.md";
28
+ // review_changes caps changed_symbols at 64 server-side; the engine truncates
29
+ // co_located first, so the cap keeps the gating-relevant symbols.
30
+ const SYMBOL_CAP = 64;
31
+ /** Parses the `review` subcommand flags. Unknown flags are ignored (forward-compat). */
32
+ export function parseReviewArgs(argv) {
33
+ const get = (name) => {
34
+ const i = argv.indexOf(name);
35
+ if (i === -1 || i + 1 >= argv.length)
36
+ return undefined;
37
+ return argv[i + 1];
38
+ };
39
+ const has = (name) => argv.includes(name);
40
+ // `--comment [<path>]`: value is optional — a following token that looks like
41
+ // a flag means the default path is wanted.
42
+ let comment = null;
43
+ const ci = argv.indexOf("--comment");
44
+ if (ci !== -1) {
45
+ const next = argv[ci + 1];
46
+ comment = next && !next.startsWith("--") ? next : DEFAULT_COMMENT_PATH;
47
+ }
48
+ const failOnRaw = get("--fail-on");
49
+ const failOn = failOnRaw === "block" || failOnRaw === "warn" ? failOnRaw : null;
50
+ return {
51
+ base: get("--base") ?? null,
52
+ uncommitted: has("--uncommitted"),
53
+ summary: get("--summary") ?? null,
54
+ json: has("--json"),
55
+ out: get("--out") ?? ".maind/review.md",
56
+ comment,
57
+ gate: has("--gate"),
58
+ failOn,
59
+ strict: has("--strict"),
60
+ noReport: has("--no-report"),
61
+ projectKey: get("--project-key") ?? null,
62
+ mcpUrl: get("--mcp-url") ?? null,
63
+ runRef: get("--run-ref") ?? process.env.GITHUB_RUN_ID ?? null,
64
+ clientVersion: CLI_CLIENT_VERSION,
65
+ };
66
+ }
67
+ function nowIso() {
68
+ return new Date().toISOString();
69
+ }
70
+ function writeArtifact(path, content) {
71
+ const dir = dirname(path);
72
+ if (dir && dir !== ".")
73
+ mkdirSync(dir, { recursive: true });
74
+ writeFileSync(path, content, "utf8");
75
+ }
76
+ /** Manifest path derived from the report path (review.md → review.json). */
77
+ export function manifestPathFor(out) {
78
+ return out.endsWith(".md") ? out.slice(0, -3) + ".json" : out + ".json";
79
+ }
80
+ /**
81
+ * Exit-1 decision (binding matrix): `--fail-on block` fails only on block,
82
+ * `--fail-on warn` on warn or block. Pure so the matrix is unit-testable.
83
+ */
84
+ export function verdictCrossesFailOn(verdict, failOn) {
85
+ return failOn === "block" ? verdict === "block" : verdict === "block" || verdict === "warn";
86
+ }
87
+ /** git repo top-level, or null when not in a repo (review is git-based). */
88
+ function resolveRepoRoot() {
89
+ try {
90
+ return execFileSync("git", ["rev-parse", "--show-toplevel"], {
91
+ encoding: "utf8",
92
+ stdio: ["ignore", "pipe", "ignore"],
93
+ }).trim();
94
+ }
95
+ catch {
96
+ return null;
97
+ }
98
+ }
99
+ /** Runs the review. See the exit-semantics contract at the top of this file. */
100
+ export async function runReview(opts) {
101
+ const meta = {
102
+ generatedAt: nowIso(),
103
+ keyPrefix: "unknown",
104
+ runRef: opts.runRef,
105
+ base: opts.base,
106
+ mcpUrl: opts.mcpUrl ?? process.env.MAIND_MCP_URL ?? "https://mcp.maind.dev/mcp",
107
+ symbolCount: 0,
108
+ diffStats: null,
109
+ gate: opts.gate,
110
+ failOn: opts.gate ? opts.failOn : null,
111
+ };
112
+ if (opts.failOn && !opts.gate) {
113
+ warn("--fail-on has no effect without --gate (advisory runs always exit 0).");
114
+ }
115
+ const failOpen = (reason) => {
116
+ warn(`review unavailable, ${opts.strict ? "failing (--strict)" : "continuing"}: ${reason}`);
117
+ try {
118
+ writeArtifact(opts.out, renderFailOpenReview(meta, reason));
119
+ const manifest = buildReviewManifest({}, null, meta);
120
+ manifest.error = reason;
121
+ writeArtifact(manifestPathFor(opts.out), JSON.stringify(manifest, null, 2) + "\n");
122
+ if (opts.comment)
123
+ writeArtifact(opts.comment, renderFailOpenComment(meta, reason));
124
+ if (opts.json)
125
+ process.stdout.write(JSON.stringify(manifest, null, 2) + "\n");
126
+ }
127
+ catch (writeErr) {
128
+ warn(`could not write fail-open artifacts: ${msg(writeErr)}`);
129
+ return opts.strict ? 2 : 1; // truly unwritable output path
130
+ }
131
+ return opts.strict ? 2 : 0;
132
+ };
133
+ try {
134
+ // ── 1. Local engine: hunk-graded symbols + risk flags (nothing uploaded) ──
135
+ const root = resolveRepoRoot();
136
+ if (!root) {
137
+ return failOpen("not a git repository — review is diff-based.");
138
+ }
139
+ const engine = createNodeCodeIndex({ repoRoot: root });
140
+ let result;
141
+ try {
142
+ const status = await engine.status();
143
+ if (!status.indexed || status.fileCount === 0) {
144
+ // Fresh CI checkout: no local index yet. v1 = full index run (fast on
145
+ // repo-scale; scoped indexPaths() is a later optimization).
146
+ warn("no local index found — building it now (first run in this checkout)…");
147
+ const stats = await engine.indexRepository();
148
+ warn(`indexed ${stats.filesParsed} file(s) in ${Math.round(stats.durationMs / 1000)}s.`);
149
+ }
150
+ result = await engine.reviewChanges({
151
+ since: opts.base ?? undefined,
152
+ includeUncommitted: opts.base ? opts.uncommitted : true,
153
+ limit: SYMBOL_CAP,
154
+ });
155
+ }
156
+ finally {
157
+ await engine.close().catch(() => undefined);
158
+ }
159
+ const diffStats = {
160
+ changed_file_count: result.changedFiles,
161
+ unindexed_file_count: result.changedFiles - result.indexedFiles,
162
+ stale_file_count: result.staleFiles,
163
+ truncated: result.truncated,
164
+ hunk_coverage: result.hunkCoverage,
165
+ base_kind: result.baseKind,
166
+ };
167
+ meta.diffStats = diffStats;
168
+ meta.symbolCount = result.symbols.length;
169
+ const summary = opts.summary?.trim() || undefined;
170
+ if (result.symbols.length === 0 && result.riskFlags.length === 0 && !summary) {
171
+ // Nothing to review — write honest empty artifacts, no server round-trip.
172
+ const empty = {
173
+ ok: true,
174
+ review: {
175
+ convention_findings: [],
176
+ lesson_hints: [],
177
+ risk_flags: [],
178
+ coverage_note: result.changedFiles === 0
179
+ ? "No changed files detected."
180
+ : "Changed files found but no indexed symbols — nothing reviewable at symbol level.",
181
+ },
182
+ };
183
+ writeAll(empty, null, meta, opts);
184
+ process.stderr.write(`maind review: no reviewable changes (${result.changedFiles} changed file(s)) → ${opts.out}\n`);
185
+ return 0;
186
+ }
187
+ // ── 2. Cloud: review_changes with the path-free review_args equivalent ──
188
+ // Same shaping as the bridge tool codebase_review_changes: symbol names /
189
+ // kinds / change grades + closed-enum risk flags — paths, lines, node keys
190
+ // and diff content never leave the machine.
191
+ const auth = resolveAuth();
192
+ meta.keyPrefix = auth.keyPrefix;
193
+ const overrideKey = opts.projectKey?.trim().toLowerCase();
194
+ const projectKey = overrideKey && PROJECT_KEY_RE.test(overrideKey)
195
+ ? overrideKey
196
+ : gatherGitState().projectKey;
197
+ const client = new McpClient({
198
+ apiKey: auth.apiKey,
199
+ deviceId: auth.deviceId,
200
+ clientVersion: opts.clientVersion,
201
+ mcpUrl: opts.mcpUrl ?? undefined,
202
+ projectKey,
203
+ });
204
+ const reviewArgs = {
205
+ changed_symbols: result.symbols.map((s) => ({
206
+ name: s.name,
207
+ qualified_name: s.qualifiedName,
208
+ kind: s.kind,
209
+ language: s.language,
210
+ change: s.change,
211
+ changed_line_count: s.changedLineCount,
212
+ })),
213
+ risk_flags: result.riskFlags,
214
+ diff_stats: diffStats,
215
+ ...(summary ? { change_summary: summary } : {}),
216
+ ...(projectKey ? { project_key: projectKey } : {}),
217
+ };
218
+ const review = await client.callTool("review_changes", reviewArgs);
219
+ if (review.ok !== true || !review.review) {
220
+ return failOpen(`review_changes rejected: ${review.error ?? "unknown_error"}${review.message ? ` — ${review.message}` : ""}`);
221
+ }
222
+ // ── 3. Optional gate: server-side verdict (Team plan) ──
223
+ let verdict = null;
224
+ if (opts.gate) {
225
+ const findings = review.review.convention_findings ?? [];
226
+ try {
227
+ verdict = await client.callTool("review_verdict", {
228
+ findings: findings.map((f) => ({
229
+ convention_id: f.convention_id,
230
+ convention_version: f.convention_version,
231
+ matched_symbols: f.matched_symbols,
232
+ matched_changed_symbols: f.matched_changed_symbols ?? [],
233
+ })),
234
+ risk_flags: review.review.risk_flags ?? [],
235
+ ...(projectKey ? { project_key: projectKey } : {}),
236
+ });
237
+ if (verdict.ok !== true) {
238
+ if (verdict.error === "requires_team" || verdict.error === "requires_enterprise") {
239
+ // Config situation, not a failure: advisory findings stand, gate is a
240
+ // paid feature. Deliberately exit 0 (binding decision).
241
+ warn("gate skipped: review_verdict is a Team-plan feature — findings below are advisory. " +
242
+ (verdict.message ?? "Upgrade at https://maind.dev/pricing."));
243
+ verdict = null;
244
+ }
245
+ else {
246
+ if (opts.strict) {
247
+ return failOpen(`review_verdict failed: ${verdict.error ?? "unknown_error"}${verdict.message ? ` — ${verdict.message}` : ""}`);
248
+ }
249
+ warn(`gate unavailable (continuing advisory): ${verdict.error ?? "unknown_error"}`);
250
+ verdict = null;
251
+ }
252
+ }
253
+ }
254
+ catch (err) {
255
+ if (opts.strict)
256
+ return failOpen(`review_verdict failed: ${msg(err)}`);
257
+ warn(`gate unavailable (continuing advisory): ${msg(err)}`);
258
+ verdict = null;
259
+ }
260
+ }
261
+ // ── 4. Artifacts + exit code ──
262
+ writeAll(review, verdict, meta, opts);
263
+ const findingCount = review.review.convention_findings?.length ?? 0;
264
+ const verdictNote = verdict?.verdict ? ` · verdict: ${verdict.verdict}` : "";
265
+ process.stderr.write(`maind review: ${findingCount} finding(s), ${review.review.risk_flags?.length ?? 0} risk flag(s)` +
266
+ `${verdictNote} → ${opts.out}\n`);
267
+ if (opts.gate && opts.failOn && verdict?.verdict) {
268
+ if (verdictCrossesFailOn(verdict.verdict, opts.failOn)) {
269
+ warn(`verdict '${verdict.verdict}' crossed --fail-on ${opts.failOn} — failing the check.`);
270
+ return 1;
271
+ }
272
+ }
273
+ return 0;
274
+ }
275
+ catch (err) {
276
+ const reason = err instanceof MissingApiKeyError ? err.message : msg(err);
277
+ return failOpen(reason);
278
+ }
279
+ }
280
+ function writeAll(review, verdict, meta, opts) {
281
+ writeArtifact(opts.out, renderReviewMarkdown(review, verdict, meta));
282
+ const manifest = buildReviewManifest(review, verdict, meta);
283
+ writeArtifact(manifestPathFor(opts.out), JSON.stringify(manifest, null, 2) + "\n");
284
+ if (opts.comment) {
285
+ writeArtifact(opts.comment, renderReviewComment(review, verdict, meta, opts.out));
286
+ }
287
+ if (opts.json)
288
+ process.stdout.write(JSON.stringify(manifest, null, 2) + "\n");
289
+ }
290
+ function msg(err) {
291
+ return err instanceof Error ? err.message : String(err);
292
+ }
293
+ function warn(line) {
294
+ process.stderr.write(`maind review: ${line}\n`);
295
+ }
296
+ //# sourceMappingURL=review.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review.js","sourceRoot":"","sources":["../src/review.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,kFAAkF;AAClF,mFAAmF;AACnF,2EAA2E;AAC3E,gEAAgE;AAChE,EAAE;AACF,kFAAkF;AAClF,8EAA8E;AAC9E,EAAE;AACF,mDAAmD;AACnD,+EAA+E;AAC/E,4EAA4E;AAC5E,sEAAsE;AACtE,0CAA0C;AAC1C,8EAA8E;AAC9E,8EAA8E;AAE9E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG7D,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,GAKrB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,cAAc,GAAG,gBAAgB,CAAC;AACxC,MAAM,kBAAkB,GAAG,OAAO,CAAC;AACnC,MAAM,oBAAoB,GAAG,0BAA0B,CAAC;AACxD,8EAA8E;AAC9E,kEAAkE;AAClE,MAAM,UAAU,GAAG,EAAE,CAAC;AAqBtB,wFAAwF;AACxF,MAAM,UAAU,eAAe,CAAC,IAAc;IAC5C,MAAM,GAAG,GAAG,CAAC,IAAY,EAAsB,EAAE;QAC/C,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QACvD,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,CAAC,CAAC;IACF,MAAM,GAAG,GAAG,CAAC,IAAY,EAAW,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE3D,8EAA8E;IAC9E,2CAA2C;IAC3C,IAAI,OAAO,GAAkB,IAAI,CAAC;IAClC,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACrC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;QACd,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAC1B,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC;IACzE,CAAC;IAED,MAAM,SAAS,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IAEhF,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI;QAC3B,WAAW,EAAE,GAAG,CAAC,eAAe,CAAC;QACjC,OAAO,EAAE,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI;QACjC,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC;QACnB,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,kBAAkB;QACvC,OAAO;QACP,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC;QACnB,MAAM;QACN,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC;QACvB,QAAQ,EAAE,GAAG,CAAC,aAAa,CAAC;QAC5B,UAAU,EAAE,GAAG,CAAC,eAAe,CAAC,IAAI,IAAI;QACxC,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI;QAChC,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI;QAC7D,aAAa,EAAE,kBAAkB;KAClC,CAAC;AACJ,CAAC;AAED,SAAS,MAAM;IACb,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC;AAED,SAAS,aAAa,CAAC,IAAY,EAAE,OAAe;IAClD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG;QAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC;AAC1E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAe,EACf,MAAwB;IAExB,OAAO,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,MAAM,CAAC;AAC9F,CAAC;AAED,4EAA4E;AAC5E,SAAS,eAAe;IACtB,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE;YAC3D,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SACpC,CAAC,CAAC,IAAI,EAAE,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAmB;IACjD,MAAM,IAAI,GAAe;QACvB,WAAW,EAAE,MAAM,EAAE;QACrB,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,2BAA2B;QAC/E,WAAW,EAAE,CAAC;QACd,SAAS,EAAE,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;KACvC,CAAC;IACF,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,uEAAuE,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAU,EAAE;QAC1C,IAAI,CAAC,uBAAuB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,YAAY,KAAK,MAAM,EAAE,CAAC,CAAC;QAC5F,IAAI,CAAC;YACH,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YAC5D,MAAM,QAAQ,GAAG,mBAAmB,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACrD,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC;YACxB,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YACnF,IAAI,IAAI,CAAC,OAAO;gBAAE,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YACnF,IAAI,IAAI,CAAC,IAAI;gBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAChF,CAAC;QAAC,OAAO,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,wCAAwC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,+BAA+B;QAC7D,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,IAAI,CAAC;QACH,6EAA6E;QAC7E,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,QAAQ,CAAC,8CAA8C,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,IAAI,MAA2B,CAAC;QAChC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;gBAC9C,sEAAsE;gBACtE,4DAA4D;gBAC5D,IAAI,CAAC,sEAAsE,CAAC,CAAC;gBAC7E,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,eAAe,EAAE,CAAC;gBAC7C,IAAI,CAAC,WAAW,KAAK,CAAC,WAAW,eAAe,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3F,CAAC;YACD,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC;gBAClC,KAAK,EAAE,IAAI,CAAC,IAAI,IAAI,SAAS;gBAC7B,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI;gBACvD,KAAK,EAAE,UAAU;aAClB,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,SAAS,GAAoB;YACjC,kBAAkB,EAAE,MAAM,CAAC,YAAY;YACvC,oBAAoB,EAAE,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY;YAC/D,gBAAgB,EAAE,MAAM,CAAC,UAAU;YACnC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,aAAa,EAAE,MAAM,CAAC,YAAY;YAClC,SAAS,EAAE,MAAM,CAAC,QAAQ;SAC3B,CAAC;QACF,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QAEzC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;QAClD,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7E,0EAA0E;YAC1E,MAAM,KAAK,GAA0B;gBACnC,EAAE,EAAE,IAAI;gBACR,MAAM,EAAE;oBACN,mBAAmB,EAAE,EAAE;oBACvB,YAAY,EAAE,EAAE;oBAChB,UAAU,EAAE,EAAE;oBACd,aAAa,EACX,MAAM,CAAC,YAAY,KAAK,CAAC;wBACvB,CAAC,CAAC,4BAA4B;wBAC9B,CAAC,CAAC,kFAAkF;iBACzF;aACF,CAAC;YACF,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,wCAAwC,MAAM,CAAC,YAAY,uBAAuB,IAAI,CAAC,GAAG,IAAI,CAC/F,CAAC;YACF,OAAO,CAAC,CAAC;QACX,CAAC;QAED,2EAA2E;QAC3E,0EAA0E;QAC1E,2EAA2E;QAC3E,4CAA4C;QAC5C,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAEhC,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC1D,MAAM,UAAU,GACd,WAAW,IAAI,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC;YAC7C,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,cAAc,EAAE,CAAC,UAAU,CAAC;QAElC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;YAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,SAAS;YAChC,UAAU;SACX,CAAC,CAAC;QAEH,MAAM,UAAU,GAA4B;YAC1C,eAAe,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC1C,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,cAAc,EAAE,CAAC,CAAC,aAAa;gBAC/B,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,kBAAkB,EAAE,CAAC,CAAC,gBAAgB;aACvC,CAAC,CAAC;YACH,UAAU,EAAE,MAAM,CAAC,SAAS;YAC5B,UAAU,EAAE,SAAS;YACrB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnD,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAwB,gBAAgB,EAAE,UAAU,CAAC,CAAC;QAC1F,IAAI,MAAM,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACzC,OAAO,QAAQ,CACb,4BAA4B,MAAM,CAAC,KAAK,IAAI,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC7G,CAAC;QACJ,CAAC;QAED,0DAA0D;QAC1D,IAAI,OAAO,GAAiC,IAAI,CAAC;QACjD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,IAAI,EAAE,CAAC;YACzD,IAAI,CAAC;gBACH,OAAO,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAwB,gBAAgB,EAAE;oBACvE,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC7B,aAAa,EAAE,CAAC,CAAC,aAAa;wBAC9B,kBAAkB,EAAE,CAAC,CAAC,kBAAkB;wBACxC,eAAe,EAAE,CAAC,CAAC,eAAe;wBAClC,uBAAuB,EAAE,CAAC,CAAC,uBAAuB,IAAI,EAAE;qBACzD,CAAC,CAAC;oBACH,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE;oBAC1C,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACnD,CAAC,CAAC;gBACH,IAAI,OAAO,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;oBACxB,IAAI,OAAO,CAAC,KAAK,KAAK,eAAe,IAAI,OAAO,CAAC,KAAK,KAAK,qBAAqB,EAAE,CAAC;wBACjF,sEAAsE;wBACtE,wDAAwD;wBACxD,IAAI,CACF,qFAAqF;4BACnF,CAAC,OAAO,CAAC,OAAO,IAAI,uCAAuC,CAAC,CAC/D,CAAC;wBACF,OAAO,GAAG,IAAI,CAAC;oBACjB,CAAC;yBAAM,CAAC;wBACN,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;4BAChB,OAAO,QAAQ,CACb,0BAA0B,OAAO,CAAC,KAAK,IAAI,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9G,CAAC;wBACJ,CAAC;wBACD,IAAI,CACF,2CAA2C,OAAO,CAAC,KAAK,IAAI,eAAe,EAAE,CAC9E,CAAC;wBACF,OAAO,GAAG,IAAI,CAAC;oBACjB,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,IAAI,CAAC,MAAM;oBAAE,OAAO,QAAQ,CAAC,0BAA0B,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACvE,IAAI,CAAC,2CAA2C,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC5D,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;QACH,CAAC;QAED,iCAAiC;QACjC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAEtC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,MAAM,IAAI,CAAC,CAAC;QACpE,MAAM,WAAW,GAAG,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,eAAe,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,iBAAiB,YAAY,gBAAgB,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,eAAe;YAC/F,GAAG,WAAW,MAAM,IAAI,CAAC,GAAG,IAAI,CACnC,CAAC;QAEF,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;YACjD,IAAI,oBAAoB,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvD,IAAI,CACF,YAAY,OAAO,CAAC,OAAO,uBAAuB,IAAI,CAAC,MAAM,uBAAuB,CACrF,CAAC;gBACF,OAAO,CAAC,CAAC;YACX,CAAC;QACH,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,GAAG,YAAY,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1E,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CACf,MAA6B,EAC7B,OAAqC,EACrC,IAAgB,EAChB,IAAmB;IAEnB,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC5D,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACnF,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACpF,CAAC;IACD,IAAI,IAAI,CAAC,IAAI;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,GAAG,CAAC,GAAY;IACvB,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,IAAI,CAAC,IAAY;IACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC;AAClD,CAAC"}