@skillcap/gdh 0.26.3 → 0.26.5
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 +117 -0
- package/node_modules/@gdh/adapters/dist/skill-rendering.js +2 -2
- package/node_modules/@gdh/adapters/dist/skill-rendering.js.map +1 -1
- package/node_modules/@gdh/adapters/dist/templates/authoring-hook.js.tpl +175 -40
- package/node_modules/@gdh/adapters/package.json +8 -8
- 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 +86 -18
- package/node_modules/@gdh/authoring/dist/index.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 +15 -9
- 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 +3 -1
- package/node_modules/@gdh/cli/dist/index.d.ts.map +1 -1
- package/node_modules/@gdh/cli/dist/index.js +119 -36
- package/node_modules/@gdh/cli/dist/index.js.map +1 -1
- package/node_modules/@gdh/cli/package.json +10 -10
- package/node_modules/@gdh/core/dist/index.d.ts +3 -3
- package/node_modules/@gdh/core/dist/index.js +3 -3
- package/node_modules/@gdh/core/package.json +1 -1
- package/node_modules/@gdh/docs/dist/templates/guidance/authoring-and-validation.md.tpl +5 -4
- package/node_modules/@gdh/docs/package.json +2 -2
- package/node_modules/@gdh/mcp/package.json +8 -8
- package/node_modules/@gdh/observability/dist/guidance-audit.d.ts.map +1 -1
- package/node_modules/@gdh/observability/dist/guidance-audit.js +15 -2
- package/node_modules/@gdh/observability/dist/guidance-audit.js.map +1 -1
- 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
package/INSTALL-BUNDLE.json
CHANGED
|
@@ -3119,6 +3119,123 @@
|
|
|
3119
3119
|
}
|
|
3120
3120
|
]
|
|
3121
3121
|
}
|
|
3122
|
+
},
|
|
3123
|
+
{
|
|
3124
|
+
"version": "0.26.4",
|
|
3125
|
+
"releaseTag": "v0.26.4",
|
|
3126
|
+
"migrationStatus": "required",
|
|
3127
|
+
"summary": "v0.26.4 bumps GDH_UPDATE_HOOK_VERSION 12 -> 13 to land a three-bug fix in the managed authoring-hook.js. Bug A: spawnDetachedWarmup running `gdh lsp warmup` only booted Godot LSP and never primed diagnostics-broker/snapshot.json, so the embedded reader returned `[pending] broker_not_yet_primed` indefinitely; replaced with spawnDetachedRefresh running `gdh authoring diagnostics refresh --target ROOT --changed FILE...` (calls refreshAuthoringDiagnostics which writes snapshot.json + primed marker, per-file 10 s drain timeout). Bug B: Stop hook emitted `{\"hookSpecificOutput\":{\"hookEventName\":\"Stop\",\"additionalContext\":\"...\"}}` for Claude, which Claude Stop schema rejects (Stop accepts only decision/reason/continue/stopReason/suppressOutput/systemMessage); Claude Stop now silent-allow, Codex Stop unchanged. Bug C: same gate silently swallowed Claude PostToolUse [pending]/[stale]/[timeout] hints; gate narrowed to Stop-only on Claude, plus new reasonHint(output, targetRoot) helper appended to context messages so the agent gets per-edit actionable next-step text per broker reason class. Class-1 deterministic re-bake (D-09 / D-03 exempt — GDH_UPDATE_HOOK_VERSION is in CLASS_ONE_REBAKE_EXEMPT). Managed targets re-bake via gdh self-update or gdh migrate --apply. No surface-schema changes; no AGENTS.md contract bump; no broker schema bump.",
|
|
3128
|
+
"releaseHighlights": {
|
|
3129
|
+
"summary": "v0.26.4 is a patch release that fixes a three-bug stack in the managed authoring hook (`packages/adapters/src/templates/authoring-hook.js.tpl`) that was preventing the post-edit dispatch from ever reaching `[fresh]` on Claude. v0.26.3 eliminated the per-edit npx tax via the embedded broker-snapshot reader, but the detached spawn still ran `gdh lsp warmup` — which only boots Godot LSP and writes `lsp-instance.json`, never priming the broker `snapshot.json` that the embedded reader requires. The hook also emitted Claude-invalid Stop JSON and silently dropped Claude PostToolUse hints. v0.26.4 replaces the bare warmup with a scoped `gdh authoring diagnostics refresh --target ROOT --changed FILE...` spawn, makes Claude Stop silent-allow, and adds agent-actionable per-edit `reasonHint` text on `[pending]/[stale]/[timeout]` PostToolUse events.",
|
|
3130
|
+
"operatorChanges": [
|
|
3131
|
+
"**Hook spawns scoped diagnostics refresh, not bare warmup.** `spawnDetachedWarmup(targetRoot)` renamed to `spawnDetachedRefresh(targetRoot, files)`; the spawned argv is `npx -y @skillcap/gdh@PINNED authoring diagnostics refresh --target <root> --changed <file>...` with `detached: true`, `stdio: 'ignore'`, `windowsHide: true`, `.unref()` invariants preserved (Pitfall 1). All four call sites updated (PostToolUse, PostToolBatch, Stop cold-broker × 2). The new CLI verb runs `getManagedLspStatus({ launchPolicy: \"launch_if_needed\" })` (boots Godot if needed), opens scoped files via LSP, drains diagnostics with per-file 10 s timeout, and writes `diagnostics-broker/snapshot.json` plus the `primed` marker via `writePersistedSnapshot` (`packages/authoring/src/diagnostics-broker.ts:316`). Result: post-edit hooks now reach `[fresh]` on the second edit instead of looping forever on `[pending] broker_not_yet_primed`.",
|
|
3132
|
+
"**Claude Stop hook silent-allow.** The Stop hook previously emitted `{\"hookSpecificOutput\":{\"hookEventName\":\"Stop\",\"additionalContext\":\"...\"}}`, which Claude rejects with `error: hook returned invalid stop hook JSON output` because the documented Stop schema only accepts `decision` / `reason` / `continue` / `stopReason` / `suppressOutput` / `systemMessage`. The `context()` gate now returns `allow()` (empty stdout, exit 0) for Claude Stop. Codex Stop is unchanged — Codex accepts `additionalContext` on every event.",
|
|
3133
|
+
"**Per-edit `reasonHint` on Claude PostToolUse / PostToolBatch.** The same `context()` gate previously silently swallowed Claude PostToolUse `[pending]/[stale]/[timeout]` results, so the agent received no per-edit signal. The fix narrows the gate to `if (AGENT !== 'codex' && CURRENT_EVENT === 'Stop') return allow();`, so Claude PostToolUse / PostToolBatch / FileChanged now emit `hookSpecificOutput.additionalContext`. A new `reasonHint(output, targetRoot)` helper appends an agent-actionable next step keyed on the broker reason class (`lsp_instance_not_running`, `broker_not_yet_primed`, `file_not_in_snapshot`, `content_hash_mismatch`, `freshness_expired`, `lsp_instance_identity_mismatch`, generic). Each hint embeds the target path so the agent has copy-paste-ready commands like `gdh authoring diagnostics refresh --target \"<root>\"` or `gdh lsp prune --target \"<root>\"`.",
|
|
3134
|
+
"**`GDH_UPDATE_HOOK_VERSION` 12 → 13.** Forces deterministic re-bake on the existing class-1 deterministic surface mechanism. No agentContract bump, no `MIGRATION_REGISTRY_ENTRIES` entry, no schema change."
|
|
3135
|
+
]
|
|
3136
|
+
},
|
|
3137
|
+
"updateContract": {
|
|
3138
|
+
"summary": "Managed targets must re-bake the managed authoring-hook.js so the detached spawn switches from bare `lsp warmup` to scoped `authoring diagnostics refresh --target ROOT --changed FILE...`, Claude Stop becomes silent-allow (instead of emitting the Claude-invalid `hookSpecificOutput.additionalContext` JSON), and PostToolUse / PostToolBatch [pending]/[stale]/[timeout] events on Claude now deliver agent-actionable reasonHint text. Re-render is deterministic; no manual editor steps. Operators see two visible behavior deltas: post-edit dispatch now reaches `[fresh]` on the second edit instead of looping forever on `broker_not_yet_primed`, and the `Stop hook (failed): hook returned invalid stop hook JSON output` Claude error stops appearing.",
|
|
3139
|
+
"steps": [
|
|
3140
|
+
{
|
|
3141
|
+
"id": "install_v0_26_4",
|
|
3142
|
+
"kind": "mechanical",
|
|
3143
|
+
"summary": "Install the v0.26.4 GDH package.",
|
|
3144
|
+
"detail": "Run gdh self-update so the target uses the new managed authoring-hook.js fingerprint (hook version 13) with the scoped diagnostics-refresh spawn, Claude Stop silent-allow, and reasonHint helper.",
|
|
3145
|
+
"commands": [
|
|
3146
|
+
"gdh self-update --apply"
|
|
3147
|
+
],
|
|
3148
|
+
"validationCommands": [
|
|
3149
|
+
"gdh status",
|
|
3150
|
+
"gdh adapters status"
|
|
3151
|
+
]
|
|
3152
|
+
},
|
|
3153
|
+
{
|
|
3154
|
+
"id": "rebake_authoring_hook",
|
|
3155
|
+
"kind": "mechanical",
|
|
3156
|
+
"summary": "Re-bake managed authoring-hook.js via gdh migrate --apply.",
|
|
3157
|
+
"detail": "If gdh self-update reports pending lifecycle work, run gdh migrate --apply. The migrate path re-renders the managed Codex authoring hook and the Claude authoring hook templates with hook version 13: spawnDetachedRefresh replaces spawnDetachedWarmup (argv: authoring diagnostics refresh --target ROOT --changed FILE...), context() Stop branch returns allow() on Claude (silent), and reasonHint(output, targetRoot) is appended to PostToolUse / PostToolBatch / Stop pending-stale-timeout context messages. The new behavior is opaque to AGENTS.md contract surfaces, settings, and skill bodies; no other re-bake required for this release.",
|
|
3158
|
+
"commands": [
|
|
3159
|
+
"gdh migrate --apply"
|
|
3160
|
+
],
|
|
3161
|
+
"validationCommands": [
|
|
3162
|
+
"gdh adapters status"
|
|
3163
|
+
]
|
|
3164
|
+
},
|
|
3165
|
+
{
|
|
3166
|
+
"id": "confirm_post_edit_reaches_fresh",
|
|
3167
|
+
"kind": "agent_reasoning",
|
|
3168
|
+
"summary": "Confirm post-edit dispatch now reaches `[fresh]` and Claude Stop no longer fails.",
|
|
3169
|
+
"detail": "Inspect the rendered authoring-hook.js header for `gdh-hook-version: 13` and confirm `spawnDetachedRefresh` (or equivalent symbol) plus `reasonHint` appear in the script. Optionally exercise: edit a `.gd` file in the configured Godot target; the first PostToolUse hook returns `[pending] broker_not_yet_primed` plus a `reasonHint` snippet pointing at `gdh authoring diagnostics refresh --target <root>`, and the detached refresh primes `<integrationRoot>/.gdh-state/authoring/diagnostics-broker/snapshot.json` within ~10 s. Subsequent edits to the same file return silent allow ([fresh]) from the embedded reader. End-of-session Stop on Claude no longer surfaces `Stop hook (failed): hook returned invalid stop hook JSON output`.",
|
|
3170
|
+
"commands": [
|
|
3171
|
+
"gdh adapters status"
|
|
3172
|
+
],
|
|
3173
|
+
"validationCommands": [
|
|
3174
|
+
"gdh adapters status"
|
|
3175
|
+
]
|
|
3176
|
+
}
|
|
3177
|
+
]
|
|
3178
|
+
}
|
|
3179
|
+
},
|
|
3180
|
+
{
|
|
3181
|
+
"version": "0.26.5",
|
|
3182
|
+
"releaseTag": "v0.26.5",
|
|
3183
|
+
"migrationStatus": "required",
|
|
3184
|
+
"summary": "v0.26.5 makes authoring validation truthful by file type and re-bakes managed target surfaces so agents receive the scoped contract. GDH_AGENT_CONTRACT_VERSION moves 14 -> 15 for generated skill/status guidance, GDH_GUIDANCE_UNIT_VERSION moves 20 -> 21 for authoring-and-validation guidance, and GDH_UPDATE_HOOK_VERSION moves 13 -> 14 for managed authoring hook behavior. Existing targets should self-update and migrate so generated hooks, generated guidance, and generated agent skills reflect: .gd uses Godot LSP diagnostics, .tscn uses scoped Godot scene validation, and .tres is ignored by automatic scoped checks.",
|
|
3185
|
+
"releaseHighlights": {
|
|
3186
|
+
"summary": "v0.26.5 is a patch release that makes GDH authoring validation honest by file type and reduces false LSP confidence during agent edits. Scoped checks now treat `.gd` files as Godot LSP inputs, `.tscn` files as Godot-backed scene-validation inputs, and `.tres` files as ignored for automatic scoped post-edit checks. The CLI also rejects misleading `authoring check --mode final --changed ...` requests because final validation is a whole-target handoff gate, not changed-file evidence.",
|
|
3187
|
+
"operatorChanges": [
|
|
3188
|
+
"**Post-edit hook feedback is scoped and actionable.** Managed hooks report changed-file diagnostics with stable line and column fallback behavior, file-type-aware recovery commands, and lock-timeout guidance. `.gd` hints point at diagnostics refresh; `.tscn` hints point at scoped post-edit scene validation; `.tres` hints explain that automatic scoped validation ignores resources.",
|
|
3189
|
+
"**CLI scope semantics are less surprising.** `--changed` now accepts repeated flags and variadic values. `--json` works as an alias where operators expect it. Final-mode authoring checks reject scoped changed-file input and suggest the correct post-edit or final command instead.",
|
|
3190
|
+
"**Authoring validation routes by file type.** `.gd` files go through the managed Godot LSP diagnostics broker. `.tscn` files run the scoped scene validator, including the Godot-backed load path after the fast reference scan passes. `.tres` files are not sent to the LSP and are ignored by automatic scoped checks.",
|
|
3191
|
+
"**Noisy diagnostic payloads are trimmed.** Default authoring-check JSON and `gdh lsp stop` output omit nested raw diagnostic payloads so agents see the result instead of drowning in protocol detail.",
|
|
3192
|
+
"**Authoring-session state writes are atomic.** `authoring-sessions.json` writes now use a temp file plus rename, preventing partial JSON artifacts during concurrent guidance-audit writes.",
|
|
3193
|
+
"**Release workflow guidance now owns push.** Maintainer release and publish guidance now treats pushing the release branch and tag as part of the workflow when tag and HEAD preconditions hold."
|
|
3194
|
+
]
|
|
3195
|
+
},
|
|
3196
|
+
"updateContract": {
|
|
3197
|
+
"summary": "Managed targets must re-bake generated hooks, generated guidance, and generated agent skills so the target-side contract matches the v0.26.5 scoped authoring-validation behavior.",
|
|
3198
|
+
"steps": [
|
|
3199
|
+
{
|
|
3200
|
+
"id": "install_v0_26_5",
|
|
3201
|
+
"kind": "mechanical",
|
|
3202
|
+
"summary": "Install the v0.26.5 GDH package.",
|
|
3203
|
+
"detail": "Run gdh self-update so the target uses the v0.26.5 package and can re-render managed authoring surfaces with agent contract 15, guidance unit 21, and update hook 14.",
|
|
3204
|
+
"commands": [
|
|
3205
|
+
"gdh self-update --apply"
|
|
3206
|
+
],
|
|
3207
|
+
"validationCommands": [
|
|
3208
|
+
"gdh status",
|
|
3209
|
+
"gdh adapters status"
|
|
3210
|
+
]
|
|
3211
|
+
},
|
|
3212
|
+
{
|
|
3213
|
+
"id": "rebake_authoring_surfaces",
|
|
3214
|
+
"kind": "mechanical",
|
|
3215
|
+
"summary": "Re-bake managed authoring hook, guidance, and skills.",
|
|
3216
|
+
"detail": "If lifecycle status reports pending managed-surface work, run gdh migrate --apply. The migration re-renders the authoring hook, authoring-and-validation guidance, and provider skill/status text so agents stop treating scenes and resources as LSP files.",
|
|
3217
|
+
"commands": [
|
|
3218
|
+
"gdh migrate --apply"
|
|
3219
|
+
],
|
|
3220
|
+
"validationCommands": [
|
|
3221
|
+
"gdh adapters status",
|
|
3222
|
+
"gdh status"
|
|
3223
|
+
]
|
|
3224
|
+
},
|
|
3225
|
+
{
|
|
3226
|
+
"id": "confirm_scoped_authoring_contract",
|
|
3227
|
+
"kind": "agent_reasoning",
|
|
3228
|
+
"summary": "Confirm the target reports the scoped authoring contract.",
|
|
3229
|
+
"detail": "Check generated guidance or status output for the v0.26.5 behavior: .gd files use Godot LSP diagnostics, .tscn files use scoped scene validation, and .tres files are ignored by automatic scoped post-edit checks. Do not claim final code-validity from changed-file evidence; use gdh authoring check --mode final --target <target> for handoff evidence.",
|
|
3230
|
+
"commands": [
|
|
3231
|
+
"gdh status"
|
|
3232
|
+
],
|
|
3233
|
+
"validationCommands": [
|
|
3234
|
+
"gdh authoring check --mode final --target <target>"
|
|
3235
|
+
]
|
|
3236
|
+
}
|
|
3237
|
+
]
|
|
3238
|
+
}
|
|
3122
3239
|
}
|
|
3123
3240
|
]
|
|
3124
3241
|
}
|
|
@@ -105,7 +105,7 @@ const RUN_GAME_TERMS = [
|
|
|
105
105
|
"`bridge session`: a GDH-managed interactive game run started with `bridge session start`; it can be listed, inspected, driven, screenshotted, and stopped later.",
|
|
106
106
|
];
|
|
107
107
|
const WARMUP_TERMS = [
|
|
108
|
-
"`managed LSP`: the GDH-spawned headless Godot editor that serves diagnostics for `.gd
|
|
108
|
+
"`managed LSP`: the GDH-spawned headless Godot editor that serves diagnostics for `.gd`; scene files use GDH scene validation and `.tres` is ignored by scoped automatic checks in this version.",
|
|
109
109
|
"`warmup`: a fire-and-forget LSP launch serialized by `lsp.lock` so concurrent calls do not multi-spawn Godot.",
|
|
110
110
|
"`already_warm`: the managed LSP is already healthy; warmup is unnecessary.",
|
|
111
111
|
"`warming`: another warmup is in flight; this call returns without launching a second editor.",
|
|
@@ -168,7 +168,7 @@ export const GDH_SKILL_DEFINITIONS = {
|
|
|
168
168
|
`${PREVIEW_HEADER_LITERAL} — migrate output at this step describes planned actions ("would delete ...") not applied ones ("deleted").`,
|
|
169
169
|
"Surface degraded/unavailable capabilities, including operational/diagnostic capability fields when present.",
|
|
170
170
|
"When `runtimeBridgeBroker.state` is `stale` or `incompatible`, route recovery through `runtimeBridgeBroker.cleanupCommand` / gdh bridge session prune; do not recommend gdh bridge repair unless project lifecycle or bridge status reports runtime bridge surface drift.",
|
|
171
|
-
"For code-validity evidence, the canonical command family is gdh authoring check: `.gd` changes need `gdscript_lsp`, `.tscn
|
|
171
|
+
"For code-validity evidence, the canonical command family is gdh authoring check: `.gd` changes need `gdscript_lsp`, `.tscn` changes need `godot_scene_resource`, `.tres` is ignored by scoped automatic checks in this version, and LSP lifecycle/capability readiness is not diagnostic evidence.",
|
|
172
172
|
"Do not treat capability availability as validation evidence and do not recommend validation as the generic next step after status/update. Mention validation only when the user explicitly asks for code-validity evidence, when recent hook output is already relevant, or when structured status/recovery fields require it.",
|
|
173
173
|
"Suggest one most productive next step based on the structured fields; do not claim GDH emitted a top-level `nextStep` field.",
|
|
174
174
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-rendering.js","sourceRoot":"","sources":["../src/skill-rendering.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skill-rendering.js","sourceRoot":"","sources":["../src/skill-rendering.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAElD,qBAAqB,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAC;AAC/D,qBAAqB,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC;AAC9D,qBAAqB,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAC;AAC/D,qBAAqB,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC;AAC9D,qBAAqB,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC;AAC7D,qBAAqB,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC;AAC9D,qBAAqB,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;AAC5D,qBAAqB,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC;AAC3D,qBAAqB,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;AAC5D,qBAAqB,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAC;AAC/D,qBAAqB,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC;AAC9D,qBAAqB,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAC;AAC/D,qBAAqB,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC;AAC9D,qBAAqB,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC;AAC7D,qBAAqB,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC;AAC9D,qBAAqB,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAC;AAC/D,qBAAqB,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC;AAC9D,qBAAqB,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAC;AAC/D,qBAAqB,CAAC,uBAAuB,EAAE,eAAe,CAAC,CAAC;AAChE,qBAAqB,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAC;AAC/D,qBAAqB,CAAC,uBAAuB,EAAE,eAAe,CAAC,CAAC;AAChE,qBAAqB,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC;AAC9D,qBAAqB,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC;AAC7D,qBAAqB,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC;AA+B9D,MAAM,sBAAsB,GAAG,iCAAiC,CAAC;AAEjE,SAAS,kBAAkB,CAAC,KAAoB,EAAE,SAAiB;IACjE,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO,IAAI,SAAS,EAAE,CAAC;IACzB,CAAC;IACD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,SAAS,EAAE,CAAC;AACzB,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAoB,EAAE,SAAiB;IACxE,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC;AACzD,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAoB;IACrD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,qKAAqK,CAAC;IAC/K,CAAC;IACD,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO,8OAA8O,CAAC;IACxP,CAAC;IACD,OAAO,0LAA0L,CAAC;AACpM,CAAC;AAED,MAAM,aAAa,GAAG;IACpB,gEAAgE;IAChE,2IAA2I;IAC3I,6GAA6G;IAC7G,oIAAoI;IACpI,+FAA+F;IAC/F,0HAA0H;IAC1H,0FAA0F;IAC1F,uFAAuF;IACvF,4GAA4G;IAC5G,iJAAiJ;CACzI,CAAC;AAEX,MAAM,YAAY,GAAG;IACnB,sHAAsH;IACtH,+GAA+G;IAC/G,4FAA4F;IAC5F,iFAAiF;IACjF,6IAA6I;IAC7I,gIAAgI;IAChI,oIAAoI;CAC5H,CAAC;AAEX,MAAM,UAAU,GAAG;IACjB,iGAAiG;IACjG,iHAAiH;IACjH,+HAA+H;IAC/H,6HAA6H;IAC7H,+FAA+F;CACvF,CAAC;AAEX,MAAM,aAAa,GAAG;IACpB,wGAAwG;IACxG,yIAAyI;IACzI,mIAAmI;IACnI,gIAAgI;IAChI,yFAAyF;CACjF,CAAC;AAEX,MAAM,YAAY,GAAG;IACnB,wFAAwF;IACxF,+FAA+F;IAC/F,oGAAoG;IACpG,0GAA0G;IAC1G,oIAAoI;IACpI,kGAAkG;CAC1F,CAAC;AAEX,MAAM,aAAa,GAAG;IACpB,sDAAsD;IACtD,6GAA6G;IAC7G,kHAAkH;IAClH,+GAA+G;IAC/G,yHAAyH;IACzH,6FAA6F;IAC7F,iFAAiF;CACzE,CAAC;AAEX,MAAM,cAAc,GAAG;IACrB,+IAA+I;IAC/I,wHAAwH;IACxH,gIAAgI;IAChI,wIAAwI;IACxI,kKAAkK;CAC1J,CAAC;AAEX,MAAM,YAAY,GAAG;IACnB,iMAAiM;IACjM,+GAA+G;IAC/G,4EAA4E;IAC5E,8FAA8F;IAC9F,6CAA6C;IAC7C,8HAA8H;CACtH,CAAC;AAEX,SAAS,GAAG,CAAC,OAAe,EAAE,OAAoB,QAAQ;IACxD,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,wBAAwB,OAAO,EAAE,CAAC;AAC/F,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAA2C;IAC3E,OAAO,EAAE;QACP,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,uDAAuD;QACpE,SAAS,EACP,yIAAyI;QAC3I,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC;QAChE,aAAa,EAAE;YACb,0FAA0F;YAC1F,4FAA4F;SAC7F;QACD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YACpB,4DAA4D,GAAG,CAAC,OAAO,CAAC,YAAY;YACpF,wMAAwM;YACxM,oCAAoC,GAAG,CAAC,OAAO,CAAC,4BAA4B,GAAG,CAAC,OAAO,CAAC,8BAA8B;YACtH,8MAA8M;YAC9M,kNAAkN;YAClN,SAAS,GAAG,CAAC,OAAO,CAAC,wJAAwJ;YAC7K,SAAS,GAAG,CAAC,OAAO,CAAC,+NAA+N;YACpP,aAAa,GAAG,CAAC,OAAO,CAAC,4BAA4B,GAAG,CAAC,OAAO,CAAC,iFAAiF;YAClJ,qaAAqa;YACra,uEAAuE;YACvE,2EAA2E;SAC5E;QACD,KAAK,EAAE,GAAG,EAAE,CAAC;YACX,mFAAmF;YACnF,qDAAqD;YACrD,+CAA+C;YAC/C,wGAAwG;SACzG;KACF;IACD,MAAM,EAAE;QACN,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,6EAA6E;QAC1F,SAAS,EACP,kGAAkG;QACpG,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QAC7C,aAAa,EAAE;YACb,oFAAoF;YACpF,4FAA4F;SAC7F;QACD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YACpB,SAAS,GAAG,CAAC,OAAO,CAAC,0GAA0G;YAC/H,4LAA4L;YAC5L,qWAAqW;YACrW,iMAAiM;YACjM,mKAAmK;YACnK,SAAS,GAAG,CAAC,OAAO,CAAC,yMAAyM;YAC9N,GAAG,sBAAsB,6GAA6G;YACtI,6GAA6G;YAC7G,2QAA2Q;YAC3Q,oSAAoS;YACpS,gUAAgU;YAChU,8HAA8H;SAC/H;QACD,KAAK,EAAE,GAAG,EAAE,CAAC;YACX,4BAA4B;YAC5B,qDAAqD;YACrD,oCAAoC;YACpC,wGAAwG;SACzG;KACF;IACD,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,gEAAgE;QAC7E,gBAAgB,EAAE,qCAAqC;QACvD,SAAS,EACP,qHAAqH;QACvH,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QAC7C,aAAa,EAAE;YACb,oFAAoF;YACpF,4FAA4F;SAC7F;QACD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YACpB,SAAS,GAAG,CAAC,OAAO,CAAC,0EAA0E;YAC/F,oHAAoH;YACpH,iIAAiI;YACjI,+HAA+H;YAC/H,iIAAiI;YACjI,+JAA+J;SAChK;QACD,KAAK,EAAE,GAAG,EAAE,CAAC;YACX,+CAA+C;YAC/C,kFAAkF;YAClF,sKAAsK;YACtK,wGAAwG;SACzG;KACF;IACD,OAAO,EAAE;QACP,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,0CAA0C;QACvD,SAAS,EAAE,8EAA8E;QACzF,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC;QAChE,gBAAgB,EAAE,IAAI;QACtB,aAAa,EAAE;YACb,wCAAwC;YACxC,4FAA4F;SAC7F;QACD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YACpB,SAAS,GAAG,CAAC,OAAO,CAAC,qHAAqH;YAC1I,oKAAoK;YACpK,uJAAuJ;YACvJ,oKAAoK;YACpK,iJAAiJ;YACjJ,gPAAgP;YAChP,4QAA4Q;YAC5Q,2IAA2I;YAC3I,kUAAkU;YAClU,6BAA6B,GAAG,CAAC,OAAO,CAAC,kGAAkG;YAC3I,2LAA2L;YAC3L,mHAAmH;YACnH,6FAA6F;YAC7F,4LAA4L;YAC5L,0TAA0T;YAC1T,yFAAyF;SAC1F;QACD,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YAClB,wDAAwD;YACxD,gCAAgC;YAChC,2GAA2G,GAAG,CAAC,OAAO,CAAC,0CAA0C;YACjK,sGAAsG;YACtG,4BAA4B;SAC7B;KACF;IACD,MAAM,EAAE;QACN,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,2EAA2E;QACxF,gBAAgB,EAAE,0BAA0B;QAC5C,SAAS,EACP,mGAAmG;QACrG,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC;QAChD,gBAAgB,EAAE,IAAI;QACtB,aAAa,EAAE;YACb,8DAA8D;YAC9D,gLAAgL;YAChL,6GAA6G;YAC7G,0DAA0D;SAC3D;QACD,OAAO,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC;YAC5B,4LAA4L;YAC5L,6MAA6M;YAC7M,yMAAyM;YACzM,oLAAoL;YACpL,oOAAoO;YACpO,yBAAyB,CAAC,KAAK,CAAC;YAChC,oMAAoM,kBAAkB,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM;YACjP,iNAAiN;YACjN,qMAAqM;YACrM,iQAAiQ;YACjQ,0OAA0O;YAC1O,4tBAA4tB;YAC5tB,mQAAmQ;YACnQ,0EAA0E;YAC1E,4LAA4L;YAC5L,qRAAqR;YACrR,yFAAyF;SAC1F;QACD,KAAK,EAAE,GAAG,EAAE,CAAC;YACX,wKAAwK;YACxK,4FAA4F;YAC5F,mIAAmI;YACnI,mIAAmI;YACnI,yKAAyK;YACzK,6FAA6F;YAC7F,0GAA0G;YAC1G,oHAAoH;SACrH;KACF;IACD,OAAO,EAAE;QACP,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,sDAAsD;QACnE,SAAS,EAAE,oFAAoF;QAC/F,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC;QAChE,aAAa,EAAE;YACb,yEAAyE;YACzE,4FAA4F;SAC7F;QACD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YACpB,SAAS,GAAG,CAAC,OAAO,CAAC,yKAAyK;YAC9L,8JAA8J;YAC9J,4HAA4H;YAC5H,gHAAgH;YAChH,6aAA6a;YAC7a,0LAA0L;YAC1L,0DAA0D,GAAG,CAAC,OAAO,CAAC,iEAAiE;YACvI,mCAAmC,GAAG,CAAC,OAAO,CAAC,4EAA4E,GAAG,CAAC,OAAO,CAAC,2CAA2C;SACnL;QACD,KAAK,EAAE,GAAG,EAAE,CAAC;YACX,4BAA4B;YAC5B,sHAAsH;YACtH,mKAAmK;YACnK,gJAAgJ;YAChJ,iEAAiE;SAClE;KACF;IACD,UAAU,EAAE;QACV,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,kDAAkD;QAC/D,gBAAgB,EAAE,sBAAsB;QACxC,SAAS,EACP,kJAAkJ;QACpJ,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC;QAChE,aAAa,EAAE;YACb,0FAA0F;YAC1F,4FAA4F;SAC7F;QACD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YACpB,kQAAkQ;YAClQ,oSAAoS;YACpS,SAAS,GAAG,CAAC,OAAO,CAAC,6FAA6F;YAClH,6CAA6C,GAAG,CAAC,OAAO,CAAC,+LAA+L;YACxP,gQAAgQ;YAChQ,SAAS,GAAG,CAAC,OAAO,CAAC,kKAAkK;YACvL,SAAS,GAAG,CAAC,OAAO,CAAC,qKAAqK;YAC1L,8MAA8M;YAC9M,oCAAoC,GAAG,CAAC,OAAO,CAAC,sLAAsL;YACtO,gEAAgE,GAAG,CAAC,OAAO,CAAC,8EAA8E,GAAG,CAAC,OAAO,CAAC,0YAA0Y;YAChjB,2ZAA2Z;YAC3Z,gPAAgP;SACjP;QACD,KAAK,EAAE,GAAG,EAAE,CAAC;YACX,uFAAuF;YACvF,sGAAsG;YACtG,6FAA6F;YAC7F,4GAA4G;YAC5G,oGAAoG;YACpG,+HAA+H;SAChI;KACF;IACD,MAAM,EAAE;QACN,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,iDAAiD;QAC9D,gBAAgB,EAAE,cAAc;QAChC,SAAS,EACP,mNAAmN;QACrN,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,CAAC,MAAM,CAAC;QACrB,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YACpB,0DAA0D,GAAG,CAAC,OAAO,CAAC,4EAA4E;YAClJ,qOAAqO;YACrO,mJAAmJ;SACpJ;QACD,KAAK,EAAE,GAAG,EAAE,CAAC;YACX,2HAA2H;YAC3H,sIAAsI;SACvI;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,SAAS;IACT,QAAQ;IACR,MAAM;IACN,SAAS;IACT,QAAQ;IACR,SAAS;IACT,UAAU;IACV,QAAQ;CACgC,CAAC;AAE3C,MAAM,CAAC,MAAM,8BAA8B,GAAG,yBAAyB,CAAC;AAExE,MAAM,UAAU,cAAc,CAC5B,KAAoB,EACpB,OAAmB,EACnB,aAAqB;IAErB,MAAM,UAAU,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG;QACZ,GAAG,iBAAiB,CAAC,KAAK,EAAE,UAAU,CAAC;QACvC,EAAE;QACF,QAAQ,8BAA8B,aAAa,KAAK,UAAU,UAAU,CAAC,IAAI,MAAM;QACvF,EAAE;QACF,UAAU;QACV,yNAAyN;QACzN,EAAE;QACF,eAAe;QACf,GAAG,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC;QACtC,EAAE;QACF,cAAc;QACd,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC;QAC9E,GAAG,CAAC,UAAU,CAAC,EAAE,KAAK,QAAQ;YAC5B,CAAC,CAAC;gBACE,0CAA0C,yBAAyB,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,8DAA8D;aAC1J;YACH,CAAC,CAAC,EAAE,CAAC;QACP,EAAE;QACF,oBAAoB;QACpB,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9C,EAAE;QACF,YAAY;QACZ,oBAAoB;QACpB,EAAE;QACF,GAAG,UAAU,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;QACzF,EAAE;QACF,UAAU;QACV,GAAG,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;QAC7D,EAAE;KACH,CAAC;IACF,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAoB,EAAE,SAAiB;IAC9E,OAAO,QAAQ,8BAA8B,aAAa,KAAK,UAAU,SAAS,MAAM,CAAC;AAC3F,CAAC;AAED,SAAS,iBAAiB,CACxB,KAAoB,EACpB,UAA8B;IAE9B,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO;YACL,KAAK;YACL,UAAU,UAAU,CAAC,IAAI,GAAG;YAC5B,iBAAiB,UAAU,CAAC,WAAW,GAAG;YAC1C,WAAW;YACX,yBAAyB,UAAU,CAAC,gBAAgB,IAAI,UAAU,CAAC,WAAW,GAAG;YACjF,KAAK;SACN,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,EAAE,SAAS,UAAU,CAAC,IAAI,EAAE,EAAE,iBAAiB,UAAU,CAAC,WAAW,GAAG,EAAE,KAAK,CAAC,CAAC;IAChG,CAAC;IAED,MAAM,WAAW,GAAG;QAClB,KAAK;QACL,SAAS,UAAU,CAAC,IAAI,EAAE;QAC1B,gBAAgB,UAAU,CAAC,WAAW,EAAE;KACzC,CAAC;IACF,IAAI,UAAU,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;QACzC,WAAW,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,UAAU,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACnC,WAAW,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC;IACD,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxB,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,gBAAgB,CACvB,KAAoB,EACpB,UAA8B;IAE9B,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG;QACZ,4DAA4D,OAAO,KAAK;KACzE,CAAC;IACF,IAAI,UAAU,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CACR,4CAA4C,yBAAyB,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,8DAA8D,CAC5J,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,6CAA6C,UAAU,CAAC,EAAE,WAAW,CAAC,CAAC;IACpF,CAAC;IACD,IAAI,UAAU,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,oBAAoB,EAAE,GAAG,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,aAAqB;IAC5D,OAAO,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,aAAqB;IAC3D,OAAO,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,aAAqB;IAC5D,OAAO,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,aAAqB;IAC3D,OAAO,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,aAAqB;IAC1D,OAAO,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,aAAqB;IAC3D,OAAO,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,aAAqB;IACzD,OAAO,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,aAAqB;IACxD,OAAO,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,aAAqB;IACzD,OAAO,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,aAAqB;IAC5D,OAAO,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,aAAqB;IAC3D,OAAO,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,aAAqB;IAC5D,OAAO,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,aAAqB;IAC3D,OAAO,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,aAAqB;IAC1D,OAAO,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,aAAqB;IAC3D,OAAO,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,aAAqB;IAC5D,OAAO,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,aAAqB;IAC3D,OAAO,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,aAAqB;IAC5D,OAAO,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,aAAqB;IAC5D,OAAO,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,aAAqB;IAC3D,OAAO,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,aAAqB;IAC5D,OAAO,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,aAAqB;IAC3D,OAAO,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,aAAqB;IAC1D,OAAO,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,aAAqB;IAC3D,OAAO,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AAC3D,CAAC"}
|
|
@@ -52,12 +52,14 @@ function handlePostEdit(input, targetRoot) {
|
|
|
52
52
|
const changed = collectChangedFiles(input, targetRoot);
|
|
53
53
|
const authoring = changed.filter(isAuthoringValidationPath);
|
|
54
54
|
if (authoring.length === 0) return allow();
|
|
55
|
-
// Phase 82 / LSP-02: fire-and-forget
|
|
56
|
-
//
|
|
57
|
-
//
|
|
58
|
-
//
|
|
59
|
-
//
|
|
60
|
-
|
|
55
|
+
// Phase 82 / LSP-02: fire-and-forget scoped diagnostics refresh BEFORE the
|
|
56
|
+
// bounded read. The verb calls `refreshAuthoringDiagnostics` which boots
|
|
57
|
+
// Godot LSP if needed, opens scoped files via LSP, drains diagnostics, and
|
|
58
|
+
// writes `diagnostics-broker/snapshot.json` + `primed` marker. Hook still
|
|
59
|
+
// returns within CHECK_TIMEOUT_MS regardless of refresh outcome (Pitfall 1:
|
|
60
|
+
// detached + stdio:'ignore' + .unref() means the parent never blocks on
|
|
61
|
+
// the child).
|
|
62
|
+
spawnDetachedRefresh(targetRoot, authoring);
|
|
61
63
|
// Quick task 260504-ix2: embedded broker-snapshot reader. Replaces the
|
|
62
64
|
// per-edit synchronous `npx -y @skillcap/gdh@PINNED authoring check ...`
|
|
63
65
|
// shellout (which was eating the full `CHECK_TIMEOUT_MS` budget on the npx
|
|
@@ -84,10 +86,10 @@ function handlePostEdit(input, targetRoot) {
|
|
|
84
86
|
return allow();
|
|
85
87
|
}
|
|
86
88
|
if (/^\[pending\]/m.test(output) || /^\[stale\]/m.test(output)) {
|
|
87
|
-
return context(`GDH post-edit authoring check could not prove this edit quickly; continuing without blocking. ${compactOneLine(output || 'Run final authoring validation before claiming code-validity.')}`);
|
|
89
|
+
return context(`GDH post-edit authoring check could not prove this edit quickly; continuing without blocking. ${compactOneLine(output || 'Run final authoring validation before claiming code-validity.')} ${reasonHint(output, targetRoot, authoring)}`);
|
|
88
90
|
}
|
|
89
91
|
if (/^\[timeout\]/m.test(output)) {
|
|
90
|
-
return context(`GDH post-edit authoring check returned a timeout status; continuing without blocking. ${compactOneLine(output || 'Run final authoring validation before claiming code-validity.')}`);
|
|
92
|
+
return context(`GDH post-edit authoring check returned a timeout status; continuing without blocking. ${compactOneLine(output || 'Run final authoring validation before claiming code-validity.')} ${reasonHint(output, targetRoot, authoring)}`);
|
|
91
93
|
}
|
|
92
94
|
return allow();
|
|
93
95
|
}
|
|
@@ -130,10 +132,10 @@ function handlePostToolBatch(input, targetRoot) {
|
|
|
130
132
|
const authoring = unique(files).filter(isAuthoringValidationPath);
|
|
131
133
|
if (authoring.length === 0) return allow(); // Pitfall 2: no authoring files — no work
|
|
132
134
|
|
|
133
|
-
// SC2:
|
|
134
|
-
// per-edit
|
|
135
|
-
//
|
|
136
|
-
|
|
135
|
+
// SC2: spawnDetachedRefresh reuses the lsp.lock-serialized helper. If a
|
|
136
|
+
// per-edit refresh is already in flight when this fires, the broker side
|
|
137
|
+
// serializes via the lock primitive — no double-spawn of Godot.
|
|
138
|
+
spawnDetachedRefresh(targetRoot, authoring);
|
|
137
139
|
|
|
138
140
|
// Quick task 260504-ix2: embedded broker-snapshot reader replaces the
|
|
139
141
|
// synchronous `npx ... authoring check` shellout. The reader is invoked
|
|
@@ -160,10 +162,10 @@ function handlePostToolBatch(input, targetRoot) {
|
|
|
160
162
|
return allow();
|
|
161
163
|
}
|
|
162
164
|
if (/^\[pending\]/m.test(output) || /^\[stale\]/m.test(output)) {
|
|
163
|
-
return context(`GDH PostToolBatch authoring check could not prove this batch quickly; continuing without blocking. ${compactOneLine(output || 'Run final authoring validation before claiming code-validity.')}`);
|
|
165
|
+
return context(`GDH PostToolBatch authoring check could not prove this batch quickly; continuing without blocking. ${compactOneLine(output || 'Run final authoring validation before claiming code-validity.')} ${reasonHint(output, targetRoot, authoring)}`);
|
|
164
166
|
}
|
|
165
167
|
if (/^\[timeout\]/m.test(output)) {
|
|
166
|
-
return context(`GDH PostToolBatch authoring check returned a timeout status; continuing without blocking. ${compactOneLine(output || 'Run final authoring validation before claiming code-validity.')}`);
|
|
168
|
+
return context(`GDH PostToolBatch authoring check returned a timeout status; continuing without blocking. ${compactOneLine(output || 'Run final authoring validation before claiming code-validity.')} ${reasonHint(output, targetRoot, authoring)}`);
|
|
167
169
|
}
|
|
168
170
|
return allow();
|
|
169
171
|
}
|
|
@@ -171,24 +173,39 @@ function handlePostToolBatch(input, targetRoot) {
|
|
|
171
173
|
// Quick task 260504-ix2: `runGdh` deleted. The function previously wrapped
|
|
172
174
|
// `spawnSync('npx', ['-y', '@skillcap/gdh@PINNED', ...args])` for the three
|
|
173
175
|
// event handlers (handlePostEdit, handlePostToolBatch, handleStop). All three
|
|
174
|
-
// now call `runEmbeddedDiagnosticsRead` instead. `
|
|
176
|
+
// now call `runEmbeddedDiagnosticsRead` instead. `spawnDetachedRefresh` uses
|
|
175
177
|
// `child_process.spawn` directly (always did — it was never a `runGdh`
|
|
176
|
-
// caller), so removing the helper has no effect on the
|
|
177
|
-
|
|
178
|
-
//
|
|
179
|
-
//
|
|
180
|
-
//
|
|
178
|
+
// caller), so removing the helper has no effect on the refresh path.
|
|
179
|
+
// Quick task 260504-o6w renamed `spawnDetachedWarmup` → `spawnDetachedRefresh`
|
|
180
|
+
// and switched the spawn argv from `lsp warmup` to `authoring diagnostics
|
|
181
|
+
// refresh --changed`. Detached spawn still uses `child_process.spawn` directly
|
|
182
|
+
// (always did).
|
|
183
|
+
|
|
184
|
+
// Quick task 260504-o6w. Fire-and-forget scoped diagnostics refresh from the
|
|
185
|
+
// post-edit hook. The CLI verb calls `refreshAuthoringDiagnostics` which boots
|
|
186
|
+
// Godot LSP if needed, opens scoped files via LSP, drains diagnostics, and
|
|
187
|
+
// writes `diagnostics-broker/snapshot.json` + `primed` marker — so this single
|
|
188
|
+
// fire-and-forget call covers BOTH warmup and broker priming. The previous
|
|
189
|
+
// `lsp warmup` argv only wrote `lsp-instance.json` and left the broker empty,
|
|
190
|
+
// leaving the embedded reader stuck on `[pending] broker_not_yet_primed`
|
|
191
|
+
// indefinitely (verified live on TheBeacon, 2026-05-04 dogfooding session 14).
|
|
181
192
|
//
|
|
182
193
|
// All three options are required (Pitfall 1):
|
|
183
194
|
// - detached: true — child gets its own process group, survives parent exit
|
|
184
195
|
// - stdio: 'ignore' — no fds tether the child to the parent's lifecycle
|
|
185
196
|
// - windowsHide: true — prevents a console flash on Windows
|
|
186
197
|
// .unref() is required so the Node event loop does not wait on the child.
|
|
187
|
-
function
|
|
198
|
+
function spawnDetachedRefresh(targetRoot, files) {
|
|
188
199
|
try {
|
|
200
|
+
const args = ['-y', `@skillcap/gdh@${PINNED_VERSION}`, 'authoring', 'diagnostics', 'refresh', '--target', targetRoot];
|
|
201
|
+
if (Array.isArray(files)) {
|
|
202
|
+
for (const f of files) {
|
|
203
|
+
args.push('--changed', f);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
189
206
|
const child = require('child_process').spawn(
|
|
190
207
|
'npx',
|
|
191
|
-
|
|
208
|
+
args,
|
|
192
209
|
{
|
|
193
210
|
cwd: targetRoot,
|
|
194
211
|
detached: true,
|
|
@@ -198,7 +215,7 @@ function spawnDetachedWarmup(targetRoot) {
|
|
|
198
215
|
);
|
|
199
216
|
child.unref();
|
|
200
217
|
} catch (_error) {
|
|
201
|
-
// Silent failure —
|
|
218
|
+
// Silent failure — refresh is fire-and-forget. The bounded read below still runs.
|
|
202
219
|
}
|
|
203
220
|
}
|
|
204
221
|
|
|
@@ -262,27 +279,27 @@ function handleStop(input, targetRoot) {
|
|
|
262
279
|
return allow();
|
|
263
280
|
}
|
|
264
281
|
if (/^\[failed\]/m.test(output) || /^\[partial\]/m.test(output) || /^\[stale\]/m.test(output)) {
|
|
265
|
-
return stopContext(`GDH session-end check found unresolved diagnostics: ${compactOneLine(output)}`);
|
|
282
|
+
return stopContext(`GDH session-end check found unresolved diagnostics: ${compactOneLine(output)} ${reasonHint(output, targetRoot, authoringFiles)}`);
|
|
266
283
|
}
|
|
267
284
|
if (/^\[pending\]/m.test(output) || /^\[timeout\]/m.test(output)) {
|
|
268
|
-
// Cold/missing broker: spawn detached
|
|
285
|
+
// Cold/missing broker: spawn detached refresh so the NEXT session benefits.
|
|
269
286
|
// The current Stop returns additionalContext recommending manual
|
|
270
287
|
// `gdh authoring check --mode final` (the relaxed contract — see RFC 0009
|
|
271
|
-
// addendum 2026-05-04).
|
|
288
|
+
// addendum 2026-05-04). spawnDetachedRefresh is fire-and-forget; it never
|
|
272
289
|
// blocks hook return.
|
|
273
|
-
|
|
290
|
+
spawnDetachedRefresh(targetRoot, authoringFiles);
|
|
274
291
|
return stopContext(
|
|
275
292
|
'GDH session-end check could not prove final code-validity from the cached broker snapshot; continuing without blocking. ' +
|
|
276
293
|
'Run `gdh authoring check --mode final` manually before claiming code-validity. ' +
|
|
277
|
-
compactOneLine(output),
|
|
294
|
+
compactOneLine(output) + ' ' + reasonHint(output, targetRoot, authoringFiles),
|
|
278
295
|
);
|
|
279
296
|
}
|
|
280
297
|
// Unknown status: degrade to additionalContext (NEVER block).
|
|
281
|
-
|
|
298
|
+
spawnDetachedRefresh(targetRoot, authoringFiles);
|
|
282
299
|
return stopContext(
|
|
283
300
|
'GDH session-end check could not produce a final result; continuing without blocking. ' +
|
|
284
301
|
'Run `gdh authoring check --mode final` manually before claiming code-validity. ' +
|
|
285
|
-
compactOneLine(output),
|
|
302
|
+
compactOneLine(output) + ' ' + reasonHint(output, targetRoot, authoringFiles),
|
|
286
303
|
);
|
|
287
304
|
}
|
|
288
305
|
|
|
@@ -451,8 +468,9 @@ function formatFreshDiagnostics(items) {
|
|
|
451
468
|
if (sev === 'error') errors += 1;
|
|
452
469
|
else if (sev === 'warning') warnings += 1;
|
|
453
470
|
else infoCount += 1;
|
|
454
|
-
const
|
|
455
|
-
const
|
|
471
|
+
const pos = diagnosticPosition(diag);
|
|
472
|
+
const line = pos.line;
|
|
473
|
+
const col = pos.column;
|
|
456
474
|
const msg = (diag && typeof diag.message === 'string') ? diag.message : '';
|
|
457
475
|
lines.push(`${item.uri}:${line}:${col} [${sev}] ${msg}`);
|
|
458
476
|
}
|
|
@@ -467,6 +485,35 @@ function formatFreshDiagnostics(items) {
|
|
|
467
485
|
return `${head}[${statusToken}] ${errors} errors, ${warnings} warnings, ${infoCount} info. Completion ${completion}.`;
|
|
468
486
|
}
|
|
469
487
|
|
|
488
|
+
function diagnosticPosition(diag) {
|
|
489
|
+
const directLine = numberOrNull(diag && diag.line);
|
|
490
|
+
const directColumn = numberOrNull(diag && diag.column);
|
|
491
|
+
if (directLine !== null || directColumn !== null) {
|
|
492
|
+
return { line: directLine || 0, column: directColumn || 0 };
|
|
493
|
+
}
|
|
494
|
+
const rawRange = diag && diag.raw && diag.raw.range;
|
|
495
|
+
const rawStart = rawRange && rawRange.start;
|
|
496
|
+
const rawLine = rawStart ? numberOrNull(rawStart.line) : null;
|
|
497
|
+
const rawColumn = rawStart ? numberOrNull(rawStart.character) : null;
|
|
498
|
+
if (rawLine !== null || rawColumn !== null) {
|
|
499
|
+
return {
|
|
500
|
+
line: rawLine === null ? 0 : rawLine + 1,
|
|
501
|
+
column: rawColumn === null ? 0 : rawColumn + 1,
|
|
502
|
+
};
|
|
503
|
+
}
|
|
504
|
+
const legacyStart = diag && diag.range && diag.range.start;
|
|
505
|
+
const legacyLine = legacyStart ? numberOrNull(legacyStart.line) : null;
|
|
506
|
+
const legacyColumn = legacyStart ? numberOrNull(legacyStart.character) : null;
|
|
507
|
+
return {
|
|
508
|
+
line: legacyLine === null ? 0 : legacyLine + 1,
|
|
509
|
+
column: legacyColumn === null ? 0 : legacyColumn + 1,
|
|
510
|
+
};
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
function numberOrNull(value) {
|
|
514
|
+
return Number.isFinite(value) ? value : null;
|
|
515
|
+
}
|
|
516
|
+
|
|
470
517
|
function resolveStateRoot(targetRoot) {
|
|
471
518
|
// 1. Baked render-time path — the canonical resolution for installed hooks.
|
|
472
519
|
try {
|
|
@@ -626,15 +673,103 @@ function compactOneLine(value) {
|
|
|
626
673
|
}
|
|
627
674
|
|
|
628
675
|
function allow() { process.exit(0); }
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
676
|
+
// Quick task 260504-o6w: agent-actionable hint derived from the Reasons: line in
|
|
677
|
+
// the embedded reader's output. The mapping covers all reason classes emitted by
|
|
678
|
+
// `formatStatus` so the agent receives a copy-paste-ready command rather than a
|
|
679
|
+
// generic "authoring check failed" message.
|
|
680
|
+
function reasonHint(output, targetRoot, files) {
|
|
681
|
+
const text = String(output || '');
|
|
682
|
+
const match = text.match(/^Reasons:\s*(.+)$/m);
|
|
683
|
+
const reasons = match ? match[1].split(',').map(r => r.trim()).filter(Boolean) : [];
|
|
684
|
+
// JSON.stringify embeds the path so spaces and quotes survive shell re-use.
|
|
685
|
+
const targetArg = JSON.stringify(targetRoot);
|
|
686
|
+
const scopedHint = fileTypeScopedHint(targetArg, files);
|
|
687
|
+
// First-match-wins ordering: more specific reasons before generic.
|
|
688
|
+
if (reasons.includes('lsp_instance_identity_mismatch')) {
|
|
689
|
+
return `Cross-worktree LSP from another checkout. Run \`gdh lsp prune --target ${targetArg}\` then retry the edit.`;
|
|
690
|
+
}
|
|
691
|
+
if (reasons.includes('lsp_state_lock_timeout')) {
|
|
692
|
+
return `Authoring state lock busy; ${describeLspLock(targetRoot)} Retry the scoped command after the current authoring operation finishes. ${scopedHint}`;
|
|
693
|
+
}
|
|
694
|
+
if (reasons.includes('lsp_instance_not_running')) {
|
|
695
|
+
return `LSP launching in background; next edit will report fresh diagnostics. ${scopedHint}`;
|
|
696
|
+
}
|
|
697
|
+
if (reasons.includes('broker_not_yet_primed') || reasons.includes('file_not_in_snapshot')) {
|
|
698
|
+
return `Broker priming in background; next edit will be fresh. ${scopedHint}`;
|
|
699
|
+
}
|
|
700
|
+
if (reasons.includes('content_hash_mismatch') || reasons.includes('freshness_expired')) {
|
|
701
|
+
return `Broker snapshot stale; background refresh running. ${scopedHint}`;
|
|
702
|
+
}
|
|
703
|
+
return `Run scoped authoring validation before claiming code-validity. ${scopedHint}`;
|
|
704
|
+
}
|
|
705
|
+
|
|
706
|
+
function fileTypeScopedHint(targetArg, files) {
|
|
707
|
+
const inputFiles = Array.isArray(files) ? unique(files) : [];
|
|
708
|
+
const gdFiles = inputFiles.filter(f => path.extname(f).toLowerCase() === '.gd');
|
|
709
|
+
const sceneFiles = inputFiles.filter(f => path.extname(f).toLowerCase() === '.tscn');
|
|
710
|
+
const resourceFiles = inputFiles.filter(f => path.extname(f).toLowerCase() === '.tres');
|
|
711
|
+
const parts = [];
|
|
712
|
+
if (gdFiles.length > 0) {
|
|
713
|
+
parts.push(`For .gd: \`gdh authoring diagnostics refresh --target ${targetArg}${changedArgs(gdFiles)}\``);
|
|
714
|
+
}
|
|
715
|
+
if (sceneFiles.length > 0) {
|
|
716
|
+
parts.push(`For .tscn: \`gdh authoring check --mode post-edit --target ${targetArg}${changedArgs(sceneFiles)}\``);
|
|
637
717
|
}
|
|
718
|
+
if (resourceFiles.length > 0) {
|
|
719
|
+
parts.push('.tres automatic scoped validation is ignored in this GDH version; do not wait on LSP/resource diagnostics for those files.');
|
|
720
|
+
}
|
|
721
|
+
if (parts.length === 0) {
|
|
722
|
+
return `Run \`gdh authoring check --mode final --target ${targetArg}\` before claiming code-validity.`;
|
|
723
|
+
}
|
|
724
|
+
return parts.join(' ');
|
|
725
|
+
}
|
|
726
|
+
|
|
727
|
+
function changedArgs(files) {
|
|
728
|
+
return files.map(f => ` --changed ${JSON.stringify(f)}`).join('');
|
|
729
|
+
}
|
|
730
|
+
|
|
731
|
+
function describeLspLock(targetRoot) {
|
|
732
|
+
const stateRoot = resolveStateRoot(targetRoot) || path.join(targetRoot, '.gdh-state');
|
|
733
|
+
const candidates = [
|
|
734
|
+
{ label: 'authoring/lsp.lock', file: path.join(stateRoot, 'authoring', 'lsp.lock', 'metadata.json') },
|
|
735
|
+
{ label: 'lsp.lock', file: path.join(stateRoot, 'lsp.lock', 'metadata.json') },
|
|
736
|
+
];
|
|
737
|
+
for (const candidate of candidates) {
|
|
738
|
+
try {
|
|
739
|
+
const metadata = JSON.parse(fs.readFileSync(candidate.file, 'utf8'));
|
|
740
|
+
const owner = typeof metadata.owner === 'string' && metadata.owner ? metadata.owner : 'unknown-owner';
|
|
741
|
+
const pid = Number.isFinite(metadata.pid) ? ` pid=${metadata.pid}` : '';
|
|
742
|
+
const acquiredMs = Date.parse(metadata.acquiredAt);
|
|
743
|
+
const ageMs = Number.isFinite(acquiredMs) ? Math.max(0, Date.now() - acquiredMs) : null;
|
|
744
|
+
const age = ageMs === null ? 'age=unknown' : `age=${Math.round(ageMs / 1000)}s`;
|
|
745
|
+
const staleAfter = Number.isFinite(metadata.staleAfterMs)
|
|
746
|
+
? `staleAfter=${Math.round(metadata.staleAfterMs / 1000)}s`
|
|
747
|
+
: 'staleAfter=unknown';
|
|
748
|
+
return `${candidate.label} held by ${owner}${pid} (${age}, ${staleAfter}).`;
|
|
749
|
+
} catch (_err) {
|
|
750
|
+
// Try next known lock path.
|
|
751
|
+
}
|
|
752
|
+
}
|
|
753
|
+
return 'lock metadata unavailable (expected .gdh-state/authoring/lsp.lock or .gdh-state/lsp.lock).';
|
|
754
|
+
}
|
|
755
|
+
// Codex always receives hookSpecificOutput.additionalContext (any event — Codex's
|
|
756
|
+
// hook contract accepts it on PreToolUse / PostToolUse / Stop / etc.).
|
|
757
|
+
//
|
|
758
|
+
// Claude receives hookSpecificOutput.additionalContext on PostToolUse / PostToolBatch
|
|
759
|
+
// / FileChanged. Claude Stop is silent-allow because the Stop hook schema does NOT
|
|
760
|
+
// accept additionalContext (only decision/reason/continue/stopReason/suppressOutput/
|
|
761
|
+
// systemMessage). The previous gate emitted the wrong shape on every Claude Stop
|
|
762
|
+
// and Claude rejected it as "invalid stop hook JSON output" (quick task 260504-o6w
|
|
763
|
+
// bug B, verified live on TheBeacon 2026-05-04).
|
|
764
|
+
function context(additionalContext) {
|
|
765
|
+
// Claude: Stop hook schema does NOT accept hookSpecificOutput.additionalContext
|
|
766
|
+
// (only decision/reason/continue/stopReason/suppressOutput/systemMessage). Emitting
|
|
767
|
+
// the wrong shape causes Claude to reject the hook with "invalid stop hook JSON
|
|
768
|
+
// output" — verified locally 2026-05-04 (quick task 260504-o6w bug B). Drop to
|
|
769
|
+
// silent-allow on Claude Stop. Claude PostToolUse / PostToolBatch DO accept
|
|
770
|
+
// additionalContext, so those branches still flow through. Codex accepts
|
|
771
|
+
// additionalContext on every event.
|
|
772
|
+
if (AGENT !== 'codex' && CURRENT_EVENT === 'Stop') return allow();
|
|
638
773
|
const payload = { hookSpecificOutput: { hookEventName: CURRENT_EVENT, additionalContext } };
|
|
639
774
|
process.stdout.write(`${JSON.stringify(payload)}\n`);
|
|
640
775
|
process.exit(0);
|
|
@@ -11,13 +11,13 @@
|
|
|
11
11
|
}
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@gdh/authoring": "0.26.
|
|
15
|
-
"@gdh/core": "0.26.
|
|
16
|
-
"@gdh/docs": "0.26.
|
|
17
|
-
"@gdh/observability": "0.26.
|
|
18
|
-
"@gdh/runtime": "0.26.
|
|
19
|
-
"@gdh/scan": "0.26.
|
|
20
|
-
"@gdh/verify": "0.26.
|
|
14
|
+
"@gdh/authoring": "0.26.5",
|
|
15
|
+
"@gdh/core": "0.26.5",
|
|
16
|
+
"@gdh/docs": "0.26.5",
|
|
17
|
+
"@gdh/observability": "0.26.5",
|
|
18
|
+
"@gdh/runtime": "0.26.5",
|
|
19
|
+
"@gdh/scan": "0.26.5",
|
|
20
|
+
"@gdh/verify": "0.26.5"
|
|
21
21
|
},
|
|
22
|
-
"version": "0.26.
|
|
22
|
+
"version": "0.26.5"
|
|
23
23
|
}
|
|
@@ -8,8 +8,8 @@ export declare function runAuthoringCheck(input: {
|
|
|
8
8
|
readonly changedFiles?: readonly string[];
|
|
9
9
|
readonly severityPolicy?: GdhAuthoringSeverityPolicy;
|
|
10
10
|
}): Promise<GdhAuthoringCheckResult>;
|
|
11
|
-
export { getCurrentAuthoringDiagnostics, getAuthoringDiagnosticsStatus, refreshAuthoringDiagnostics, doctorAuthoringDiagnostics, pruneAuthoringDiagnostics, type GetAuthoringDiagnosticsStatusInput, type GetCurrentAuthoringDiagnosticsInput, type RefreshAuthoringDiagnosticsInput, type RefreshAuthoringDiagnosticsResult, type DoctorAuthoringDiagnosticsInput, type DoctorAuthoringDiagnosticsResult, type PruneAuthoringDiagnosticsInput, type PruneAuthoringDiagnosticsResult, } from "./diagnostics-broker.js";
|
|
12
11
|
export { inspectCacheState, pruneCacheState, resolveCacheNamespace } from "./cache.js";
|
|
12
|
+
export { type DoctorAuthoringDiagnosticsInput, type DoctorAuthoringDiagnosticsResult, doctorAuthoringDiagnostics, type GetAuthoringDiagnosticsStatusInput, type GetCurrentAuthoringDiagnosticsInput, getAuthoringDiagnosticsStatus, getCurrentAuthoringDiagnostics, type PruneAuthoringDiagnosticsInput, type PruneAuthoringDiagnosticsResult, pruneAuthoringDiagnostics, type RefreshAuthoringDiagnosticsInput, type RefreshAuthoringDiagnosticsResult, refreshAuthoringDiagnostics, } from "./diagnostics-broker.js";
|
|
13
13
|
export { checkManagedLsp, doctorManagedLsp, getManagedLspStatus, pruneManagedLsp, resetManagedLspTestState, restartManagedLsp, runManagedAuthoringCheck, stopManagedLsp, warmupManagedLsp, } from "./lsp.js";
|
|
14
14
|
export { runImportRefresh, runTargetPrepare } from "./prepare.js";
|
|
15
15
|
export { hasCompleteOnboardingSurface, parseProjectConfigYaml, readProjectConfig, readWorktreeState, resolveAuthoringStatus, resolveConfiguredCapabilities, resolveEffectiveTargetPath, resolvePinnedVersion, resolvePinnedVersionOrNull, resolveProjectRoot, resolveTargetGodotDocsVersion, } from "./project.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACtB,MAAM,WAAW,CAAC;AAMnB,eAAO,MAAM,gBAAgB,wCAM3B,CAAC;AAEH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE;IAC7C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAChD,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,cAAc,CAAC,EAAE,0BAA0B,CAAC;CACtD,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAsDnC;AAoKD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACvF,OAAO,EACL,KAAK,+BAA+B,EACpC,KAAK,gCAAgC,EACrC,0BAA0B,EAC1B,KAAK,kCAAkC,EACvC,KAAK,mCAAmC,EACxC,6BAA6B,EAC7B,8BAA8B,EAC9B,KAAK,8BAA8B,EACnC,KAAK,+BAA+B,EACpC,yBAAyB,EACzB,KAAK,gCAAgC,EACrC,KAAK,iCAAiC,EACtC,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,wBAAwB,EACxB,iBAAiB,EACjB,wBAAwB,EACxB,cAAc,EACd,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,6BAA6B,EAC7B,0BAA0B,EAC1B,oBAAoB,EACpB,0BAA0B,EAC1B,kBAAkB,EAClB,6BAA6B,GAC9B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC"}
|