omnara 0.6.0 → 0.6.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.
Files changed (73) hide show
  1. package/README.md +23 -10
  2. package/bin/omnara.js +56 -17
  3. package/package.json +24 -55
  4. package/dist/auth/auth-provider.d.ts +0 -26
  5. package/dist/auth/cli-auth-service.d.ts +0 -26
  6. package/dist/auth/credential-manager.d.ts +0 -13
  7. package/dist/auth/credentials-store.d.ts +0 -20
  8. package/dist/auth/ensure-cli-credentials.d.ts +0 -8
  9. package/dist/auth/login-flow.d.ts +0 -11
  10. package/dist/auth/loopback-listener.d.ts +0 -20
  11. package/dist/auth/pkce.d.ts +0 -6
  12. package/dist/cli.d.ts +0 -3
  13. package/dist/cli.js +0 -19479
  14. package/dist/cli.js.map +0 -7
  15. package/dist/commands/agent.d.ts +0 -9
  16. package/dist/commands/auth.d.ts +0 -2
  17. package/dist/commands/daemon.d.ts +0 -2
  18. package/dist/commands/index.d.ts +0 -4
  19. package/dist/commands/kill.d.ts +0 -2
  20. package/dist/config/omnara-config.d.ts +0 -19
  21. package/dist/daemon/config-store.d.ts +0 -37
  22. package/dist/daemon/daemon-client.d.ts +0 -27
  23. package/dist/daemon/daemon-launcher.d.ts +0 -39
  24. package/dist/daemon/daemon-service.d.ts +0 -30
  25. package/dist/daemon/directory-registry.d.ts +0 -17
  26. package/dist/daemon/local-control-server.d.ts +0 -38
  27. package/dist/daemon/machine-supervisor.d.ts +0 -63
  28. package/dist/daemon/paths.d.ts +0 -16
  29. package/dist/daemon/run-daemon.d.ts +0 -1
  30. package/dist/daemon/session-pid-registry.d.ts +0 -11
  31. package/dist/daemon/session-runner.d.ts +0 -38
  32. package/dist/daemon/state-store.d.ts +0 -14
  33. package/dist/env/env-mode.d.ts +0 -2
  34. package/dist/http/api-client.d.ts +0 -19
  35. package/dist/http/machines.d.ts +0 -3
  36. package/dist/http/user-sessions.d.ts +0 -16
  37. package/dist/http/workspaces.d.ts +0 -4
  38. package/dist/index.d.ts +0 -1
  39. package/dist/orchestrator/agent-orchestrator.d.ts +0 -103
  40. package/dist/orchestrator/ai-client.d.ts +0 -33
  41. package/dist/orchestrator/orchestrator-prompt.d.ts +0 -8
  42. package/dist/orchestrator/orchestrator-prompt.md +0 -222
  43. package/dist/orchestrator/orchestrator-types.d.ts +0 -168
  44. package/dist/orchestrator/session.d.ts +0 -83
  45. package/dist/orchestrator/tools/worker-tools.d.ts +0 -10
  46. package/dist/orchestrator/utils/completions-manager.d.ts +0 -8
  47. package/dist/orchestrator/utils/envelope-utils.d.ts +0 -13
  48. package/dist/orchestrator/utils/index.d.ts +0 -2
  49. package/dist/orchestrator/utils/session-logger.d.ts +0 -7
  50. package/dist/orchestrator/utils/worker-events.d.ts +0 -7
  51. package/dist/orchestrator/utils/worktree-manager.d.ts +0 -51
  52. package/dist/orchestrator/worker-manager.d.ts +0 -81
  53. package/dist/orchestrator/worker-types.d.ts +0 -23
  54. package/dist/orchestrator-prompt.md +0 -222
  55. package/dist/package-info.d.ts +0 -12
  56. package/dist/relay/relay-bridge.d.ts +0 -65
  57. package/dist/relay/relay-service.d.ts +0 -19
  58. package/dist/schemas/index.d.ts +0 -2
  59. package/dist/utils/backoff.d.ts +0 -6
  60. package/dist/utils/browser.d.ts +0 -1
  61. package/dist/utils/claude-code-check.d.ts +0 -19
  62. package/dist/utils/executable.d.ts +0 -53
  63. package/dist/utils/logger.d.ts +0 -143
  64. package/dist/utils/prompt.d.ts +0 -1
  65. package/dist/utils/version-check.d.ts +0 -43
  66. package/dist/utils/websocket.d.ts +0 -5
  67. package/instrument.mjs +0 -14
  68. package/scripts/build-executable.ts +0 -244
  69. package/scripts/copy-assets.mjs +0 -41
  70. package/scripts/generate-release-json.ts +0 -136
  71. package/scripts/preinstall.js +0 -141
  72. package/scripts/test-preinstall.js +0 -124
  73. package/scripts/upload-release.ts +0 -388
