atris 3.25.0 → 3.25.2

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.
package/README.md CHANGED
@@ -87,7 +87,7 @@ Integrates with any agent.
87
87
 
88
88
  ## Chat With Atris 2
89
89
 
90
- `ax` is the Atris 2 chat and coding-agent CLI. It uses the hosted Atris cloud by default, streams text, shows tool activity, and keeps fresh installs away from backend setup.
90
+ `ax` is the Atris 2 chat and coding-agent CLI. It uses the hosted Atris cloud by default, streams text, shows tool activity, and keeps fresh installs away from local setup.
91
91
 
92
92
  ```bash
93
93
  cd your-project
package/ax CHANGED
@@ -349,7 +349,7 @@ function buildRunProfile(options = {}) {
349
349
  workspace_path: isCodeFastLocal(options) ? cwd : 'cloud scratch',
350
350
  max_turns: 1,
351
351
  streaming: false,
352
- runtime: isCodeFastLocal(options) ? 'local Cursor SDK through backend' : 'authenticated Code Fast cloud scratch',
352
+ runtime: isCodeFastLocal(options) ? 'local Cursor SDK bridge' : 'authenticated Code Fast cloud scratch',
353
353
  reasoning: 'Composer 2.5 fast lane; charges 10 credits per public turn'
354
354
  };
355
355
  }
@@ -368,10 +368,10 @@ function buildRunProfile(options = {}) {
368
368
  streaming: true,
369
369
  runtime: route === 'cloud' ? 'authenticated cloud connectors/chat' : 'local workspace',
370
370
  reasoning: mode === 'max'
371
- ? 'backend reports run row; Max workspace tool loop uses high reasoning effort'
371
+ ? 'Atris cloud service; Max workspace tool loop uses high reasoning effort'
372
372
  : mode === 'pro'
373
- ? 'backend reports run row; Pro workspace tool loop uses API default medium'
374
- : 'backend reports run row; Fast workspace tool loop uses provider default'
373
+ ? 'Atris cloud service; Pro workspace tool loop uses API default medium'
374
+ : 'Atris cloud service; Fast workspace tool loop uses provider default'
375
375
  };
376
376
  }
377
377
 
@@ -2872,16 +2872,18 @@ function formatChatDogfoodStatusReport(status) {
2872
2872
  return lines.join('\n');
2873
2873
  }
2874
2874
 
2875
- function printBackendHint() {
2875
+ function printBackendHint(options = {}) {
2876
2876
  console.log('');
2877
2877
  console.log('Hosted lane:');
2878
2878
  console.log('ax --cloud "hello"');
2879
2879
  console.log('');
2880
2880
  console.log('Cloud API:');
2881
2881
  console.log(`ATRIS_API_BASE=${BACKEND.publicBase}`);
2882
- console.log('');
2883
- console.log('Local workspace lane:');
2884
- console.log(`Set AX_BACKEND_URL=http://${BACKEND.host}:${BACKEND.port} after starting a local Atris2 backend.`);
2882
+ if (options.route === 'local' || options.forceLocal) {
2883
+ console.log('');
2884
+ console.log('Local developer lane:');
2885
+ console.log(`Set AX_BACKEND_URL=http://${BACKEND.host}:${BACKEND.port} after starting your local Atris2 service.`);
2886
+ }
2885
2887
  }
2886
2888
 
2887
2889
  function bufferedOutput() {
@@ -3243,7 +3245,7 @@ async function main() {
3243
3245
  console.log(formatDoneLine(result.durationMs, creditsFromState(result)));
3244
3246
  } catch (error) {
3245
3247
  console.error(`x ${error.message}`);
3246
- printBackendHint();
3248
+ printBackendHint(runOptions);
3247
3249
  process.exit(1);
3248
3250
  }
3249
3251
  }
package/bin/atris.js CHANGED
@@ -1455,7 +1455,7 @@ if (command === 'init') {
1455
1455
  console.error(`✗ Chat failed: ${error.message || error}`);
1456
1456
  process.exit(1);
1457
1457
  });
