@kernlang/python 4.1.1-canary.226.1.c0be05e9 → 4.1.1-canary.228.1.41c150f2

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.
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Default pre-slot policy executor for a freshly generated FastAPI app.
3
+ *
4
+ * A route emitted by fastapi-route.ts calls
5
+ * `request.app.state.execute_kern_policy_slot(entry, "pre", facts)` around
6
+ * its handler. Previously that hook was NEVER installed by the transpiler
7
+ * itself — only the app-behavior-conformance harness's Python leg patched it
8
+ * in, as a test convenience. A real generated app hit an AttributeError (or
9
+ * a 500) on every policy-guarded route. This module implements the
10
+ * KernAppPolicySlotPlan semantics natively in Python (mirroring
11
+ * executePolicySlotPlan in packages/core/src/app-descriptor.ts) so a fresh
12
+ * app is self-sufficient with NO external patching.
13
+ *
14
+ * Secrets stay opaque to guard/.kern code: the executor never exposes key
15
+ * material to the policy plan, only to host-supplied PROVIDER hooks on
16
+ * `app.state`, which the host app may override:
17
+ *
18
+ * app.state.kern_auth_verifier(verifier_ref, credential, entry) -> bool
19
+ * app.state.kern_hmac_key_provider(key_ref, entry) -> bytes | str | None
20
+ * app.state.kern_rag_grounding_adapter(policy, facts, entry) -> dict
21
+ *
22
+ * Every hook may be sync or async. A MISSING provider always DENIES (oracle
23
+ * A4/P6) — it never degrades to allow, and a provider exception denies
24
+ * instead of propagating a 500.
25
+ */
26
+ import type { GeneratedArtifact } from '@kernlang/core';
27
+ export declare const FASTAPI_POLICY_RUNTIME_MODULE_BASENAME = "policy_runtime";
28
+ export declare const FASTAPI_POLICY_RUNTIME_SOURCE = "\"\"\"Generated by kern. Default pre-slot policy executor.\n\nImplements the executable guard kinds (auth, hmacSignature, rag-review,\npassthrough) natively so a freshly generated FastAPI app enforces policy\nwithout any external patching. Host-supplied PROVIDER hooks on `app.state`\nremain overridable; a missing provider always DENIES.\n\"\"\"\n\nimport base64\nimport hashlib\nimport hmac\nimport inspect\nimport re\nfrom typing import Any, Dict, List, Optional\n\n\nasync def _maybe_await(value: Any) -> Any:\n if inspect.isawaitable(value):\n return await value\n return value\n\n\ndef _header_value(headers: Optional[Dict[str, Any]], name: str) -> Optional[str]:\n if not headers:\n return None\n wanted = name.lower()\n for key, value in headers.items():\n if str(key).lower() == wanted:\n return value\n return None\n\n\ndef _failure_status(policy: Dict[str, Any]) -> int:\n props = (policy.get(\"node\") or {}).get(\"props\") or {}\n raw = props.get(\"failureStatus\")\n try:\n value = int(raw)\n except (TypeError, ValueError):\n return 401\n return value if 100 <= value <= 599 else 401\n\n\ndef _denied(policy: Dict[str, Any], diagnostics: Optional[List[str]] = None) -> Dict[str, Any]:\n return {\n \"name\": policy.get(\"name\"),\n \"slot\": policy.get(\"slot\", \"pre\"),\n \"kind\": policy.get(\"kind\"),\n \"action\": \"deny\",\n \"status\": _failure_status(policy),\n \"body\": {\"error\": \"policy_denied\", \"policy\": policy.get(\"name\"), \"kind\": policy.get(\"kind\")},\n \"diagnostics\": diagnostics or [],\n }\n\n\ndef _allowed(policy: Dict[str, Any]) -> Dict[str, Any]:\n return {\"name\": policy.get(\"name\"), \"slot\": policy.get(\"slot\", \"pre\"), \"kind\": policy.get(\"kind\"), \"action\": \"allow\"}\n\n\nasync def _execute_auth(policy: Dict[str, Any], facts: Dict[str, Any], entry: Dict[str, Any], app_state: Any) -> Dict[str, Any]:\n plan = policy[\"plan\"]\n credential = _header_value(facts.get(\"headers\"), plan[\"credentialHeader\"])\n verifier = getattr(app_state, \"kern_auth_verifier\", None)\n if not credential or verifier is None:\n return _denied(policy, [\"auth credential absent or verifier missing\"])\n try:\n ok = await _maybe_await(verifier(plan[\"verifierRef\"], credential, entry))\n except Exception as error: # guard exception -> deny, fail-closed\n return _denied(policy, [str(error)])\n return _allowed(policy) if ok else _denied(policy, [\"auth verifier denied\"])\n\n\nasync def _execute_hmac(policy: Dict[str, Any], facts: Dict[str, Any], entry: Dict[str, Any], app_state: Any) -> Dict[str, Any]:\n plan = policy[\"plan\"]\n signature = _header_value(facts.get(\"headers\"), plan[\"signatureHeader\"])\n raw_body = facts.get(\"rawBody\")\n key_provider = getattr(app_state, \"kern_hmac_key_provider\", None)\n if not signature or key_provider is None or raw_body is None:\n return _denied(policy, [\"hmac signature, key provider, or raw body missing\"])\n try:\n key = await _maybe_await(key_provider(plan[\"keyRef\"], entry))\n except Exception as error:\n return _denied(policy, [str(error)])\n if key is None:\n return _denied(policy, [\"hmac key not provided\"])\n key_bytes = key.encode(\"utf-8\") if isinstance(key, str) else bytes(key)\n body_bytes = raw_body.encode(\"utf-8\") if isinstance(raw_body, str) else bytes(raw_body)\n # Mirrors core's normalizeKernHmacAlgorithm (lockstep parity): lowercase,\n # underscore==hyphen, and dashed SHA-2 aliases collapse ('sha-256' ->\n # 'sha256'). Multi-part families keep their separator, mapped to hashlib's\n # underscore convention ('sha3-256' -> 'sha3_256'). The old blanket\n # replace(\"-\", \"_\") produced 'sha_256', which does not exist on hashlib,\n # so every valid 'sha-256' config denied every request.\n algorithm = str(plan.get(\"algorithm\", \"sha256\")).strip().lower().replace(\"_\", \"-\")\n sha_dashed = re.fullmatch(r\"sha-(\\d+)\", algorithm)\n if sha_dashed is not None:\n algorithm = \"sha\" + sha_dashed.group(1)\n digestmod = getattr(hashlib, algorithm.replace(\"-\", \"_\"), None)\n if digestmod is None:\n return _denied(policy, [f\"unsupported hmac algorithm '{plan.get('algorithm')}'\"])\n expected = hmac.new(key_bytes, body_bytes, digestmod).digest()\n received_str = signature\n prefix = plan.get(\"prefix\")\n if prefix and received_str.startswith(prefix):\n received_str = received_str[len(prefix):]\n try:\n received = bytes.fromhex(received_str) if plan.get(\"encoding\") == \"hex\" else base64.b64decode(received_str, validate=True)\n except Exception:\n # A malformed/wrong-length signature denies cleanly \u2014 never raises.\n return _denied(policy, [\"hmac signature mismatch\"])\n if len(expected) != len(received) or not hmac.compare_digest(expected, received):\n return _denied(policy, [\"hmac signature mismatch\"])\n return _allowed(policy)\n\n\nasync def _execute_rag_review(policy: Dict[str, Any], facts: Dict[str, Any], entry: Dict[str, Any], app_state: Any) -> Dict[str, Any]:\n adapter = getattr(app_state, \"kern_rag_grounding_adapter\", None)\n if adapter is None:\n return _denied(policy, [\"rag grounding adapter not provided\"])\n try:\n verdict = await _maybe_await(adapter(policy, facts, entry))\n except Exception as error:\n return _denied(policy, [str(error)])\n if not isinstance(verdict, dict) or verdict.get(\"allow\") is not True:\n diagnostics = verdict.get(\"diagnostics\") if isinstance(verdict, dict) else None\n return _denied(policy, diagnostics if isinstance(diagnostics, list) else [\"rag verdict denied or malformed\"])\n return _allowed(policy)\n\n\ndef create_execute_kern_policy_slot(app: Any):\n \"\"\"Bind the executor to `app` so it can reach `app.state` provider hooks\n without smuggling non-serializable state through the `facts` contract.\"\"\"\n\n async def execute_kern_policy_slot(entry: Dict[str, Any], slot: str, facts: Dict[str, Any]) -> List[Dict[str, Any]]:\n if slot not in (\"pre\", \"post\"):\n raise ValueError(f\"unknown policy slot '{slot}' (expected pre or post)\")\n policies = entry.get(\"prePolicies\" if slot == \"pre\" else \"postPolicies\") or []\n executions: List[Dict[str, Any]] = []\n for policy in policies:\n kind = policy.get(\"kind\")\n try:\n if kind == \"passthrough\":\n result = _allowed(policy)\n elif kind == \"auth\":\n result = await _execute_auth(policy, facts, entry, app.state)\n elif kind == \"hmacSignature\":\n result = await _execute_hmac(policy, facts, entry, app.state)\n elif kind == \"rag-review\":\n result = await _execute_rag_review(policy, facts, entry, app.state)\n else:\n # A kind this runtime cannot execute must fail closed \u2014\n # never fall through to an implicit allow.\n result = _denied(policy, [f\"unsupported policy kind '{kind}'\"])\n except Exception as error:\n result = _denied(policy, [str(error)])\n executions.append(result)\n if result[\"action\"] == \"deny\":\n break\n return executions\n\n return execute_kern_policy_slot\n";
29
+ export declare function buildFastApiPolicyRuntimeArtifact(): GeneratedArtifact;
@@ -0,0 +1,170 @@
1
+ export const FASTAPI_POLICY_RUNTIME_MODULE_BASENAME = 'policy_runtime';
2
+ export const FASTAPI_POLICY_RUNTIME_SOURCE = `"""Generated by kern. Default pre-slot policy executor.
3
+
4
+ Implements the executable guard kinds (auth, hmacSignature, rag-review,
5
+ passthrough) natively so a freshly generated FastAPI app enforces policy
6
+ without any external patching. Host-supplied PROVIDER hooks on \`app.state\`
7
+ remain overridable; a missing provider always DENIES.
8
+ """
9
+
10
+ import base64
11
+ import hashlib
12
+ import hmac
13
+ import inspect
14
+ import re
15
+ from typing import Any, Dict, List, Optional
16
+
17
+
18
+ async def _maybe_await(value: Any) -> Any:
19
+ if inspect.isawaitable(value):
20
+ return await value
21
+ return value
22
+
23
+
24
+ def _header_value(headers: Optional[Dict[str, Any]], name: str) -> Optional[str]:
25
+ if not headers:
26
+ return None
27
+ wanted = name.lower()
28
+ for key, value in headers.items():
29
+ if str(key).lower() == wanted:
30
+ return value
31
+ return None
32
+
33
+
34
+ def _failure_status(policy: Dict[str, Any]) -> int:
35
+ props = (policy.get("node") or {}).get("props") or {}
36
+ raw = props.get("failureStatus")
37
+ try:
38
+ value = int(raw)
39
+ except (TypeError, ValueError):
40
+ return 401
41
+ return value if 100 <= value <= 599 else 401
42
+
43
+
44
+ def _denied(policy: Dict[str, Any], diagnostics: Optional[List[str]] = None) -> Dict[str, Any]:
45
+ return {
46
+ "name": policy.get("name"),
47
+ "slot": policy.get("slot", "pre"),
48
+ "kind": policy.get("kind"),
49
+ "action": "deny",
50
+ "status": _failure_status(policy),
51
+ "body": {"error": "policy_denied", "policy": policy.get("name"), "kind": policy.get("kind")},
52
+ "diagnostics": diagnostics or [],
53
+ }
54
+
55
+
56
+ def _allowed(policy: Dict[str, Any]) -> Dict[str, Any]:
57
+ return {"name": policy.get("name"), "slot": policy.get("slot", "pre"), "kind": policy.get("kind"), "action": "allow"}
58
+
59
+
60
+ async def _execute_auth(policy: Dict[str, Any], facts: Dict[str, Any], entry: Dict[str, Any], app_state: Any) -> Dict[str, Any]:
61
+ plan = policy["plan"]
62
+ credential = _header_value(facts.get("headers"), plan["credentialHeader"])
63
+ verifier = getattr(app_state, "kern_auth_verifier", None)
64
+ if not credential or verifier is None:
65
+ return _denied(policy, ["auth credential absent or verifier missing"])
66
+ try:
67
+ ok = await _maybe_await(verifier(plan["verifierRef"], credential, entry))
68
+ except Exception as error: # guard exception -> deny, fail-closed
69
+ return _denied(policy, [str(error)])
70
+ return _allowed(policy) if ok else _denied(policy, ["auth verifier denied"])
71
+
72
+
73
+ async def _execute_hmac(policy: Dict[str, Any], facts: Dict[str, Any], entry: Dict[str, Any], app_state: Any) -> Dict[str, Any]:
74
+ plan = policy["plan"]
75
+ signature = _header_value(facts.get("headers"), plan["signatureHeader"])
76
+ raw_body = facts.get("rawBody")
77
+ key_provider = getattr(app_state, "kern_hmac_key_provider", None)
78
+ if not signature or key_provider is None or raw_body is None:
79
+ return _denied(policy, ["hmac signature, key provider, or raw body missing"])
80
+ try:
81
+ key = await _maybe_await(key_provider(plan["keyRef"], entry))
82
+ except Exception as error:
83
+ return _denied(policy, [str(error)])
84
+ if key is None:
85
+ return _denied(policy, ["hmac key not provided"])
86
+ key_bytes = key.encode("utf-8") if isinstance(key, str) else bytes(key)
87
+ body_bytes = raw_body.encode("utf-8") if isinstance(raw_body, str) else bytes(raw_body)
88
+ # Mirrors core's normalizeKernHmacAlgorithm (lockstep parity): lowercase,
89
+ # underscore==hyphen, and dashed SHA-2 aliases collapse ('sha-256' ->
90
+ # 'sha256'). Multi-part families keep their separator, mapped to hashlib's
91
+ # underscore convention ('sha3-256' -> 'sha3_256'). The old blanket
92
+ # replace("-", "_") produced 'sha_256', which does not exist on hashlib,
93
+ # so every valid 'sha-256' config denied every request.
94
+ algorithm = str(plan.get("algorithm", "sha256")).strip().lower().replace("_", "-")
95
+ sha_dashed = re.fullmatch(r"sha-(\\d+)", algorithm)
96
+ if sha_dashed is not None:
97
+ algorithm = "sha" + sha_dashed.group(1)
98
+ digestmod = getattr(hashlib, algorithm.replace("-", "_"), None)
99
+ if digestmod is None:
100
+ return _denied(policy, [f"unsupported hmac algorithm '{plan.get('algorithm')}'"])
101
+ expected = hmac.new(key_bytes, body_bytes, digestmod).digest()
102
+ received_str = signature
103
+ prefix = plan.get("prefix")
104
+ if prefix and received_str.startswith(prefix):
105
+ received_str = received_str[len(prefix):]
106
+ try:
107
+ received = bytes.fromhex(received_str) if plan.get("encoding") == "hex" else base64.b64decode(received_str, validate=True)
108
+ except Exception:
109
+ # A malformed/wrong-length signature denies cleanly — never raises.
110
+ return _denied(policy, ["hmac signature mismatch"])
111
+ if len(expected) != len(received) or not hmac.compare_digest(expected, received):
112
+ return _denied(policy, ["hmac signature mismatch"])
113
+ return _allowed(policy)
114
+
115
+
116
+ async def _execute_rag_review(policy: Dict[str, Any], facts: Dict[str, Any], entry: Dict[str, Any], app_state: Any) -> Dict[str, Any]:
117
+ adapter = getattr(app_state, "kern_rag_grounding_adapter", None)
118
+ if adapter is None:
119
+ return _denied(policy, ["rag grounding adapter not provided"])
120
+ try:
121
+ verdict = await _maybe_await(adapter(policy, facts, entry))
122
+ except Exception as error:
123
+ return _denied(policy, [str(error)])
124
+ if not isinstance(verdict, dict) or verdict.get("allow") is not True:
125
+ diagnostics = verdict.get("diagnostics") if isinstance(verdict, dict) else None
126
+ return _denied(policy, diagnostics if isinstance(diagnostics, list) else ["rag verdict denied or malformed"])
127
+ return _allowed(policy)
128
+
129
+
130
+ def create_execute_kern_policy_slot(app: Any):
131
+ """Bind the executor to \`app\` so it can reach \`app.state\` provider hooks
132
+ without smuggling non-serializable state through the \`facts\` contract."""
133
+
134
+ async def execute_kern_policy_slot(entry: Dict[str, Any], slot: str, facts: Dict[str, Any]) -> List[Dict[str, Any]]:
135
+ if slot not in ("pre", "post"):
136
+ raise ValueError(f"unknown policy slot '{slot}' (expected pre or post)")
137
+ policies = entry.get("prePolicies" if slot == "pre" else "postPolicies") or []
138
+ executions: List[Dict[str, Any]] = []
139
+ for policy in policies:
140
+ kind = policy.get("kind")
141
+ try:
142
+ if kind == "passthrough":
143
+ result = _allowed(policy)
144
+ elif kind == "auth":
145
+ result = await _execute_auth(policy, facts, entry, app.state)
146
+ elif kind == "hmacSignature":
147
+ result = await _execute_hmac(policy, facts, entry, app.state)
148
+ elif kind == "rag-review":
149
+ result = await _execute_rag_review(policy, facts, entry, app.state)
150
+ else:
151
+ # A kind this runtime cannot execute must fail closed —
152
+ # never fall through to an implicit allow.
153
+ result = _denied(policy, [f"unsupported policy kind '{kind}'"])
154
+ except Exception as error:
155
+ result = _denied(policy, [str(error)])
156
+ executions.append(result)
157
+ if result["action"] == "deny":
158
+ break
159
+ return executions
160
+
161
+ return execute_kern_policy_slot
162
+ `;
163
+ export function buildFastApiPolicyRuntimeArtifact() {
164
+ return {
165
+ path: `${FASTAPI_POLICY_RUNTIME_MODULE_BASENAME}.py`,
166
+ content: FASTAPI_POLICY_RUNTIME_SOURCE,
167
+ type: 'lib',
168
+ };
169
+ }
170
+ //# sourceMappingURL=fastapi-policy-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fastapi-policy-runtime.js","sourceRoot":"","sources":["../src/fastapi-policy-runtime.ts"],"names":[],"mappings":"AA2BA,MAAM,CAAC,MAAM,sCAAsC,GAAG,gBAAgB,CAAC;AAEvE,MAAM,CAAC,MAAM,6BAA6B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgK5C,CAAC;AAEF,MAAM,UAAU,iCAAiC;IAC/C,OAAO;QACL,IAAI,EAAE,GAAG,sCAAsC,KAAK;QACpD,OAAO,EAAE,6BAA6B;QACtC,IAAI,EAAE,KAAK;KACZ,CAAC;AACJ,CAAC"}
@@ -6,6 +6,7 @@
6
6
  * buildRouteArtifact — main route artifact builder
