@event4u/agent-config 4.3.0 → 4.6.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.
- package/.agent-src/commands/agents/user/init.md +7 -13
- package/.agent-src/commands/agents/user/show.md +4 -4
- package/.agent-src/commands/post-as/me.md +6 -6
- package/.agent-src/contexts/execution/autonomy-mechanics.md +1 -1
- package/.agent-src/contexts/execution/cheap-question-mechanics.md +4 -0
- package/.agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +28 -227
- package/config/discovery/packs.yml +9 -1
- package/config/discovery/workspaces.yml +14 -1
- package/dist/cli/agent-config.js +15 -10
- package/dist/cli/agent-config.js.map +1 -1
- package/dist/cli/commands/uiServe.js +27 -11
- package/dist/cli/commands/uiServe.js.map +1 -1
- package/dist/cli/registry.js +1 -1
- package/dist/cli/registry.js.map +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +51 -8
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +3 -3
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +25 -4
- package/dist/discovery/trust-report.md +1 -1
- package/dist/discovery/workspaces.json +4 -4
- package/dist/install/selectedTools.js +52 -0
- package/dist/install/selectedTools.js.map +1 -0
- package/dist/install/toolDetection.js +104 -0
- package/dist/install/toolDetection.js.map +1 -0
- package/dist/mcp/registry-manifest.json +3 -3
- package/dist/server/app.js +36 -0
- package/dist/server/app.js.map +1 -1
- package/dist/server/routes/ping.js +17 -0
- package/dist/server/routes/ping.js.map +1 -1
- package/dist/server/routes/wizard.js +280 -34
- package/dist/server/routes/wizard.js.map +1 -1
- package/dist/server/serverInfo.js +54 -0
- package/dist/server/serverInfo.js.map +1 -0
- package/dist/shared/userMd/formAdapter.js +1 -5
- package/dist/shared/userMd/formAdapter.js.map +1 -1
- package/dist/shared/userMd/schema.js +2 -1
- package/dist/shared/userMd/schema.js.map +1 -1
- package/dist/ui/assets/index-BAJQeVdX.js +40 -0
- package/dist/ui/assets/index-BAJQeVdX.js.map +1 -0
- package/dist/ui/assets/index-BbWWuFrF.css +1 -0
- package/dist/ui/index.html +2 -2
- package/docs/archive/CHANGELOG-pre-4.0.0.md +80 -0
- package/docs/archive/CHANGELOG-pre-4.5.0.md +289 -0
- package/docs/contracts/agent-user-schema.md +1 -3
- package/docs/contracts/discovery-manifest.schema.json +3 -1
- package/docs/contracts/gui-wizard.md +103 -8
- package/docs/decisions/ADR-013-discovery-frontmatter-contract.md +27 -0
- package/docs/decisions/ADR-021-deployment-shape.md +2 -2
- package/docs/deploy/connector-setup.md +2 -2
- package/docs/deploy/policy-cookbook.md +2 -2
- package/docs/examples/agent-user.example.md +0 -1
- package/package.json +1 -1
- package/scripts/__pycache__/validate_frontmatter.cpython-312.pyc +0 -0
- package/scripts/_lib/__pycache__/__init__.cpython-312.pyc +0 -0
- package/scripts/_lib/__pycache__/agent_src.cpython-312.pyc +0 -0
- package/scripts/build_discovery_manifest.py +4 -0
- package/scripts/condense.py +56 -1
- package/scripts/condense_memory.py +8 -2
- package/scripts/install.py +89 -43
- package/scripts/lint_discovery_vocabulary.py +8 -0
- package/dist/ui/assets/index-BDAhhpDV.js +0 -40
- package/dist/ui/assets/index-BDAhhpDV.js.map +0 -1
- package/dist/ui/assets/index-BXZILUxe.css +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"checksum": "sha256:
|
|
3
|
-
"generated_at": "2026-05-
|
|
4
|
-
"scanner_version": "
|
|
2
|
+
"checksum": "sha256:eb7494e53428947d792e0377cb59e043457819ad3fff0b7ff6bc1011134be766",
|
|
3
|
+
"generated_at": "2026-05-28T01:05:43Z",
|
|
4
|
+
"scanner_version": "d75eba636abb",
|
|
5
5
|
"workspaces": [
|
|
6
6
|
{
|
|
7
7
|
"artefact_count": 125,
|
|
@@ -250,7 +250,7 @@
|
|
|
250
250
|
],
|
|
251
251
|
"description": "Cashflow, forecasting, DCF, board reporting.",
|
|
252
252
|
"id": "finance",
|
|
253
|
-
"label": "Finance
|
|
253
|
+
"label": "Finance",
|
|
254
254
|
"optional_packs": [
|
|
255
255
|
"finance-advanced"
|
|
256
256
|
],
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Persisted record of the AI tools the user actually selected in the wizard,
|
|
3
|
+
* at `~/.event4u/agent-config/wizard-tools.json`. This is the user's prior
|
|
4
|
+
* *selection* — distinct from `installed.lock` (every tool agent-config was
|
|
5
|
+
* deployed to, which for an `--tools=all` install is the full set) and from
|
|
6
|
+
* machine tool *detection*.
|
|
7
|
+
*
|
|
8
|
+
* Written by the apply route on a real (non-dry-run) wizard-v2 apply, and
|
|
9
|
+
* read by `detect-tools` so Step 1 pre-selects exactly the prior selection on
|
|
10
|
+
* a repeat run. Empty / missing → first run → Step 1 falls back to
|
|
11
|
+
* pre-selecting every installed tool.
|
|
12
|
+
*
|
|
13
|
+
* `AGENT_CONFIG_WIZARD_TOOLS` overrides the path (tests only).
|
|
14
|
+
*/
|
|
15
|
+
import { readFileSync, writeFileSync, mkdirSync } from 'node:fs';
|
|
16
|
+
import { homedir } from 'node:os';
|
|
17
|
+
import { resolve, dirname } from 'node:path';
|
|
18
|
+
function selectedToolsPath() {
|
|
19
|
+
const override = process.env['AGENT_CONFIG_WIZARD_TOOLS'];
|
|
20
|
+
if (override !== undefined && override.length > 0)
|
|
21
|
+
return override;
|
|
22
|
+
return resolve(homedir(), '.event4u', 'agent-config', 'wizard-tools.json');
|
|
23
|
+
}
|
|
24
|
+
export function writeSelectedTools(tools) {
|
|
25
|
+
try {
|
|
26
|
+
const path = selectedToolsPath();
|
|
27
|
+
mkdirSync(dirname(path), { recursive: true, mode: 0o700 });
|
|
28
|
+
writeFileSync(path, `${JSON.stringify({ tools }, null, 2)}\n`, { encoding: 'utf8', mode: 0o600 });
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
// Best-effort: a failed write just means the next run falls back to
|
|
32
|
+
// pre-selecting installed tools.
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Return the recorded selection, or `[]` when absent / unreadable. Optionally
|
|
37
|
+
* intersect with the known-tool set so a stale id never surfaces.
|
|
38
|
+
*/
|
|
39
|
+
export function readSelectedTools(knownIds) {
|
|
40
|
+
try {
|
|
41
|
+
const raw = readFileSync(selectedToolsPath(), 'utf8');
|
|
42
|
+
const parsed = JSON.parse(raw);
|
|
43
|
+
const tools = Array.isArray(parsed.tools)
|
|
44
|
+
? parsed.tools.filter((t) => typeof t === 'string')
|
|
45
|
+
: [];
|
|
46
|
+
return knownIds === undefined ? tools : tools.filter((t) => knownIds.has(t));
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
return [];
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=selectedTools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selectedTools.js","sourceRoot":"","sources":["../../src/install/selectedTools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7C,SAAS,iBAAiB;IACtB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAC1D,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC;IACnE,OAAO,OAAO,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,mBAAmB,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAe;IAC9C,IAAI,CAAC;QACD,MAAM,IAAI,GAAG,iBAAiB,EAAE,CAAC;QACjC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3D,aAAa,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACtG,CAAC;IAAC,MAAM,CAAC;QACL,oEAAoE;QACpE,iCAAiC;IACrC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAA8B;IAC5D,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,YAAY,CAAC,iBAAiB,EAAE,EAAE,MAAM,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAwB,CAAC;QACtD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;YACrC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;YAChE,CAAC,CAAC,EAAE,CAAC;QACT,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACjF,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,EAAE,CAAC;IACd,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Native AI-tool presence detection (road-to-wizard-ux-improvements § Phase 2).
|
|
3
|
+
*
|
|
4
|
+
* Distinct from `detectToolPresence` (detect.ts), which checks the *project*
|
|
5
|
+
* for agent-config bridge dirs ("we set up a bridge here"). This module
|
|
6
|
+
* answers "is the AI tool itself installed on this machine?" by probing the
|
|
7
|
+
* user's home dir, well-known app bundles, and `$PATH` — so the wizard's
|
|
8
|
+
* Step-1 list can pre-select detected tools (first run) and show a per-tool
|
|
9
|
+
* installed/not-installed badge.
|
|
10
|
+
*
|
|
11
|
+
* The signal table is intentionally data-driven and best-effort: a tool with
|
|
12
|
+
* no reliable signal (e.g. a VS Code extension) simply reports `false`
|
|
13
|
+
* (badge = not installed, no pre-select) — false negatives are acceptable,
|
|
14
|
+
* false positives are not. Extend `TOOL_SIGNALS` as new tools/signals are
|
|
15
|
+
* learned; that is the single place to maintain (the accepted trade-off).
|
|
16
|
+
*/
|
|
17
|
+
import { existsSync } from 'node:fs';
|
|
18
|
+
import { homedir } from 'node:os';
|
|
19
|
+
import { delimiter, join } from 'node:path';
|
|
20
|
+
/**
|
|
21
|
+
* Best-effort signal table keyed by the tool id used in the wizard's
|
|
22
|
+
* `VALID_TOOLS` (src/ui/wizard/state.ts). Keep ids in sync with that list.
|
|
23
|
+
*/
|
|
24
|
+
const TOOL_SIGNALS = {
|
|
25
|
+
'claude-code': { bins: ['claude'], homePaths: ['.claude', '.claude.json', '.config/claude'] },
|
|
26
|
+
'claude-desktop': { absPaths: ['/Applications/Claude.app'], homePaths: ['Library/Application Support/Claude', '.config/Claude'] },
|
|
27
|
+
'cursor': { bins: ['cursor'], absPaths: ['/Applications/Cursor.app'], homePaths: ['.cursor'] },
|
|
28
|
+
'windsurf': { bins: ['windsurf'], absPaths: ['/Applications/Windsurf.app'], homePaths: ['.codeium/windsurf'] },
|
|
29
|
+
'cline': { homePaths: ['Documents/Cline'] },
|
|
30
|
+
'gemini-cli': { bins: ['gemini'], homePaths: ['.gemini'] },
|
|
31
|
+
'copilot': { bins: ['copilot'], homePaths: ['.config/github-copilot'] },
|
|
32
|
+
'augment': { bins: ['auggie', 'augment'], homePaths: ['.augment'] },
|
|
33
|
+
'aider': { bins: ['aider'], homePaths: ['.aider.conf.yml'] },
|
|
34
|
+
'codex': { bins: ['codex'], homePaths: ['.codex'] },
|
|
35
|
+
'roocode': {},
|
|
36
|
+
'continue': { homePaths: ['.continue'] },
|
|
37
|
+
'kilocode': {},
|
|
38
|
+
'zed': { bins: ['zed'], absPaths: ['/Applications/Zed.app'], homePaths: ['.config/zed'] },
|
|
39
|
+
'jetbrains': { homePaths: ['Library/Application Support/JetBrains', '.config/JetBrains'] },
|
|
40
|
+
'kiro': { bins: ['kiro'], absPaths: ['/Applications/Kiro.app'], homePaths: ['.kiro'] },
|
|
41
|
+
'qoder': { absPaths: ['/Applications/Qoder.app'], homePaths: ['.qoder'] },
|
|
42
|
+
'opencode': { bins: ['opencode'], homePaths: ['.opencode', '.config/opencode'] },
|
|
43
|
+
'trae': { absPaths: ['/Applications/Trae.app'], homePaths: ['.trae'] },
|
|
44
|
+
'antigravity': { absPaths: ['/Applications/Antigravity.app'], homePaths: ['.antigravity'] },
|
|
45
|
+
'codebuddy': { homePaths: ['.codebuddy'] },
|
|
46
|
+
'droid': { bins: ['droid'], homePaths: ['.factory', '.droid'] },
|
|
47
|
+
'warp': { absPaths: ['/Applications/Warp.app', '/Applications/Warp.app/Contents'], homePaths: ['.warp', '.local/share/warp-terminal'] },
|
|
48
|
+
};
|
|
49
|
+
/** Tool ids this module knows how to probe (the wizard's full tool set). */
|
|
50
|
+
export function knownToolIds() {
|
|
51
|
+
return Object.keys(TOOL_SIGNALS);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Is an executable named `name` resolvable on `$PATH`? Exported for one-off
|
|
55
|
+
* presence checks (e.g. `rtk` on the Editor-and-tooling step). Defaults to
|
|
56
|
+
* `process.env.PATH`.
|
|
57
|
+
*/
|
|
58
|
+
export function isBinaryOnPath(name, pathEnv) {
|
|
59
|
+
return binOnPath(name, pathEnv ?? process.env['PATH'] ?? '');
|
|
60
|
+
}
|
|
61
|
+
function binOnPath(name, pathEnv) {
|
|
62
|
+
if (pathEnv.length === 0)
|
|
63
|
+
return false;
|
|
64
|
+
for (const dir of pathEnv.split(delimiter)) {
|
|
65
|
+
if (dir.length === 0)
|
|
66
|
+
continue;
|
|
67
|
+
if (existsSync(join(dir, name)))
|
|
68
|
+
return true;
|
|
69
|
+
// Windows-style executables.
|
|
70
|
+
if (existsSync(join(dir, `${name}.exe`)) || existsSync(join(dir, `${name}.cmd`)))
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
function isToolInstalled(signal, home, pathEnv) {
|
|
76
|
+
for (const rel of signal.homePaths ?? []) {
|
|
77
|
+
if (existsSync(join(home, rel)))
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
for (const abs of signal.absPaths ?? []) {
|
|
81
|
+
if (existsSync(abs))
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
for (const bin of signal.bins ?? []) {
|
|
85
|
+
if (binOnPath(bin, pathEnv))
|
|
86
|
+
return true;
|
|
87
|
+
}
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Probe every known tool and return a `{ <toolId>: installed }` map. Tools
|
|
92
|
+
* with no reliable signal report `false`. Pure w.r.t. injected `home`/`pathEnv`
|
|
93
|
+
* (only reads the filesystem), so it's safe to call per wizard boot.
|
|
94
|
+
*/
|
|
95
|
+
export function detectInstalledTools(opts = {}) {
|
|
96
|
+
const home = opts.home ?? homedir();
|
|
97
|
+
const pathEnv = opts.pathEnv ?? process.env['PATH'] ?? '';
|
|
98
|
+
const out = {};
|
|
99
|
+
for (const [id, signal] of Object.entries(TOOL_SIGNALS)) {
|
|
100
|
+
out[id] = isToolInstalled(signal, home, pathEnv);
|
|
101
|
+
}
|
|
102
|
+
return out;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=toolDetection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolDetection.js","sourceRoot":"","sources":["../../src/install/toolDetection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"discovery": {
|
|
3
3
|
"artefact_count": 432,
|
|
4
|
-
"scanner_version": "
|
|
4
|
+
"scanner_version": "d75eba636abb"
|
|
5
5
|
},
|
|
6
|
-
"generated_at": "2026-05-
|
|
6
|
+
"generated_at": "2026-05-28",
|
|
7
7
|
"package": {
|
|
8
8
|
"description": "Universal AI Agent OS \u2014 audited skills, governance rules, commands, and templates for AI coding tools (Claude Code, Cursor, Windsurf, Copilot).",
|
|
9
9
|
"homepage": "https://github.com/event4u-app/agent-config#readme",
|
|
10
10
|
"name": "@event4u/agent-config",
|
|
11
11
|
"repository": "https://github.com/event4u-app/agent-config",
|
|
12
|
-
"version": "4.
|
|
12
|
+
"version": "4.6.0"
|
|
13
13
|
},
|
|
14
14
|
"registries": [
|
|
15
15
|
{
|
package/dist/server/app.js
CHANGED
|
@@ -80,6 +80,42 @@ export async function createApp(opts) {
|
|
|
80
80
|
}
|
|
81
81
|
return undefined;
|
|
82
82
|
});
|
|
83
|
+
// Browser-lifecycle watchdog (real-serve only — see CreateAppOptions).
|
|
84
|
+
if (opts.idleShutdown !== undefined) {
|
|
85
|
+
const { onIdle } = opts.idleShutdown;
|
|
86
|
+
const timeoutMs = opts.idleShutdown.timeoutMs ?? 1_800_000;
|
|
87
|
+
const intervalMs = opts.idleShutdown.intervalMs ?? 30_000;
|
|
88
|
+
let lastActivity = 0; // 0 = disarmed: no client has connected yet.
|
|
89
|
+
let fired = false;
|
|
90
|
+
const timer = setInterval(() => {
|
|
91
|
+
if (lastActivity === 0)
|
|
92
|
+
return; // not yet armed
|
|
93
|
+
if (Date.now() - lastActivity > timeoutMs)
|
|
94
|
+
fire();
|
|
95
|
+
}, intervalMs);
|
|
96
|
+
function fire() {
|
|
97
|
+
if (fired)
|
|
98
|
+
return;
|
|
99
|
+
fired = true;
|
|
100
|
+
clearInterval(timer);
|
|
101
|
+
void onIdle();
|
|
102
|
+
}
|
|
103
|
+
// Never let the watchdog alone keep the process alive.
|
|
104
|
+
if (typeof timer.unref === 'function')
|
|
105
|
+
timer.unref();
|
|
106
|
+
app.addHook('onClose', async () => { clearInterval(timer); });
|
|
107
|
+
// Any authed /api/* request marks the client alive and arms the
|
|
108
|
+
// backstop. The dedicated shutdown beacon fires immediately.
|
|
109
|
+
app.addHook('onRequest', async (request) => {
|
|
110
|
+
if (request.url.startsWith('/api/'))
|
|
111
|
+
lastActivity = Date.now();
|
|
112
|
+
return undefined;
|
|
113
|
+
});
|
|
114
|
+
app.post('/api/v1/shutdown', async () => {
|
|
115
|
+
fire();
|
|
116
|
+
return { ok: true };
|
|
117
|
+
});
|
|
118
|
+
}
|
|
83
119
|
await app.register(fastifyStatic, {
|
|
84
120
|
root: opts.uiDistDir,
|
|
85
121
|
prefix: '/',
|
package/dist/server/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/server/app.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,OAAiC,MAAM,SAAS,CAAC;AACxD,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAA4B,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/server/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,17 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { z } from 'zod';
|
|
10
10
|
import { readFileSync } from 'node:fs';
|
|
11
|
+
import { userInfo } from 'node:os';
|
|
11
12
|
import { PACKAGE_JSON } from '../../cli/paths.js';
|
|
13
|
+
function systemUserName() {
|
|
14
|
+
try {
|
|
15
|
+
const name = userInfo().username;
|
|
16
|
+
return typeof name === 'string' ? name : '';
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return '';
|
|
20
|
+
}
|
|
21
|
+
}
|
|
12
22
|
export const PingResponseSchema = z.object({
|
|
13
23
|
ok: z.literal(true),
|
|
14
24
|
version: z.string().min(1),
|
|
@@ -27,6 +37,12 @@ export const PingResponseSchema = z.object({
|
|
|
27
37
|
* operator pinned `writeRoot` via `--project`.
|
|
28
38
|
*/
|
|
29
39
|
projectScopeAvailable: z.boolean(),
|
|
40
|
+
/**
|
|
41
|
+
* Best-effort OS account name (e.g. `matze`), used to pre-fill the
|
|
42
|
+
* welcome step's name field on a fresh wizard. Empty string when the
|
|
43
|
+
* platform does not expose it.
|
|
44
|
+
*/
|
|
45
|
+
systemUser: z.string(),
|
|
30
46
|
});
|
|
31
47
|
function readPackageVersion() {
|
|
32
48
|
try {
|
|
@@ -48,6 +64,7 @@ export function pingRoute(opts) {
|
|
|
48
64
|
mode: opts.mode,
|
|
49
65
|
dryRun: opts.dryRun === true,
|
|
50
66
|
projectScopeAvailable: opts.projectScopeRoot !== undefined && opts.projectScopeRoot !== null,
|
|
67
|
+
systemUser: systemUserName(),
|
|
51
68
|
};
|
|
52
69
|
return response;
|
|
53
70
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ping.js","sourceRoot":"","sources":["../../../src/server/routes/ping.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACnB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B;;;OAGG;IACH,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;IACnB;;;;;OAKG;IACH,qBAAqB,EAAE,CAAC,CAAC,OAAO,EAAE;
|
|
1
|
+
{"version":3,"file":"ping.js","sourceRoot":"","sources":["../../../src/server/routes/ping.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,SAAS,cAAc;IACnB,IAAI,CAAC;QACD,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC,QAAQ,CAAC;QACjC,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,EAAE,CAAC;IACd,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACnB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B;;;OAGG;IACH,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;IACnB;;;;;OAKG;IACH,qBAAqB,EAAE,CAAC,CAAC,OAAO,EAAE;IAClC;;;;OAIG;IACH,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;CACzB,CAAC,CAAC;AAIH,SAAS,kBAAkB;IACvB,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAA0B,CAAC;QACpF,OAAO,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,OAAO,CAAC;IACnB,CAAC;AACL,CAAC;AAcD,MAAM,UAAU,SAAS,CAAC,IAAsB;IAC5C,MAAM,MAAM,GAAuB,KAAK,EAAE,GAAoB,EAAE,EAAE;QAC9D,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;YAC/B,MAAM,QAAQ,GAAiB;gBAC3B,EAAE,EAAE,IAAI;gBACR,OAAO,EAAE,kBAAkB,EAAE;gBAC7B,WAAW,EAAE,IAAI,CAAC,SAAS;gBAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,IAAI;gBAC5B,qBAAqB,EAAE,IAAI,CAAC,gBAAgB,KAAK,SAAS,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI;gBAC5F,UAAU,EAAE,cAAc,EAAE;aAC/B,CAAC;YACF,OAAO,QAAQ,CAAC;QACpB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IACF,OAAO,MAAM,CAAC;AAClB,CAAC"}
|