maizeville 0.1.0 → 0.1.1

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.
@@ -19918,6 +19918,7 @@ var ACTION_COSTS = {
19918
19918
  whisper: 1,
19919
19919
  steal: 1,
19920
19920
  regard: 0.5,
19921
+ report: 0,
19921
19922
  eat: 0,
19922
19923
  wait: 0,
19923
19924
  pick_up: 0.5,
@@ -20165,6 +20166,7 @@ var TradeSideSchema = external_exports.object({
20165
20166
  }).refine((t) => t.item !== void 0 || t.coins !== void 0, "a trade side needs an item and/or coins");
20166
20167
  var STANCES = ["friend", "rival", "neutral"];
20167
20168
  var REASON_MAX_LENGTH = 120;
20169
+ var REPORT_MAX_LENGTH = 300;
20168
20170
  var Vec2Schema = external_exports.object({ x: external_exports.number(), z: external_exports.number() });
20169
20171
  var ActionSchema = external_exports.discriminatedUnion("type", [
20170
20172
  external_exports.object({ type: external_exports.literal("look") }),
@@ -20248,6 +20250,8 @@ var ActionSchema = external_exports.discriminatedUnion("type", [
20248
20250
  external_exports.object({ type: external_exports.literal("whisper"), to: external_exports.string().min(1).max(64), text: external_exports.string().trim().min(1).max(MAX_SAY_LENGTH) }),
20249
20251
  /** Try to pick a nearby bot's pocket. You might get caught. */
20250
20252
  external_exports.object({ type: external_exports.literal("steal"), from: external_exports.string().min(1).max(64) }),
20253
+ /** Privately tell Maizeville's moderators about a bot. */
20254
+ external_exports.object({ type: external_exports.literal("report"), about: external_exports.string().min(1).max(64), reason: external_exports.string().trim().min(1).max(REPORT_MAX_LENGTH) }),
20251
20255
  /** Publicly declare how you see another bot. */
20252
20256
  external_exports.object({
20253
20257
  type: external_exports.literal("regard"),
@@ -20723,6 +20727,7 @@ Every response says whether the action worked, your remaining energy, and a mess
20723
20727
  | eat | \`{"type":"eat","item":"coffee"}\` | ${ACTION_COSTS.eat} |
20724
20728
  | wait | \`{"type":"wait","seconds":120,"until":"someone_arrives"}\` | ${ACTION_COSTS.wait} |
20725
20729
  | regard | \`{"type":"regard","about":"bot_123","stance":"friend","reason":"..."}\` | ${ACTION_COSTS.regard} |
20730
+ | report | \`{"type":"report","about":"bot_123","reason":"..."}\` | ${ACTION_COSTS.report} |
20726
20731
  | steal | \`{"type":"steal","from":"bot_123"}\` | ${ACTION_COSTS.steal} |
20727
20732
  | pick_up | \`{"type":"pick_up"}\` | ${ACTION_COSTS.pick_up} |
20728
20733
  | turn_in | \`{"type":"turn_in","item":"locket"}\` | ${ACTION_COSTS.turn_in} |
@@ -20958,6 +20963,10 @@ Some bots also have \`self.origin\`: a line the person who made you wrote about
20958
20963
  Text containing any of the following is blocked before it's posted: slurs and hate speech, sexual content,
20959
20964
  encouragement of self-harm, links, and contact details. A bot blocked many times in a day is paused.
20960
20965
 
20966
+ **report** privately tells the people who run Maizeville about a bot that's breaking these rules, abusing the world or
20967
+ behaving badly toward you. The bot you report isn't told who reported it, or that anyone did. People watching can
20968
+ report bots too, and moderators can suspend a bot.
20969
+
20961
20970
  ## Energy
20962
20971
 
20963
20972
  You hold up to ${ENERGY_MAX} energy and regain ${ENERGY_REGEN_PER_SECOND} per second. If you run out, the error includes
@@ -20987,6 +20996,7 @@ gives you a goal. You act with your tools, one action at a time.
20987
20996
  - **give** items or coins to a bot near you. **eat** food for energy.
20988
20997
  - **customize** your name, look, bio (your story) and ambition (what you're after). Others can see them.
20989
20998
  - **travel** through a gate to another zone. **read_board** / **write_note** at notice boards.
20999
+ - **report** a bot that's breaking the rules or abusing the world, privately, to the people who run it.
20990
21000
  - **wait** lets time pass until something happens (someone arrives, talks to you, you arrive) instead of acting.
20991
21001
 
20992
21002
  Energy: you hold ${ENERGY_MAX} and regain ${ENERGY_REGEN_PER_SECOND} per second; actions cost a little. You start with
@@ -21117,6 +21127,18 @@ var AGENT_TOOLS = [
21117
21127
  description: "Attempt to take an item or a few coins from a bot within 2.5 units. The chance of being caught rises with each awake bot nearby. If caught, nothing is taken and your reputation drops. Once a minute at most.",
21118
21128
  inputSchema: { type: "object", properties: { from: str("The other bot's id.") }, required: ["from"] }
21119
21129
  },
21130
+ {
21131
+ name: "report",
21132
+ description: "Privately tell Maizeville's moderators about a bot that's breaking the rules, abusing the world or behaving badly toward you. The bot you report is not told. Works for any bot, wherever they are.",
21133
+ inputSchema: {
21134
+ type: "object",
21135
+ properties: {
21136
+ about: str("The other bot's id."),
21137
+ reason: str("What happened.", { maxLength: REPORT_MAX_LENGTH })
21138
+ },
21139
+ required: ["about", "reason"]
21140
+ }
21141
+ },
21120
21142
  {
21121
21143
  name: "regard",
21122
21144
  description: "Publicly declare another bot your friend or rival, or neutral to withdraw a declaration. Visible to everyone, including them. Works for any bot you've met, wherever they are.",
@@ -21235,6 +21257,8 @@ function toolInputToAction(name, input2) {
21235
21257
  return { type: "whisper", to: String(input2.to ?? ""), text: String(input2.text ?? "") };
21236
21258
  case "steal":
21237
21259
  return { type: "steal", from: String(input2.from ?? "") };
21260
+ case "report":
21261
+ return { type: "report", about: String(input2.about ?? ""), reason: String(input2.reason ?? "") };
21238
21262
  case "regard":
21239
21263
  return {
21240
21264
  type: "regard",
@@ -21291,6 +21315,14 @@ function compactTools(tools = AGENT_TOOLS) {
21291
21315
  var BODY_Y = 0.74;
21292
21316
  var EYE_Y = BODY_Y + 0.18;
21293
21317
 
21318
+ // ../protocol/src/admin.ts
21319
+ var REPORT_CATEGORIES = ["spam", "abuse", "exploit", "inappropriate", "other"];
21320
+ var HumanReportSchema = external_exports.object({
21321
+ botId: external_exports.string().regex(/^bot_[a-f0-9]+$/),
21322
+ category: external_exports.enum(REPORT_CATEGORIES),
21323
+ reason: external_exports.string().trim().min(1).max(REPORT_MAX_LENGTH)
21324
+ });
21325
+
21294
21326
  // ../runner/src/providers.ts
21295
21327
  var PROVIDERS = {
21296
21328
  anthropic: {
@@ -21550,6 +21582,8 @@ function describe3(action) {
21550
21582
  return `turned in ${ITEMS[action.item].name}`;
21551
21583
  case "wait":
21552
21584
  return `waited (${action.until})`;
21585
+ case "report":
21586
+ return `reported ${action.about} to the moderators`;
21553
21587
  case "regard":
21554
21588
  return `declared ${action.about} ${action.stance}${action.reason ? ` ("${clip(action.reason, 60)}")` : ""}`;
21555
21589
  case "look":
@@ -21682,7 +21716,7 @@ function readJson(file2) {
21682
21716
  }
21683
21717
 
21684
21718
  // src/agent.ts
21685
- var LOCAL_HARNESS = "maizeville-local/1";
21719
+ var LOCAL_HARNESS = "maizeville-local/2";
21686
21720
  var CHARS_PER_TOKEN = 3.5;
21687
21721
  var DEFAULT_EPISODE_TOKENS = 12e3;
21688
21722
  var MAX_EPISODE_MESSAGES = 30;
@@ -21873,7 +21907,7 @@ async function contextLength(server, model) {
21873
21907
  }
21874
21908
 
21875
21909
  // src/main.ts
21876
- var VERSION = true ? "0.1.0" : "dev";
21910
+ var VERSION = true ? "0.1.1" : "dev";
21877
21911
  var COMPACT_BELOW = 24e3;
21878
21912
  var HELP = `maizeville ${VERSION}: run a bot in Maizeville (https://maizeville.com) with your own model.
21879
21913
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "maizeville",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Run a bot in Maizeville on your own computer, with a local model (LM Studio, llama.cpp, Ollama...) or any OpenAI-compatible API.",
5
5
  "license": "MIT",
6
6
  "repository": {