7
7
  */
8
8
  import { getChildren, getFirstChild, getProps } from '@kernlang/core';
9
+ import { normalizeKernHmacAlgorithm } from '@kernlang/core/runtime';
9
10
  import { emitNativeKernBodyPythonWithImports } from './codegen-body-python.js';
10
11
  import { generatePortableHandlerFastAPI, generatePortableStreamFastAPI, hasPortableStreamBodyFastAPI, } from './fastapi-portable.js';
11
12
  import { hasObjectShorthandOutsideStrings, isUnsupportedJsHandlerBody, stripStringsForJsCheck, unsupportedRawHandlerBody, } from './fastapi-raw-handler.js';
@@ -255,6 +256,52 @@ function replaceJsLiteralsOutsideStrings(expr) {
255
256
  }
256
257
  return output;
257
258
  }
259
+ function pyPolicyDescriptor(policyNodes, method, path) {
260
+ const policies = policyNodes.map((node, index) => {
261
+ const props = getProps(node);
262
+ const kind = String(props.kind || 'passthrough');
263
+ const name = String(props.name || `Policy${index + 1}`);
264
+ // Route-child policies bypass the core manifest loader, so this emitter
265
+ // must enforce the same fail-closed plan validation policySlotPlan does
266
+ // — otherwise a negative minGroundingCoverage silently disables the
267
+ // grounding threshold at runtime (coverage < negative is never true).
268
+ const minGroundingCoverage = Number(props.minGroundingCoverage ?? 1);
269
+ if (kind === 'rag-review' && !(minGroundingCoverage >= 0 && minGroundingCoverage <= 1)) {
270
+ throw new Error(`fastapi emitter: policy ${name} minGroundingCoverage must be between 0 and 1`);
271
+ }
272
+ // Same fail-closed rule as core's loader for the HMAC signature encoding:
273
+ // anything other than the two supported encodings must fail the BUILD.
274
+ // Emitted verbatim it reaches generated runtime code, where the Python
275
+ // runtime treats every non-hex value as base64 — silently drifted
276
+ // semantics instead of a build error.
277
+ const encoding = String(props.encoding || 'hex');
278
+ if (kind === 'hmacSignature' && encoding !== 'hex' && encoding !== 'base64') {
279
+ throw new Error(`fastapi emitter: policy ${name} hmacSignature encoding must be hex or base64`);
280
+ }
281
+ const plan = kind === 'auth'
282
+ ? `{"kind": "auth", "verifierRef": "${escapePyStr(String(props.verifierRef || props.ref || 'default'))}", "credentialHeader": "${escapePyStr(String(props.credentialHeader || 'authorization').toLowerCase())}"}`
283
+ : kind === 'hmacSignature'
284
+ ? `{"kind": "hmacSignature", "keyRef": "${escapePyStr(String(props.keyRef || 'default'))}", "algorithm": "${escapePyStr(normalizeKernHmacAlgorithm(String(props.algorithm || 'sha256')))}", "signatureHeader": "${escapePyStr(String(props.signatureHeader || 'x-signature').toLowerCase())}", "encoding": "${escapePyStr(encoding)}"${props.prefix ? `, "prefix": "${escapePyStr(String(props.prefix))}"` : ''}}`
285
+ : kind === 'rag-review'
286
+ ? `{"kind": "rag-review", "queryField": "query", "answerField": "answer", "citedChunkIdsField": "citedChunkIds", "groundingSpansField": "groundingSpans", "minGroundingCoverage": ${minGroundingCoverage}}`
287
+ : kind === 'passthrough'
288
+ ? `{"kind": "passthrough"}`
289
+ : (() => {
290
+ // A kind this leg cannot execute must fail the build — emitting
291
+ // a passthrough here would ship an unguarded route.
292
+ throw new Error(`fastapi emitter: unsupported pre-slot policy kind '${kind}' for policy ${name}`);
293
+ })();
294
+ // `props` is a raw IR node.props blob — JSON.stringify's output is a
295
+ // JS-object-literal-compatible subset of JSON that happens to double as
296
+ // Python syntax for strings/numbers/nested structures, but JSON's
297
+ // `true`/`false`/`null` are NameErrors in Python. Round-trip through
298
+ // json.loads(...) so ANY JSON-representable prop value (not just the
299
+ // string/number props this emitter currently reads) lowers correctly.
300
+ const propsJson = escapePyStr(JSON.stringify(props));
301
+ return `{"node": {"type": "policy", "props": json.loads("${propsJson}"), "children": []}, "name": "${escapePyStr(name)}", "slot": "pre", "kind": "${escapePyStr(kind)}", "handler": "main", "requires": [], "plan": ${plan}, "label": "policy ${escapePyStr(name)}"}`;
302
+ });
303
+ return `{"node": {"type": "route", "props": {}, "children": []}, "kind": "route", "name": "GeneratedRoute", "path": "${escapePyStr(path)}", "sourcePath": "./generated.kern", "handler": "main", "policies": [], "prePolicies": [${policies.join(', ')}], "postPolicies": [], "appCapabilities": [], "entryCapabilities": [], "policyCapabilities": [], "declaredCapabilities": [], "requiredCapabilities": [], "requiredSyncCapabilities": [], "requiredAsyncCapabilities": [], "label": "route GeneratedRoute", "method": "${escapePyStr(method)}", "key": "${escapePyStr(method.toUpperCase())} ${escapePyStr(path)}"}`;
304
+ }
258
305
  function lowerJsValueExpressionForPython(expr) {
259
306
  return quoteObjectKeysOutsideStrings(replaceJsLiteralsOutsideStrings(expr.trim().replace(/;$/, '')));
260
307
  }
