datagrok-tools 6.7.7 → 6.7.8

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.
@@ -66,7 +66,7 @@ Host machine
66
66
  │ │ │ └── <folder>/ ← bind mount of user's repo │ │
67
67
  │ │ ├── /var/run/docker.sock ← host Docker for stand mgmt │ │
68
68
  │ │ ├── entrypoint.sh ← bind-mounted from tools/ │ │
69
- │ │ ├── Claude Code + MCP plugins (Jira, GitHub) │ │
69
+ │ │ ├── Claude Code + MCP plugins (GitHub, Jira) │ │
70
70
  │ │ ├── Playwright + Chrome for testing │ │
71
71
  │ │ └── grok CLI for build/publish/test │ │
72
72
  │ └────────────────────────────────────────────────────────────┘ │
@@ -197,15 +197,25 @@ Based on `node:22-bookworm-slim`. Pre-installed:
197
197
 
198
198
  Runs as **root** in compose (entrypoint drops to `node` user for the main process).
199
199
 
200
- ## MCP plugins: Jira and GitHub
200
+ ## MCP plugins: GitHub and Jira
201
201
 
202
202
  The agent uses MCP plugins to search for similar issues, read context, and update
203
- status. Set tokens in `.env` or the agent will ask interactively on first use.
203
+ status. Tickets are GitHub issues (`datagrok-ai/public`); Jira holds only read-only
204
+ `GROK-NNNNN` history. Set tokens in `.env` or the agent will ask interactively on first use.
204
205
 
205
- ### Jira (Atlassian)
206
+ ### GitHub
206
207
 
207
208
  ```bash
208
209
  # Inside tools-dev, register the MCP server:
210
+ claude mcp add github -s user -- \
211
+ npx -y @modelcontextprotocol/server-github
212
+ ```
213
+
214
+ Requires `GITHUB_TOKEN` in the environment (already passed from `.env`).
215
+
216
+ ### Jira (optional, read-only history)
217
+
218
+ ```bash
209
219
  claude mcp add mcp-atlassian -s user -- \
210
220
  npx -y mcp-atlassian \
211
221
  --jira-url "$JIRA_URL" \
@@ -213,15 +223,6 @@ claude mcp add mcp-atlassian -s user -- \
213
223
  --jira-token "$JIRA_TOKEN"
214
224
  ```
215
225
 
216
- ### GitHub
217
-
218
- ```bash
219
- claude mcp add github -s user -- \
220
- npx -y @modelcontextprotocol/server-github
221
- ```
222
-
223
- Requires `GITHUB_TOKEN` in the environment (already passed from `.env`).
224
-
225
226
  ## Testing
226
227
 
227
228
  ### grok test (Puppeteer-based)
@@ -1,5 +1,5 @@
1
1
 
2
- > datagrok-tools@6.7.7 build /home/runner/work/public/public/tools
2
+ > datagrok-tools@6.7.8 build /home/runner/work/public/public/tools
3
3
  > node build.js
4
4
 
5
5
  Successfully compiled 51 files with Babel.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Datagrok-tools changelog
2
2
 
3
+ ## 6.7.8 (2026-10-13)
4
+
5
+ * Fixed `grok api` (and every command other than `grok s`) exiting with code 1 and its usage text in 6.7.7: the new `--send-email` flag reached every command as `send-email: false`, which `grok api` rejected as an unknown option
6
+
3
7
  ## 6.7.7 (2026-10-09)
4
8
 
5
9
  * GROK-21156: `grok s users invite [<email>] [--prefix <P>] [--send-email]`: invites a user and prints a link that logs them in (no email sent; the email may be omitted); `--prefix` starts the code with `<P>`; `--send-email` mails the invitation instead
package/CLAUDE.md CHANGED
@@ -220,7 +220,7 @@ Based on `node:22-bookworm-slim`. Pre-installed:
220
220
  | `demo` | + world, test_db, northwind |
221
221
  | `full` | + grok_spawner, JKG, demo DBs |
222
222
 
223
- See `.devcontainer/PACKAGES_DEV.md` for detailed usage docs, architecture diagram, MCP plugin setup (Jira/GitHub), and troubleshooting.
223
+ See `.devcontainer/PACKAGES_DEV.md` for detailed usage docs, architecture diagram, MCP plugin setup (GitHub/Jira), and troubleshooting.
224
224
 
225
225
  ### `grok server` / `grok s` Command
226
226
 
