neuvikon 0.1.0 → 0.2.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
@@ -72,6 +72,7 @@ always exits 0 — a token count is never worth interrupting someone's work.
72
72
  | `~/.neuvikon/config.json` | Token and deployment URL, `0600` |
73
73
  | `.neuvikon-session` | Which ticket this directory is tracking. Git-ignored by `init` |
74
74
  | `NEUVIKON_URL` | Point at a self-hosted deployment. `--url` does the same per command |
75
+ | `NEUVIKON_TOKEN` | Use this token instead of logging in — for CI and anywhere a browser cannot open |
75
76
 
76
77
  ## Develop
77
78
 
@@ -82,3 +83,4 @@ pnpm typecheck
82
83
  ```
83
84
 
84
85
  No runtime dependencies, so `npx neuvikon` stays a fast cold start.
86
+ # neuvikon-cli
package/dist/index.mjs CHANGED
@@ -149,10 +149,26 @@ function isInstalled(root) {
149
149
  * installed copy of this CLI hardcodes whatever ships here, and a dev
150
150
  * deployment can be reset out from under them.
151
151
  */
152
- const DEFAULT_SITE_URL = process.env.NEUVIKON_URL ?? "https://calm-sturgeon-831.eu-west-1.convex.site";
152
+ const DEFAULT_SITE_URL = process.env.NEUVIKON_URL ?? "https://flexible-bird-801.eu-west-1.convex.sites";
153
153
  const CONFIG_DIR = join(homedir(), ".neuvikon");
154
154
  const CONFIG_PATH = join(CONFIG_DIR, "config.json");
155
+ /**
156
+ * Somewhere a browser cannot open — CI, a container, a remote box — there is no
157
+ * way to complete a device login, so a token handed in through the environment
158
+ * stands in for one. It wins over the config file: an explicit env var is the
159
+ * more specific instruction.
160
+ */
161
+ function credentialsFromEnv() {
162
+ const token = process.env.NEUVIKON_TOKEN;
163
+ if (!token) return null;
164
+ return {
165
+ token,
166
+ url: DEFAULT_SITE_URL
167
+ };
168
+ }
155
169
  function readCredentials() {
170
+ const fromEnv = credentialsFromEnv();
171
+ if (fromEnv) return fromEnv;
156
172
  let raw;
157
173
  try {
158
174
  raw = readFileSync(CONFIG_PATH, "utf8");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neuvikon",
3
- "version": "0.1.0",
3
+ "version": "0.2.2",
4
4
  "description": "Tell Neuvikon which ticket your coding agent is working on.",
5
5
  "keywords": [
6
6
  "neuvikon",
@@ -10,6 +10,11 @@
10
10
  "ticket"
11
11
  ],
12
12
  "homepage": "https://neuvikon.com",
13
+ "repository": {
14
+ "type": "git",
15
+ "url": "git+https://github.com/ogulcan-neuvikon/neuvikon-cli.git"
16
+ },
17
+ "bugs": "https://github.com/ogulcan-neuvikon/neuvikon-cli/issues",
13
18
  "author": "Neuvikon <neuvikon@gmail.com>",
14
19
  "license": "MIT",
15
20
  "type": "module",
@@ -24,6 +29,7 @@
24
29
  "engines": {
25
30
  "node": ">=20"
26
31
  },
32
+ "packageManager": "pnpm@11.8.0",
27
33
  "scripts": {
28
34
  "build": "tsdown",
29
35
  "dev": "tsdown --watch",