@@ -579,6 +626,15 @@ routeAuthModuleSpec = 'auth') {
579
626
  imports.add('import asyncio');
580
627
  }
581
628
  // v3 route children: params, auth, validate, error, middleware
629
+ const policyNodes = getChildren(routeNode, 'policy');
630
+ const hasPolicyNodes = policyNodes.length > 0;
631
+ const hmacPolicyNodes = policyNodes.filter((node) => String(getProps(node).kind || '') === 'hmacSignature');
632
+ if (hasPolicyNodes) {
633
+ imports.add('from fastapi import Request, HTTPException');
634
+ }
635
+ if (hmacPolicyNodes.length > 0) {
636
+ imports.add('import hmac');
637
+ }
582
638
  const paramsNodes = getChildren(routeNode, 'params');
583
639
  const queryParams = [];
584
640
  for (const paramNode of paramsNodes) {
@@ -656,6 +712,39 @@ routeAuthModuleSpec = 'auth') {
656
712
  }
657
713
  // Generate handler body lines first (may add to imports)
658
714
  const bodyLines = [];
715
+ if (hasPolicyNodes) {
716
+ imports.add('import json');
717
+ bodyLines.push(`__kern_route_policy_entry = ${pyPolicyDescriptor(policyNodes, normalizedMethod, fastapiPath)}`);
718
+ if (hmacPolicyNodes.length > 0) {
719
+ bodyLines.push(`# HMAC compare must use hmac.compare_digest; core policy runtime owns guard meaning.`);
720
+ bodyLines.push(`__kern_hmac_compare = hmac.compare_digest`);
721
+ }
722
+ // Fail-closed fallback for `request.app.state.execute_kern_policy_slot`.
723
+ // transpileFastAPI installs the real executor on `app.state` whenever any
724
+ // route declares a policy (see fastapi-policy-runtime.ts); this fallback
725
+ // only fires if a route module is imported/mounted outside that app
726
+ // construction path — it denies instead of raising AttributeError.
727
+ bodyLines.push('async def __kern_policy_runtime_missing(entry, slot, facts):');
728
+ bodyLines.push(' return [{"action": "deny", "status": 401, "body": {"error": "policy_denied", "reason": "policy runtime not installed"}}]');
729
+ bodyLines.push('');
730
+ // The pre-policy slot runs as a FastAPI DEPENDENCY placed first in the
731
+ // endpoint signature, so it executes before every user-level dependency
732
+ // (auth Depends, validate Depends, route middleware Depends) — FastAPI
733
+ // solves sub-dependencies sequentially in signature order. Running the
734
+ // guard inside the endpoint body — the previous shape — let user
735
+ // dependencies observe or reject the request ahead of a policy denial.
736
+ // Reading the raw bytes here is safe and cache-friendly: Starlette memoizes
737
+ // request.body(), so the post-allow model construction in the endpoint
738
+ // reuses the SAME bytes the guard verified.
739
+ bodyLines.push('async def __kern_pre_policy_gate(request: Request):');
740
+ bodyLines.push(' __kern_raw_body = await request.body()');
741
+ bodyLines.push(' __kern_policy_facts = getattr(request.app.state, "kern_policy_facts", lambda request, raw_body: {"headers": dict(request.headers), "rawBody": raw_body})(request, __kern_raw_body)');
742
+ bodyLines.push(' __kern_decision = await getattr(request.app.state, "execute_kern_policy_slot", __kern_policy_runtime_missing)(__kern_route_policy_entry, "pre", __kern_policy_facts)');
743
+ bodyLines.push(' __kern_denied = next((p for p in __kern_decision if p.get("action") == "deny"), None)');
744
+ bodyLines.push(' if __kern_denied is not None:');
745
+ bodyLines.push(' raise HTTPException(status_code=__kern_denied.get("status", 401), detail=__kern_denied.get("body", {"error": "policy_denied"}))');
746
+ bodyLines.push('');
747
+ }
659
748
  // Route handler
