matrixcode 0.2.3

A smart code agent CLI with multi-model support, context compression, and task planning
Documentation
version: 3

vars:
  VERSION: 0.2.1

tasks:
  status:
    desc: Show version and status
    cmds:
      - 'grep "^version" Cargo.toml'
      - 'git status --short'

  login-npm:
    desc: Login to npm from .env
    cmds:
      - cmd: node -e "const os=require('os');const fs=require('fs');const m=fs.readFileSync('.env','utf8').match(/NPM_TOKEN=([^\\s]+)/);if(m){fs.writeFileSync(os.homedir()+'/.npmrc','//registry.npmjs.org/:_authToken='+m[1])}"
      - npm whoami

  login-cargo:
    desc: Login to cargo from .env
    cmds:
      - cmd: node -e "const os=require('os');const fs=require('fs');const m=fs.readFileSync('.env','utf8').match(/CARGO_TOKEN=([^\\s]+)/);if(m){fs.writeFileSync(os.homedir()+'/.cargo/credentials.toml','[registry]\\n token = \\\"'+m[1]+'\\\"')}"

  login:
    desc: Login to npm and cargo
    cmds:
      - task: login-npm
      - task: login-cargo

  bump:
    desc: Bump all versions
    cmds:
      - cmd: node -e "const fs=require('fs');const v='{{.CLI_ARGS}}';const c=fs.readFileSync('Cargo.toml','utf8').replace(/^version = .*/m,'version = \"'+v+'\"');fs.writeFileSync('Cargo.toml',c)"
      - cmd: node -e "const fs=require('fs');const v='{{.CLI_ARGS}}';const p=JSON.parse(fs.readFileSync('npm/package.json'));p.version=v;fs.writeFileSync('npm/package.json',JSON.stringify(p,null,2))"
      - echo "Bumped to {{.CLI_ARGS}}"

  tag:
    desc: Create git tag
    cmds:
      - 'git add Cargo.toml npm/package.json Cargo.lock'
      - 'git commit -m "chore: bump to {{.CLI_ARGS}}"'
      - 'git tag {{.CLI_ARGS}}'
      - 'git push origin dev'
      - 'git push origin {{.CLI_ARGS}}'

  publish-npm:
    desc: Publish to npm
    dir: npm
    cmds:
      - task: login-npm
      - 'cp ../LICENSE .'
      - 'npm publish --access=public'

  publish-cargo:
    desc: Publish to cargo
    cmds:
      - task: login-cargo
      - 'cargo publish --registry crates-io'

  publish:
    desc: Publish npm and cargo
    cmds:
      - task: login
      - task: publish-npm
      - task: publish-cargo

  release:
    desc: Full release workflow
    cmds:
      - task: login
      - task: bump
        vars: {CLI_ARGS: '{{.CLI_ARGS}}'}
      - task: tag
        vars: {CLI_ARGS: '{{.CLI_ARGS}}'}
      - 'sleep 30'
      - task: publish-npm
      - task: publish-cargo

  build:
    desc: Build release
    cmds:
      - 'cargo build --release'

  test:
    desc: Run tests
    cmds:
      - 'cargo test'

  default:
    desc: List tasks
    cmds:
      - 'task --list'