1458
- } else if (command === 'fast' || (command === 'ax' && process.argv[3] === 'fast')) {
1458
+ } else if (command === 'fast' || command === 'ax') {
1459
1459
  atrisFastChat()
1460
1460
  .then(() => process.exit(0))
1461
1461
  .catch((error) => {
package/commands/align.js CHANGED
@@ -466,6 +466,26 @@ async function alignHardLocalToCloud(token, biz, localDir) {
466
466
 
467
467
  async function alignAtris() {
468
468
  // Parse args
469
+ const printUsage = () => {
470
+ console.log('Usage: atris align [business] [--fix] [--hard] [--from cloud|local] [--dry-run]');
471
+ console.log('');
472
+ console.log(' atris align Diff current workspace against cloud (auto-detect)');
473
+ console.log(' atris align example-co Diff example-co workspace');
474
+ console.log(' atris align example-co --fix Fix drift (local is canonical by default)');
475
+ console.log(' atris align example-co --fix --hard Force-push: nuke cloud cruft, upload local. Skips diff. Fast.');
476
+ console.log(' atris align example-co --fix --from cloud Cloud is canonical: pull EC2-only, delete local extras');
477
+ console.log(' atris align example-co --dry-run Show what would change, do nothing');
478
+ };
479
+
480
+ // Explicit help must win before we try to auto-detect a business slug,
481
+ // otherwise `--help` gets overwritten by the .atris/business.json fallback
482
+ // and the command attempts a real align instead of printing usage.
483
+ const firstArg = process.argv[3];
484
+ if (firstArg === '--help' || firstArg === '-h' || firstArg === 'help') {
485
+ printUsage();
486
+ process.exit(0);
487
+ }
488
+
469
489
  let slug = process.argv[3];
470
490
  if (!slug || slug.startsWith('-')) {
471
491
  const bizFile = path.join(process.cwd(), '.atris', 'business.json');
@@ -475,15 +495,8 @@ async function alignAtris() {
475
495
  if (!slug || slug.startsWith('-')) slug = null;
476
496
  }
477
497
 
478
- if (!slug || slug === '--help' || slug === '-h' || slug === 'help') {
479
- console.log('Usage: atris align [business] [--fix] [--hard] [--from cloud|local] [--dry-run]');
480
- console.log('');
481
- console.log(' atris align Diff current workspace against cloud (auto-detect)');
482
- console.log(' atris align example-co Diff example-co workspace');
483
- console.log(' atris align example-co --fix Fix drift (local is canonical by default)');
484
- console.log(' atris align example-co --fix --hard Force-push: nuke cloud cruft, upload local. Skips diff. Fast.');
485
- console.log(' atris align example-co --fix --from cloud Cloud is canonical: pull EC2-only, delete local extras');
486
- console.log(' atris align example-co --dry-run Show what would change, do nothing');
498
+ if (!slug) {
499
+ printUsage();
487
500
  process.exit(0);
488
501
  }
489
502
 
package/commands/skill.js CHANGED
@@ -622,15 +622,19 @@ curl -s "https://api.atris.ai/api/integrations/YOUR_INTEGRATION/items" \\
622
622
  // --- CREATE subcommand ---
623
623
 
624
624
  function skillCreate(nameArg, ...flags) {
625
- if (!nameArg) {
626
- console.error('Usage: atris skill create <name> [--integration] [--description="..."] [--local]');
627
- console.error('');
628
- console.error('Examples:');
629
- console.error(' atris skill create daily-standup');
630
- console.error(' atris skill create email-outreach --integration');
631
- console.error(' atris skill create example-co/bol-processor --integration');
632
- console.error(' atris skill create my-skill --local # project only, skip system dirs');
633
- process.exit(1);
625
+ // A flag-shaped first arg is not a skill name (e.g. `skill create --help`);
626
+ // show usage instead of creating a junk folder named "--help".
627
+ const wantsHelp = nameArg === '--help' || nameArg === '-h' || nameArg === 'help';
628
+ if (!nameArg || nameArg.startsWith('-')) {
629
+ const out = wantsHelp ? console.log : console.error;
630
+ out('Usage: atris skill create <name> [--integration] [--description="..."] [--local]');
631
+ out('');
632
+ out('Examples:');
633
+ out(' atris skill create daily-standup');
634
+ out(' atris skill create email-outreach --integration');
635
+ out(' atris skill create example-co/bol-processor --integration');
636
+ out(' atris skill create my-skill --local # project only, skip system dirs');
637
+ process.exit(wantsHelp ? 0 : 1);
634
638
  }
635
639
 
636
640
  const isIntegration = flags.includes('--integration');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "atris",
3
- "version": "3.25.0",
3
+ "version": "3.25.2",
4
4
  "main": "bin/atris.js",
5
5
  "bin": {
6
6
  "atris": "bin/atris.js",