660
749
  if (caps.hasStream) {
661
750
  // Portable stream bodies remap `body.<camelField>` to the snake_case
@@ -681,6 +770,10 @@ routeAuthModuleSpec = 'auth') {
681
770
  // the block-scope rename (post-agon-review #f1afb9b3; production-caller
682
771
  // fix for nero Challenge 2). Order matches paramParts pushes 1:1.
683
772
  const paramNames = [];
773
+ if (hasPolicyNodes) {
774
+ paramParts.push('request: Request');
775
+ paramNames.push('request');
776
+ }
684
777
  for (const param of pathParams) {
685
778
  paramParts.push(`${param}: str`);
686
779
  paramNames.push(param);
@@ -697,8 +790,22 @@ routeAuthModuleSpec = 'auth') {
697
790
  }
698
791
  paramNames.push(snake);
699
792
  }
793
+ // A policy-guarded route with a declared body schema must NOT bind a
794
+ // Pydantic body model directly in the def signature — the presence of ANY
795
+ // body field makes FastAPI read and parse the request body BEFORE
796
+ // dependencies run, which would let Pydantic reject (422) or consume the
797
+ // raw body ahead of the pre-slot guard. The model is instead constructed
798
+ // from the raw bytes AFTER an allow decision, further down. This applies
799
+ // identically to the inline `schema.body` model (RequestBody) and a
800
+ // `validate` schema bound as a body param. The name still claims `body`
801
+ // in paramNames so a native KERN `let body` inside the handler still
802
+ // triggers the shadow-rename protection.
803
+ let deferredBodyModel;
700
804
  if (schema.body) {
701
- paramParts.push('body: RequestBody');
805
+ if (hasPolicyNodes)
806
+ deferredBodyModel = 'RequestBody';
807
+ else
808
+ paramParts.push('body: RequestBody');
702
809
  paramNames.push('body');
703
810
  }
