gsd-pi 2.67.0-dev.4fb8afe → 2.67.0-dev.5399650
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/dist/resources/extensions/gsd/auto/session.js +6 -0
- package/dist/resources/extensions/gsd/auto.js +27 -0
- package/dist/resources/extensions/gsd/commands/handlers/core.js +38 -24
- package/dist/resources/extensions/gsd/commands/index.js +8 -1
- package/dist/resources/extensions/gsd/init-wizard.js +34 -0
- package/dist/resources/extensions/gsd/workflow-logger.js +18 -3
- package/dist/resources/extensions/gsd/workflow-mcp.js +38 -7
- package/dist/web/standalone/.next/BUILD_ID +1 -1
- package/dist/web/standalone/.next/app-path-routes-manifest.json +16 -16
- package/dist/web/standalone/.next/build-manifest.json +2 -2
- package/dist/web/standalone/.next/prerender-manifest.json +3 -3
- package/dist/web/standalone/.next/server/app/_global-error.html +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/index.html +1 -1
- package/dist/web/standalone/.next/server/app/index.rsc +1 -1
- package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app-paths-manifest.json +16 -16
- package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
- package/dist/web/standalone/.next/server/pages/404.html +1 -1
- package/dist/web/standalone/.next/server/pages/500.html +1 -1
- package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
- package/package.json +4 -2
- package/packages/mcp-server/dist/cli.d.ts +9 -0
- package/packages/mcp-server/dist/cli.d.ts.map +1 -0
- package/packages/mcp-server/dist/cli.js +58 -0
- package/packages/mcp-server/dist/cli.js.map +1 -0
- package/packages/mcp-server/dist/index.d.ts +20 -0
- package/packages/mcp-server/dist/index.d.ts.map +1 -0
- package/packages/mcp-server/dist/index.js +14 -0
- package/packages/mcp-server/dist/index.js.map +1 -0
- package/packages/mcp-server/dist/readers/captures.d.ts +25 -0
- package/packages/mcp-server/dist/readers/captures.d.ts.map +1 -0
- package/packages/mcp-server/dist/readers/captures.js +67 -0
- package/packages/mcp-server/dist/readers/captures.js.map +1 -0
- package/packages/mcp-server/dist/readers/doctor-lite.d.ts +20 -0
- package/packages/mcp-server/dist/readers/doctor-lite.d.ts.map +1 -0
- package/packages/mcp-server/dist/readers/doctor-lite.js +173 -0
- package/packages/mcp-server/dist/readers/doctor-lite.js.map +1 -0
- package/packages/mcp-server/dist/readers/index.d.ts +14 -0
- package/packages/mcp-server/dist/readers/index.d.ts.map +1 -0
- package/packages/mcp-server/dist/readers/index.js +10 -0
- package/packages/mcp-server/dist/readers/index.js.map +1 -0
- package/packages/mcp-server/dist/readers/knowledge.d.ts +18 -0
- package/packages/mcp-server/dist/readers/knowledge.d.ts.map +1 -0
- package/packages/mcp-server/dist/readers/knowledge.js +82 -0
- package/packages/mcp-server/dist/readers/knowledge.js.map +1 -0
- package/packages/mcp-server/dist/readers/metrics.d.ts +32 -0
- package/packages/mcp-server/dist/readers/metrics.d.ts.map +1 -0
- package/packages/mcp-server/dist/readers/metrics.js +74 -0
- package/packages/mcp-server/dist/readers/metrics.js.map +1 -0
- package/packages/mcp-server/dist/readers/paths.d.ts +42 -0
- package/packages/mcp-server/dist/readers/paths.d.ts.map +1 -0
- package/packages/mcp-server/dist/readers/paths.js +199 -0
- package/packages/mcp-server/dist/readers/paths.js.map +1 -0
- package/packages/mcp-server/dist/readers/roadmap.d.ts +26 -0
- package/packages/mcp-server/dist/readers/roadmap.d.ts.map +1 -0
- package/packages/mcp-server/dist/readers/roadmap.js +194 -0
- package/packages/mcp-server/dist/readers/roadmap.js.map +1 -0
- package/packages/mcp-server/dist/readers/state.d.ts +43 -0
- package/packages/mcp-server/dist/readers/state.d.ts.map +1 -0
- package/packages/mcp-server/dist/readers/state.js +184 -0
- package/packages/mcp-server/dist/readers/state.js.map +1 -0
- package/packages/mcp-server/dist/server.d.ts +28 -0
- package/packages/mcp-server/dist/server.d.ts.map +1 -0
- package/packages/mcp-server/dist/server.js +319 -0
- package/packages/mcp-server/dist/server.js.map +1 -0
- package/packages/mcp-server/dist/session-manager.d.ts +54 -0
- package/packages/mcp-server/dist/session-manager.d.ts.map +1 -0
- package/packages/mcp-server/dist/session-manager.js +284 -0
- package/packages/mcp-server/dist/session-manager.js.map +1 -0
- package/packages/mcp-server/dist/types.d.ts +61 -0
- package/packages/mcp-server/dist/types.d.ts.map +1 -0
- package/packages/mcp-server/dist/types.js +11 -0
- package/packages/mcp-server/dist/types.js.map +1 -0
- package/packages/mcp-server/dist/workflow-tools.d.ts +9 -0
- package/packages/mcp-server/dist/workflow-tools.d.ts.map +1 -0
- package/packages/mcp-server/dist/workflow-tools.js +526 -0
- package/packages/mcp-server/dist/workflow-tools.js.map +1 -0
- package/packages/mcp-server/tsconfig.json +1 -1
- package/packages/rpc-client/dist/index.d.ts +10 -0
- package/packages/rpc-client/dist/index.d.ts.map +1 -0
- package/packages/rpc-client/dist/index.js +9 -0
- package/packages/rpc-client/dist/index.js.map +1 -0
- package/packages/rpc-client/dist/jsonl.d.ts +17 -0
- package/packages/rpc-client/dist/jsonl.d.ts.map +1 -0
- package/packages/rpc-client/dist/jsonl.js +54 -0
- package/packages/rpc-client/dist/jsonl.js.map +1 -0
- package/packages/rpc-client/dist/rpc-client.d.ts +259 -0
- package/packages/rpc-client/dist/rpc-client.d.ts.map +1 -0
- package/packages/rpc-client/dist/rpc-client.js +541 -0
- package/packages/rpc-client/dist/rpc-client.js.map +1 -0
- package/packages/rpc-client/dist/rpc-client.test.d.ts +2 -0
- package/packages/rpc-client/dist/rpc-client.test.d.ts.map +1 -0
- package/packages/rpc-client/dist/rpc-client.test.js +477 -0
- package/packages/rpc-client/dist/rpc-client.test.js.map +1 -0
- package/packages/rpc-client/dist/rpc-types.d.ts +566 -0
- package/packages/rpc-client/dist/rpc-types.d.ts.map +1 -0
- package/packages/rpc-client/dist/rpc-types.js +12 -0
- package/packages/rpc-client/dist/rpc-types.js.map +1 -0
- package/scripts/ensure-workspace-builds.cjs +2 -0
- package/scripts/link-workspace-packages.cjs +21 -14
- package/src/resources/extensions/gsd/auto/session.ts +6 -0
- package/src/resources/extensions/gsd/auto.ts +29 -1
- package/src/resources/extensions/gsd/commands/handlers/core.ts +52 -25
- package/src/resources/extensions/gsd/commands/index.ts +7 -1
- package/src/resources/extensions/gsd/init-wizard.ts +34 -0
- package/src/resources/extensions/gsd/tests/auto-project-root-env.test.ts +29 -0
- package/src/resources/extensions/gsd/tests/core-overlay-fallback.test.ts +101 -0
- package/src/resources/extensions/gsd/tests/init-bootstrap-completeness.test.ts +121 -0
- package/src/resources/extensions/gsd/tests/workflow-logger.test.ts +16 -0
- package/src/resources/extensions/gsd/tests/workflow-mcp.test.ts +39 -1
- package/src/resources/extensions/gsd/workflow-logger.ts +19 -3
- package/src/resources/extensions/gsd/workflow-mcp.ts +41 -7
- /package/dist/web/standalone/.next/static/{IBTC_HlEpTBAa4HXMoV_A → 6_QPFhgX0DQnDhhquheRc}/_buildManifest.js +0 -0
- /package/dist/web/standalone/.next/static/{IBTC_HlEpTBAa4HXMoV_A → 6_QPFhgX0DQnDhhquheRc}/_ssgManifest.js +0 -0
|
@@ -67,6 +67,7 @@ export interface LogEntry {
|
|
|
67
67
|
const MAX_BUFFER = 100;
|
|
68
68
|
let _buffer: LogEntry[] = [];
|
|
69
69
|
let _auditBasePath: string | null = null;
|
|
70
|
+
let _stderrEnabled = true;
|
|
70
71
|
|
|
71
72
|
/**
|
|
72
73
|
* Set the base path for persistent audit log writes.
|
|
@@ -77,6 +78,16 @@ export function setLogBasePath(basePath: string): void {
|
|
|
77
78
|
_auditBasePath = basePath;
|
|
78
79
|
}
|
|
79
80
|
|
|
81
|
+
/**
|
|
82
|
+
* Enable or disable immediate stderr writes for workflow logs.
|
|
83
|
+
* Returns the previous setting so callers can restore it.
|
|
84
|
+
*/
|
|
85
|
+
export function setStderrLoggingEnabled(enabled: boolean): boolean {
|
|
86
|
+
const previous = _stderrEnabled;
|
|
87
|
+
_stderrEnabled = enabled;
|
|
88
|
+
return previous;
|
|
89
|
+
}
|
|
90
|
+
|
|
80
91
|
// ─── Public API ─────────────────────────────────────────────────────────
|
|
81
92
|
|
|
82
93
|
/**
|
|
@@ -245,7 +256,7 @@ function _push(
|
|
|
245
256
|
// Always forward to stderr so terminal watchers see it (see module header for policy)
|
|
246
257
|
const prefix = severity === "error" ? "ERROR" : "WARN";
|
|
247
258
|
const ctxStr = context ? ` ${JSON.stringify(context)}` : "";
|
|
248
|
-
|
|
259
|
+
_writeStderr(`[gsd:${component}] ${prefix}: ${message}${ctxStr}\n`);
|
|
249
260
|
|
|
250
261
|
// Persist to notification store (both warnings and errors)
|
|
251
262
|
try {
|
|
@@ -255,7 +266,7 @@ function _push(
|
|
|
255
266
|
"workflow-logger",
|
|
256
267
|
);
|
|
257
268
|
} catch (notifErr) {
|
|
258
|
-
|
|
269
|
+
_writeStderr(`[gsd:workflow-logger] notification-store append failed: ${(notifErr as Error).message}\n`);
|
|
259
270
|
}
|
|
260
271
|
|
|
261
272
|
// Buffer for auto-loop to drain
|
|
@@ -275,11 +286,16 @@ function _push(
|
|
|
275
286
|
appendFileSync(join(auditDir, "audit-log.jsonl"), JSON.stringify(sanitized) + "\n", "utf-8");
|
|
276
287
|
} catch (auditErr) {
|
|
277
288
|
// Best-effort — never let audit write failures bubble up
|
|
278
|
-
|
|
289
|
+
_writeStderr(`[gsd:audit] failed to persist log entry: ${(auditErr as Error).message}\n`);
|
|
279
290
|
}
|
|
280
291
|
}
|
|
281
292
|
}
|
|
282
293
|
|
|
294
|
+
function _writeStderr(message: string): void {
|
|
295
|
+
if (!_stderrEnabled) return;
|
|
296
|
+
process.stderr.write(message);
|
|
297
|
+
}
|
|
298
|
+
|
|
283
299
|
/**
|
|
284
300
|
* Sanitize a log entry before persisting to the audit JSONL file.
|
|
285
301
|
* Strips potentially sensitive context (raw paths, cwd, full error text)
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { execSync } from "node:child_process";
|
|
2
2
|
import { existsSync } from "node:fs";
|
|
3
3
|
import { resolve } from "node:path";
|
|
4
|
+
import { fileURLToPath } from "node:url";
|
|
4
5
|
|
|
5
6
|
export interface WorkflowMcpLaunchConfig {
|
|
6
7
|
name: string;
|
|
@@ -66,6 +67,21 @@ function lookupCommand(command: string, platform: NodeJS.Platform = process.plat
|
|
|
66
67
|
}
|
|
67
68
|
}
|
|
68
69
|
|
|
70
|
+
function getBundledWorkflowMcpCliPath(env: NodeJS.ProcessEnv): string | null {
|
|
71
|
+
if (!env.GSD_BIN_PATH?.trim() && !env.GSD_CLI_PATH?.trim()) return null;
|
|
72
|
+
|
|
73
|
+
const candidates = [
|
|
74
|
+
resolve(fileURLToPath(new URL("../../../../packages/mcp-server/dist/cli.js", import.meta.url))),
|
|
75
|
+
resolve(fileURLToPath(new URL("../../../../../packages/mcp-server/dist/cli.js", import.meta.url))),
|
|
76
|
+
];
|
|
77
|
+
|
|
78
|
+
for (const bundledCli of candidates) {
|
|
79
|
+
if (existsSync(bundledCli)) return bundledCli;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
|
|
69
85
|
export function detectWorkflowMcpLaunchConfig(
|
|
70
86
|
projectRoot = process.cwd(),
|
|
71
87
|
env: NodeJS.ProcessEnv = process.env,
|
|
@@ -75,16 +91,19 @@ export function detectWorkflowMcpLaunchConfig(
|
|
|
75
91
|
const explicitArgs = parseJsonEnv<unknown>(env, "GSD_WORKFLOW_MCP_ARGS");
|
|
76
92
|
const explicitEnv = parseJsonEnv<Record<string, string>>(env, "GSD_WORKFLOW_MCP_ENV");
|
|
77
93
|
const explicitCwd = env.GSD_WORKFLOW_MCP_CWD?.trim();
|
|
94
|
+
const gsdCliPath = env.GSD_CLI_PATH?.trim() || env.GSD_BIN_PATH?.trim();
|
|
78
95
|
const workflowProjectRoot =
|
|
79
96
|
explicitEnv?.GSD_WORKFLOW_PROJECT_ROOT?.trim() ||
|
|
80
97
|
env.GSD_WORKFLOW_PROJECT_ROOT?.trim() ||
|
|
98
|
+
env.GSD_PROJECT_ROOT?.trim() ||
|
|
81
99
|
explicitCwd ||
|
|
82
100
|
projectRoot;
|
|
101
|
+
const resolvedWorkflowProjectRoot = resolve(workflowProjectRoot);
|
|
83
102
|
|
|
84
103
|
if (explicitCommand) {
|
|
85
104
|
const launchEnv = {
|
|
86
105
|
...(explicitEnv ?? {}),
|
|
87
|
-
...(
|
|
106
|
+
...(gsdCliPath ? { GSD_CLI_PATH: gsdCliPath } : {}),
|
|
88
107
|
GSD_PERSIST_WRITE_GATE_STATE: "1",
|
|
89
108
|
GSD_WORKFLOW_PROJECT_ROOT: resolve(workflowProjectRoot),
|
|
90
109
|
};
|
|
@@ -97,17 +116,32 @@ export function detectWorkflowMcpLaunchConfig(
|
|
|
97
116
|
};
|
|
98
117
|
}
|
|
99
118
|
|
|
100
|
-
const distCli = resolve(
|
|
119
|
+
const distCli = resolve(resolvedWorkflowProjectRoot, "packages", "mcp-server", "dist", "cli.js");
|
|
101
120
|
if (existsSync(distCli)) {
|
|
102
121
|
return {
|
|
103
122
|
name,
|
|
104
123
|
command: process.execPath,
|
|
105
124
|
args: [distCli],
|
|
106
|
-
cwd:
|
|
125
|
+
cwd: resolvedWorkflowProjectRoot,
|
|
126
|
+
env: {
|
|
127
|
+
...(gsdCliPath ? { GSD_CLI_PATH: gsdCliPath } : {}),
|
|
128
|
+
GSD_PERSIST_WRITE_GATE_STATE: "1",
|
|
129
|
+
GSD_WORKFLOW_PROJECT_ROOT: resolvedWorkflowProjectRoot,
|
|
130
|
+
},
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
const bundledCli = getBundledWorkflowMcpCliPath(env);
|
|
135
|
+
if (bundledCli) {
|
|
136
|
+
return {
|
|
137
|
+
name,
|
|
138
|
+
command: process.execPath,
|
|
139
|
+
args: [bundledCli],
|
|
140
|
+
cwd: resolvedWorkflowProjectRoot,
|
|
107
141
|
env: {
|
|
108
|
-
...(
|
|
142
|
+
...(gsdCliPath ? { GSD_CLI_PATH: gsdCliPath } : {}),
|
|
109
143
|
GSD_PERSIST_WRITE_GATE_STATE: "1",
|
|
110
|
-
GSD_WORKFLOW_PROJECT_ROOT:
|
|
144
|
+
GSD_WORKFLOW_PROJECT_ROOT: resolvedWorkflowProjectRoot,
|
|
111
145
|
},
|
|
112
146
|
};
|
|
113
147
|
}
|
|
@@ -118,9 +152,9 @@ export function detectWorkflowMcpLaunchConfig(
|
|
|
118
152
|
name,
|
|
119
153
|
command: binPath,
|
|
120
154
|
env: {
|
|
121
|
-
...(
|
|
155
|
+
...(gsdCliPath ? { GSD_CLI_PATH: gsdCliPath } : {}),
|
|
122
156
|
GSD_PERSIST_WRITE_GATE_STATE: "1",
|
|
123
|
-
GSD_WORKFLOW_PROJECT_ROOT:
|
|
157
|
+
GSD_WORKFLOW_PROJECT_ROOT: resolvedWorkflowProjectRoot,
|
|
124
158
|
},
|
|
125
159
|
};
|
|
126
160
|
}
|
|
File without changes
|
|
File without changes
|