@theokit/http 1.2.0 → 2.0.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/README.md +40 -1
- package/dist/app.d.ts +5 -50
- package/dist/app.js +2 -2
- package/dist/{chunk-NFCIOKAI.js → chunk-6HVQHSPX.js} +14 -157
- package/dist/chunk-6HVQHSPX.js.map +1 -0
- package/dist/{chunk-6CFF7Q4Z.js → chunk-BXJBQ4EH.js} +2 -2
- package/dist/chunk-R72YKDQ4.js +321 -0
- package/dist/chunk-R72YKDQ4.js.map +1 -0
- package/dist/index.d.ts +27 -1
- package/dist/index.js +41 -12
- package/dist/index.js.map +1 -1
- package/dist/route-access-Bq7eKXIc.d.ts +77 -0
- package/dist/theokit-plugin.d.ts +10 -0
- package/dist/theokit-plugin.js +21 -4
- package/dist/theokit-plugin.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-NFCIOKAI.js.map +0 -1
- package/dist/chunk-X7Q5HPLK.js +0 -152
- package/dist/chunk-X7Q5HPLK.js.map +0 -1
- /package/dist/{chunk-6CFF7Q4Z.js.map → chunk-BXJBQ4EH.js.map} +0 -0
package/README.md
CHANGED
|
@@ -31,11 +31,16 @@ form — `@Body(schema)` — works without it.
|
|
|
31
31
|
## Quick start
|
|
32
32
|
|
|
33
33
|
```typescript
|
|
34
|
-
import { Controller, Get, Post, Body, Param } from '@theokit/http'
|
|
34
|
+
import { Controller, Get, Post, Body, Param, Public } from '@theokit/http'
|
|
35
35
|
import { z } from 'zod'
|
|
36
36
|
|
|
37
37
|
// Convention: @Controller() on CatsController infers the prefix "api/cats".
|
|
38
38
|
// Pass a string to override: @Controller('api/v2/cats').
|
|
39
|
+
//
|
|
40
|
+
// `@Public()` is the access decision "anyone may call this". Every route needs one — a guard or
|
|
41
|
+
// this — because a route that declares neither is refused with 403 rather than served. See
|
|
42
|
+
// "Every route declares who may call it" below.
|
|
43
|
+
@Public()
|
|
39
44
|
@Controller()
|
|
40
45
|
export class CatsController {
|
|
41
46
|
@Get()
|
|
@@ -55,6 +60,40 @@ export class CatsController {
|
|
|
55
60
|
}
|
|
56
61
|
```
|
|
57
62
|
|
|
63
|
+
## Every route declares who may call it
|
|
64
|
+
|
|
65
|
+
A route says one of two things, and saying neither is not a third option:
|
|
66
|
+
|
|
67
|
+
| | how it is said |
|
|
68
|
+
|---|---|
|
|
69
|
+
| anyone may call it | `@Public()` — on the method, or on the class to cover every route under it |
|
|
70
|
+
| someone decides | `@UseGuards(SomeGuard)` — likewise on either |
|
|
71
|
+
|
|
72
|
+
A route that declares neither is **refused with 403** at dispatch, in every dispatcher this package
|
|
73
|
+
ships, and `theokit build` fails on it before that. The reason is that `guards: []` used to mean
|
|
74
|
+
both *"open on purpose"* and *"nobody said"*, so the dispatcher took the permissive reading — and a
|
|
75
|
+
route nobody thought about is the one that ships open.
|
|
76
|
+
|
|
77
|
+
`undeclaredRoutes: 'warn'` restores the old behaviour while you migrate, with one warning per route:
|
|
78
|
+
|
|
79
|
+
```typescript
|
|
80
|
+
TheoApp.create({ controllers, undeclaredRoutes: 'warn' }) // also on createDecoratorHandler(...)
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Guards still run on a `@Public()` route — the decorator answers *who may call it*, not *what else
|
|
84
|
+
happens on the way in*. For "any signed-in caller", `theokit/server/auth` exports the guard rather
|
|
85
|
+
than leaving every app to write it:
|
|
86
|
+
|
|
87
|
+
```typescript
|
|
88
|
+
import { createSessionManagerWeb, Authenticated } from 'theokit/server/auth'
|
|
89
|
+
|
|
90
|
+
const sessions = createSessionManagerWeb<{ userId: string }>({ secret: process.env.SESSION_SECRET! })
|
|
91
|
+
|
|
92
|
+
@Controller('api/tasks')
|
|
93
|
+
@UseGuards(Authenticated(sessions))
|
|
94
|
+
export class TasksController { … }
|
|
95
|
+
```
|
|
96
|
+
|
|
58
97
|
## Validation — Zod is the single source of truth
|
|
59
98
|
|
|
60
99
|
Pass the schema to `@Body` directly. The bridge validates the request against it and feeds the same
|
package/dist/app.d.ts
CHANGED
|
@@ -1,49 +1,5 @@
|
|
|
1
1
|
import { S as ServerHandle } from './types-CGthbcon.js';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Whether a route DECLARED an access decision, or nobody said (usetheokit/theokit#576).
|
|
5
|
-
*
|
|
6
|
-
* ## The ambiguity this removes
|
|
7
|
-
*
|
|
8
|
-
* `guards: []` meant two different things and the dispatcher could not tell them apart:
|
|
9
|
-
*
|
|
10
|
-
* - *this route is open on purpose*, and
|
|
11
|
-
* - *nobody said*.
|
|
12
|
-
*
|
|
13
|
-
* Faced with both readings it took the permissive one and served. For controllers that was safe
|
|
14
|
-
* only because a separate build gate (#514) refuses an undeclared controller route — which makes
|
|
15
|
-
* least privilege a property of the PIPELINE rather than of the system. Anything reaching the
|
|
16
|
-
* dispatcher without having run that build is served, and `@theokit/http` is published on its own,
|
|
17
|
-
* so "without having run that build" is an ordinary way to use it.
|
|
18
|
-
*
|
|
19
|
-
* Agent routes had neither. They are auto-wired — the app never wrote them, so there is no file for
|
|
20
|
-
* a reviewer to read — dispatched BEFORE controllers and file routes, and covered by no gate at
|
|
21
|
-
* all. An agent authored through capabilities has no class, so it takes no `@UseGuards`, so
|
|
22
|
-
* `guards` was `undefined`, so `?? []`, so served.
|
|
23
|
-
*
|
|
24
|
-
* The fix is not a new guard. It is making absence REPRESENTABLE, so a decision can be told from
|
|
25
|
-
* its residue.
|
|
26
|
-
*/
|
|
27
|
-
/** What a route says about who may call it. */
|
|
28
|
-
type AccessDecision =
|
|
29
|
-
/** Anyone may call it, on purpose. */
|
|
30
|
-
'public'
|
|
31
|
-
/** At least one guard decides. */
|
|
32
|
-
| 'guarded'
|
|
33
|
-
/** Nobody said — the state that used to be indistinguishable from `'public'`. */
|
|
34
|
-
| 'undeclared';
|
|
35
|
-
/**
|
|
36
|
-
* How an app answers a route that declared nothing.
|
|
37
|
-
*
|
|
38
|
-
* `'warn'` is the default and serves the request after saying so once, loudly, at mount. `'deny'`
|
|
39
|
-
* refuses with 403.
|
|
40
|
-
*
|
|
41
|
-
* The default is `'warn'` and not `'deny'` because flipping it silently would break every app whose
|
|
42
|
-
* agent endpoints are open today — which is precisely the population #576 is about, and breaking
|
|
43
|
-
* them inside a patch is how a security improvement becomes an outage. It becomes `'deny'` in the
|
|
44
|
-
* next major; `'deny'` is available now for anyone who wants the property before then.
|
|
45
|
-
*/
|
|
46
|
-
type UndeclaredRoutePolicy = 'warn' | 'deny';
|
|
2
|
+
import { A as AccessDecision, U as UndeclaredRoutePolicy } from './route-access-Bq7eKXIc.js';
|
|
47
3
|
|
|
48
4
|
/**
|
|
49
5
|
* TheoApp — NestJS/Spring Boot-style application bootstrap.
|
|
@@ -142,12 +98,11 @@ interface TheoAppOptions {
|
|
|
142
98
|
/**
|
|
143
99
|
* What to do with a route that declared no access decision (#576).
|
|
144
100
|
*
|
|
145
|
-
* `'
|
|
101
|
+
* `'deny'` (default) refuses with 403. `'warn'` serves it after saying so once — the migration
|
|
102
|
+
* escape for an app whose agent endpoints are open today, and nothing else.
|
|
146
103
|
*
|
|
147
|
-
* The default
|
|
148
|
-
*
|
|
149
|
-
* becomes `'deny'` in the next major; `'deny'` is available now for anyone who wants the property
|
|
150
|
-
* before then.
|
|
104
|
+
* The default was `'warn'` in 1.2.0 so the flip did not land inside a patch. This is the major
|
|
105
|
+
* that release bought.
|
|
151
106
|
*/
|
|
152
107
|
undeclaredRoutes?: UndeclaredRoutePolicy;
|
|
153
108
|
/**
|
package/dist/app.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
HttpDecoratorsConfigError,
|
|
3
|
+
classifyAccess,
|
|
3
4
|
createExecutionContext,
|
|
5
|
+
undeclaredRouteRefusal,
|
|
6
|
+
undeclaredRouteWarning,
|
|
4
7
|
walkControllerMetadata
|
|
5
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-R72YKDQ4.js";
|
|
6
9
|
import {
|
|
7
10
|
ForbiddenException,
|
|
8
11
|
HttpException
|
|
@@ -17,135 +20,6 @@ import {
|
|
|
17
20
|
// src/app.ts
|
|
18
21
|
import "reflect-metadata";
|
|
19
22
|
|
|
20
|
-
// src/decorators/set-metadata.ts
|
|
21
|
-
import "reflect-metadata";
|
|
22
|
-
var decoratorKeyCounter = 0;
|
|
23
|
-
function createDecorator() {
|
|
24
|
-
const key = /* @__PURE__ */ Symbol.for(`theokit:custom:${++decoratorKeyCounter}`);
|
|
25
|
-
const decorator = /* @__PURE__ */ __name((value) => {
|
|
26
|
-
return (target, propertyKey) => {
|
|
27
|
-
const metaTarget = propertyKey !== void 0 ? target.constructor : target;
|
|
28
|
-
Reflect.defineMetadata(key, value, metaTarget, propertyKey);
|
|
29
|
-
};
|
|
30
|
-
}, "decorator");
|
|
31
|
-
decorator.key = key;
|
|
32
|
-
return decorator;
|
|
33
|
-
}
|
|
34
|
-
__name(createDecorator, "createDecorator");
|
|
35
|
-
function SetMetadata(metaKey, value) {
|
|
36
|
-
return (target, propertyKey) => {
|
|
37
|
-
const metaTarget = propertyKey !== void 0 ? target.constructor : target;
|
|
38
|
-
Reflect.defineMetadata(metaKey, value, metaTarget, propertyKey);
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
__name(SetMetadata, "SetMetadata");
|
|
42
|
-
var Reflector = class {
|
|
43
|
-
static {
|
|
44
|
-
__name(this, "Reflector");
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Read metadata set by a typed decorator created via createDecorator<T>().
|
|
48
|
-
*
|
|
49
|
-
* @example
|
|
50
|
-
* ```ts
|
|
51
|
-
* const Roles = createDecorator<string[]>()
|
|
52
|
-
* const reflector = new Reflector()
|
|
53
|
-
* const roles = reflector.get(Roles, handlerFn) // string[] | undefined
|
|
54
|
-
* ```
|
|
55
|
-
*/
|
|
56
|
-
get(decorator, target, propertyKey) {
|
|
57
|
-
const key = decorator.key;
|
|
58
|
-
if (!key) return void 0;
|
|
59
|
-
if (propertyKey !== void 0) {
|
|
60
|
-
return Reflect.getMetadata(key, target, propertyKey);
|
|
61
|
-
}
|
|
62
|
-
return Reflect.getMetadata(key, target);
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Read metadata set by @SetMetadata(key, value).
|
|
66
|
-
*/
|
|
67
|
-
getByKey(key, target, propertyKey) {
|
|
68
|
-
if (propertyKey !== void 0) {
|
|
69
|
-
return Reflect.getMetadata(key, target, propertyKey);
|
|
70
|
-
}
|
|
71
|
-
return Reflect.getMetadata(key, target);
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Read metadata checking method-level first, then class-level.
|
|
75
|
-
* Returns the first non-undefined value found.
|
|
76
|
-
*
|
|
77
|
-
* NestJS equivalent: `reflector.getAllAndOverride(ROLES_KEY, [context.getHandler(), context.getClass()])`
|
|
78
|
-
*
|
|
79
|
-
* @example
|
|
80
|
-
* ```ts
|
|
81
|
-
* const Roles = createDecorator<string[]>()
|
|
82
|
-
* // In a guard:
|
|
83
|
-
* const roles = reflector.getAllAndOverride(Roles, context.getClass(), context.getMethodName())
|
|
84
|
-
* // Checks method-level @Roles first, falls back to class-level @Roles
|
|
85
|
-
* ```
|
|
86
|
-
*/
|
|
87
|
-
getAllAndOverride(decorator, target, propertyKey) {
|
|
88
|
-
if (propertyKey !== void 0) {
|
|
89
|
-
const methodLevel = this.get(decorator, target, propertyKey);
|
|
90
|
-
if (methodLevel !== void 0) return methodLevel;
|
|
91
|
-
}
|
|
92
|
-
return this.get(decorator, target);
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Read metadata checking method-level first, then class-level, by raw key.
|
|
96
|
-
* Returns the first non-undefined value found.
|
|
97
|
-
*/
|
|
98
|
-
getAllAndOverrideByKey(key, target, propertyKey) {
|
|
99
|
-
if (propertyKey !== void 0) {
|
|
100
|
-
const methodLevel = this.getByKey(key, target, propertyKey);
|
|
101
|
-
if (methodLevel !== void 0) return methodLevel;
|
|
102
|
-
}
|
|
103
|
-
return this.getByKey(key, target);
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Read metadata from both method-level and class-level, merging arrays.
|
|
107
|
-
* Returns all found values as a flat array.
|
|
108
|
-
*
|
|
109
|
-
* NestJS equivalent: `reflector.getAllAndMerge(ROLES_KEY, [context.getHandler(), context.getClass()])`
|
|
110
|
-
*
|
|
111
|
-
* @example
|
|
112
|
-
* ```ts
|
|
113
|
-
* const Tags = createDecorator<string[]>()
|
|
114
|
-
*
|
|
115
|
-
* @Tags(['api'])
|
|
116
|
-
* @Controller('cats')
|
|
117
|
-
* class CatsCtrl {
|
|
118
|
-
* @Tags(['read'])
|
|
119
|
-
* @Get()
|
|
120
|
-
* findAll() {}
|
|
121
|
-
* }
|
|
122
|
-
*
|
|
123
|
-
* reflector.getAllAndMerge(Tags, CatsCtrl, 'findAll')
|
|
124
|
-
* // → ['read', 'api'] (method + class merged)
|
|
125
|
-
* ```
|
|
126
|
-
*/
|
|
127
|
-
getAllAndMerge(decorator, target, propertyKey) {
|
|
128
|
-
const result = [];
|
|
129
|
-
if (propertyKey !== void 0) {
|
|
130
|
-
const methodLevel = this.get(decorator, target, propertyKey);
|
|
131
|
-
if (methodLevel !== void 0) {
|
|
132
|
-
if (Array.isArray(methodLevel)) result.push(...methodLevel);
|
|
133
|
-
else result.push(methodLevel);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
const classLevel = this.get(decorator, target);
|
|
137
|
-
if (classLevel !== void 0) {
|
|
138
|
-
if (Array.isArray(classLevel)) result.push(...classLevel);
|
|
139
|
-
else result.push(classLevel);
|
|
140
|
-
}
|
|
141
|
-
return result;
|
|
142
|
-
}
|
|
143
|
-
};
|
|
144
|
-
|
|
145
|
-
// src/decorators/public.ts
|
|
146
|
-
var PUBLIC_ROUTE_METADATA = "theokit:public";
|
|
147
|
-
var Public = /* @__PURE__ */ __name(() => SetMetadata(PUBLIC_ROUTE_METADATA, true), "Public");
|
|
148
|
-
|
|
149
23
|
// src/request-context.ts
|
|
150
24
|
import { AsyncLocalStorage } from "async_hooks";
|
|
151
25
|
var storage = new AsyncLocalStorage();
|
|
@@ -166,17 +40,6 @@ async function runWithRequestContext(ctx, fn) {
|
|
|
166
40
|
}
|
|
167
41
|
__name(runWithRequestContext, "runWithRequestContext");
|
|
168
42
|
|
|
169
|
-
// src/route-access.ts
|
|
170
|
-
function classifyAccess(declared) {
|
|
171
|
-
if (declared.access !== void 0) return declared.access;
|
|
172
|
-
return declared.guards !== void 0 && declared.guards.length > 0 ? "guarded" : "undeclared";
|
|
173
|
-
}
|
|
174
|
-
__name(classifyAccess, "classifyAccess");
|
|
175
|
-
function undeclaredRouteWarning(kind, route) {
|
|
176
|
-
return `[theokit] ${kind} route ${route} declares no access decision and is served to anyone. Declare one: attach a guard, or say it is open on purpose (${kind === "agent" ? "`access: 'public'`" : "`@Public()`"}). This becomes a 403 in the next major; set \`undeclaredRoutes: 'deny'\` to refuse it now.`;
|
|
177
|
-
}
|
|
178
|
-
__name(undeclaredRouteWarning, "undeclaredRouteWarning");
|
|
179
|
-
|
|
180
43
|
// src/static.ts
|
|
181
44
|
var MIME_TYPES = {
|
|
182
45
|
// Text
|
|
@@ -464,7 +327,7 @@ var TheoApp = class _TheoApp {
|
|
|
464
327
|
readyPath;
|
|
465
328
|
readinessChecks;
|
|
466
329
|
constructor(opts) {
|
|
467
|
-
this.undeclaredRoutes = opts?.undeclaredRoutes ?? "
|
|
330
|
+
this.undeclaredRoutes = opts?.undeclaredRoutes ?? "deny";
|
|
468
331
|
const hp = opts?.healthPath ?? "/__theo/health";
|
|
469
332
|
const rp = opts?.readyPath ?? "/__theo/ready";
|
|
470
333
|
if (hp.startsWith("/api/")) throw new Error(`[TheoApp] healthPath "${hp}" must not start with /api/ \u2014 would collide with user routes`);
|
|
@@ -654,7 +517,11 @@ var TheoApp = class _TheoApp {
|
|
|
654
517
|
}
|
|
655
518
|
if (access === "undeclared") {
|
|
656
519
|
for (const route of routes) {
|
|
657
|
-
|
|
520
|
+
if (this.undeclaredRoutes === "deny") {
|
|
521
|
+
console.error(`[theokit] ${undeclaredRouteRefusal("agent", route.path)}`);
|
|
522
|
+
} else {
|
|
523
|
+
console.warn(undeclaredRouteWarning("agent", route.path));
|
|
524
|
+
}
|
|
658
525
|
}
|
|
659
526
|
}
|
|
660
527
|
console.log(` \u{1F916} Agent "${entry.name}" mounted at ${entry.route}/chat (${compiled.tools.length} tools)`);
|
|
@@ -771,7 +638,7 @@ var TheoApp = class _TheoApp {
|
|
|
771
638
|
for (const route of this.agentRoutes) {
|
|
772
639
|
if (request.method.toUpperCase() === route.method && route.pattern.test(pathname)) {
|
|
773
640
|
if (route.access === "undeclared" && this.undeclaredRoutes === "deny") {
|
|
774
|
-
const ex = new ForbiddenException(
|
|
641
|
+
const ex = new ForbiddenException(undeclaredRouteRefusal("agent", pathname));
|
|
775
642
|
return jsonResponse(ex.statusCode, ex.toJSON());
|
|
776
643
|
}
|
|
777
644
|
if (route.guards.length > 0) {
|
|
@@ -799,14 +666,9 @@ var TheoApp = class _TheoApp {
|
|
|
799
666
|
});
|
|
800
667
|
}
|
|
801
668
|
const { entry, params } = match;
|
|
802
|
-
|
|
803
|
-
const access = classifyAccess({
|
|
804
|
-
access: Reflect.getMetadata(PUBLIC_ROUTE_METADATA, controllerClass) === true || Reflect.getMetadata(PUBLIC_ROUTE_METADATA, controllerClass, entry.walk.propertyKey) === true ? "public" : void 0,
|
|
805
|
-
guards: entry.walk.guards
|
|
806
|
-
});
|
|
807
|
-
if (access === "undeclared") {
|
|
669
|
+
if (entry.walk.access === "undeclared") {
|
|
808
670
|
if (this.undeclaredRoutes === "deny") {
|
|
809
|
-
const ex = new ForbiddenException(
|
|
671
|
+
const ex = new ForbiddenException(undeclaredRouteRefusal("controller", url.pathname));
|
|
810
672
|
return jsonResponse(ex.statusCode, ex.toJSON());
|
|
811
673
|
}
|
|
812
674
|
if (!this.warnedUndeclared.has(url.pathname)) {
|
|
@@ -968,11 +830,6 @@ function buildResponse(result, walk, method) {
|
|
|
968
830
|
__name(buildResponse, "buildResponse");
|
|
969
831
|
|
|
970
832
|
export {
|
|
971
|
-
createDecorator,
|
|
972
|
-
SetMetadata,
|
|
973
|
-
Reflector,
|
|
974
|
-
PUBLIC_ROUTE_METADATA,
|
|
975
|
-
Public,
|
|
976
833
|
getRequestContext,
|
|
977
834
|
tryGetRequestContext,
|
|
978
835
|
getMimeType,
|
|
@@ -982,4 +839,4 @@ export {
|
|
|
982
839
|
streamToResponse,
|
|
983
840
|
TheoApp
|
|
984
841
|
};
|
|
985
|
-
//# sourceMappingURL=chunk-
|
|
842
|
+
//# sourceMappingURL=chunk-6HVQHSPX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/app.ts","../src/request-context.ts","../src/static.ts","../src/stream-renderer.ts"],"mappings":"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","names":["AsyncLocalStorage","storage","AsyncLocalStorage","getRequestContext","ctx","getStore","Error","tryGetRequestContext","runWithRequestContext","fn","run","MIME_TYPES","UNSAFE_PATH_RE","getMimeType","filePath","dot","lastIndexOf","ext","slice","toLowerCase","isSafePath","pathname","test","readFileBun","fullPath","g","globalThis","BunRT","Bun","file","exists","buf","arrayBuffer","content","Uint8Array","size","byteLength","readFileDeno","DenoRT","Deno","stat","isDirectory","readFile","readFileNode","fs","handle","open","close","containedRealPath","root","sep","realPath","realpath","realRoot","startsWith","safePath","resolveRoot","join","cwd","resolve","createStaticHandler","options","maxAge","resolvedRoot","request","method","toUpperCase","url","URL","decodeURIComponent","result","endsWith","includes","contentType","headers","String","Response","status","DOCTYPE","encoder","TextEncoder","renderToStream","options","root","waitForAll","reactDomServer","renderToReadableStream","renderWithReadableStream","renderToString","console","warn","renderWithString","Error","renderFn","reactStream","allReady","doctypeStream","prependDoctype","stream","html","bytes","encode","ReadableStream","start","controller","enqueue","close","Promise","resolve","source","reader","getReader","doctypeSent","pull","value","done","read","cancel","streamToResponse","result","Response","status","headers","TheoApp","serverHandle","routes","frontendHtml","streamingRoot","staticHandler","startTime","Date","now","healthPath","readyPath","readinessChecks","opts","undeclaredRoutes","hp","rp","startsWith","Error","adapter","createNodeAdapter","createServer","request","handleRequest","create","app","registry","Map","module","moduleMeta","Reflect","getMetadata","allModules","imports","Mod","meta","Prov","providers","has","set","Controller","controllers","paramTypes","args","map","pt","dep","get","name","instance","postConstruct","result","Promise","walks","walkControllerMetadata","w","push","walk","sort","a","b","aP","fullPath","includes","bP","entry","paramNames","regexStr","replace","_m","compiledPattern","RegExp","compiledParamNames","needsBody","paramEntries","some","p","source","root","streaming","renderToString","html","staticDir","createStaticHandler","agents","length","autoWireAgents","listen","port","resolve","console","log","getServerHandle","close","agentRoutes","warnedUndeclared","Set","entries","_registry","runtime","agentRuntime","undefined","HttpDecoratorsConfigError","apiKey","llmApiKey","process","env","OPENROUTER_API_KEY","compiled","createRun","agentStreamFactory","tools","model","llmModel","createSdkAgentStream","createFallbackStream","agentIdentity","agentClass","agent","access","classifyAccess","generateAgentRoutes","walkResult","route","compiledOptions","path","method","pattern","handler","guards","methodName","error","undeclaredRouteRefusal","warn","undeclaredRouteWarning","handleReadinessCheck","jsonResponse","status","checks","results","all","check","race","setTimeout","healthy","message","err","allHealthy","every","r","agentName","msg","_message","_sessionId","events","type","runId","code","retryable","Symbol","asyncIterator","i","next","value","done","pathname","URL","url","reqCtx","params","startedAt","runWithRequestContext","handleRequestInContext","_reqCtx","uptime","timestamp","renderToStream","streamToResponse","Response","headers","staticResponse","toUpperCase","test","ex","ForbiddenException","statusCode","toJSON","ctx","createExecutionContext","GuardCtor","guard","canActivate","match","findRoute","add","propertyKey","body","text","clone","JSON","parse","bodySchema","safeParse","success","issues","data","buildArgs","Object","fromEntries","searchParams","redirect","location","handlerFn","interceptors","runInterceptors","apply","buildResponse","filters","runExceptionFilters","HttpException","verb","exec","forEach","query","max","Math","index","Array","from","key","toLowerCase","stringify","n","v"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
HttpDecoratorsConfigError
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-R72YKDQ4.js";
|
|
4
4
|
import {
|
|
5
5
|
resolveOrNew
|
|
6
6
|
} from "./chunk-JP4J23TV.js";
|
|
@@ -285,4 +285,4 @@ export {
|
|
|
285
285
|
isControllerClass,
|
|
286
286
|
resolveBody
|
|
287
287
|
};
|
|
288
|
-
//# sourceMappingURL=chunk-
|
|
288
|
+
//# sourceMappingURL=chunk-BXJBQ4EH.js.map
|