704
811
  // v3 validate — method-aware: body param for POST/PUT/PATCH, Depends for GET/DELETE
@@ -707,7 +814,10 @@ routeAuthModuleSpec = 'auth') {
707
814
  if (validateSchema) {
708
815
  const bodyMethods = new Set(['post', 'put', 'patch']);
709
816
  if (bodyMethods.has(normalizedMethod)) {
710
- paramParts.push(`body: ${validateSchema}`);
817
+ if (hasPolicyNodes)
818
+ deferredBodyModel = validateSchema;
819
+ else
820
+ paramParts.push(`body: ${validateSchema}`);
711
821
  paramNames.push('body');
712
822
  }
713
823
  else {
@@ -717,6 +827,14 @@ routeAuthModuleSpec = 'auth') {
717
827
  }
718
828
  }
719
829
  }
830
+ // Pre-policy gate dependency — FIRST dependency in the signature, so it
831
+ // runs before validate/middleware/auth Depends (see the gate emission
832
+ // above for the ordering rationale).
833
+ if (hasPolicyNodes) {
834
+ imports.add('from fastapi import Depends');
835
+ paramParts.push('__kern_policy_gate = Depends(__kern_pre_policy_gate)');
836
+ paramNames.push('__kern_policy_gate');
837
+ }
720
838
  // v3 route-level middleware → Depends()
