<commit_before>file structure:

/play
  /pages
    index.js
  /components
    index.js
    ...
  /redux
    actionTypes.js
    actions.js
    reducer.js
    epics.js
    index.js


state:

{
  ui: {
    repo: <string>,
    gitref: <string>,
    source: <string>,
    showPanel: <boolean>,
    currentServerId: <string>,
    currentKernelName: <string>,
    platform: <string>
  },
  entities: {
    serversById: {
      <ID>: {
        server: {
          config: {
              endpoint: <string>,
              token: <string>,
              uri: <string>,
              crossDomain: <boolean>
          },
          messages: <array>,
          kernelSpecs: {
            kernelSpecByKernelName: {
              <NAME>: {
                name: <NAME>,
                resources: <object>,
                spec: <object>
              }
            },
            error: <object>,
            default: <string>,
            loading: <boolean>
          }
          activeKernelsByName: {
            <NAME>: {
              kernel: {
                name: <NAME>,
                id: <string>,
                lastActivity: <string>,
                channel: <observable>,
                outputs: <array>,
                status: <string>,
                messages: <array><commit_msg>update play plan with correct channel type (#2300)<commit_after>file structure:

/play
  /pages
    index.js
  /components
    index.js
    ...
  /redux
    actionTypes.js
    actions.js
    reducer.js
    epics.js
    index.js


state:

{
  ui: {
    repo: <string>,
    gitref: <string>,
    source: <string>,
    showPanel: <boolean>,
    currentServerId: <string>,
    currentKernelName: <string>,
    platform: <string>
  },
  entities: {
    serversById: {
      <ID>: {
        server: {
          config: {
              endpoint: <string>,
              token: <string>,
              uri: <string>,
              crossDomain: <boolean>
          },
          messages: <array>,
          kernelSpecs: {
            kernelSpecByKernelName: {
              <NAME>: {
                name: <NAME>,
                resources: <object>,
                spec: <object>
              }
            },
            error: <object>,
            default: <string>,
            loading: <boolean>
          }
          activeKernelsByName: {
            <NAME>: {
              kernel: {
                name: <NAME>,
                id: <string>,
                lastActivity: <string>,
                channel: <rxjs$Subject>,
                outputs: <array>,
                status: <string>,
                messages: <array>
{'fraction_non_alphanumeric': 0.1184562476117692, 'fraction_numerical': 0.0015284677111196026, 'mean_word_length': 1.1963087248322148, 'pattern_counts': {'":': 0, '<': 59, '<?xml version=': 0, '>': 59, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4531573', 'n_tokens_mistral': 735, 'n_tokens_neox': 714, 'n_words': 158}