theokit 0.72.1 → 0.74.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 +2 -0
- package/dist/{actions-virtual-module-OHENNMQG.js → actions-virtual-module-J2HYO7QZ.js} +4 -4
- package/dist/{actions-virtual-module-EAKYEMGF.js → actions-virtual-module-JV7URROJ.js} +7 -7
- package/dist/adapters/agent-mount.js +3 -3
- package/dist/adapters/security-headers.d.ts +27 -11
- package/dist/adapters/security-headers.js +9 -4
- package/dist/adapters/security-headers.js.map +1 -1
- package/dist/{agent-VJTZ4DQ7.js → agent-GU6JIEFJ.js} +3 -3
- package/dist/{app-typed-client-ILLQYTXP.js → app-typed-client-EOA3A2AR.js} +5 -5
- package/dist/{app-typed-client-ILLQYTXP.js.map → app-typed-client-EOA3A2AR.js.map} +1 -1
- package/dist/{app-typed-client-LHH77QDB.js → app-typed-client-XD4DZBV7.js} +8 -8
- package/dist/app-typed-client-XD4DZBV7.js.map +1 -0
- package/dist/{aws-lambda-7AZNJGWU.js → aws-lambda-ZYSPTD3O.js} +61 -27
- package/dist/aws-lambda-ZYSPTD3O.js.map +1 -0
- package/dist/{build-23QF5FNQ.js → build-6FVZKORI.js} +81 -74
- package/dist/build-6FVZKORI.js.map +1 -0
- package/dist/{bun-NKVHOFSJ.js → bun-I7YM3RDB.js} +82 -21
- package/dist/bun-I7YM3RDB.js.map +1 -0
- package/dist/{chunk-WBB3MEEN.js → chunk-2NG5T77O.js} +47 -12
- package/dist/{chunk-WBB3MEEN.js.map → chunk-2NG5T77O.js.map} +1 -1
- package/dist/{chunk-NO6HA4FG.js → chunk-4WP7A7RX.js} +41 -35
- package/dist/chunk-4WP7A7RX.js.map +1 -0
- package/dist/chunk-4X43VTST.js +31 -0
- package/dist/chunk-4X43VTST.js.map +1 -0
- package/dist/{chunk-FHQP23Z5.js → chunk-6R5F5YF2.js} +17 -14
- package/dist/chunk-6R5F5YF2.js.map +1 -0
- package/dist/chunk-72RSCKMW.js +53 -0
- package/dist/chunk-72RSCKMW.js.map +1 -0
- package/dist/{chunk-V5SSTT3C.js → chunk-C43AHOHI.js} +1 -1
- package/dist/chunk-C43AHOHI.js.map +1 -0
- package/dist/{chunk-C5CAL3DX.js → chunk-EQJF2EH5.js} +8 -7
- package/dist/chunk-EQJF2EH5.js.map +1 -0
- package/dist/{chunk-QD5X56I3.js → chunk-FNJVSFEC.js} +1 -1
- package/dist/chunk-FNJVSFEC.js.map +1 -0
- package/dist/{chunk-6U67SO5U.js → chunk-HK57MPSZ.js} +2 -2
- package/dist/{chunk-R7G2B2WH.js → chunk-HKF6YNY4.js} +17 -14
- package/dist/{chunk-R7G2B2WH.js.map → chunk-HKF6YNY4.js.map} +1 -1
- package/dist/chunk-IJQQNHL7.js +34 -0
- package/dist/chunk-IJQQNHL7.js.map +1 -0
- package/dist/{chunk-RE2WE7CD.js → chunk-LOOOB46A.js} +2 -2
- package/dist/{chunk-PEL3MJLM.js → chunk-MX63AWEK.js} +1 -1
- package/dist/{chunk-PEL3MJLM.js.map → chunk-MX63AWEK.js.map} +1 -1
- package/dist/chunk-NPQ5A3RU.js +53 -0
- package/dist/chunk-NPQ5A3RU.js.map +1 -0
- package/dist/{chunk-DKX7LF5Q.js → chunk-ODYLKWRT.js} +3 -3
- package/dist/{chunk-L6UHMWXU.js → chunk-QAS5SKZP.js} +3 -3
- package/dist/chunk-QAS5SKZP.js.map +1 -0
- package/dist/{chunk-4EQEJ4PH.js → chunk-RFZ263XP.js} +68 -23
- package/dist/chunk-RFZ263XP.js.map +1 -0
- package/dist/{chunk-XLSJWKSP.js → chunk-S5QN3O22.js} +66 -21
- package/dist/{chunk-XLSJWKSP.js.map → chunk-S5QN3O22.js.map} +1 -1
- package/dist/{chunk-E2RC367T.js → chunk-SHIXTMQE.js} +49 -14
- package/dist/{chunk-E2RC367T.js.map → chunk-SHIXTMQE.js.map} +1 -1
- package/dist/{chunk-G7U7FQVC.js → chunk-UFBBFP75.js} +13 -3
- package/dist/chunk-UFBBFP75.js.map +1 -0
- package/dist/{chunk-4CIHLTSI.js → chunk-V7ISZGNS.js} +45 -39
- package/dist/chunk-V7ISZGNS.js.map +1 -0
- package/dist/{chunk-RCFD5W5V.js → chunk-WR5B2XNT.js} +6 -6
- package/dist/chunk-WR5B2XNT.js.map +1 -0
- package/dist/{chunk-IB5VIXLR.js → chunk-XLFDYTWO.js} +2 -2
- package/dist/cli/index.js +8 -8
- package/dist/client/index.d.ts +18 -1
- package/dist/client/index.js +15 -1
- package/dist/client/index.js.map +1 -1
- package/dist/{cloudflare-4M4XVNUH.js → cloudflare-AMH4TJNL.js} +104 -82
- package/dist/cloudflare-AMH4TJNL.js.map +1 -0
- package/dist/{config-support-SB5NDQZB.js → config-support-MOZYHRWG.js} +13 -2
- package/dist/{config-support-SB5NDQZB.js.map → config-support-MOZYHRWG.js.map} +1 -1
- package/dist/{deno-deploy-IVACZ62D.js → deno-deploy-6H354VRA.js} +17 -7
- package/dist/deno-deploy-6H354VRA.js.map +1 -0
- package/dist/{dev-JDJWMRLH.js → dev-HJUD6X3R.js} +9 -9
- package/dist/{dev-emit-7KZFUA7M.js → dev-emit-T3X6RR7M.js} +5 -5
- package/dist/{dev-emit-7KZFUA7M.js.map → dev-emit-T3X6RR7M.js.map} +1 -1
- package/dist/{dev-emit-JPJJFBXL.js → dev-emit-ZK5GCHXN.js} +6 -6
- package/dist/dev-emit-ZK5GCHXN.js.map +1 -0
- package/dist/index.js +5 -5
- package/dist/{internal-api-VDYOXOT7.js → internal-api-GKPJYL3G.js} +7 -7
- package/dist/{internal-api-6XNLCNI5.js → internal-api-ZUBUYGCQ.js} +4 -4
- package/dist/{mcp-WJNCTM7M.js → mcp-MVKDWZEQ.js} +3 -3
- package/dist/{netlify-3HEWV375.js → netlify-ALPCTQFO.js} +158 -48
- package/dist/netlify-ALPCTQFO.js.map +1 -0
- package/dist/{node-QUGTW6XV.js → node-4HQO6KKZ.js} +2 -2
- package/dist/{observability-bootstrap-FP6LMMJE.js → observability-bootstrap-DOWRMADT.js} +2 -2
- package/dist/{openapi-Q53YOBIU.js → openapi-C4UX2SFV.js} +5 -5
- package/dist/openapi-C4UX2SFV.js.map +1 -0
- package/dist/{preview-BARW75PN.js → preview-5HUID27O.js} +3 -3
- package/dist/registry-OMLCP4AS.js +34 -0
- package/dist/registry-OMLCP4AS.js.map +1 -0
- package/dist/{routes-FDF4SLOB.js → routes-3PTNISSO.js} +2 -2
- package/dist/server/index.js +2 -2
- package/dist/server/scan/index.d.ts +38 -2
- package/dist/server/scan/index.js +2 -2
- package/dist/{server-boundary-AO6EELRF.js → server-boundary-QCJNECJP.js} +7 -7
- package/dist/{server-boundary-E5GFVPLB.js → server-boundary-RTRPHX5I.js} +4 -4
- package/dist/{start-4JTYXQQJ.js → start-EREUCSN6.js} +10 -10
- package/dist/{static-NQPLPAB6.js → static-7LP7LPGN.js} +2 -2
- package/dist/{vercel-5PMYEEKF.js → vercel-VLR52RXT.js} +173 -73
- package/dist/vercel-VLR52RXT.js.map +1 -0
- package/dist/vite-plugin/index.js +5 -5
- package/dist/{vite-plugin-3ON45MQE.js → vite-plugin-JVGI6QUO.js} +9 -9
- package/package.json +4 -4
- package/dist/app-typed-client-LHH77QDB.js.map +0 -1
- package/dist/aws-lambda-7AZNJGWU.js.map +0 -1
- package/dist/build-23QF5FNQ.js.map +0 -1
- package/dist/bun-NKVHOFSJ.js.map +0 -1
- package/dist/chunk-4CIHLTSI.js.map +0 -1
- package/dist/chunk-4EQEJ4PH.js.map +0 -1
- package/dist/chunk-C5CAL3DX.js.map +0 -1
- package/dist/chunk-FHQP23Z5.js.map +0 -1
- package/dist/chunk-G7U7FQVC.js.map +0 -1
- package/dist/chunk-L6UHMWXU.js.map +0 -1
- package/dist/chunk-NO6HA4FG.js.map +0 -1
- package/dist/chunk-QD5X56I3.js.map +0 -1
- package/dist/chunk-RCFD5W5V.js.map +0 -1
- package/dist/chunk-V5SSTT3C.js.map +0 -1
- package/dist/cloudflare-4M4XVNUH.js.map +0 -1
- package/dist/deno-deploy-IVACZ62D.js.map +0 -1
- package/dist/dev-emit-JPJJFBXL.js.map +0 -1
- package/dist/netlify-3HEWV375.js.map +0 -1
- package/dist/openapi-Q53YOBIU.js.map +0 -1
- package/dist/registry-SDBODRU6.js +0 -23
- package/dist/registry-SDBODRU6.js.map +0 -1
- package/dist/vercel-5PMYEEKF.js.map +0 -1
- /package/dist/{actions-virtual-module-OHENNMQG.js.map → actions-virtual-module-J2HYO7QZ.js.map} +0 -0
- /package/dist/{actions-virtual-module-EAKYEMGF.js.map → actions-virtual-module-JV7URROJ.js.map} +0 -0
- /package/dist/{agent-VJTZ4DQ7.js.map → agent-GU6JIEFJ.js.map} +0 -0
- /package/dist/{chunk-6U67SO5U.js.map → chunk-HK57MPSZ.js.map} +0 -0
- /package/dist/{chunk-RE2WE7CD.js.map → chunk-LOOOB46A.js.map} +0 -0
- /package/dist/{chunk-DKX7LF5Q.js.map → chunk-ODYLKWRT.js.map} +0 -0
- /package/dist/{chunk-IB5VIXLR.js.map → chunk-XLFDYTWO.js.map} +0 -0
- /package/dist/{dev-JDJWMRLH.js.map → dev-HJUD6X3R.js.map} +0 -0
- /package/dist/{internal-api-VDYOXOT7.js.map → internal-api-GKPJYL3G.js.map} +0 -0
- /package/dist/{internal-api-6XNLCNI5.js.map → internal-api-ZUBUYGCQ.js.map} +0 -0
- /package/dist/{mcp-WJNCTM7M.js.map → mcp-MVKDWZEQ.js.map} +0 -0
- /package/dist/{node-QUGTW6XV.js.map → node-4HQO6KKZ.js.map} +0 -0
- /package/dist/{observability-bootstrap-FP6LMMJE.js.map → observability-bootstrap-DOWRMADT.js.map} +0 -0
- /package/dist/{preview-BARW75PN.js.map → preview-5HUID27O.js.map} +0 -0
- /package/dist/{routes-FDF4SLOB.js.map → routes-3PTNISSO.js.map} +0 -0
- /package/dist/{server-boundary-AO6EELRF.js.map → server-boundary-QCJNECJP.js.map} +0 -0
- /package/dist/{server-boundary-E5GFVPLB.js.map → server-boundary-RTRPHX5I.js.map} +0 -0
- /package/dist/{start-4JTYXQQJ.js.map → start-EREUCSN6.js.map} +0 -0
- /package/dist/{static-NQPLPAB6.js.map → static-7LP7LPGN.js.map} +0 -0
- /package/dist/{vite-plugin-3ON45MQE.js.map → vite-plugin-JVGI6QUO.js.map} +0 -0
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import "tsx/esm";
|
|
3
|
+
import {
|
|
4
|
+
readDocumentShell
|
|
5
|
+
} from "./chunk-IJQQNHL7.js";
|
|
3
6
|
import {
|
|
4
7
|
planDeployedPlugins
|
|
5
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-C43AHOHI.js";
|
|
6
9
|
import {
|
|
7
10
|
deployedEntryPreamble
|
|
8
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-XLFDYTWO.js";
|
|
9
12
|
import {
|
|
10
13
|
agentsDirLiteral,
|
|
11
14
|
deployedAgentsFragment,
|
|
@@ -15,10 +18,11 @@ import {
|
|
|
15
18
|
describeDeployedSecurityHeaders,
|
|
16
19
|
rateLimitCheckFragment,
|
|
17
20
|
serverDirLiteral
|
|
18
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-EQJF2EH5.js";
|
|
19
22
|
import {
|
|
20
23
|
nodeAdapter
|
|
21
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-UFBBFP75.js";
|
|
25
|
+
import "./chunk-3PWQQWT6.js";
|
|
22
26
|
import "./chunk-WSMLSIS5.js";
|
|
23
27
|
import {
|
|
24
28
|
assertServicesUnsupported,
|
|
@@ -49,7 +53,8 @@ var RUNTIME_GUARDS = [
|
|
|
49
53
|
`}`
|
|
50
54
|
];
|
|
51
55
|
function renderBunEntry(port, opts = {}) {
|
|
52
|
-
const
|
|
56
|
+
const document = opts.ssr === true ? { htmlHead: opts.htmlHead, htmlTail: opts.htmlTail } : void 0;
|
|
57
|
+
const streamingComment = document !== void 0 ? `// ssr on \u2014 the document is rendered by this handler, not read from .theokit/client` : `// ssr off \u2014 the document is the built client shell, served from disk`;
|
|
53
58
|
const runtimeConfig = deployedRuntimeConfigFragment(opts);
|
|
54
59
|
const agentsFragment = deployedAgentsFragment(
|
|
55
60
|
{
|
|
@@ -77,12 +82,25 @@ function renderBunEntry(port, opts = {}) {
|
|
|
77
82
|
``,
|
|
78
83
|
`import { resolve, join } from 'node:path'`,
|
|
79
84
|
`import { existsSync } from 'node:fs'`,
|
|
80
|
-
|
|
85
|
+
// One element per emitted line, like every neighbour, and the conditional import is a spread
|
|
86
|
+
// rather than an interpolated `\n`. That is not a style preference: this line carried the
|
|
87
|
+
// fragment inside a nested double-quoted string, where an escaped backslash is a backslash, so
|
|
88
|
+
// the import reached the module joined by two characters and Bun refused it. A construct that
|
|
89
|
+
// cannot express a malformed line beats one escaped correctly (B-325), and `sonarjs` refuses the
|
|
90
|
+
// nesting outright — the lint was naming the cause.
|
|
91
|
+
`import { scanServerRoutes, matchRoute, createProductionLoader } from 'theokit/server/scan'`,
|
|
92
|
+
`import { executeRoute, extractTraceIdFromRequest, TRACE_HEADER, createCorsWebHandler } from 'theokit/server/http'`,
|
|
93
|
+
...opts.rateLimit === void 0 ? [] : [`import { createRateLimiterWeb } from 'theokit/server/rate-limit'`],
|
|
81
94
|
`import { createWebShim } from 'theokit/adapters/web-shim'`,
|
|
82
95
|
`import { buildSecurityHeaders, withSecurityHeaders } from 'theokit/adapters/security-headers'`,
|
|
96
|
+
// The renderer the node build already emits for this target and nothing imported. Its own header
|
|
97
|
+
// names Bun: "Web Standards streaming entry for edge runtimes (Cloudflare, Bun, Deno, Vercel
|
|
98
|
+
// Edge)". Measured on a real build: `.theokit/server/entry-server.js` is 95513 bytes and exports
|
|
99
|
+
// the render, and `.theokit/bun/server.mjs` referenced it zero times.
|
|
100
|
+
...document === void 0 ? [] : [`import { renderStreamingWeb } from '../server/entry-server.js'`],
|
|
83
101
|
`// T3.2 \u2014 WS bridge for Bun runtime`,
|
|
84
102
|
`import { createBunWsBridge } from 'theokit/adapters/ws-shim'`,
|
|
85
|
-
`import { scanWebSocketRoutes } from 'theokit/server'`,
|
|
103
|
+
`import { scanWebSocketRoutes } from 'theokit/server/scan'`,
|
|
86
104
|
``,
|
|
87
105
|
`const cwd = process.cwd()`,
|
|
88
106
|
`const clientDir = resolve(cwd, '.theokit/client')`,
|
|
@@ -134,22 +152,35 @@ function renderBunEntry(port, opts = {}) {
|
|
|
134
152
|
` },`,
|
|
135
153
|
`})`,
|
|
136
154
|
``,
|
|
137
|
-
...bunHandleRequestFragment(runtimeConfig.executeRouteSpread, agentsFragment.branch)
|
|
155
|
+
...bunHandleRequestFragment(runtimeConfig.executeRouteSpread, agentsFragment.branch, document)
|
|
138
156
|
].join("\n");
|
|
139
157
|
}
|
|
140
|
-
function bunHandleRequestFragment(runtimeSpread, agentBranch) {
|
|
158
|
+
function bunHandleRequestFragment(runtimeSpread, agentBranch, document) {
|
|
141
159
|
return [
|
|
142
160
|
`async function handleRequest(request) {`,
|
|
143
161
|
` const url = new URL(request.url)`,
|
|
144
162
|
` const pathname = url.pathname`,
|
|
145
163
|
``,
|
|
146
164
|
` // 1) Static assets`,
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
165
|
+
...document === void 0 ? [
|
|
166
|
+
` const staticPath = pathname === '/' ? '/index.html' : pathname`,
|
|
167
|
+
` const fullStatic = join(clientDir, staticPath)`,
|
|
168
|
+
` if (existsSync(fullStatic)) {`,
|
|
169
|
+
` const file = Bun.file(fullStatic)`,
|
|
170
|
+
` if (await file.exists()) return new Response(file)`,
|
|
171
|
+
` }`
|
|
172
|
+
] : [
|
|
173
|
+
` // \`/\` is deliberately NOT mapped to index.html here: that file is the client shell,`,
|
|
174
|
+
` // and answering the document from it is what served an empty <div id="root"> on an`,
|
|
175
|
+
` // ssr build. Real assets still come from disk; the document falls through to (3).`,
|
|
176
|
+
` if (pathname !== '/') {`,
|
|
177
|
+
` const fullStatic = join(clientDir, pathname)`,
|
|
178
|
+
` if (existsSync(fullStatic)) {`,
|
|
179
|
+
` const file = Bun.file(fullStatic)`,
|
|
180
|
+
` if (await file.exists()) return new Response(file)`,
|
|
181
|
+
` }`,
|
|
182
|
+
` }`
|
|
183
|
+
],
|
|
153
184
|
``,
|
|
154
185
|
` // 2) API routes through the full executeRoute pipeline via the shim`,
|
|
155
186
|
` if (pathname.startsWith('/api/') || __theoIsAgentCardPath(pathname)) {`,
|
|
@@ -165,9 +196,22 @@ function bunHandleRequestFragment(runtimeSpread, agentBranch) {
|
|
|
165
196
|
` return toResponse(executeRoute({ route: match.route, method, params: match.params, req, res, loadModule, serverDir, requestId, ...CSRF_CONFIG, ${runtimeSpread} }))`,
|
|
166
197
|
` }`,
|
|
167
198
|
``,
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
199
|
+
...document === void 0 ? [
|
|
200
|
+
` // 3) SPA fallback`,
|
|
201
|
+
` const indexPath = join(clientDir, 'index.html')`,
|
|
202
|
+
` if (existsSync(indexPath)) return new Response(Bun.file(indexPath))`
|
|
203
|
+
] : [
|
|
204
|
+
` // 3) The document, rendered here rather than read from disk.`,
|
|
205
|
+
` //`,
|
|
206
|
+
` // No nonce is minted: the outer wrapper applies a precomputed SECURITY_HEADERS constant,`,
|
|
207
|
+
` // so a per-request value would have to be threaded through it. That is a separate change`,
|
|
208
|
+
` // with its own blast radius, and the shell this replaces carries only external`,
|
|
209
|
+
` // <script src> tags, which \`script-src 'self'\` already allows.`,
|
|
210
|
+
` return await renderStreamingWeb(request, {`,
|
|
211
|
+
` htmlHead: ${JSON.stringify(document.htmlHead ?? "")},`,
|
|
212
|
+
` htmlTail: ${JSON.stringify(document.htmlTail ?? "")},`,
|
|
213
|
+
` })`
|
|
214
|
+
],
|
|
171
215
|
``,
|
|
172
216
|
` return notFoundResponse()`,
|
|
173
217
|
`}`,
|
|
@@ -185,6 +229,12 @@ async function buildBun(config, cwd, deps = {}, ctx) {
|
|
|
185
229
|
const pluginsPlan = planDeployedPlugins(config.plugins, "bun");
|
|
186
230
|
const entry = renderBunEntry(config.port, {
|
|
187
231
|
ssrStreaming: config.ssrStreaming,
|
|
232
|
+
// B-334 — the sixth time this shape has been fixed one target at a time: the renderer honoured an
|
|
233
|
+
// option no build passed (B-185, B-235, B-312, B-315, B-317). Here it was worse — the option only
|
|
234
|
+
// changed a comment. The shell is read HERE rather than in the emitter, because reading a file is
|
|
235
|
+
// the build's job and not a string emitter's.
|
|
236
|
+
ssr: config.ssr,
|
|
237
|
+
...readDocumentShell(cwd, config.ssr),
|
|
188
238
|
securityHeaders: config.security?.headers,
|
|
189
239
|
csrf: config.security?.csrf,
|
|
190
240
|
disallowed: config.security?.disallowed,
|
|
@@ -213,8 +263,14 @@ async function buildBun(config, cwd, deps = {}, ctx) {
|
|
|
213
263
|
`${describeDeployedSecurityHeaders({
|
|
214
264
|
target: "bun",
|
|
215
265
|
securityHeaders: config.security?.headers,
|
|
216
|
-
//
|
|
217
|
-
//
|
|
266
|
+
// Bun renders the document at request time when `ssr` is on (B-334), and still mints no nonce:
|
|
267
|
+
// the outer wrapper applies a precomputed SECURITY_HEADERS constant, so a per-request value
|
|
268
|
+
// would have to be threaded through it.
|
|
269
|
+
//
|
|
270
|
+
// This used to read "No deploy target other than the streamed Cloudflare worker renders HTML at
|
|
271
|
+
// request time, so none of the rest can mint a nonce." True when written, false the moment B-317
|
|
272
|
+
// shipped — a CONSEQUENCE of the fleet at the time, never a prohibition, which is why rendering
|
|
273
|
+
// here is consistent with the intent rather than against it.
|
|
218
274
|
mintsNonce: false,
|
|
219
275
|
// Bun serves `.theokit/client` itself, so the document DOES pass through
|
|
220
276
|
// the handler these headers are attached to.
|
|
@@ -224,6 +280,11 @@ async function buildBun(config, cwd, deps = {}, ctx) {
|
|
|
224
280
|
);
|
|
225
281
|
}
|
|
226
282
|
var bunAdapter = {
|
|
283
|
+
// The entry runs IN the project: it resolves `serverDir` against `cwd`, so `node_modules` is
|
|
284
|
+
// present and the scan has a tree to read. `docs/adr/0020` leaves this target alone for exactly
|
|
285
|
+
// that reason.
|
|
286
|
+
readsSourceAtRunTime: true,
|
|
287
|
+
specifiersResolvedBy: "the-project-at-run-time",
|
|
227
288
|
name: "bun",
|
|
228
289
|
streamsResponses: true,
|
|
229
290
|
// #409 / #410 — the generated entry calls `executeRoute` with routes, loader
|
|
@@ -259,4 +320,4 @@ export {
|
|
|
259
320
|
bunAdapter,
|
|
260
321
|
renderBunEntry
|
|
261
322
|
};
|
|
262
|
-
//# sourceMappingURL=bun-
|
|
323
|
+
//# sourceMappingURL=bun-I7YM3RDB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/adapters/bun.ts"],"sourcesContent":["/* eslint-disable security/detect-non-literal-fs-filename --\n * Bun deploy adapter. Writes to `cwd/.theokit/bun/`. Build-time.\n */\nimport { mkdirSync, writeFileSync } from 'node:fs'\nimport { resolve } from 'node:path'\n\nimport type { TheoConfig } from '../config/schema.js'\nimport type { SecurityHeadersConfig } from '../core/contracts/security-headers.js'\nimport { assertServicesUnsupported, readManifest } from '../services/index.js'\n\nimport { deployedAgentsFragment } from './deployed-agents.js'\nimport { type DeployedCorsOptions } from './deployed-cors.js'\nimport { type DeployedCsrfOptions } from './deployed-csrf.js'\nimport { readDocumentShell } from './deployed-document-shell.js'\nimport { planDeployedPlugins } from './deployed-plugins-module.js'\nimport { deployedEntryPreamble } from './deployed-preamble.js'\nimport {\n deployedRateLimitFragment,\n rateLimitCheckFragment,\n type DeployedRateLimitOptions,\n} from './deployed-rate-limit.js'\nimport {\n deployedRuntimeConfigFragment,\n agentsDirLiteral,\n serverDirLiteral,\n type DeployedRuntimeConfigOptions,\n type DeployedAgentsDirOptions,\n type DeployedServerDirOptions,\n} from './deployed-runtime-config.js'\nimport { deployedTraceFragment } from './deployed-trace.js'\nimport { nodeAdapter } from './node.js'\nimport { describeDeployedSecurityHeaders } from './security-headers.js'\nimport type { AdapterBuildContext, DeployAdapter } from './types.js'\n\nexport interface BunBuildDeps {\n runNodeBuild?: (config: TheoConfig, cwd: string, ctx?: AdapterBuildContext) => Promise<void>\n writeEntry?: (path: string, content: string) => void\n ensureDir?: (path: string) => void\n}\n\n/**\n * The module-scope refusals: this entry is production-only and Bun-only.\n *\n * Extracted from `renderBunEntry` when adding the configured-directory literal pushed it past the\n * per-function line budget. They are a cohesive block — three checks that all refuse to start —\n * and lifting them keeps the budget a signal about the renderer rather than about its preamble.\n */\nconst RUNTIME_GUARDS: readonly string[] = [\n `// EC-1: dev-mode guard`,\n `if (process.env.NODE_ENV !== 'production') {`,\n ` console.error('TheoBunAdapter is production-only. Use \\\\'theokit dev\\\\' (Node) for development.')`,\n ` process.exit(1)`,\n `}`,\n ``,\n `// Version check: Bun >= 1.1`,\n `if (typeof Bun === 'undefined') {`,\n ` console.error('TheoBunAdapter must run inside Bun. Got Node.js or unknown runtime.')`,\n ` process.exit(1)`,\n `}`,\n `{`,\n ` const [maj, min] = (Bun.version ?? '0.0').split('.').map(Number)`,\n ` if (maj < 1 || (maj === 1 && min < 1)) {`,\n ` console.error('TheoBunAdapter requires Bun >= 1.1; got ' + Bun.version)`,\n ` process.exit(1)`,\n ` }`,\n `}`,\n]\n\nexport function renderBunEntry(\n port: number,\n opts: {\n ssrStreaming?: boolean\n /**\n * Whether this build renders the document on the server.\n *\n * Bun is the one Web target whose own handler answers the HTML document, and it answered it from\n * `.theokit/client/index.html` — the client shell. So an `ssr: true` project was served an empty\n * `<div id=\"root\">` while the build printed `(SSR)` (B-334).\n */\n ssr?: boolean\n /** The document up to `<div id=\"root\">`, read from the built client shell. */\n htmlHead?: string\n /** The document from `<div id=\"root\">` on. */\n htmlTail?: string\n securityHeaders?: SecurityHeadersConfig\n } & DeployedAgentsDirOptions &\n DeployedCsrfOptions &\n DeployedRuntimeConfigOptions &\n DeployedServerDirOptions &\n DeployedCorsOptions &\n DeployedRateLimitOptions = {},\n): string {\n // The whole implementation of `ssrStreaming` in this adapter used to be the text of this comment:\n // `opts.ssrStreaming` was read, and its only effect was which string landed on line 4 of the emitted\n // file. `rules/foreign-config-surfaces.md` names that exact failure — \"A surface is read, or it is\n // refused with a reason. It is never accepted and ignored\" — and it was in this adapter.\n const document =\n opts.ssr === true ? { htmlHead: opts.htmlHead, htmlTail: opts.htmlTail } : undefined\n const streamingComment =\n document !== undefined\n ? `// ssr on — the document is rendered by this handler, not read from .theokit/client`\n : `// ssr off — the document is the built client shell, served from disk`\n const runtimeConfig = deployedRuntimeConfigFragment(opts)\n const agentsFragment = deployedAgentsFragment(\n {\n kind: 'scan',\n projectRoot: 'cwd',\n loadModule: 'loadModule',\n serverDir: 'serverDir',\n agentsDirLiteral: agentsDirLiteral(opts),\n },\n {\n pathname: 'pathname',\n // B-185 — bound only when the runtime-config fragment declared the const, which is\n // exactly when a plugins module was emitted. Referencing it otherwise would emit an\n // identifier the entry never declares.\n pluginRunnerExpr:\n opts.runtimeConfigModule === undefined ? undefined : 'await THEO_PLUGIN_RUNNER',\n },\n )\n return [\n `// Generated by Theo — Bun Adapter`,\n `// Run: bun run .theokit/bun/server.mjs`,\n `// Requires Bun >= 1.1`,\n streamingComment,\n ``,\n ...RUNTIME_GUARDS,\n ``,\n `import { resolve, join } from 'node:path'`,\n `import { existsSync } from 'node:fs'`,\n // One element per emitted line, like every neighbour, and the conditional import is a spread\n // rather than an interpolated `\\n`. That is not a style preference: this line carried the\n // fragment inside a nested double-quoted string, where an escaped backslash is a backslash, so\n // the import reached the module joined by two characters and Bun refused it. A construct that\n // cannot express a malformed line beats one escaped correctly (B-325), and `sonarjs` refuses the\n // nesting outright — the lint was naming the cause.\n `import { scanServerRoutes, matchRoute, createProductionLoader } from 'theokit/server/scan'`,\n `import { executeRoute, extractTraceIdFromRequest, TRACE_HEADER, createCorsWebHandler } from 'theokit/server/http'`,\n ...(opts.rateLimit === undefined\n ? []\n : [`import { createRateLimiterWeb } from 'theokit/server/rate-limit'`]),\n `import { createWebShim } from 'theokit/adapters/web-shim'`,\n `import { buildSecurityHeaders, withSecurityHeaders } from 'theokit/adapters/security-headers'`,\n // The renderer the node build already emits for this target and nothing imported. Its own header\n // names Bun: \"Web Standards streaming entry for edge runtimes (Cloudflare, Bun, Deno, Vercel\n // Edge)\". Measured on a real build: `.theokit/server/entry-server.js` is 95513 bytes and exports\n // the render, and `.theokit/bun/server.mjs` referenced it zero times.\n ...(document === undefined\n ? []\n : [`import { renderStreamingWeb } from '../server/entry-server.js'`]),\n `// T3.2 — WS bridge for Bun runtime`,\n `import { createBunWsBridge } from 'theokit/adapters/ws-shim'`,\n `import { scanWebSocketRoutes } from 'theokit/server/scan'`,\n ``,\n `const cwd = process.cwd()`,\n `const clientDir = resolve(cwd, '.theokit/client')`,\n `const serverDir = resolve(cwd, ${serverDirLiteral(opts)})`,\n `const port = process.env.PORT ? Number(process.env.PORT) : ${port}`,\n ``,\n `// #410 — the security baseline \\`theokit start\\` puts on every response,`,\n `// carried here as a literal because the deployed process has no`,\n `// theo.config.ts to read. Bun is the one Web target whose own handler serves`,\n `// the HTML document (static file + SPA fallback below), so the document gets`,\n `// these headers too -- with a nonce-less CSP, because that HTML was written`,\n `// at build time and carries no nonce on its script tags (EC-4).`,\n ...deployedEntryPreamble(runtimeConfig, agentsFragment, opts, 'bun'),\n ``,\n ...deployedRateLimitFragment(opts.rateLimit, 'bun', 'server.requestIP(request)?.address'),\n ``,\n `const routes = existsSync(serverDir) ? scanServerRoutes(serverDir) : []`,\n `const wsRoutes = existsSync(serverDir) ? scanWebSocketRoutes(serverDir) : []`,\n `const loadModule = createProductionLoader()`,\n ``,\n `// Bun WebSocket config — single handler dispatches to first ws route,`,\n `// or a default no-op when none declared. Per-route routing happens above`,\n `// (the upgrade decision is made in fetch handler before Bun.serve hands off).`,\n `const wsBridge = wsRoutes.length > 0`,\n ` ? createBunWsBridge({`,\n ` onOpen: () => {},`,\n ` onMessage: (ws, data) => { ws.send(data) },`,\n ` onClose: () => {},`,\n ` })`,\n ` : { open: () => {}, message: () => {}, close: () => {} }`,\n ``,\n `function notFoundResponse() {`,\n ` return new Response(JSON.stringify({ error: { code: 'NOT_FOUND', message: 'Route not found' } }), {`,\n ` status: 404,`,\n ` headers: { 'Content-Type': 'application/json' },`,\n ` })`,\n `}`,\n ``,\n `Bun.serve({`,\n ` port,`,\n ` websocket: wsBridge,`,\n ` async fetch(request, server) {`,\n ` // #409 — the preflight is answered BEFORE anything routes: an OPTIONS the router`,\n ` // handles is an OPTIONS the browser never gets a CORS answer to.`,\n ` const preflight = corsPreflight(request)`,\n ` if (preflight !== null) return withSecurityHeaders(preflight, SECURITY_HEADERS)`,\n ...rateLimitCheckFragment(opts.rateLimit, ' '),\n ` return withCors(request, withSecurityHeaders(await handleRequest(request), SECURITY_HEADERS))`,\n ` },`,\n `})`,\n ``,\n ...bunHandleRequestFragment(runtimeConfig.executeRouteSpread, agentsFragment.branch, document),\n ].join('\\n')\n}\n\n/**\n * The request handler, as generated source.\n *\n * Extracted for the reason `vercel.ts` extracts its own fragments: the emitter is one array\n * literal, so every line the entry gains counts against `max-lines-per-function`, and #410 added\n * the CSRF literal to an emitter that was already sitting exactly at the ceiling.\n */\nfunction bunHandleRequestFragment(\n runtimeSpread: string,\n agentBranch: readonly string[],\n document: { htmlHead?: string; htmlTail?: string } | undefined,\n): string[] {\n return [\n `async function handleRequest(request) {`,\n ` const url = new URL(request.url)`,\n ` const pathname = url.pathname`,\n ``,\n ` // 1) Static assets`,\n ...(document === undefined\n ? [\n ` const staticPath = pathname === '/' ? '/index.html' : pathname`,\n ` const fullStatic = join(clientDir, staticPath)`,\n ` if (existsSync(fullStatic)) {`,\n ` const file = Bun.file(fullStatic)`,\n ` if (await file.exists()) return new Response(file)`,\n ` }`,\n ]\n : [\n ` // \\`/\\` is deliberately NOT mapped to index.html here: that file is the client shell,`,\n ` // and answering the document from it is what served an empty <div id=\"root\"> on an`,\n ` // ssr build. Real assets still come from disk; the document falls through to (3).`,\n ` if (pathname !== '/') {`,\n ` const fullStatic = join(clientDir, pathname)`,\n ` if (existsSync(fullStatic)) {`,\n ` const file = Bun.file(fullStatic)`,\n ` if (await file.exists()) return new Response(file)`,\n ` }`,\n ` }`,\n ]),\n ``,\n ` // 2) API routes through the full executeRoute pipeline via the shim`,\n ` if (pathname.startsWith('/api/') || __theoIsAgentCardPath(pathname)) {`,\n ...agentBranch,\n ``,\n ` const match = matchRoute(pathname, routes)`,\n ` if (!match) return notFoundResponse()`,\n ` const { req, res, toResponse } = createWebShim(request)`,\n ...deployedTraceFragment('request', ' '),\n ` const method = request.method.toUpperCase()`,\n ` // #382 — not awaited: toResponse() settles at the headers and carries`,\n ` // a live body, so Bun.serve streams while the handler writes.`,\n ` return toResponse(executeRoute({ route: match.route, method, params: match.params, req, res, loadModule, serverDir, requestId, ...CSRF_CONFIG, ${runtimeSpread} }))`,\n ` }`,\n ``,\n ...(document === undefined\n ? [\n ` // 3) SPA fallback`,\n ` const indexPath = join(clientDir, 'index.html')`,\n ` if (existsSync(indexPath)) return new Response(Bun.file(indexPath))`,\n ]\n : [\n ` // 3) The document, rendered here rather than read from disk.`,\n ` //`,\n ` // No nonce is minted: the outer wrapper applies a precomputed SECURITY_HEADERS constant,`,\n ` // so a per-request value would have to be threaded through it. That is a separate change`,\n ` // with its own blast radius, and the shell this replaces carries only external`,\n ` // <script src> tags, which \\`script-src 'self'\\` already allows.`,\n ` return await renderStreamingWeb(request, {`,\n ` htmlHead: ${JSON.stringify(document.htmlHead ?? '')},`,\n ` htmlTail: ${JSON.stringify(document.htmlTail ?? '')},`,\n ` })`,\n ]),\n ``,\n ` return notFoundResponse()`,\n `}`,\n ``,\n `console.log('Theo (Bun) listening on http://localhost:' + port)`,\n ]\n}\n\nexport async function buildBun(\n config: TheoConfig,\n cwd: string,\n deps: BunBuildDeps = {},\n ctx?: AdapterBuildContext,\n): Promise<void> {\n // Wave 2 (T2.2) — reject polyglot services on this adapter.\n assertServicesUnsupported('bun', readManifest(cwd))\n\n const runNodeBuild = deps.runNodeBuild ?? nodeAdapter.build.bind(nodeAdapter)\n await runNodeBuild(config, cwd, ctx)\n\n const outputDir = resolve(cwd, '.theokit/bun')\n const ensureDir = deps.ensureDir ?? ((p: string) => mkdirSync(p, { recursive: true }))\n ensureDir(outputDir)\n\n const pluginsPlan = planDeployedPlugins(config.plugins, 'bun')\n const entry = renderBunEntry(config.port, {\n ssrStreaming: config.ssrStreaming,\n // B-334 — the sixth time this shape has been fixed one target at a time: the renderer honoured an\n // option no build passed (B-185, B-235, B-312, B-315, B-317). Here it was worse — the option only\n // changed a comment. The shell is read HERE rather than in the emitter, because reading a file is\n // the build's job and not a string emitter's.\n ssr: config.ssr,\n ...readDocumentShell(cwd, config.ssr),\n securityHeaders: config.security?.headers,\n csrf: config.security?.csrf,\n disallowed: config.security?.disallowed,\n cors: config.security?.cors,\n // #425 — a selector, not a transformer, so it rides as a literal like the values above.\n serialization: config.serialization,\n // #425 — the ONE concern that is not a literal. A closure cannot be baked, so a plugin\n // declared by module specifier is imported by the emitted module instead; a constructed one\n // is refused by name at build time rather than dropped in silence.\n runtimeConfigModule: pluginsPlan?.moduleSpecifier,\n // #95 — the configured directories, which `build.ts:210` already threads into the Vite\n // plugins. Without these two lines the literals above fall to their defaults and a project\n // with a custom dir deploys an entry that resolves a directory it does not have.\n serverDir: config.serverDir,\n agentsDir: config.agentsDir,\n })\n const write =\n deps.writeEntry ??\n ((p, c) => {\n writeFileSync(p, c)\n })\n if (pluginsPlan !== undefined) {\n // Beside the entry, so the emitted import is a sibling. Written through the same seam as\n // the entry so a test that captures one captures both (#425).\n write(resolve(outputDir, 'theo.plugins.mjs'), pluginsPlan.source)\n }\n write(resolve(outputDir, 'server.mjs'), entry)\n\n // eslint-disable-next-line no-console -- CLI build progress\n console.log('\\n ✓ Bun output → .theokit/bun/server.mjs')\n // eslint-disable-next-line no-console -- CLI build progress\n console.log(\n `${describeDeployedSecurityHeaders({\n target: 'bun',\n securityHeaders: config.security?.headers,\n // Bun renders the document at request time when `ssr` is on (B-334), and still mints no nonce:\n // the outer wrapper applies a precomputed SECURITY_HEADERS constant, so a per-request value\n // would have to be threaded through it.\n //\n // This used to read \"No deploy target other than the streamed Cloudflare worker renders HTML at\n // request time, so none of the rest can mint a nonce.\" True when written, false the moment B-317\n // shipped — a CONSEQUENCE of the fleet at the time, never a prohibition, which is why rendering\n // here is consistent with the intent rather than against it.\n mintsNonce: false,\n // Bun serves `.theokit/client` itself, so the document DOES pass through\n // the handler these headers are attached to.\n documentHeaders: 'handler',\n })}\\n`,\n )\n}\n\nexport const bunAdapter: DeployAdapter = {\n // The entry runs IN the project: it resolves `serverDir` against `cwd`, so `node_modules` is\n // present and the scan has a tree to read. `docs/adr/0020` leaves this target alone for exactly\n // that reason.\n readsSourceAtRunTime: true,\n specifiersResolvedBy: 'the-project-at-run-time',\n name: 'bun',\n streamsResponses: true,\n // #409 / #410 — the generated entry calls `executeRoute` with routes, loader\n // and serverDir only. CSRF, route policy, file middleware and Zod validation\n // still run because they live inside `executeRoute`; none of the remaining\n // configurable concerns reach it. Declared explicitly rather than omitted so\n // the gap is a statement in the source and not an absence.\n //\n // `securityHeaders` IS applied: the entry carries `security.headers` as a\n // literal and puts the built baseline on every response, the served document\n // included.\n servesAgents: true,\n appliesConfig: [\n 'securityHeaders',\n 'csrf',\n 'disallowed',\n 'cors',\n 'serialization',\n 'plugins',\n // #508 — bun is the first Web target to ENFORCE a declared limit rather than refuse the\n // build: `Bun.serve` is long-lived, so the in-process counter survives, and its handler\n // already receives `server`, whose `requestIP` gives the peer address without a header.\n 'rateLimit',\n ],\n // B-257 — a long-lived process: the in-process counter survives between requests.\n enforcesRateLimit: 'always',\n build(config, cwd, ctx) {\n return buildBun(config, cwd, {}, ctx)\n },\n}\n"],"mappings":"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","names":[]}
|
|
@@ -599,20 +599,52 @@ function encodeSse(text) {
|
|
|
599
599
|
}
|
|
600
600
|
function durableUiMessageStreamResponse(chunks, deps) {
|
|
601
601
|
const { runId, cache } = deps;
|
|
602
|
+
const iterator = chunks[Symbol.asyncIterator]();
|
|
603
|
+
let finished = false;
|
|
604
|
+
function endCachedRun() {
|
|
605
|
+
try {
|
|
606
|
+
cache.end(runId);
|
|
607
|
+
} catch (err) {
|
|
608
|
+
console.error(
|
|
609
|
+
`[theokit] durable run ${runId}: cache.end failed, so a reconnect replay may be stale:`,
|
|
610
|
+
err
|
|
611
|
+
);
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
function finish(controller) {
|
|
615
|
+
if (finished) return;
|
|
616
|
+
finished = true;
|
|
617
|
+
endCachedRun();
|
|
618
|
+
try {
|
|
619
|
+
controller.enqueue(encodeSse(SSE_DONE_FRAME));
|
|
620
|
+
controller.close();
|
|
621
|
+
} catch (err) {
|
|
622
|
+
console.error(
|
|
623
|
+
`[theokit] durable run ${runId}: could not terminate a stream nobody is reading:`,
|
|
624
|
+
err
|
|
625
|
+
);
|
|
626
|
+
}
|
|
627
|
+
}
|
|
602
628
|
const stream = new ReadableStream({
|
|
603
|
-
async
|
|
629
|
+
async pull(controller) {
|
|
630
|
+
if (finished) return;
|
|
604
631
|
try {
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
632
|
+
const next = await iterator.next();
|
|
633
|
+
if (next.done === true) {
|
|
634
|
+
finish(controller);
|
|
635
|
+
return;
|
|
609
636
|
}
|
|
637
|
+
const data = JSON.stringify(next.value);
|
|
638
|
+
const seq = cache.append(runId, data);
|
|
639
|
+
controller.enqueue(encodeSse(formatSseFrame(seq, data)));
|
|
610
640
|
} catch {
|
|
611
|
-
|
|
612
|
-
cache.end(runId);
|
|
613
|
-
controller.enqueue(encodeSse(SSE_DONE_FRAME));
|
|
614
|
-
controller.close();
|
|
641
|
+
finish(controller);
|
|
615
642
|
}
|
|
643
|
+
},
|
|
644
|
+
async cancel(reason) {
|
|
645
|
+
finished = true;
|
|
646
|
+
endCachedRun();
|
|
647
|
+
await iterator.return?.(reason);
|
|
616
648
|
}
|
|
617
649
|
});
|
|
618
650
|
return new Response(stream, {
|
|
@@ -666,8 +698,11 @@ function createInMemoryRunEventCache(opts = {}) {
|
|
|
666
698
|
}
|
|
667
699
|
}
|
|
668
700
|
buf.listeners.clear();
|
|
669
|
-
|
|
670
|
-
buf.evictTimer
|
|
701
|
+
const timer = setTimeout(() => runs.delete(runId), evictAfterMs);
|
|
702
|
+
buf.evictTimer = timer;
|
|
703
|
+
if (typeof timer === "object" && typeof timer.unref === "function") {
|
|
704
|
+
timer.unref();
|
|
705
|
+
}
|
|
671
706
|
},
|
|
672
707
|
attach(runId, afterSeq, onFrame, onEnd) {
|
|
673
708
|
const buf = runs.get(runId);
|
|
@@ -848,4 +883,4 @@ export {
|
|
|
848
883
|
parseAgentRequestBody,
|
|
849
884
|
mountAgent
|
|
850
885
|
};
|
|
851
|
-
//# sourceMappingURL=chunk-
|
|
886
|
+
//# sourceMappingURL=chunk-2NG5T77O.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server/agent/mount-agent.ts","../src/server/agent/agent-access.ts","../src/server/agent/build-agent-streamer.ts","../src/server/agent/approval-registry.ts","../src/config/schemas/rate-limit.ts","../src/config/schemas/upload.ts","../src/config/schemas/logging.ts","../src/config/schemas/cache.ts","../src/config/schemas/observability.ts","../src/config/schemas/security.ts","../src/config/schemas/header-safe.ts","../src/config/schemas/storage.ts","../src/server/observability-bootstrap.ts","../src/server/agent/hitl-pause-spans.ts","../src/server/agent/observe-agent-run.ts","../src/server/agent/observe-served-run.ts","../src/server/agent/durable-ui-message-stream-response.ts","../src/server/agent/run-event-cache.ts"],"mappings":"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","names":["compileLoadedAgentModule","resolveEnabledSkills","streamAgentUIMessages","z","z","z","z","z","z","z","z","compileLoadedAgentModule","resolveEnabledSkills","streamAgentUIMessages"]}
|
|
1
|
+
{"version":3,"sources":["../src/server/agent/mount-agent.ts","../src/server/agent/agent-access.ts","../src/server/agent/build-agent-streamer.ts","../src/server/agent/approval-registry.ts","../src/config/schemas/rate-limit.ts","../src/config/schemas/upload.ts","../src/config/schemas/logging.ts","../src/config/schemas/cache.ts","../src/config/schemas/observability.ts","../src/config/schemas/security.ts","../src/config/schemas/header-safe.ts","../src/config/schemas/storage.ts","../src/server/observability-bootstrap.ts","../src/server/agent/hitl-pause-spans.ts","../src/server/agent/observe-agent-run.ts","../src/server/agent/observe-served-run.ts","../src/server/agent/durable-ui-message-stream-response.ts","../src/server/agent/run-event-cache.ts"],"mappings":"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","names":["compileLoadedAgentModule","resolveEnabledSkills","streamAgentUIMessages","z","z","z","z","z","z","z","z","compileLoadedAgentModule","resolveEnabledSkills","streamAgentUIMessages"]}
|
|
@@ -194,32 +194,35 @@ import { basename, extname as extname2, join as join2, relative as relative2 } f
|
|
|
194
194
|
// src/server/scan/detect-http-methods.ts
|
|
195
195
|
import { readFileSync as readFileSync2 } from "fs";
|
|
196
196
|
import { createRequire } from "module";
|
|
197
|
-
var
|
|
198
|
-
|
|
197
|
+
var compiler;
|
|
198
|
+
function ts_() {
|
|
199
|
+
compiler ??= createRequire(import.meta.url)("typescript");
|
|
200
|
+
return compiler;
|
|
201
|
+
}
|
|
199
202
|
var HTTP_METHOD_NAMES = new Set(HTTP_METHODS);
|
|
200
203
|
function hasExportModifier(modifiers) {
|
|
201
204
|
if (!modifiers) return false;
|
|
202
205
|
for (const m of modifiers) {
|
|
203
|
-
if (m.kind ===
|
|
206
|
+
if (m.kind === ts_().SyntaxKind.ExportKeyword) return true;
|
|
204
207
|
}
|
|
205
208
|
return false;
|
|
206
209
|
}
|
|
207
210
|
function collectFromStatement(stmt, found) {
|
|
208
|
-
if (
|
|
211
|
+
if (ts_().isVariableStatement(stmt) && hasExportModifier(ts_().getModifiers(stmt))) {
|
|
209
212
|
for (const decl of stmt.declarationList.declarations) {
|
|
210
|
-
if (
|
|
213
|
+
if (ts_().isIdentifier(decl.name) && HTTP_METHOD_NAMES.has(decl.name.text)) {
|
|
211
214
|
found.add(decl.name.text);
|
|
212
215
|
}
|
|
213
216
|
}
|
|
214
217
|
return;
|
|
215
218
|
}
|
|
216
|
-
if ((
|
|
219
|
+
if ((ts_().isFunctionDeclaration(stmt) || ts_().isClassDeclaration(stmt)) && hasExportModifier(ts_().getModifiers(stmt))) {
|
|
217
220
|
if (stmt.name && HTTP_METHOD_NAMES.has(stmt.name.text)) {
|
|
218
221
|
found.add(stmt.name.text);
|
|
219
222
|
}
|
|
220
223
|
return;
|
|
221
224
|
}
|
|
222
|
-
if (
|
|
225
|
+
if (ts_().isExportDeclaration(stmt) && stmt.exportClause && ts_().isNamedExports(stmt.exportClause)) {
|
|
223
226
|
for (const spec of stmt.exportClause.elements) {
|
|
224
227
|
if (HTTP_METHOD_NAMES.has(spec.name.text)) {
|
|
225
228
|
found.add(spec.name.text);
|
|
@@ -229,13 +232,13 @@ function collectFromStatement(stmt, found) {
|
|
|
229
232
|
}
|
|
230
233
|
function detectExportedHttpMethods(filePath, content) {
|
|
231
234
|
const src = content ?? readFileSync2(filePath, "utf-8");
|
|
232
|
-
const sourceFile =
|
|
235
|
+
const sourceFile = ts_().createSourceFile(
|
|
233
236
|
filePath,
|
|
234
237
|
src,
|
|
235
|
-
|
|
238
|
+
ts_().ScriptTarget.Latest,
|
|
236
239
|
/* setParentNodes */
|
|
237
240
|
false,
|
|
238
|
-
|
|
241
|
+
ts_().ScriptKind.TS
|
|
239
242
|
);
|
|
240
243
|
const found = /* @__PURE__ */ new Set();
|
|
241
244
|
for (const stmt of sourceFile.statements) {
|
|
@@ -246,21 +249,24 @@ function detectExportedHttpMethods(filePath, content) {
|
|
|
246
249
|
|
|
247
250
|
// src/server/scan/detect-route-policy.ts
|
|
248
251
|
import { createRequire as createRequire2 } from "module";
|
|
249
|
-
var
|
|
250
|
-
|
|
252
|
+
var compiler2;
|
|
253
|
+
function ts_2() {
|
|
254
|
+
compiler2 ??= createRequire2(import.meta.url)("typescript");
|
|
255
|
+
return compiler2;
|
|
256
|
+
}
|
|
251
257
|
var HTTP_METHOD_NAMES2 = new Set(HTTP_METHODS);
|
|
252
258
|
var POLICY_KEY = "policy";
|
|
253
259
|
function hasExportModifier2(modifiers) {
|
|
254
260
|
if (!modifiers) return false;
|
|
255
261
|
for (const m of modifiers) {
|
|
256
|
-
if (m.kind ===
|
|
262
|
+
if (m.kind === ts_2().SyntaxKind.ExportKeyword) return true;
|
|
257
263
|
}
|
|
258
264
|
return false;
|
|
259
265
|
}
|
|
260
266
|
function unwrap(expression) {
|
|
261
267
|
let current = expression;
|
|
262
268
|
for (; ; ) {
|
|
263
|
-
if (
|
|
269
|
+
if (ts_2().isParenthesizedExpression(current) || ts_2().isAsExpression(current) || ts_2().isSatisfiesExpression(current) || ts_2().isNonNullExpression(current)) {
|
|
264
270
|
current = current.expression;
|
|
265
271
|
continue;
|
|
266
272
|
}
|
|
@@ -269,45 +275,45 @@ function unwrap(expression) {
|
|
|
269
275
|
}
|
|
270
276
|
function propertyNameIsPolicy(name) {
|
|
271
277
|
if (name === void 0) return false;
|
|
272
|
-
if (
|
|
273
|
-
if (
|
|
278
|
+
if (ts_2().isIdentifier(name)) return name.text === POLICY_KEY;
|
|
279
|
+
if (ts_2().isStringLiteral(name)) return name.text === POLICY_KEY;
|
|
274
280
|
return false;
|
|
275
281
|
}
|
|
276
282
|
function policyKindOfArgument(expression) {
|
|
277
283
|
const arg = unwrap(expression);
|
|
278
|
-
return
|
|
284
|
+
return ts_2().isStringLiteral(arg) && arg.text === "public" ? "public" : "guarded";
|
|
279
285
|
}
|
|
280
286
|
function objectPolicyKind(literal) {
|
|
281
287
|
for (const property of literal.properties) {
|
|
282
|
-
if (
|
|
288
|
+
if (ts_2().isSpreadAssignment(property)) continue;
|
|
283
289
|
if (!propertyNameIsPolicy(property.name)) continue;
|
|
284
|
-
return
|
|
290
|
+
return ts_2().isPropertyAssignment(property) ? policyKindOfArgument(property.initializer) : "guarded";
|
|
285
291
|
}
|
|
286
292
|
return void 0;
|
|
287
293
|
}
|
|
288
294
|
function policyKind(expression) {
|
|
289
295
|
const expr = unwrap(expression);
|
|
290
|
-
if (
|
|
291
|
-
if (!
|
|
296
|
+
if (ts_2().isObjectLiteralExpression(expr)) return objectPolicyKind(expr);
|
|
297
|
+
if (!ts_2().isCallExpression(expr)) return void 0;
|
|
292
298
|
const callee = unwrap(expr.expression);
|
|
293
|
-
if (
|
|
299
|
+
if (ts_2().isPropertyAccessExpression(callee) && callee.name.text === POLICY_KEY) {
|
|
294
300
|
return expr.arguments.length === 0 ? "guarded" : policyKindOfArgument(expr.arguments[0]);
|
|
295
301
|
}
|
|
296
302
|
for (const argument of expr.arguments) {
|
|
297
303
|
const arg = unwrap(argument);
|
|
298
|
-
if (!
|
|
304
|
+
if (!ts_2().isObjectLiteralExpression(arg)) continue;
|
|
299
305
|
const kind = objectPolicyKind(arg);
|
|
300
306
|
if (kind !== void 0) return kind;
|
|
301
307
|
}
|
|
302
|
-
if (
|
|
308
|
+
if (ts_2().isPropertyAccessExpression(callee)) return policyKind(callee.expression);
|
|
303
309
|
return void 0;
|
|
304
310
|
}
|
|
305
311
|
function collectLocalInitializers(sourceFile) {
|
|
306
312
|
const locals = /* @__PURE__ */ new Map();
|
|
307
313
|
for (const stmt of sourceFile.statements) {
|
|
308
|
-
if (!
|
|
314
|
+
if (!ts_2().isVariableStatement(stmt)) continue;
|
|
309
315
|
for (const decl of stmt.declarationList.declarations) {
|
|
310
|
-
if (
|
|
316
|
+
if (ts_2().isIdentifier(decl.name) && decl.initializer !== void 0) {
|
|
311
317
|
locals.set(decl.name.text, decl.initializer);
|
|
312
318
|
}
|
|
313
319
|
}
|
|
@@ -315,9 +321,9 @@ function collectLocalInitializers(sourceFile) {
|
|
|
315
321
|
return locals;
|
|
316
322
|
}
|
|
317
323
|
function collectFromVariableStatement(stmt, declared) {
|
|
318
|
-
if (!hasExportModifier2(
|
|
324
|
+
if (!hasExportModifier2(ts_2().getModifiers(stmt))) return;
|
|
319
325
|
for (const decl of stmt.declarationList.declarations) {
|
|
320
|
-
if (!
|
|
326
|
+
if (!ts_2().isIdentifier(decl.name) || !HTTP_METHOD_NAMES2.has(decl.name.text)) continue;
|
|
321
327
|
if (decl.initializer === void 0) continue;
|
|
322
328
|
const kind = policyKind(decl.initializer);
|
|
323
329
|
if (kind !== void 0) declared.set(decl.name.text, kind);
|
|
@@ -325,7 +331,7 @@ function collectFromVariableStatement(stmt, declared) {
|
|
|
325
331
|
}
|
|
326
332
|
function collectFromExportDeclaration(stmt, locals, declared) {
|
|
327
333
|
if (stmt.moduleSpecifier !== void 0) return;
|
|
328
|
-
if (!stmt.exportClause || !
|
|
334
|
+
if (!stmt.exportClause || !ts_2().isNamedExports(stmt.exportClause)) return;
|
|
329
335
|
for (const spec of stmt.exportClause.elements) {
|
|
330
336
|
if (!HTTP_METHOD_NAMES2.has(spec.name.text)) continue;
|
|
331
337
|
const local = locals.get((spec.propertyName ?? spec.name).text);
|
|
@@ -335,22 +341,22 @@ function collectFromExportDeclaration(stmt, locals, declared) {
|
|
|
335
341
|
}
|
|
336
342
|
}
|
|
337
343
|
function collectFromStatement2(stmt, locals, declared) {
|
|
338
|
-
if (
|
|
344
|
+
if (ts_2().isVariableStatement(stmt)) {
|
|
339
345
|
collectFromVariableStatement(stmt, declared);
|
|
340
346
|
return;
|
|
341
347
|
}
|
|
342
|
-
if (
|
|
348
|
+
if (ts_2().isExportDeclaration(stmt)) {
|
|
343
349
|
collectFromExportDeclaration(stmt, locals, declared);
|
|
344
350
|
}
|
|
345
351
|
}
|
|
346
352
|
function detectRoutePolicyKinds(filePath, content) {
|
|
347
|
-
const sourceFile =
|
|
353
|
+
const sourceFile = ts_2().createSourceFile(
|
|
348
354
|
filePath,
|
|
349
355
|
content,
|
|
350
|
-
|
|
356
|
+
ts_2().ScriptTarget.Latest,
|
|
351
357
|
/* setParentNodes */
|
|
352
358
|
false,
|
|
353
|
-
|
|
359
|
+
ts_2().ScriptKind.TS
|
|
354
360
|
);
|
|
355
361
|
const locals = collectLocalInitializers(sourceFile);
|
|
356
362
|
const declared = /* @__PURE__ */ new Map();
|
|
@@ -549,4 +555,4 @@ export {
|
|
|
549
555
|
scanServerRoutes,
|
|
550
556
|
scanWebSocketRoutes
|
|
551
557
|
};
|
|
552
|
-
//# sourceMappingURL=chunk-
|
|
558
|
+
//# sourceMappingURL=chunk-4WP7A7RX.js.map
|