package/GROK_S.md CHANGED
@@ -626,9 +626,12 @@ entities shared with that account, and the target's own users never get their co
626
626
 
627
627
  ```bash
628
628
  grok s pull --since 10y --type project,connection,query,script,group,layout --out ./bundle --host dev --admin
629
- grok s push ./bundle --host prod --admin --on-conflict skip
629
+ grok s push ./bundle --host prod --admin --on-conflict adopt
630
630
  ```
631
631
 
632
+ `adopt` keeps one copy of what both instances already have, such as shared groups and spaces;
633
+ `skip` would leave them alone and fail everything in the bundle that points at them.
634
+
632
635
  **Move a whole instance one space at a time.** Placement is exclusive on the server — one project
633
636
  holding an entity takes it from every other — so a single bundle carrying every space has its
634
637
  projects competing, and a stand-sized push spends its time taking rows back off each other. Scoped
package/README.md CHANGED
@@ -106,7 +106,8 @@ For more information on configuring connections, refer to the [Connections](http
106
106
  `config.yaml`): `grok report fetch <instance> <number>` downloads the report zip, `grok report read
107
107
  <zip|json|instance number>` prints one normalized JSON object (flags `--extract-screenshot`,
108
108
  `--extract-d42`, `--extract-client-log`), `grok report resolve <instance> <number>` marks it resolved.
109
- `ticket`, `comment`, `label`, `attach` talk to JIRA with `JIRA_TOKEN`. See `grok report --help`.
109
+ `ticket`, `comment`, `label`, `attach` talk to JIRA with `JIRA_TOKEN`; porting them to GitHub Issues
110
+ is pending. See `grok report --help`.
110
111
  - `check` checks package content (function signatures, import statements of external modules,
111
112
  etc.). The check is also run during package publication.
112
113
  - `init` modifies a package template by adding config files for linters, IDE, and so on
package/bin/grok.js CHANGED
@@ -1,7 +1,10 @@
1
1
  #!/usr/bin/env node
2
+ // minimist sets every boolean option to false when it is absent, and commands such as `grok api`
3
+ // reject any key they do not expect — so each boolean reaches only the commands that read it.
4
+ const commandBooleans = {dartium: ['test', 'stresstest'], 'send-email': ['server', 's']};
2
5
  const argv = require('minimist')(process.argv.slice(2), {
3
6
  alias: {k: 'key', h: 'help', r: 'recursive'},
4
- boolean: ['dartium', 'send-email'],
7
+ boolean: Object.keys(commandBooleans),
5
8
  // keep versions verbatim — minimist would coerce '1.10' to the number 1.1
6
9
  string: ['version', 'prefix'],
7
10
  });
@@ -59,8 +62,9 @@ function printUsage(command) {
59
62
  }
60
63
 
61
64
  const command = argv['_'][0];
62
- if (command !== 'test' && command !== 'stresstest')
63
- delete argv.dartium;
65
+ for (const [flag, owners] of Object.entries(commandBooleans))
66
+ if (!owners.includes(command))
67
+ delete argv[flag];
64
68
  if (command in commands) {
65
69
  try {
66
70
  if (argv['help']) {
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "type": "git",
5
5
  "url": "https://github.com/datagrok-ai/public.git"
6
6
  },
7
- "version": "6.7.7",
7
+ "version": "6.7.8",
8
8
  "description": "Utility to upload and publish packages to Datagrok",
9
9
  "homepage": "https://github.com/datagrok-ai/public/tree/master/tools#readme",
10
10
  "dependencies": {
@@ -90,7 +90,7 @@
90
90
  "update:ivp-parser": "esbuild plugins/ivp-parser.entry.mjs --bundle --format=cjs --platform=node --alias:diff-grok=../libraries/compute-utils/node_modules/diff-grok --outfile=plugins/ivp-parser.bundle.cjs",
91
91
  "debug-source-map": "node build.js --source-maps",
92
92
  "test": "vitest run --project unit",
93
- "test:server": "vitest run --project unit bin/__tests__/node-dapi bin/__tests__/server bin/__tests__/migrate bin/__tests__/keypair",
93
+ "test:server": "vitest run --project unit bin/__tests__/node-dapi bin/__tests__/server bin/__tests__/migrate bin/__tests__/keypair bin/__tests__/grok-cli",
94
94
  "test:watch": "vitest --project unit",
95
95
  "test:integration": "vitest run --project integration",
96
96
  "test:all": "vitest run"