@skillcap/gdh 0.25.4 → 0.26.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/INSTALL-BUNDLE.json +1 -1
- package/RELEASE-SPAN-UPDATE-CONTRACTS.json +147 -0
- package/node_modules/@gdh/adapters/dist/claude-settings-patch.d.ts.map +1 -1
- package/node_modules/@gdh/adapters/dist/claude-settings-patch.js +38 -15
- package/node_modules/@gdh/adapters/dist/claude-settings-patch.js.map +1 -1
- package/node_modules/@gdh/adapters/dist/index.d.ts +12 -0
- package/node_modules/@gdh/adapters/dist/index.d.ts.map +1 -1
- package/node_modules/@gdh/adapters/dist/index.js +21 -0
- package/node_modules/@gdh/adapters/dist/index.js.map +1 -1
- package/node_modules/@gdh/adapters/dist/self-update-mechanics.d.ts.map +1 -1
- package/node_modules/@gdh/adapters/dist/self-update-mechanics.js +49 -16
- package/node_modules/@gdh/adapters/dist/self-update-mechanics.js.map +1 -1
- package/node_modules/@gdh/adapters/dist/skill-rendering.d.ts +5 -2
- package/node_modules/@gdh/adapters/dist/skill-rendering.d.ts.map +1 -1
- package/node_modules/@gdh/adapters/dist/skill-rendering.js +39 -0
- package/node_modules/@gdh/adapters/dist/skill-rendering.js.map +1 -1
- package/node_modules/@gdh/adapters/dist/templates/authoring-hook.js.tpl +200 -15
- package/node_modules/@gdh/adapters/package.json +8 -8
- package/node_modules/@gdh/authoring/dist/diagnostics-broker-contract.d.ts +1 -0
- package/node_modules/@gdh/authoring/dist/diagnostics-broker-contract.d.ts.map +1 -1
- package/node_modules/@gdh/authoring/dist/diagnostics-broker-contract.js +1 -0
- package/node_modules/@gdh/authoring/dist/diagnostics-broker-contract.js.map +1 -1
- package/node_modules/@gdh/authoring/dist/diagnostics-broker.d.ts +2 -1
- package/node_modules/@gdh/authoring/dist/diagnostics-broker.d.ts.map +1 -1
- package/node_modules/@gdh/authoring/dist/diagnostics-broker.js +91 -13
- package/node_modules/@gdh/authoring/dist/diagnostics-broker.js.map +1 -1
- package/node_modules/@gdh/authoring/dist/index.d.ts +1 -1
- package/node_modules/@gdh/authoring/dist/index.d.ts.map +1 -1
- package/node_modules/@gdh/authoring/dist/index.js +2 -1
- package/node_modules/@gdh/authoring/dist/index.js.map +1 -1
- package/node_modules/@gdh/authoring/dist/lsp-warmup.d.ts +30 -0
- package/node_modules/@gdh/authoring/dist/lsp-warmup.d.ts.map +1 -0
- package/node_modules/@gdh/authoring/dist/lsp-warmup.js +213 -0
- package/node_modules/@gdh/authoring/dist/lsp-warmup.js.map +1 -0
- package/node_modules/@gdh/authoring/dist/lsp.d.ts +8 -1
- package/node_modules/@gdh/authoring/dist/lsp.d.ts.map +1 -1
- package/node_modules/@gdh/authoring/dist/lsp.js +256 -104
- package/node_modules/@gdh/authoring/dist/lsp.js.map +1 -1
- package/node_modules/@gdh/authoring/dist/scene-resource.d.ts.map +1 -1
- package/node_modules/@gdh/authoring/dist/scene-resource.js +140 -0
- package/node_modules/@gdh/authoring/dist/scene-resource.js.map +1 -1
- package/node_modules/@gdh/authoring/package.json +2 -2
- package/node_modules/@gdh/cli/dist/index.d.ts.map +1 -1
- package/node_modules/@gdh/cli/dist/index.js +75 -10
- package/node_modules/@gdh/cli/dist/index.js.map +1 -1
- package/node_modules/@gdh/cli/dist/self-update.d.ts.map +1 -1
- package/node_modules/@gdh/cli/dist/self-update.js +66 -10
- package/node_modules/@gdh/cli/dist/self-update.js.map +1 -1
- package/node_modules/@gdh/cli/package.json +10 -10
- package/node_modules/@gdh/core/dist/index.d.ts +178 -6
- package/node_modules/@gdh/core/dist/index.d.ts.map +1 -1
- package/node_modules/@gdh/core/dist/index.js +44 -4
- package/node_modules/@gdh/core/dist/index.js.map +1 -1
- package/node_modules/@gdh/core/dist/migrations/managed-surface-classes.d.ts +15 -0
- package/node_modules/@gdh/core/dist/migrations/managed-surface-classes.d.ts.map +1 -1
- package/node_modules/@gdh/core/dist/migrations/managed-surface-classes.js +18 -0
- package/node_modules/@gdh/core/dist/migrations/managed-surface-classes.js.map +1 -1
- package/node_modules/@gdh/core/dist/migrations/managed-target-surface-inventory.d.ts.map +1 -1
- package/node_modules/@gdh/core/dist/migrations/managed-target-surface-inventory.js +2 -0
- package/node_modules/@gdh/core/dist/migrations/managed-target-surface-inventory.js.map +1 -1
- package/node_modules/@gdh/core/package.json +1 -1
- package/node_modules/@gdh/docs/dist/templates/guidance/authoring-and-validation.md.tpl +4 -5
- package/node_modules/@gdh/docs/package.json +2 -2
- package/node_modules/@gdh/mcp/dist/index.d.ts.map +1 -1
- package/node_modules/@gdh/mcp/dist/index.js +30 -1
- package/node_modules/@gdh/mcp/dist/index.js.map +1 -1
- package/node_modules/@gdh/mcp/package.json +8 -8
- package/node_modules/@gdh/observability/package.json +2 -2
- package/node_modules/@gdh/runtime/package.json +2 -2
- package/node_modules/@gdh/scan/package.json +3 -3
- package/node_modules/@gdh/verify/package.json +7 -7
- package/package.json +11 -11
|
@@ -5,7 +5,7 @@ import os from "node:os";
|
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import { fileURLToPath } from "node:url";
|
|
7
7
|
import { buildGdhStatusResult, CLAUDE_CHECK_UPDATE_HOOK_RELATIVE_PATH, CLAUDE_MIGRATE_SKILL_RELATIVE_PATH, CLAUDE_ONBOARD_SKILL_RELATIVE_PATH, CLAUDE_PREPARE_SKILL_RELATIVE_PATH, CLAUDE_SCAN_SKILL_RELATIVE_PATH, CLAUDE_STATUS_SKILL_RELATIVE_PATH, CODEX_MIGRATE_SKILL_RELATIVE_PATH, CODEX_ONBOARD_SKILL_RELATIVE_PATH, CODEX_PREPARE_SKILL_RELATIVE_PATH, CODEX_SCAN_SKILL_RELATIVE_PATH, CODEX_STATUS_SKILL_RELATIVE_PATH, CURSOR_MIGRATE_COMMAND_RELATIVE_PATH, CURSOR_ONBOARD_COMMAND_RELATIVE_PATH, CURSOR_PREPARE_COMMAND_RELATIVE_PATH, CURSOR_SCAN_COMMAND_RELATIVE_PATH, CURSOR_STATUS_COMMAND_RELATIVE_PATH, createGsdSnapshot, getSupportedAgentAdaptersStatus, installSupportedAgentAdapters, } from "@gdh/adapters";
|
|
8
|
-
import { checkManagedLsp, doctorAuthoringDiagnostics, doctorManagedLsp, getAuthoringDiagnosticsStatus, getCurrentAuthoringDiagnostics, getManagedLspStatus, hasCompleteOnboardingSurface, inspectCacheState, pruneCacheState, pruneAuthoringDiagnostics, pruneManagedLsp, readProjectConfig, readWorktreeState, refreshAuthoringDiagnostics, resolveAuthoringStatus, resolveEffectiveTargetPath, resolvePinnedVersion, resolveProjectRoot, resolveTargetGodotDocsVersion, restartManagedLsp, runAuthoringCheck, runImportRefresh, runTargetPrepare, runWarmup, stopManagedLsp, } from "@gdh/authoring";
|
|
8
|
+
import { checkManagedLsp, doctorAuthoringDiagnostics, doctorManagedLsp, getAuthoringDiagnosticsStatus, getCurrentAuthoringDiagnostics, getManagedLspStatus, hasCompleteOnboardingSurface, inspectCacheState, pruneCacheState, pruneAuthoringDiagnostics, pruneManagedLsp, readProjectConfig, readWorktreeState, refreshAuthoringDiagnostics, resolveAuthoringStatus, resolveEffectiveTargetPath, resolvePinnedVersion, resolveProjectRoot, resolveTargetGodotDocsVersion, restartManagedLsp, runAuthoringCheck, runImportRefresh, runTargetPrepare, runWarmup, stopManagedLsp, warmupManagedLsp, } from "@gdh/authoring";
|
|
9
9
|
import { definePackageBoundary, GDH_AUTHORING_DOGFOOD_VERSION, GDH_AUTHORING_SLICE_REPORT_VERSION, GDH_PRODUCT_NAME, resolveCurrentGdhInstall, resolveGdhProductMetadata, } from "@gdh/core";
|
|
10
10
|
import { fetchOfficialGodotDoc, getGuidanceStatus, resolveGuidanceQuery, searchOfficialGodotDocs, } from "@gdh/docs";
|
|
11
11
|
import { createMcpManifest, invokeMcpTool, serveMcpOverStdio } from "@gdh/mcp";
|
|
@@ -713,6 +713,7 @@ async function runLspCommand(args, io) {
|
|
|
713
713
|
"",
|
|
714
714
|
"Commands:",
|
|
715
715
|
" status [target] Resolve the managed authoring.lsp lifecycle state and print it as JSON.",
|
|
716
|
+
" warmup [target] Warm up the managed Godot LSP behind the scenes (idempotent: returns started | warming | already_warm | blocked).",
|
|
716
717
|
" check [target] Check the persisted managed LSP instance without launching a new one.",
|
|
717
718
|
" stop [target] Stop the persisted GDH-managed LSP instance for this worktree.",
|
|
718
719
|
" restart [target] Stop and relaunch the managed LSP instance for this worktree.",
|
|
@@ -724,6 +725,9 @@ async function runLspCommand(args, io) {
|
|
|
724
725
|
if (subcommand === "status") {
|
|
725
726
|
return runLspStatusCommand(rest, io);
|
|
726
727
|
}
|
|
728
|
+
if (subcommand === "warmup") {
|
|
729
|
+
return runLspWarmupCommand(rest, io);
|
|
730
|
+
}
|
|
727
731
|
if (subcommand === "check" ||
|
|
728
732
|
subcommand === "stop" ||
|
|
729
733
|
subcommand === "restart" ||
|
|
@@ -731,7 +735,7 @@ async function runLspCommand(args, io) {
|
|
|
731
735
|
subcommand === "doctor") {
|
|
732
736
|
return runLspLifecycleCommand(subcommand, rest, io);
|
|
733
737
|
}
|
|
734
|
-
io.stderr.write(`Unknown lsp command: ${subcommand}\n\nUsage: gdh lsp <status|check|stop|restart|prune|doctor> [target]\n`);
|
|
738
|
+
io.stderr.write(`Unknown lsp command: ${subcommand}\n\nUsage: gdh lsp <status|warmup|check|stop|restart|prune|doctor> [target]\n`);
|
|
735
739
|
return 1;
|
|
736
740
|
}
|
|
737
741
|
async function runDocsCommand(args, io) {
|
|
@@ -1116,17 +1120,26 @@ function formatAuthoringCheckCommand(input) {
|
|
|
1116
1120
|
function formatCompactAuthoringCheckResult(result) {
|
|
1117
1121
|
const lines = result.diagnostics.map((diagnostic) => {
|
|
1118
1122
|
const pathPart = diagnostic.path === null ? "<unknown>" : `res://${diagnostic.path}`;
|
|
1119
|
-
const line = diagnostic.line === null ? "" : `:${diagnostic.line
|
|
1120
|
-
const column = diagnostic.column === null ? "" : `:${diagnostic.column
|
|
1123
|
+
const line = diagnostic.line === null ? "" : `:${diagnostic.line}`;
|
|
1124
|
+
const column = diagnostic.column === null ? "" : `:${diagnostic.column}`;
|
|
1121
1125
|
return `${pathPart}${line}${column} [${diagnostic.severity}] ${diagnostic.message}`;
|
|
1122
1126
|
});
|
|
1123
1127
|
const summary = result.blockingSummary;
|
|
1124
|
-
|
|
1125
|
-
|
|
1128
|
+
// Phase 81 / LSP-06 / D-01, D-03: bracketed-token compact-output vocabulary.
|
|
1129
|
+
// Mapping (locked from CONTEXT.md "Claude's Discretion"):
|
|
1130
|
+
// "allowed" -> "fresh" (no blocking errors, all files checked)
|
|
1131
|
+
// "blocked" -> "failed" (blocking errors present)
|
|
1132
|
+
// "unconfirmed" -> "pending" (could not prove this edit; warmup or scope-limited)
|
|
1133
|
+
// Other status tokens ("partial", "stale", "timeout") enter the vocabulary
|
|
1134
|
+
// via the hook template (timedOut branch) and via upstream broker paths
|
|
1135
|
+
// that produce non-GdhAuthoringCompletionState results — not via this
|
|
1136
|
+
// compact formatter, which only sees allowed | blocked | unconfirmed.
|
|
1137
|
+
const statusToken = summary.state === "blocked"
|
|
1138
|
+
? "failed"
|
|
1126
1139
|
: summary.state === "unconfirmed"
|
|
1127
|
-
? "
|
|
1128
|
-
: "
|
|
1129
|
-
lines.push(
|
|
1140
|
+
? "pending"
|
|
1141
|
+
: "fresh";
|
|
1142
|
+
lines.push(`[${statusToken}] ${summary.errorCount} errors, ${summary.warningCount} warnings, ${summary.infoCount} info.`);
|
|
1130
1143
|
if (summary.reasons.length > 0) {
|
|
1131
1144
|
lines.push(`Reasons: ${summary.reasons.join(", ")}`);
|
|
1132
1145
|
}
|
|
@@ -1159,7 +1172,17 @@ async function runLspStatusCommand(args, io) {
|
|
|
1159
1172
|
projectConfig: context.projectConfig,
|
|
1160
1173
|
owner: "gdh lsp status",
|
|
1161
1174
|
});
|
|
1175
|
+
// Phase 81 / LSP-08 / D-16: JSON pass-through includes versionFloorAdvisory
|
|
1176
|
+
// as a structured field when non-null (set by Plan 04 on unavailable results
|
|
1177
|
+
// with reason godot_editor_version_unsupported_for_lsp).
|
|
1162
1178
|
io.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
|
|
1179
|
+
// Human-readable version-floor advisory (D-16): printed after JSON when present.
|
|
1180
|
+
if (result.versionFloorAdvisory != null) {
|
|
1181
|
+
const advisory = result.versionFloorAdvisory;
|
|
1182
|
+
const detected = advisory.detectedVersion ?? "unknown";
|
|
1183
|
+
const recommended = advisory.recommendedVersions.join(" or ");
|
|
1184
|
+
io.stdout.write(`Configured Godot binary ${detected} is below the managed-LSP floor (>= ${advisory.minimumVersion}); recommended: ${recommended}.\n`);
|
|
1185
|
+
}
|
|
1163
1186
|
return 0;
|
|
1164
1187
|
}
|
|
1165
1188
|
catch (error) {
|
|
@@ -1167,6 +1190,48 @@ async function runLspStatusCommand(args, io) {
|
|
|
1167
1190
|
return 1;
|
|
1168
1191
|
}
|
|
1169
1192
|
}
|
|
1193
|
+
async function runLspWarmupCommand(args, io) {
|
|
1194
|
+
if (args.includes("--help")) {
|
|
1195
|
+
io.stdout.write([
|
|
1196
|
+
"Usage: gdh lsp warmup [target]",
|
|
1197
|
+
"Usage: gdh lsp warmup --target <path>",
|
|
1198
|
+
"",
|
|
1199
|
+
"Idempotently warm up the managed Godot LSP for the target so subsequent",
|
|
1200
|
+
"post-edit authoring checks return fast diagnostics. Prints a JSON",
|
|
1201
|
+
"GdhAuthoringLspWarmupResult with status: started | warming | already_warm",
|
|
1202
|
+
"| blocked. All four statuses exit 0; --help and argument errors exit 1.",
|
|
1203
|
+
"",
|
|
1204
|
+
"This verb is what the post-edit hook detaches via child_process.spawn(...,",
|
|
1205
|
+
"{ detached: true, stdio: 'ignore' }).unref() so the agent does not pay",
|
|
1206
|
+
"Godot-startup latency on the cold-start edit (Phase 82 / LSP-02).",
|
|
1207
|
+
].join("\n") + "\n");
|
|
1208
|
+
return 0;
|
|
1209
|
+
}
|
|
1210
|
+
const parsedTarget = parseSingleTargetPathArg(args, {
|
|
1211
|
+
usage: "Usage: gdh lsp warmup [target]\nUsage: gdh lsp warmup --target <path>\n",
|
|
1212
|
+
allowTargetOption: true,
|
|
1213
|
+
});
|
|
1214
|
+
if (parsedTarget.error !== null) {
|
|
1215
|
+
io.stderr.write(parsedTarget.error);
|
|
1216
|
+
return 1;
|
|
1217
|
+
}
|
|
1218
|
+
const targetPath = parsedTarget.targetPath;
|
|
1219
|
+
try {
|
|
1220
|
+
const context = await buildAuthoringContext(targetPath);
|
|
1221
|
+
const result = await warmupManagedLsp({
|
|
1222
|
+
targetPath: context.targetPath,
|
|
1223
|
+
status: context.status,
|
|
1224
|
+
projectConfig: context.projectConfig,
|
|
1225
|
+
owner: "gdh lsp warmup",
|
|
1226
|
+
});
|
|
1227
|
+
io.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
|
|
1228
|
+
return 0;
|
|
1229
|
+
}
|
|
1230
|
+
catch (error) {
|
|
1231
|
+
io.stderr.write(`Failed to warm up managed LSP for "${targetPath}": ${formatCliError(error)}\n`);
|
|
1232
|
+
return 1;
|
|
1233
|
+
}
|
|
1234
|
+
}
|
|
1170
1235
|
async function runLspLifecycleCommand(command, args, io) {
|
|
1171
1236
|
if (args.includes("--help")) {
|
|
1172
1237
|
io.stdout.write([
|
|
@@ -4404,7 +4469,7 @@ function renderHelp() {
|
|
|
4404
4469
|
" adapters gsd snapshot [target] [--files <path>] Export a read-only GSD projection.",
|
|
4405
4470
|
" authoring check [target] Run the current authoring-check entrypoint.",
|
|
4406
4471
|
" authoring diagnostics <status|current|refresh|doctor|prune> [target] Inspect current Godot authoring diagnostics snapshots.",
|
|
4407
|
-
" lsp <status|check|stop|restart|prune|doctor> [target] Manage authoring.lsp lifecycle state.",
|
|
4472
|
+
" lsp <status|warmup|check|stop|restart|prune|doctor> [target] Manage authoring.lsp lifecycle state.",
|
|
4408
4473
|
" warmup [target] [--dry-run] Inspect or apply authoring worktree warmup.",
|
|
4409
4474
|
" target prepare [target] [--source-target <path>] [--dry-run] Prepare target-local generated/import state.",
|
|
4410
4475
|
" imports refresh [target] [--dry-run] Run or plan a headless Godot import refresh.",
|