@datalabrotterdam/nova-ai-cli 1.2.0-alpha.1 → 1.2.0-alpha.10

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.
@@ -0,0 +1,23 @@
1
+ import {
2
+ checkForUpdate,
3
+ chooseUpdate,
4
+ formatUpdateNotice,
5
+ isNewerVersion,
6
+ readInstalledVersion,
7
+ rememberUpdateAnswer,
8
+ shouldAskAboutUpdate,
9
+ updateCachePath,
10
+ updateChecksDisabled
11
+ } from "./chunk-L77KQRGZ.js";
12
+ import "./chunk-FMHWW3E6.js";
13
+ export {
14
+ checkForUpdate,
15
+ chooseUpdate,
16
+ formatUpdateNotice,
17
+ isNewerVersion,
18
+ readInstalledVersion,
19
+ rememberUpdateAnswer,
20
+ shouldAskAboutUpdate,
21
+ updateCachePath,
22
+ updateChecksDisabled
23
+ };
package/package.json CHANGED
@@ -1,47 +1,46 @@
1
1
  {
2
2
  "name": "@datalabrotterdam/nova-ai-cli",
3
- "version": "1.2.0-alpha.1",
4
- "description": "CLI for DataLab Rotterdam's Nova AI, with an Agent Client Protocol mode for editors/IDEs, backed by @datalabrotterdam/nova-sdk",
3
+ "version": "1.2.0-alpha.10",
4
+ "description": "Agentic coding with DataLab Rotterdam's Nova AI in your terminal: interactive TUI, headless mode, and an ACP agent for editors",
5
5
  "license": "Apache-2.0",
6
6
  "author": "DataLab Rotterdam",
7
7
  "type": "module",
8
- "main": "dist/index.js",
9
- "types": "dist/index.d.ts",
10
- "bin": {
11
- "nova-ai-cli": "dist/index.js",
12
- "nova-ai": "dist/index.js"
13
- },
14
- "files": [
15
- "dist",
16
- "src/acp/web/dist",
17
- "LICENSE"
18
- ],
19
8
  "engines": {
20
9
  "node": ">=22.19"
21
10
  },
22
11
  "repository": {
23
12
  "type": "git",
24
- "url": "git+https://github.com/Datalab-Rotterdam/nova-ai-cli.git"
13
+ "url": "git+https://github.com/Datalab-Rotterdam/nova-ai-cli.git",
14
+ "directory": "packages/cli"
25
15
  },
26
16
  "bugs": {
27
17
  "url": "https://github.com/Datalab-Rotterdam/nova-ai-cli/issues"
28
18
  },
29
- "homepage": "https://github.com/Datalab-Rotterdam/nova-ai-cli#readme",
30
19
  "publishConfig": {
31
20
  "access": "public"
32
21
  },
22
+ "homepage": "https://github.com/Datalab-Rotterdam/nova-ai-cli#readme",
23
+ "bin": {
24
+ "nova-ai": "dist/index.js"
25
+ },
26
+ "files": [
27
+ "dist",
28
+ "LICENSE",
29
+ "README.md",
30
+ "CHANGELOG.md"
31
+ ],
33
32
  "scripts": {
34
- "build": "npm install --prefix src/acp/web && npm run build --prefix src/acp/web && tsup",
33
+ "build": "tsup",
35
34
  "dev": "tsx watch src/index.ts",
36
- "test": "tsc -p tsconfig.json --noEmit && npm run test:unit && npm run test:pty",
37
- "test:unit": "node -e \"require('fs').rmSync('dist-test',{recursive:true,force:true})\" && tsc -p tsconfig.test.json && node --import ./dist-test/tests/setup-env.js --test --test-timeout=30000 \"dist-test/tests/**/*.test.js\"",
35
+ "typecheck": "tsc -p tsconfig.json --noEmit",
36
+ "test": "npm run typecheck && npm run test:unit && npm run test:pty",
37
+ "test:unit": "node -e \"require('fs').rmSync('dist-test',{recursive:true,force:true})\" && tsc -p tsconfig.test.json && node --import ./dist-test/test-support/setup-env.js --test --test-timeout=30000 \"dist-test/packages/cli/tests/**/*.test.js\"",
38
38
  "test:pty": "tsx tests/tui/pty-runtime-runner.ts"
39
39
  },
40
40
  "dependencies": {
41
41
  "@agentclientprotocol/sdk": "^0.29.0",
42
- "@datalabrotterdam/nova-sdk": "^1.3.2",
43
- "@modelcontextprotocol/sdk": "^1.29.0",
44
- "@sourceregistry/node-webserver": "^1.8.0",
42
+ "@datalabrotterdam/nova-ai-agent": "^1.0.0-alpha.7",
43
+ "@datalabrotterdam/nova-ai-browser-host": "^1.0.0",
45
44
  "chalk": "^5.3.0",
46
45
  "cli-highlight": "^2.1.11",
47
46
  "diff": "^9.0.0",
@@ -50,25 +49,9 @@
50
49
  "react": "^19.3.0",
51
50
  "string-width": "^8.3.0"
52
51
  },
53
- "devDependencies": {
54
- "@semantic-release/changelog": "^6.0.3",
55
- "@semantic-release/commit-analyzer": "^13.0.1",
56
- "@semantic-release/git": "^10.0.1",
57
- "@semantic-release/npm": "^13.1.5",
58
- "@semantic-release/release-notes-generator": "^14.1.0",
59
- "@types/node": "^22.20.0",
60
- "@types/react": "^19.3.0",
61
- "@xterm/headless": "^6.0.0",
62
- "ink-testing-library": "^4.0.0",
63
- "node-pty": "^1.1.0",
64
- "tsup": "^8.3.0",
65
- "tsx": "^4.19.0",
66
- "typescript": "^5.6.0"
67
- },
68
- "overrides": {
69
- "esbuild": "^0.28.1"
70
- },
71
52
  "release": {
53
+ "extends": "semantic-release-monorepo",
54
+ "tagFormat": "@datalabrotterdam/nova-ai-cli@${version}",
72
55
  "branches": [
73
56
  "main",
74
57
  {
@@ -92,5 +75,8 @@
92
75
  }
93
76
  ]
94
77
  ]
78
+ },
79
+ "devDependencies": {
80
+ "@datalabrotterdam/nova-sdk": "1.4.0-k8s.3"
95
81
  }