721
839
  for (const dep of middlewareDeps) {
722
840
  paramParts.push(`_${dep} = Depends(${dep})`);
@@ -738,6 +856,18 @@ routeAuthModuleSpec = 'auth') {
738
856
  const paramStr = paramParts.join(', ');
739
857
  bodyLines.push(`@router.${normalizedMethod}("${fastapiPath}")`);
740
858
  bodyLines.push(`async def ${toSnakeCase(normalizedMethod)}_${slugify(fastapiPath)}(${paramStr}):`);
859
+ if (hasPolicyNodes && deferredBodyModel) {
860
+ // Only reachable past the gate dependency's allow decision — the
861
+ // Pydantic model is constructed from the SAME raw bytes the guard
862
+ // verified (request.body() is memoized by Starlette), so the handler
863
+ // still receives the parsed model (H7) without giving Pydantic a
864
+ // chance to run ahead of the guard.
865
+ bodyLines.push(` __kern_raw_body = await request.body()`);
866
+ bodyLines.push(' try:');
867
+ bodyLines.push(` body = ${deferredBodyModel}.model_validate_json(__kern_raw_body)`);
868
+ bodyLines.push(' except Exception as __kern_body_error:');
869
+ bodyLines.push(' raise HTTPException(status_code=422, detail=str(__kern_body_error))');
870
+ }
741
871
  // v3 error contract as docstring
742
872
  if (errorNodes.length > 0) {
743
873
  bodyLines.push(` """Errors: ${errorNodes.map((n) => `${getProps(n).status} ${getProps(n).message || ''}`).join(', ')}"""`);
@@ -1 +1 @@
1
- {"version":3,"file":"fastapi-route.js","sourceRoot":"","sources":["../src/fastapi-route.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fastapi-route.js","sourceRoot":"","sources":["../src/fastapi-route.ts"],"names":[],"mappings":"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"}