atris 3.15.41 → 3.15.43

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.
Files changed (2) hide show
  1. package/commands/play.js +35 -5
  2. package/package.json +1 -1
package/commands/play.js CHANGED
@@ -250,11 +250,21 @@ function starterMissionPrompt(player) {
250
250
  `Player ${player}: enter AgentXP Mode in this local workspace.`,
251
251
  'Pick one small useful contribution you can finish today: improve a doc, verify setup, create a handoff, or fix a tiny tool.',
252
252
  'Have an agent help produce a real artifact plus verifier proof.',
253
- 'Do not self-accept; when proof is ready, show accept/revise.',
253
+ 'When proof is ready, review it before accept/revise; weak proof should be revised.',
254
254
  'Win condition: one accepted proof-backed rep visible on the local AgentXP card.',
255
255
  ].join(' ');
256
256
  }
257
257
 
258
+ function proofRecipe() {
259
+ return {
260
+ artifact: 'Create or update one concrete artifact in this folder, for example AGENTXP_PROOF.md, README.md, or a small fixed file.',
261
+ verifier: 'Run a command that can fail if proof is missing or broken, for example test -s AGENTXP_PROOF.md or npm test.',
262
+ ready_proof: 'Paste the artifact path and verifier result into atris task ready.',
263
+ review: 'Accept only after reviewing the proof; weak proof should be revised.',
264
+ solo_review_rule: 'For a solo public smoke, accept only after you inspect the proof. For team missions, use a separate human reviewer.',
265
+ };
266
+ }
267
+
258
268
  function globalSyncCommands(player) {
259
269
  return [
260
270
  'atris login',
@@ -263,6 +273,16 @@ function globalSyncCommands(player) {
263
273
  ];
264
274
  }
265
275
 
276
+ function handleSourceLine(state) {
277
+ const source = state.player_source || 'unknown';
278
+ if (source === 'flag') return 'Handle source: --as/--player.';
279
+ if (source === 'env') return 'Handle source: ATRIS_PLAYER/ATRIS_USERNAME.';
280
+ if (source === 'atris_account' || source === 'atris_session' || source === 'atris_profile') {
281
+ return `Handle source: ${source.replace(/_/g, ' ')}.`;
282
+ }
283
+ return 'Handle source: inferred. To choose one, run atris play --as <handle> or ATRIS_PLAYER=<handle> atris play.';
284
+ }
285
+
266
286
  function ensureStarterMission(taskDb, db, workspaceRoot, player, tasks, args = []) {
267
287
  if (hasFlag(args, '--no-seed')) return { tasks, seeded: null };
268
288
  if (selectMission(tasks, player)) return { tasks, seeded: null };
@@ -319,7 +339,7 @@ function nextCommands(task, player) {
319
339
  if (task.status === 'open') {
320
340
  return [
321
341
  `atris task claim ${ref} --as ${helper}`,
322
- `atris task ready ${ref} --as ${helper} --proof "<artifact path + verifier result>"`,
342
+ `atris task ready ${ref} --as ${helper} --proof "AGENTXP_PROOF.md + test -s AGENTXP_PROOF.md passed"`,
323
343
  `atris task accept ${ref} --as ${player} --proof "<human review>"`,
324
344
  'atris xp card --local',
325
345
  ...globalSyncCommands(player),
@@ -329,7 +349,7 @@ function nextCommands(task, player) {
329
349
  if (task.status === 'claimed') {
330
350
  const actor = task.claimed_by || helper;
331
351
  return [
332
- `atris task ready ${ref} --as ${actor} --proof "<artifact path + verifier result>"`,
352
+ `atris task ready ${ref} --as ${actor} --proof "AGENTXP_PROOF.md + test -s AGENTXP_PROOF.md passed"`,
333
353
  `atris task accept ${ref} --as ${player} --proof "<human review>"`,
334
354
  'atris xp card --local',
335
355
  ...globalSyncCommands(player),
@@ -396,7 +416,8 @@ function modeState(args = []) {
396
416
  claimed_by: mission.claimed_by || null,
397
417
  prompt: latestMessage(events),
398
418
  } : null,
399
- xp_rule: 'AgentXP lands only after proof is ready and a human accepts the task.',
419
+ proof_recipe: proofRecipe(),
420
+ xp_rule: 'AgentXP lands only after a useful artifact has verifier proof and review accepts it.',
400
421
  global_sync_rule: AGENTXP_GLOBAL_SYNC_RULE,
401
422
  leaderboard_url: AGENTXP_LEADERBOARD_URL,
402
423
  next_commands: commandList,
@@ -407,6 +428,7 @@ function render(state) {
407
428
  console.log('');
408
429
  console.log('AgentXP Mode');
409
430
  console.log(`Player ${state.player} | Workspace ${state.workspace_name}`);
431
+ console.log(handleSourceLine(state));
410
432
  console.log('');
411
433
 
412
434
  if (!state.mission) {
@@ -430,9 +452,17 @@ function render(state) {
430
452
  }
431
453
  console.log('');
432
454
  console.log('Win condition: real artifact + verifier + human accept.');
433
- console.log('XP rule: no proof, no AgentXP; accept/revise stays human-gated.');
455
+ console.log('XP rule: no proof, no AgentXP; accept/revise is the review gate.');
434
456
  console.log('Global sync: run atris login, then sync; owner tokens are guided-demo fallback only.');
435
457
  console.log(`Leaderboard: ${state.leaderboard_url}`);
458
+ if (state.proof_recipe) {
459
+ console.log('');
460
+ console.log('Proof recipe:');
461
+ console.log(`- Artifact: ${state.proof_recipe.artifact}`);
462
+ console.log(`- Verifier: ${state.proof_recipe.verifier}`);
463
+ console.log(`- Ready proof: ${state.proof_recipe.ready_proof}`);
464
+ console.log(`- Review: ${state.proof_recipe.review}`);
465
+ }
436
466
  console.log('');
437
467
  console.log('Next commands:');
438
468
  for (const command of state.next_commands) console.log(`- ${command}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "atris",
3
- "version": "3.15.41",
3
+ "version": "3.15.43",
4
4
  "main": "bin/atris.js",
5
5
  "bin": {
6
6
  "atris": "bin/atris.js",