package/README.md CHANGED
@@ -1,20 +1,33 @@
1
- # Omnara CLI
1
+ # Omnara npm Package Deprecated
2
2
 
3
- The Omnara CLI launches a coding agent that streams its activity to your Omnara dashboard at [omnara.com](https://www.omnara.com). Sign in once, start the orchestrator from your terminal, and follow along (or respond) from the web or mobile apps. You can also attach a real-time voice worker to any active session.
3
+ The `omnara` package on npm is deprecated.
4
4
 
5
- ## Quick Start
5
+ This package does not install the current Omnara CLI.
6
+
7
+ Omnara now installs as a local CLI/daemon that connects your machine to the Omnara web, desktop, and mobile apps.
8
+
9
+ Install the current Omnara CLI on macOS, Linux, or Windows WSL with:
6
10
 
7
11
  ```bash
8
- npm install -g omnara
12
+ curl -fsSL https://omnara.com/install.sh | bash
13
+ ```
14
+
15
+ Then run Omnara from a git repository:
9
16
 
10
- # Start the synced coding agent experience
17
+ ```bash
11
18
  omnara
12
19
  ```
13
20
 
14
- Running `omnara` bootstraps the agent orchestrator. The first launch prompts you to authenticate in the browser; after that the CLI reconnects automatically.
21
+ On native Windows PowerShell, use:
22
+
23
+ ```powershell
24
+ irm https://omnara.com/install.ps1 | iex
25
+ ```
26
+
27
+ This npm package is only a compatibility redirect for users who find old `npm install -g omnara` or `npx omnara` instructions.
15
28
 
16
- ## Helpful Commands
29
+ Links:
17
30
 
18
- - `omnara auth login|status|logout` — manage the cached Omnara credentials used by the CLI.
19
- - `omnara agent voice --session-id <id>` — invite the Omnara voice worker into an existing agent session so you can talk to your coder in real time.
20
- - `omnara agent orchestrator` — launch the orchestrator explicitly when scripting or running in headless environments.
31
+ - Website: https://omnara.com
32
+ - Docs: https://docs.omnara.com
33
+ - Current CLI installer: https://omnara.com/install.sh
package/bin/omnara.js CHANGED
@@ -1,26 +1,65 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import fs from 'fs';
4
- import path from 'path';
5
- import { fileURLToPath, pathToFileURL } from 'url';
3
+ const UNIX_INSTALL_COMMAND = 'curl -fsSL https://omnara.com/install.sh | bash';
4
+ const WINDOWS_INSTALL_COMMAND = 'irm https://omnara.com/install.ps1 | iex';
5
+ const VERSION = '0.6.1';
6
6
 
7
- const __filename = fileURLToPath(import.meta.url);
8
- const __dirname = path.dirname(__filename);
9
-
10
- const distEntry = path.join(__dirname, '..', 'dist', 'cli.js');
11
- const instrumentEntry = path.join(__dirname, '..', 'instrument.mjs');
7
+ function installCommand() {
8
+ return process.platform === 'win32' ? WINDOWS_INSTALL_COMMAND : UNIX_INSTALL_COMMAND;
9
+ }
12
10
 
13
- if (!fs.existsSync(distEntry)) {
14
- console.error(
15
- 'Could not find the compiled CLI at dist/cli.js. ' +
16
- 'Run `npm install` followed by `npm run build` inside the omnara package.',
11
+ function printNotice() {
12
+ console.log("The npm package 'omnara' is deprecated.");
13
+ console.log('');
14
+ console.log('This package did not install the current Omnara CLI.');
15
+ console.log(
16
+ 'Omnara now installs as a local CLI/daemon that connects your machine to the Omnara web, desktop, and mobile apps.',
17
17
  );
18
- process.exit(1);
18
+ console.log('');
19
+ console.log('Installer commands:');
20
+ console.log('');
21
+ console.log(' macOS, Linux, or Windows WSL:');
22
+ console.log(` ${UNIX_INSTALL_COMMAND}`);
23
+ console.log('');
24
+ console.log(' Windows PowerShell:');
25
+ console.log(` ${WINDOWS_INSTALL_COMMAND}`);
26
+ console.log('');
27
+ console.log('Then run Omnara from a git repository:');
28
+ console.log('');
29
+ console.log(' omnara');
30
+ console.log('');
31
+ console.log('Docs: https://docs.omnara.com');
32
+ }
33
+
34
+ function printHelp() {
35
+ console.log('usage: omnara [--print-command] [--version] [--help]');
36
+ console.log('');
37
+ console.log('Deprecated npm redirect for the Omnara CLI.');
38
+ console.log('');
39
+ console.log('options:');
40
+ console.log(' --print-command Print only the platform-specific installer command.');
41
+ console.log(' --version Print this redirect package version.');
42
+ console.log(' -h, --help Show this help message.');
19
43
  }
20
44
 
21
- if (fs.existsSync(instrumentEntry)) {
22
- await import(pathToFileURL(instrumentEntry).href);
45
+ function main(argv) {
46
+ if (argv.includes('--version')) {
47
+ console.log(`omnara npm redirect ${VERSION}`);
48
+ return 0;
49
+ }
50
+
51
+ if (argv.includes('--print-command')) {
52
+ console.log(installCommand());
53
+ return 0;
54
+ }
55
+
56
+ if (argv.includes('--help') || argv.includes('-h')) {
57
+ printHelp();
58
+ return 0;
59
+ }
60
+
61
+ printNotice();
62
+ return 1;
23
63
  }
24
64
 
25
- const { run } = await import(pathToFileURL(distEntry).href);
26
- await run(process.argv);
65
+ process.exitCode = main(process.argv.slice(2));
package/package.json CHANGED
@@ -1,69 +1,38 @@
1
1
  {
2
2
  "name": "omnara",
3
- "version": "0.6.0",
4
- "type": "module",
5
- "description": "Command-line interface for Omnara.",
6
- "main": "dist/cli.js",
7
- "types": "dist/cli.d.ts",
3
+ "version": "0.6.1",
4
+ "description": "Deprecated npm redirect for Omnara. Install the current CLI with curl -fsSL https://omnara.com/install.sh | bash.",
8
5
  "bin": {
9
6
  "omnara": "./bin/omnara.js"
10
7
  },
11
- "scripts": {
12
- "build": "npm run build:types && node build.mjs && npm run copy-assets",
13
- "build:types": "tsc --emitDeclarationOnly --project tsconfig.json",
14
- "build:exe": "bun run scripts/build-executable.ts",
15
- "build:exe:all": "bun run scripts/build-executable.ts --all",
16
- "build:release": "bun run scripts/build-executable.ts --all && bun run scripts/generate-release-json.ts",
17
- "copy-assets": "node scripts/copy-assets.mjs",
18
- "preinstall": "node scripts/preinstall.js"
19
- },
20
- "keywords": [
21
- "omnara",
22
- "cli"
23
- ],
24
- "author": "Omnara",
25
- "license": "UNLICENSED",
26
8
  "files": [
27
- "dist",
28
9
  "bin",
29
- "instrument.mjs",
30
- "scripts",
31
10
  "README.md"
32
11
  ],
33
- "dependencies": {
34
- "@anthropic-ai/claude-agent-sdk": "^0.1.42",
35
- "@anthropic-ai/sdk": "^0.67.0",
36
- "@modelcontextprotocol/sdk": "^1.20.1",
37
- "@sentry/node": "^10.28.0",
38
- "@types/glob": "^8.1.0",
39
- "ajv": "^8.17.1",
40
- "ajv-formats": "^2.1.1",
41
- "chalk": "^4.1.2",
42
- "commander": "^11.1.0",
43
- "glob": "^9.3.5",
44
- "jsonc-parser": "^3.3.1",
45
- "simple-git": "^3.30.0",
46
- "ws": "^8.18.3",
47
- "zod": "^3.25.76"
12
+ "keywords": [
13
+ "omnara",
14
+ "cli",
15
+ "deprecated",
16
+ "installer",
17
+ "ai",
18
+ "agents"
19
+ ],
20
+ "author": "Omnara <contact@omnara.com>",
21
+ "license": "Apache-2.0",
22
+ "homepage": "https://omnara.com",
23
+ "repository": {
24
+ "type": "git",
25
+ "url": "git+https://github.com/omnara/omnara-voice.git",
26
+ "directory": "packaging/deprecated-npm-omnara"
48
27
  },
49
- "devDependencies": {
50
- "@omnara/shared-js": "file:../shared-js",
51
- "@types/node": "^20.11.30",
52
- "@types/ws": "^8.18.1",
53
- "@typescript-eslint/eslint-plugin": "^8.46.2",
54
- "@typescript-eslint/parser": "^8.46.2",
55
- "@vitest/ui": "^2.1.8",
56
- "esbuild": "^0.25.12",
57
- "eslint": "^9.38.0",
58
- "eslint-formatter-unix": "^8.40.0",
59
- "json-schema-to-typescript": "^14.0.1",
60
- "prettier": "^3.6.2",
61
- "tsx": "^4.7.0",
62
- "typescript": "^5.4.0",
63
- "typescript-eslint": "^8.46.2",
64
- "vitest": "^2.1.8"
28
+ "bugs": {
29
+ "url": "https://github.com/omnara/omnara-voice/issues"
30
+ },
31
+ "scripts": {
32
+ "test": "node tests/redirect.test.js",
33
+ "pack:check": "npm pack --dry-run"
65
34
  },
66
35
  "engines": {
67
- "node": ">=20"
36
+ "node": ">=16"
68
37
  }
69
38
  }
@@ -1,26 +0,0 @@
1
- import { CredentialsStore } from './credentials-store.js';
2
- import { type AuthContext } from './credential-manager.js';
3
- import { performVerificationLogin } from './login-flow.js';
4
- export interface AuthProviderOptions {
5
- store: CredentialsStore;
6
- backendUrl: string;
7
- frontendUrl?: string;
8
- logger?: Console;
9
- interactive?: boolean;
10
- login?: typeof performVerificationLogin;
11
- }
12
- export interface AuthAccessOptions {
13
- interactive?: boolean;
14
- }
15
- export declare class AuthProvider {
16
- private readonly options;
17
- private lastBadPat;
18
- private readonly defaultInteractive;
19
- private readonly backendUrl;
20
- constructor(options: AuthProviderOptions);
21
- getAuthContext(options?: AuthAccessOptions): Promise<AuthContext>;
22
- getAccessToken(options?: AuthAccessOptions): Promise<string>;
23
- private loadAuthContext;
24
- private performLogin;
25
- }
26
- export declare function createAuthProvider(options: AuthProviderOptions): Promise<AuthProvider>;
@@ -1,26 +0,0 @@
1
- import { ApiClient } from '../http/api-client.js';
2
- export interface CliAuthSession {
3
- sessionId: string;
4
- verificationUri: string;
5
- verificationUriComplete: string;
6
- expiresIn: number;
7
- pollInterval: number;
8
- }
9
- export interface CreateCliAuthSessionOptions {
10
- frontendUrl?: string;
11
- loopbackRedirectUri?: string;
12
- loopbackState?: string;
13
- pkceChallenge?: string;
14
- pkceChallengeMethod?: string;
15
- }
16
- export interface ExchangeCliCodeResult {
17
- accessToken: string;
18
- accessTokenExpiresIn: number;
19
- refreshToken: string;
20
- relayWsPath: string;
21
- relayHeartbeatIntervalSec: number;
22
- }
23
- export declare function createCliAuthSession(client: ApiClient, options?: CreateCliAuthSessionOptions): Promise<CliAuthSession>;
24
- export declare function exchangeCliCode(client: ApiClient, sessionId: string, code: string, options?: {
25
- codeVerifier?: string;
26
- }): Promise<ExchangeCliCodeResult>;
@@ -1,13 +0,0 @@
1
- import { CredentialsStore, type StoredCredentials } from './credentials-store.js';
2
- export type AuthContextErrorCode = 'missing_credentials' | 'invalid_credentials';
3
- export declare class AuthContextError extends Error {
4
- readonly code: AuthContextErrorCode;
5
- constructor(message: string, code: AuthContextErrorCode, options?: {
6
- cause?: unknown;
7
- });
8
- }
9
- export interface AuthContext {
10
- credentials: StoredCredentials;
11
- pat: string;
12
- }
13
- export declare function ensureAuthContext(store: CredentialsStore, initialCredentials?: StoredCredentials | null): Promise<AuthContext>;
@@ -1,20 +0,0 @@
1
- export interface StoredCredentials {
2
- pat?: string;
3
- accessToken?: string;
4
- accessTokenExpiresAt?: string;
5
- refreshToken?: string;
6
- }
7
- export declare const DEFAULT_DIR: string;
8
- export declare const DEFAULT_CREDENTIALS_PATH: string;
9
- export declare class CredentialsStore {
10
- private readonly filePath;
11
- private lockDepth;
12
- constructor(filePath?: string);
13
- load(): Promise<StoredCredentials | null>;
14
- save(credentials: StoredCredentials): Promise<void>;
15
- clear(): Promise<void>;
16
- withLock<T>(fn: () => Promise<T>): Promise<T>;
17
- private lockPath;
18
- private acquireLock;
19
- private shouldBreakLock;
20
- }
@@ -1,8 +0,0 @@
1
- import { CredentialsStore } from './credentials-store.js';
2
- export interface EnsureCliCredentialsOptions {
3
- backendUrl?: string;
4
- frontendUrl?: string;
5
- store?: CredentialsStore;
6
- logger?: Console;
7
- }
8
- export declare function ensureCliCredentials(options?: EnsureCliCredentialsOptions): Promise<void>;
@@ -1,11 +0,0 @@
1
- import { CredentialsStore, type StoredCredentials } from './credentials-store.js';
2
- interface LoginOptions {
3
- backendUrlOption?: string;
4
- frontendUrlOption?: string;
5
- store: CredentialsStore;
6
- }
7
- export declare function performVerificationLogin({ backendUrlOption, frontendUrlOption, store, }: LoginOptions): Promise<StoredCredentials>;
8
- export declare function resolveBackendUrl(option?: string): string;
9
- export declare function resolveFrontendUrl(option?: string): string;
10
- export declare function formatDuration(ms: number): string;
11
- export {};
@@ -1,20 +0,0 @@
1
- export interface LoopbackCallback {
2
- code: string;
3
- sessionId: string | null;
4
- state: string | null;
5
- }
6
- export declare class LoopbackListener {
7
- static create(): Promise<LoopbackListener | null>;
8
- readonly state: string;
9
- redirectUri: string;
10
- private readonly server;
11
- private resolveCallback;
12
- private rejectCallback;
13
- private pending;
14
- private constructor();
15
- waitForCallback(): Promise<LoopbackCallback>;
16
- stop(): Promise<void>;
17
- private start;
18
- private handleRequest;
19
- private respond;
20
- }
@@ -1,6 +0,0 @@
1
- export interface PkcePair {
2
- verifier: string;
3
- challenge: string;
4
- method: 'S256';
5
- }
6
- export declare function generatePkcePair(): PkcePair;
package/dist/cli.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare function createProgram(): Command;
3
- export declare function run(argv: readonly string[]): Promise<void>;