96
82
  }
@@ -1,65 +0,0 @@
1
- import {
2
- NovaAgent,
3
- createAgentApp
4
- } from "./chunk-GZZ7PY3S.js";
5
- import "./chunk-Q7WL3DXP.js";
6
- import "./chunk-JAEXUFAS.js";
7
-
8
- // src/acp/index.ts
9
- import { Readable, Writable } from "stream";
10
- import * as acp from "@agentclientprotocol/sdk";
11
-
12
- // src/acp/stdio-guard.ts
13
- function redirectConsoleToStderr() {
14
- const methods = ["log", "info", "debug", "dir", "table", "trace"];
15
- const original = Object.fromEntries(
16
- methods.map((method) => [method, console[method]])
17
- );
18
- const toStderr = (...args) => console.error(...args);
19
- for (const method of methods) {
20
- console[method] = toStderr;
21
- }
22
- return () => {
23
- for (const method of methods) {
24
- console[method] = original[method];
25
- }
26
- };
27
- }
28
-
29
- // src/acp/index.ts
30
- async function runAcp() {
31
- redirectConsoleToStderr();
32
- const agentImpl = new NovaAgent();
33
- const output = Writable.toWeb(process.stdout);
34
- const input = Readable.toWeb(process.stdin);
35
- const stream = acp.ndJsonStream(output, input);
36
- const connection = createAgentApp(agentImpl).connect(stream);
37
- installLifecycle(agentImpl, connection.closed);
38
- await connection.closed;
39
- }
40
- function installLifecycle(agent, closed) {
41
- let shuttingDown = false;
42
- const shutdown = async (code) => {
43
- if (shuttingDown) process.exit(code);
44
- shuttingDown = true;
45
- const forced = setTimeout(() => process.exit(code), SHUTDOWN_TIMEOUT_MS);
46
- forced.unref();
47
- try {
48
- await agent.shutdown();
49
- } catch (error) {
50
- console.error("nova-ai-cli: error during shutdown:", error);
51
- }
52
- process.exit(code);
53
- };
54
- void closed.then(() => shutdown(0));
55
- process.on("SIGTERM", () => void shutdown(0));
56
- process.on("SIGINT", () => void shutdown(130));
57
- process.on("unhandledRejection", (reason) => {
58
- console.error("nova-ai-cli: unhandled rejection:", reason);
59
- });
60
- }
61
- var SHUTDOWN_TIMEOUT_MS = 5e3;
62
- var acp_default = runAcp;
63
- export {
64
- acp_default as default
65
- };