ubiquity-os / ubiquity-os-kernel

1 stars 13 forks source link

Design Config Schema to Support "Piping" #24

Closed 0x4007 closed 7 months ago

0x4007 commented 7 months ago

This should include an updated schema for the UNIX style pipe syntax, as well as the kernel code to support this by pinging remote plugins and then understanding to pipe their output until the end of the chain, then return to kernel.

I think it makes more sense to focus on designing a .yml config schema that is compatible with "unix style piping" so that the kernel knows to pipe output from one plugin to the next just from the ubiquibot-config.yml information.

Originally posted by @pavlovcik in https://github.com/ubiquity/ubiquibot-kernel/issues/3#issuecomment-1950223872

ubiquibot[bot] commented 7 months ago
! action has an uncaught error
0x4007 commented 7 months ago

This schema should work but we need to figure out the implementation details of how exactly the plugins will 1. respond to the kernel, and 2. how the kernel handles the response and 3. sends it to the next plugin via a standard kernel-plugin interface.

We will need to design some type of flexible interface that is universally applicable for communications between the kernel and the plugins.

For example, in this very complex workflow, we have with values that work with specific plugins inside of that chain. I suppose the other plugins may be able to simply ignore unrecognized inputs?

issues.closed:
    - name: "Payout"
      description: "Payout for closed as completed issues."
      # matches: "^\/payout$"
      # example: "/payout"
      uses:
        - ubiquibot/conversation-incentives@d2ef733 # the magic is that this will only return a `{ username: string; reward: number }[]`
        - ubiquibot/permit-generation@9a16ad0 # this will consume the above output and return only the permit information
        - ubiquibot/conversation-incentives-comment@fb32084 # this will consume the above output and return only the conversation rewards
      with:

        incentives:
          comment:
            elements:
              code: 1
              img: 0
              h1: 1
              h2: 1
              h3: 1
              h4: 1
              h5: 1
              h6: 1
              li: 0.5
              a: 1
              blockquote: 0
              i: 0
            totals:
              word: 0.1

        fundExternalClosedIssue: true
        promotionComment: "<h6>If you've enjoyed your experience in the DevPool, we'd appreciate your support. Follow <a href='https://github.com/ubiquity'>Ubiquity on GitHub</a> and star <a href='https://github.com/ubiquity/devpool-directory'>this repo</a>. Your endorsement means the world to us and helps us grow!</h6><h6>We are excited to announce that the DevPool and UbiquiBot are now available to partners! Our ideal collaborators are globally distributed crypto-native organizations, who actively work on open source on GitHub, and excel in research & development. If you can introduce us to the repository maintainers in these types of companies, we have a special bonus in store for you!</h6>"
        maxPermitPrice: 1000
        evmNetworkId: 100
        basePriceMultiplier: 2
        issueCreatorMultiplier: 3
        evmPrivateEncrypted: A3_ALEuhyNzvhgu7oH0qCyG59WTsP7NCmOGZ651cd0FKRl8Zd1bQMsciJU0WAXhAAQaWUGUArDygtwrTDF_VF_peS6Sqgv-j1f5doUeZUdAMsp9qddd4eggFR0pMbAtFOjf2FM5Ckwz2bztzJYDnrg
ubiquibot[bot] commented 7 months ago
# Issue was not closed as completed. Skipping.