Security News
GitHub Removes Malicious Pull Requests Targeting Open Source Repositories
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
screeps-bot-choreographer
Advanced tools
An bot for Screeps. Implemented following the OS pattern with processes communicating via Message Queues and Event Streams. Named after [Choreography in Event-Driven Architecture)[https://www.linkedin.com/pulse/orchestration-vs-choreography-why-do-some-architects-run-paul-perez/?trk=articles_directory].
npm install screeps-bot-choreographer --save
"choreographer": "node_modules/screeps-bot-choreographer/dist/main.js"
to mods.jsonBackup your existing scripts.
Note this project uses LF, not CRLF, and the linter will complain if it files with CRLFs. The project is setup for EditorConfig. Please use that.
Requirements:
npm install grunt-cli -g
npm install
Create .screeps.json
and provide credentials:
{
"email": "<email>",
"token": "<token>",
"branch": "default",
"ptr": false,
"private": {
"username": "<username>",
"password": "<password>",
"branch": "default",
"ptr": false
}
}
Token is gotten from the the account settings in the Screeps client. The private username and password for private servers are set via the private server CLI tool.
After making changes run linting, tests, and TS complication with grunt
.
Uploading of built TS+JS can be done by running grunt <world>
where <world>
can be mmo
, private
, or local
.
First-class business logic concepts:
The AI strategy is contained mostly in the Runnables and the Roles, which will sure the shared constants, functions, and libraries.
Communication between processes and other components is almost entirely done over Topics and Event Streams, items not using these methods are being moved to using them as needed.
The AI will focus on establishing an economy, build, repair, and defend it's bases. The build manager will spawn at least one Upgrader and will add more if there is energy above the defense reserve.
There are some debugging tools built into the project:
AI.getPathDebugger().debug(new RoomPosition(11, 12, 'W8N4'), new RoomPosition(25,25,'W7N6'), 1, 'warparty')
AI.getPathDebugger().clear()
AI.getCostMatrixDebugger().debug("W8N4", 'open_space')
AI.getCostMatrixDebugger().clear()
AI.kingdom.getPathCache().debug()
AI.getTopics().addRequestV2('attack_room', {priority: 1, details: {status: "requested", roomId: "E58N42"}, ttl: 100})
AI.getBasesDebugger().debug()
AI.getMinCutDebugger().debug(AI.getKingdom(), 'W6N1')
JSON.stringify(AI.getKingdom().getScribe().getRoomById('W8N4'))
AI.kingdom.sendRequest('nuker_targets', 1, {position: '28,35,E19S49'}, 100)
AI.getMusterDebugger().debug('W21S34')
There are a couple of helpful global variables:
Many of these persist between restarts, so make sure to unset them when you're finished with them.
METRIC_REPORT=true|false
- Will output aggregated tracing metric data to the consoleMETRIC_CONSOLE=true|false
- Will output tracing metric data to the consoleMETRIC_FILTER=<prefix>|null
- Will cause Tracer to report metrics for metrics that start with <prefix>
METRIC_MIN=<min ms>|0
- (default 0.5ms) Will cause Tracer to report metrics that are greater than <min ms>
LOG_WHEN_PID='<prefix>'|null
- Logs with tracers matching the prefix will be output to the consoleLOG_COLOR=true|false
- Will colorize the console outputRESET_PIDS=true|false
- Will reset the PID controllers - useful when PID controllers are spawning too many haulersFAQs
An bot for Screeps
We found that screeps-bot-choreographer demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
Security News
Node.js will be enforcing stricter semver-major PR policies a month before major releases to enhance stability and ensure reliable release candidates.