@sdods/cli 0.13.1 → 0.14.0
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.
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { Command } from 'commander';
|
|
2
2
|
/**
|
|
3
|
-
* `sdods feedback` — open
|
|
4
|
-
*
|
|
3
|
+
* `sdods feedback` — open the sdods.com feedback form (feature request or bug report).
|
|
4
|
+
* It prints the title, message and, for bug reports, the version, OS and doctor summary, for the
|
|
5
|
+
* user to paste into the form.
|
|
5
6
|
*/
|
|
6
7
|
export declare function register(program: Command): void;
|
|
7
8
|
//# sourceMappingURL=feedback.d.ts.map
|
|
@@ -2,58 +2,44 @@ import { execa } from 'execa';
|
|
|
2
2
|
import pc from 'picocolors';
|
|
3
3
|
import { VERSION } from '@sdods/core';
|
|
4
4
|
import { json, out } from '../ui.js';
|
|
5
|
-
const REPO = 'https://github.com/YarlisAISolutions/SDODS';
|
|
6
|
-
const DISCUSSIONS = `${REPO}/discussions/categories/ideas`;
|
|
7
5
|
/**
|
|
8
|
-
*
|
|
9
|
-
*
|
|
6
|
+
* The source repository is private, so prefilled GitHub issue forms would 404 for users.
|
|
7
|
+
* Feedback goes through sdods.com, which takes feature requests, bug reports and notes directly.
|
|
8
|
+
*/
|
|
9
|
+
const FEEDBACK = 'https://sdods.com/feedback/#write';
|
|
10
|
+
const QUESTIONS = 'https://sdods.com/questions/';
|
|
11
|
+
/**
|
|
12
|
+
* `sdods feedback` — open the sdods.com feedback form (feature request or bug report).
|
|
13
|
+
* It prints the title, message and, for bug reports, the version, OS and doctor summary, for the
|
|
14
|
+
* user to paste into the form.
|
|
10
15
|
*/
|
|
11
16
|
export function register(program) {
|
|
12
17
|
program
|
|
13
18
|
.command('feedback')
|
|
14
|
-
.description('Request a feature or report a bug (
|
|
19
|
+
.description('Request a feature or report a bug (opens the sdods.com feedback form)')
|
|
15
20
|
.option('--feature', 'feature request (default)')
|
|
16
21
|
.option('--bug', 'bug report with environment details from `sdods doctor`')
|
|
17
|
-
.option('--discuss', 'print the
|
|
18
|
-
.option('-t, --title <text>', '
|
|
19
|
-
.option('-m, --message <text>', 'problem statement or observed behaviour')
|
|
22
|
+
.option('--discuss', 'print the questions page URL instead')
|
|
23
|
+
.option('-t, --title <text>', 'title, printed for you to paste into the form')
|
|
24
|
+
.option('-m, --message <text>', 'problem statement or observed behaviour, printed with the title')
|
|
20
25
|
.option('--open', 'open the URL in the default browser')
|
|
21
26
|
.action(async (opts, cmd) => {
|
|
22
27
|
const root = cmd.parent ?? cmd;
|
|
23
28
|
const asJson = Boolean(root.opts().json);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
else if (opts.bug) {
|
|
29
|
-
const params = new URLSearchParams({
|
|
30
|
-
template: 'bug_report.yml',
|
|
31
|
-
title: opts.title ? `[Bug] ${opts.title}` : '[Bug] ',
|
|
32
|
-
labels: 'bug,triage',
|
|
33
|
-
'sdods-version': VERSION,
|
|
34
|
-
os: osLabel(),
|
|
35
|
-
});
|
|
29
|
+
const url = opts.discuss ? QUESTIONS : FEEDBACK;
|
|
30
|
+
const lines = [opts.title && `Title: ${opts.title}`, opts.message];
|
|
31
|
+
if (opts.bug && !opts.discuss) {
|
|
36
32
|
const doctor = await doctorSummary();
|
|
37
|
-
|
|
38
|
-
params.set('doctor', doctor);
|
|
39
|
-
if (opts.message)
|
|
40
|
-
params.set('actual', opts.message);
|
|
41
|
-
url = `${REPO}/issues/new?${params.toString()}`;
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
const params = new URLSearchParams({
|
|
45
|
-
template: 'feature_request.yml',
|
|
46
|
-
title: opts.title ? `[Feature] ${opts.title}` : '[Feature] ',
|
|
47
|
-
labels: 'enhancement,triage',
|
|
48
|
-
'sdods-version': VERSION,
|
|
49
|
-
});
|
|
50
|
-
if (opts.message)
|
|
51
|
-
params.set('problem', opts.message);
|
|
52
|
-
url = `${REPO}/issues/new?${params.toString()}`;
|
|
33
|
+
lines.push(`sdods ${VERSION}`, `OS: ${osLabel()}`, doctor && `doctor: ${doctor}`);
|
|
53
34
|
}
|
|
35
|
+
const details = opts.discuss ? undefined : lines.filter(Boolean).join('\n') || undefined;
|
|
54
36
|
if (asJson)
|
|
55
|
-
return json({ url });
|
|
37
|
+
return json(details ? { url, details } : { url });
|
|
56
38
|
out(url);
|
|
39
|
+
if (details) {
|
|
40
|
+
out(pc.dim('Paste these details into the form:'));
|
|
41
|
+
out(details);
|
|
42
|
+
}
|
|
57
43
|
if (opts.open) {
|
|
58
44
|
const opener = process.platform === 'darwin'
|
|
59
45
|
? 'open'
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sdods/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.0",
|
|
4
4
|
"description": "SDODS command line: run, record, analyze, agents, MCP server, scheduler and the web server.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"funding": "https://sdods.com/sponsor/",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"node": ">=22"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@sdods/contracts": "0.
|
|
30
|
-
"@sdods/core": "0.
|
|
29
|
+
"@sdods/contracts": "0.14.0",
|
|
30
|
+
"@sdods/core": "0.14.0",
|
|
31
31
|
"commander": "^15.0.0",
|
|
32
32
|
"execa": "^10.1.0",
|
|
33
33
|
"picocolors": "^1.1.1",
|
|
@@ -36,16 +36,16 @@
|
|
|
36
36
|
"zod": "^4.6.5",
|
|
37
37
|
"@playwright/test": "^1.64.0",
|
|
38
38
|
"playwright-core": "^1.64.0",
|
|
39
|
-
"@sdods/integrations": "0.
|
|
40
|
-
"@sdods/mcp": "0.
|
|
41
|
-
"@sdods/agents": "0.
|
|
42
|
-
"@sdods/db": "0.
|
|
39
|
+
"@sdods/integrations": "0.14.0",
|
|
40
|
+
"@sdods/mcp": "0.14.0",
|
|
41
|
+
"@sdods/agents": "0.14.0",
|
|
42
|
+
"@sdods/db": "0.14.0",
|
|
43
43
|
"csv-parse": "^7.0.3",
|
|
44
|
-
"@sdods/server": "0.
|
|
44
|
+
"@sdods/server": "0.14.0"
|
|
45
45
|
},
|
|
46
46
|
"homepage": "https://sdods.com",
|
|
47
47
|
"bugs": {
|
|
48
|
-
"url": "https://
|
|
48
|
+
"url": "https://sdods.com/feedback/"
|
|
49
49
|
},
|
|
50
50
|
"repository": {
|
|
51
51
|
"type": "git",
|
|
@@ -295,8 +295,8 @@ sdods browsers install --with-deps # refresh engines afterwards (Linux needs ro
|
|
|
295
295
|
sdods doctor # confirm
|
|
296
296
|
```
|
|
297
297
|
|
|
298
|
-
CI does this on a schedule: `.github/workflows/dependencies.yml`
|
|
299
|
-
|
|
298
|
+
CI does this on a schedule: `.github/workflows/dependencies.yml` posts a freshness report to Yarlis
|
|
299
|
+
Dev (Google Chat, through Yarlis Relay) on the 15th, and on the 1st of the month upgrades `@sdods/*` and Playwright, runs the suite,
|
|
300
300
|
and opens a PR only if it passes.
|
|
301
301
|
|
|
302
302
|
After any upgrade, restart `serve` — a running server keeps the old bundle in memory.
|