@aopslabs/aops-server 0.2.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.
Files changed (150) hide show
  1. package/LICENSE +19 -0
  2. package/NOTICE +7 -0
  3. package/README.md +28 -0
  4. package/THIRD_PARTY_NOTICES +13409 -0
  5. package/THIRD_PARTY_NOTICES.inventory.json +2768 -0
  6. package/build/client/_app/immutable/chunks/2_TffmqH.js +1 -0
  7. package/build/client/_app/immutable/chunks/3DOfIKW0.js +1 -0
  8. package/build/client/_app/immutable/chunks/B2EkC-sy.js +1 -0
  9. package/build/client/_app/immutable/chunks/BlANKL2r.js +1 -0
  10. package/build/client/_app/immutable/chunks/CMkIcmi1.js +2 -0
  11. package/build/client/_app/immutable/chunks/rqnVXeyB.js +1 -0
  12. package/build/client/_app/immutable/chunks/wbPk3Yxo.js +81 -0
  13. package/build/client/_app/immutable/entry/app.a0iGCm6X.js +2 -0
  14. package/build/client/_app/immutable/entry/start.Df7u6fQ1.js +1 -0
  15. package/build/client/_app/immutable/nodes/0.BYBfjxZ5.js +1 -0
  16. package/build/client/_app/immutable/nodes/1.BtbjYUHR.js +1 -0
  17. package/build/client/_app/version.json +1 -0
  18. package/build/env.js +69 -0
  19. package/build/handler.js +15 -0
  20. package/build/index.js +138 -0
  21. package/build/server/chunks/0-RfB6m2nq.js +6 -0
  22. package/build/server/chunks/1-UJuUicIe.js +8 -0
  23. package/build/server/chunks/_server.ts-6bdzoHJH.js +83 -0
  24. package/build/server/chunks/_server.ts-AwMeEYiZ.js +9 -0
  25. package/build/server/chunks/_server.ts-B9gjXi95.js +260 -0
  26. package/build/server/chunks/_server.ts-BX4X0tW0.js +16 -0
  27. package/build/server/chunks/_server.ts-BkxSxdd0.js +172 -0
  28. package/build/server/chunks/_server.ts-Bly8fCZa.js +90 -0
  29. package/build/server/chunks/_server.ts-Bz-Erv-1.js +43 -0
  30. package/build/server/chunks/_server.ts-CRKd0KAC.js +43 -0
  31. package/build/server/chunks/_server.ts-CjzSQgpk.js +95 -0
  32. package/build/server/chunks/_server.ts-Cv-yaXZI.js +6 -0
  33. package/build/server/chunks/_server.ts-DQWRrk5C.js +14 -0
  34. package/build/server/chunks/_server.ts-DQzYSH_C.js +125 -0
  35. package/build/server/chunks/_server.ts-DaIr3NkR.js +10 -0
  36. package/build/server/chunks/_server.ts-DbdAfdYo.js +8 -0
  37. package/build/server/chunks/_server.ts-De9ZrSV0.js +84 -0
  38. package/build/server/chunks/_server.ts-DsTeOL2P.js +17 -0
  39. package/build/server/chunks/_server.ts-N61POKjl.js +84 -0
  40. package/build/server/chunks/_server.ts-Ua5Ieisy.js +37 -0
  41. package/build/server/chunks/_server.ts-XmKDT59M.js +37 -0
  42. package/build/server/chunks/_server.ts-o9pJceJP.js +54 -0
  43. package/build/server/chunks/_server.ts-u2UWBqNN.js +276 -0
  44. package/build/server/chunks/admission-snapshot-C2wGfTWE.js +1034 -0
  45. package/build/server/chunks/agent-gateway-runtime-C7Kvvy0H.js +2614 -0
  46. package/build/server/chunks/aops-runtime-config-CHpDUCdE.js +185 -0
  47. package/build/server/chunks/auth-provider-C07OUlnz.js +18 -0
  48. package/build/server/chunks/canonical-text-order-DbXJJnFD.js +5 -0
  49. package/build/server/chunks/commercial-admission-loader-V_vXHdVa.js +2077 -0
  50. package/build/server/chunks/discovery-BvDEgiqC.js +897 -0
  51. package/build/server/chunks/error.svelte-B9R6O_Hn.js +44 -0
  52. package/build/server/chunks/handler-DurXhqww.js +1472 -0
  53. package/build/server/chunks/hooks.server-DYGrWbgh.js +62 -0
  54. package/build/server/chunks/index.js-BQnOaW3H.js +11573 -0
  55. package/build/server/chunks/manifest.js-CCJDdahY.js +180 -0
  56. package/build/server/chunks/plugin-error-normalize-DNeRsopQ.js +309 -0
  57. package/build/server/chunks/project-alias-BdnRxWft.js +28 -0
  58. package/build/server/chunks/registry-DO8ob5o1.js +660 -0
  59. package/build/server/chunks/request-base-url-zKJpVUv5.js +35 -0
  60. package/build/server/chunks/request-context-9wzBoKrz.js +421 -0
  61. package/build/server/chunks/xf-result-BRDjvftr.js +16 -0
  62. package/build/shims.js +32 -0
  63. package/cockpit/.vite/manifest.json +198 -0
  64. package/cockpit/assets/dm-sans-latin-400-normal-BwCSEQnW.woff +0 -0
  65. package/cockpit/assets/dm-sans-latin-400-normal-CW0RaeGs.woff2 +0 -0
  66. package/cockpit/assets/dm-sans-latin-500-normal-B9HHJjqV.woff2 +0 -0
  67. package/cockpit/assets/dm-sans-latin-500-normal-Dr3UlScf.woff +0 -0
  68. package/cockpit/assets/dm-sans-latin-700-normal-CUSSCpQX.woff +0 -0
  69. package/cockpit/assets/dm-sans-latin-700-normal-DvUfVpUG.woff2 +0 -0
  70. package/cockpit/assets/dm-sans-latin-ext-400-normal-BjWJ59Pq.woff +0 -0
  71. package/cockpit/assets/dm-sans-latin-ext-400-normal-BtiwyxMk.woff2 +0 -0
  72. package/cockpit/assets/dm-sans-latin-ext-500-normal-BJfUCQsA.woff2 +0 -0
  73. package/cockpit/assets/dm-sans-latin-ext-500-normal-DR84L5F-.woff +0 -0
  74. package/cockpit/assets/dm-sans-latin-ext-700-normal-BLI3TTWz.woff +0 -0
  75. package/cockpit/assets/dm-sans-latin-ext-700-normal-CJIcxD6K.woff2 +0 -0
  76. package/cockpit/assets/index-CkhZWZ2f.js +18 -0
  77. package/cockpit/assets/index-TSfC5rf2.css +1 -0
  78. package/cockpit/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2 +0 -0
  79. package/cockpit/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff +0 -0
  80. package/cockpit/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff +0 -0
  81. package/cockpit/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2 +0 -0
  82. package/cockpit/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff +0 -0
  83. package/cockpit/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2 +0 -0
  84. package/cockpit/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2 +0 -0
  85. package/cockpit/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff +0 -0
  86. package/cockpit/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff +0 -0
  87. package/cockpit/assets/outfit-latin-400-normal-BGsTXAXT.woff2 +0 -0
  88. package/cockpit/assets/outfit-latin-400-normal-DMwTpYkH.woff +0 -0
  89. package/cockpit/assets/outfit-latin-600-normal-B7SfZ07L.woff2 +0 -0
  90. package/cockpit/assets/outfit-latin-600-normal-BEfTtDA7.woff +0 -0
  91. package/cockpit/assets/outfit-latin-ext-400-normal-5tcqmc2S.woff2 +0 -0
  92. package/cockpit/assets/outfit-latin-ext-400-normal-DHm7mdGe.woff +0 -0
  93. package/cockpit/assets/outfit-latin-ext-600-normal-B85nYjL1.woff2 +0 -0
  94. package/cockpit/assets/outfit-latin-ext-600-normal-CWJcPgd7.woff +0 -0
  95. package/cockpit/assets/unbounded-cyrillic-600-normal-B-s5c2Kn.woff +0 -0
  96. package/cockpit/assets/unbounded-cyrillic-600-normal-DW6uzIMB.woff2 +0 -0
  97. package/cockpit/assets/unbounded-latin-600-normal-BPdB_PEv.woff +0 -0
  98. package/cockpit/assets/unbounded-latin-600-normal-oRSANpZr.woff2 +0 -0
  99. package/cockpit/assets/unbounded-latin-ext-600-normal-0iZLtTDV.woff2 +0 -0
  100. package/cockpit/assets/unbounded-latin-ext-600-normal-ClMPf-bu.woff +0 -0
  101. package/cockpit/assets/unbounded-vietnamese-600-normal-BzfrgZ_C.woff +0 -0
  102. package/cockpit/assets/unbounded-vietnamese-600-normal-Cx2bTSHN.woff2 +0 -0
  103. package/cockpit/community.module-inventory.json +2439 -0
  104. package/cockpit/index.html +14 -0
  105. package/community-postgres.json +13 -0
  106. package/migrations/agentspace/0000_thin_carlie_cooper.sql +764 -0
  107. package/migrations/agentspace/meta/_journal.json +13 -0
  108. package/migrations/chatv3/0000_dry_ego.sql +218 -0
  109. package/migrations/chatv3/0001_nosy_obadiah_stane.sql +35 -0
  110. package/migrations/chatv3/0002_narrow_darkhawk.sql +4 -0
  111. package/migrations/chatv3/0003_damp_zarek.sql +2 -0
  112. package/migrations/chatv3/0004_nervous_martin_li.sql +60 -0
  113. package/migrations/chatv3/0005_chatv3_server_encrypted_mode.sql +1 -0
  114. package/migrations/chatv3/0006_chatv3_database_server_keyring.sql +21 -0
  115. package/migrations/chatv3/meta/_journal.json +55 -0
  116. package/migrations/docman/0000_curvy_valeria_richards.sql +257 -0
  117. package/migrations/docman/0001_massive_risque.sql +2 -0
  118. package/migrations/docman/0002_simple_logan.sql +50 -0
  119. package/migrations/docman/0003_quick_index.sql +45 -0
  120. package/migrations/docman/0004_known_summary.sql +9 -0
  121. package/migrations/docman/0005_vector_signal.sql +9 -0
  122. package/migrations/docman/0006_document_version_current_invariant.sql +15 -0
  123. package/migrations/docman/meta/_journal.json +55 -0
  124. package/migrations/projectman/0000_smooth_klaw.sql +257 -0
  125. package/migrations/projectman/0001_worthless_zodiak.sql +9 -0
  126. package/migrations/projectman/0002_board_rename.sql +108 -0
  127. package/migrations/projectman/0003_review_request.sql +62 -0
  128. package/migrations/projectman/0004_review_request_idempotency.sql +3 -0
  129. package/migrations/projectman/0005_allow_multi_sprint_per_task.sql +1 -0
  130. package/migrations/projectman/meta/_journal.json +48 -0
  131. package/migrations/sys/0000_loose_praxagora.sql +31 -0
  132. package/migrations/sys/0001_awesome_ronan.sql +2 -0
  133. package/migrations/sys/0002_steady_maximus.sql +2 -0
  134. package/migrations/sys/0003_escalating_rate_limiter.sql +2 -0
  135. package/migrations/sys/0004_rate_limiter_timestamptz.sql +22 -0
  136. package/migrations/sys/0005_sys_counters.sql +21 -0
  137. package/migrations/sys/meta/_journal.json +48 -0
  138. package/npm-shrinkwrap.json +5069 -0
  139. package/package.json +88 -0
  140. package/runtime/agentspace-host-adapter.mjs +64 -0
  141. package/runtime/agentspace-tooling.mjs +389 -0
  142. package/runtime/commercial-integrity-worker.mjs +1643 -0
  143. package/runtime/docman-host-adapter.mjs +177 -0
  144. package/runtime/docman-policy.mjs +450 -0
  145. package/runtime/docman-tooling.mjs +20 -0
  146. package/runtime/projectman-host-adapter.mjs +597 -0
  147. package/runtime/scope-context.mjs +99 -0
  148. package/runtime-closure.package.json +376 -0
  149. package/scripts/community-host.mjs +919 -0
  150. package/scripts/community-migration-policy-package-v1.json +11854 -0
@@ -0,0 +1,421 @@
1
+ import { g as getResolvedAopsServerRuntimeConfig } from './aops-runtime-config-CHpDUCdE.js';
2
+ import { createAppMetaConfigManager } from '@aopslabs/xf-dm-kits/appConfig';
3
+ import { getGlobalSingleton, cacheKeyFromLocale } from '@aopslabs/xf-dm-kits';
4
+ import { createAgentspaceKitWithEnv } from '@aopslabs/domain-kit-agentspace';
5
+ import { n as normalizeNonEmptyProjectText, r as resolveProjectAliasValue, g as getLogger } from './project-alias-BdnRxWft.js';
6
+ import { e as errResult } from './xf-result-BRDjvftr.js';
7
+ import { Effect } from 'effect';
8
+
9
+ function resolveAgentspaceRepoUrl(_repositoryType) {
10
+ const value = getResolvedAopsServerRuntimeConfig().repoUrl.trim();
11
+ if (!value) {
12
+ throw new Error("AOPS runtime storage is not configured.");
13
+ }
14
+ return value;
15
+ }
16
+ function buildAgentspaceServerEnvConfig(params) {
17
+ const repoUrl = params.repoUrl?.trim() || resolveAgentspaceRepoUrl();
18
+ return {
19
+ tenantId: params.tenantId,
20
+ logLevel: params.logLevel,
21
+ repoUrl
22
+ };
23
+ }
24
+ const DEFAULT_REPOSITORY_TYPE = "drizzle";
25
+ class ConfigManager {
26
+ static instance;
27
+ static getInstance() {
28
+ if (!ConfigManager.instance) {
29
+ ConfigManager.instance = createAppMetaConfigManager({
30
+ appName: "aops-server",
31
+ layout: "sveltekit",
32
+ defaultRepositoryType: DEFAULT_REPOSITORY_TYPE,
33
+ defaultTenantId: "123e4567-e89b-41d4-a000-000000000001",
34
+ defaultLocale: "tr",
35
+ defaultFallbackLocale: "en"
36
+ });
37
+ }
38
+ return ConfigManager.instance;
39
+ }
40
+ }
41
+ function getAppConfig() {
42
+ const resolved = ConfigManager.getInstance().getResolvedConfig();
43
+ const runtimeLogLevel = typeof process.env.AOPS_LOG_LEVEL === "string" && process.env.AOPS_LOG_LEVEL.trim().length > 0 ? process.env.AOPS_LOG_LEVEL.trim() : "";
44
+ return {
45
+ ...resolved,
46
+ logLevel: runtimeLogLevel || resolved.logLevel
47
+ };
48
+ }
49
+ const ALLOWED_LOG_LEVELS = ["debug", "info", "warn", "error", "fatal"];
50
+ function readRequestContext(overrides) {
51
+ const appConfig = getAppConfig();
52
+ const repoType = overrides?.repositoryType ?? appConfig.repositoryType;
53
+ const repoUrl = normalizeRepoUrl(overrides?.repoUrl) ?? resolveAgentspaceRepoUrl();
54
+ const tenantId = overrides?.tenantId ?? appConfig.tenantId;
55
+ const locale = overrides?.locale ?? appConfig.defaultLocale;
56
+ const fallbackLocale = overrides?.fallbackLocale ?? appConfig.fallbackLocale;
57
+ const logLevel = normalizeLogLevel(overrides?.logLevel ?? appConfig.logLevel);
58
+ return {
59
+ tenantId,
60
+ repositoryType: repoType,
61
+ repoUrl,
62
+ locale,
63
+ fallbackLocale,
64
+ logLevel,
65
+ logger: overrides?.logger
66
+ };
67
+ }
68
+ function normalizeRepoUrl(value) {
69
+ if (typeof value !== "string") return void 0;
70
+ const trimmed = value.trim();
71
+ return trimmed.length > 0 ? trimmed : void 0;
72
+ }
73
+ function normalizeLogLevel(value) {
74
+ const normalized = String(value ?? "").toLowerCase();
75
+ return ALLOWED_LOG_LEVELS.includes(normalized) ? normalized : "info";
76
+ }
77
+ async function resolveDefaultLogger() {
78
+ try {
79
+ const l = await getLogger({ level: "info", file: false, console: true });
80
+ return l;
81
+ } catch {
82
+ return void 0;
83
+ }
84
+ }
85
+ async function buildAgentspaceKit(envConfig, logger) {
86
+ const log = logger ?? await resolveDefaultLogger();
87
+ const { kit } = createAgentspaceKitWithEnv({
88
+ name: "aops-server",
89
+ envConfig,
90
+ baseContext: { tenantId: envConfig.tenantId, logger: log },
91
+ resolveLogger: (ctx) => ctx.logger ?? log,
92
+ getCacheKey: (ctx) => `${ctx.tenantId}|${cacheKeyFromLocale(ctx.locale, ctx.fallbackLocale)}`
93
+ });
94
+ return kit;
95
+ }
96
+ const GLOBAL_KEY = /* @__PURE__ */ Symbol.for("aops-server.agentspace-kit");
97
+ async function getAgentspaceKit(overrides) {
98
+ return getGlobalSingleton(GLOBAL_KEY, async () => {
99
+ const ctx = readRequestContext(overrides);
100
+ const envConfig = buildAgentspaceServerEnvConfig({
101
+ tenantId: ctx.tenantId,
102
+ logLevel: ctx.logLevel,
103
+ repoUrl: ctx.repoUrl
104
+ });
105
+ return buildAgentspaceKit(envConfig, ctx.logger);
106
+ });
107
+ }
108
+ function isNotFoundError(error) {
109
+ if (!error || typeof error !== "object") return false;
110
+ const err = error;
111
+ if (err.code === "NotFound") return true;
112
+ if (err.cause?.code === "NotFound") return true;
113
+ if (err._tag === "RepositoryError" && err.code === "NotFound") return true;
114
+ if (err._tag === "NotFoundError") return true;
115
+ if (typeof err.message === "string" && /failed to find\b|no record\(s\) found|record not found/i.test(err.message)) return true;
116
+ if (typeof err.cause?.message === "string" && /failed to find\b|no record\(s\) found|record not found/i.test(err.cause.message)) return true;
117
+ return false;
118
+ }
119
+ async function safeFind(effect) {
120
+ const items = await Effect.runPromise(
121
+ Effect.catchAll(effect, (err) => {
122
+ if (isNotFoundError(err)) {
123
+ return Effect.succeed([]);
124
+ }
125
+ return Effect.fail(err);
126
+ })
127
+ );
128
+ return Array.from(items);
129
+ }
130
+ async function safeFindOne(effect) {
131
+ return Effect.runPromise(
132
+ Effect.catchAll(effect, (err) => {
133
+ if (isNotFoundError(err)) {
134
+ return Effect.succeed(null);
135
+ }
136
+ return Effect.fail(err);
137
+ })
138
+ );
139
+ }
140
+ const PROJECT_REQUIRED_ERROR = "project_required";
141
+ function normalizeNonEmpty(value) {
142
+ return normalizeNonEmptyProjectText(value);
143
+ }
144
+ function normalizeProjectLabel(value) {
145
+ if (typeof value !== "string") return "";
146
+ return value.trim().replace(/\s+/g, " ").toLowerCase();
147
+ }
148
+ function looksLikeProjectId(value) {
149
+ return /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(value);
150
+ }
151
+ function projectRequiredResult(opts) {
152
+ return errResult(PROJECT_REQUIRED_ERROR, {
153
+ action: "create_project",
154
+ page: "projects",
155
+ ...opts
156
+ });
157
+ }
158
+ function normalizeProjectRecord(project) {
159
+ const id = normalizeNonEmpty(project?.id);
160
+ if (!id) return null;
161
+ return {
162
+ ...project,
163
+ id,
164
+ scopeId: id
165
+ };
166
+ }
167
+ function hasProjectService(kit) {
168
+ return typeof kit.createProjectService === "function";
169
+ }
170
+ async function listVisibleProjects(params) {
171
+ if (!hasProjectService(params.kit)) return [];
172
+ const projectSvc = await params.kit.createProjectService();
173
+ const isAdmin = params.principal.roles?.includes("admin");
174
+ if (isAdmin) {
175
+ return await safeFind(projectSvc.listProjects({}, { limit: 500 }));
176
+ }
177
+ const userId = normalizeNonEmpty(params.principal.userId);
178
+ if (!userId) return [];
179
+ const owned = await safeFind(projectSvc.listProjects({ ownerId: userId }, { limit: 500 }));
180
+ const byId = /* @__PURE__ */ new Map();
181
+ for (const entry of owned) {
182
+ const normalized = normalizeProjectRecord(entry);
183
+ if (normalized?.id) {
184
+ byId.set(normalized.id, normalized);
185
+ }
186
+ }
187
+ try {
188
+ const memberSvc = await params.kit.createProjectMemberService();
189
+ const memberships = await safeFind(memberSvc.listProjectMembers({ userId }, { limit: 500 }));
190
+ for (const membership of memberships) {
191
+ const projectId = normalizeNonEmpty(membership?.projectId);
192
+ if (!projectId || byId.has(projectId)) continue;
193
+ const project = normalizeProjectRecord(
194
+ await safeFindOne(projectSvc.getById(projectId))
195
+ );
196
+ if (project?.id) {
197
+ byId.set(project.id, project);
198
+ }
199
+ }
200
+ } catch {
201
+ }
202
+ return Array.from(byId.values());
203
+ }
204
+ async function principalCanAccessProject(params) {
205
+ if (params.principal.roles?.includes("admin")) return true;
206
+ const userId = normalizeNonEmpty(params.principal.userId);
207
+ if (!userId) return false;
208
+ if (normalizeNonEmpty(params.project.ownerId) === userId) return true;
209
+ const projectId = normalizeNonEmpty(params.project.id);
210
+ if (!projectId) return false;
211
+ try {
212
+ const memberSvc = await params.kit.createProjectMemberService();
213
+ const memberships = await safeFind(
214
+ memberSvc.listProjectMembers({ projectId, userId }, { limit: 1 })
215
+ );
216
+ return Array.isArray(memberships) && memberships.length > 0;
217
+ } catch {
218
+ return false;
219
+ }
220
+ }
221
+ async function resolveProjectIdFromValue(params) {
222
+ const explicit = normalizeNonEmpty(params.value);
223
+ if (!explicit) {
224
+ return { ok: false, result: projectRequiredResult({ source: "resolveProjectIdFromValue" }) };
225
+ }
226
+ const visible = await listVisibleProjects({ kit: params.kit, principal: params.principal });
227
+ const normalizedExplicit = normalizeProjectLabel(explicit);
228
+ const matches = visible.filter((project) => {
229
+ const id = normalizeProjectLabel(project.id);
230
+ const name = normalizeProjectLabel(project.name);
231
+ const slug = normalizeProjectLabel(project.slug);
232
+ return id === normalizedExplicit || name === normalizedExplicit || slug === normalizedExplicit;
233
+ });
234
+ if (matches.length === 1) {
235
+ return { ok: true, project: matches[0] };
236
+ }
237
+ if (matches.length > 1) {
238
+ return {
239
+ ok: false,
240
+ result: errResult("project_name_ambiguous", {
241
+ requested: explicit,
242
+ candidates: matches.slice(0, 25).map((project) => ({
243
+ id: project.id,
244
+ name: project.name,
245
+ slug: project.slug
246
+ }))
247
+ })
248
+ };
249
+ }
250
+ if (hasProjectService(params.kit) && looksLikeProjectId(explicit)) {
251
+ const projectSvc = await params.kit.createProjectService();
252
+ const direct = normalizeProjectRecord(
253
+ await safeFindOne(projectSvc.getById(explicit))
254
+ );
255
+ if (direct?.id && await principalCanAccessProject({ kit: params.kit, principal: params.principal, project: direct })) {
256
+ return { ok: true, project: direct };
257
+ }
258
+ }
259
+ return { ok: false, result: errResult("project_not_found", { requested: explicit }) };
260
+ }
261
+ async function resolveProjectId(params) {
262
+ const explicit = normalizeNonEmpty(resolveProjectAliasValue(params.input));
263
+ if (explicit) {
264
+ return resolveProjectIdFromValue({ kit: params.kit, principal: params.principal, value: explicit });
265
+ }
266
+ const visible = await listVisibleProjects({ kit: params.kit, principal: params.principal });
267
+ const normalized = visible.map((project) => normalizeProjectRecord(project)).filter((project) => Boolean(project?.id));
268
+ if (normalized.length === 0) {
269
+ return { ok: false, result: projectRequiredResult({ source: "resolveProjectId" }) };
270
+ }
271
+ const namedDemo = normalized.find((project) => normalizeProjectLabel(project.name) === "demo-project") ?? normalized[0];
272
+ return { ok: true, project: namedDemo };
273
+ }
274
+ function toProjectInput(input) {
275
+ return {
276
+ projectId: input.projectId,
277
+ projectName: input.projectName,
278
+ project: input.project
279
+ };
280
+ }
281
+ async function resolveProjectScopeFromLocals(params) {
282
+ const principal = params.locals.principal ?? void 0;
283
+ if (!principal?.userId) return { ok: false, result: errResult("unauthorized") };
284
+ const ctxBase = readRequestContext({
285
+ tenantId: params.locals.tenantId,
286
+ locale: params.locals.locale,
287
+ fallbackLocale: params.locals.fallbackLocale
288
+ });
289
+ const ctx = {
290
+ ...ctxBase,
291
+ database: "default",
292
+ actorId: principal.userId
293
+ };
294
+ const kit = await getAgentspaceKit();
295
+ const projectResolution = await resolveProjectId({
296
+ input: toProjectInput(params.input ?? {}),
297
+ kit,
298
+ principal
299
+ });
300
+ if (!projectResolution.ok) return { ok: false, result: projectResolution.result };
301
+ const project = normalizeProjectRecord(projectResolution.project);
302
+ if (!project?.id) {
303
+ return { ok: false, result: errResult("project_scope_not_found", { projectId: project?.id }) };
304
+ }
305
+ return {
306
+ ok: true,
307
+ ctx,
308
+ kit,
309
+ principal,
310
+ projectId: project.id,
311
+ scopeId: project.id
312
+ };
313
+ }
314
+ function getHeaderValue(event, name) {
315
+ return normalizeNonEmptyProjectText(event.request.headers.get(name));
316
+ }
317
+ function getRequestedProjectId(event) {
318
+ return normalizeNonEmptyProjectText(event.request.headers.get("x-project-id"));
319
+ }
320
+ function getRequestedProjectName(event) {
321
+ return normalizeNonEmptyProjectText(event.request.headers.get("x-project-name"));
322
+ }
323
+ function getRequestedScopeId(event) {
324
+ return getHeaderValue(event, "x-scope-id");
325
+ }
326
+ function getRequestedScopeResolution(event) {
327
+ const value = normalizeNonEmptyProjectText(event.request.headers.get("x-scope-resolution"));
328
+ return value === "explicit" || value === "cascade" ? value : void 0;
329
+ }
330
+ function getLocalsProjectId(event) {
331
+ return normalizeNonEmptyProjectText(event.locals.projectId);
332
+ }
333
+ function getLocalsScopeId(event) {
334
+ return normalizeNonEmptyProjectText(event.locals.scopeId);
335
+ }
336
+ function getLocalsScopeResolution(event) {
337
+ const value = event.locals.scopeResolution;
338
+ return value === "explicit" || value === "cascade" ? value : void 0;
339
+ }
340
+ function readRequestedScopeContext(event) {
341
+ return {
342
+ projectId: getLocalsProjectId(event) ?? getRequestedProjectId(event),
343
+ projectName: getRequestedProjectName(event),
344
+ explicitScopeId: getLocalsScopeId(event) ?? getRequestedScopeId(event),
345
+ scopeResolution: getLocalsScopeResolution(event) ?? getRequestedScopeResolution(event)
346
+ };
347
+ }
348
+ function writeLocalsScopeContext(event, next) {
349
+ if (next.projectId) {
350
+ event.locals.projectId = next.projectId;
351
+ }
352
+ if (next.explicitScopeId) {
353
+ event.locals.scopeId = next.explicitScopeId;
354
+ }
355
+ if (next.scopeResolution) {
356
+ event.locals.scopeResolution = next.scopeResolution;
357
+ }
358
+ }
359
+ function resolveHostPrincipal(principal) {
360
+ if (!principal) return null;
361
+ const principalRecord = principal;
362
+ const id = normalizeNonEmptyProjectText(principalRecord.id) ?? normalizeNonEmptyProjectText(principal.userId);
363
+ return {
364
+ ...principal,
365
+ ...id ? { id } : {}
366
+ };
367
+ }
368
+ function resolveHostRequestContext(event) {
369
+ const defaults = readRequestContext();
370
+ const requested = readRequestedScopeContext(event);
371
+ const projectId = normalizeNonEmptyProjectText(event.locals.projectId) ?? requested.projectId;
372
+ return {
373
+ tenantId: normalizeNonEmptyProjectText(event.locals.tenantId) ?? getHeaderValue(event, "x-tenant-id") ?? defaults.tenantId,
374
+ locale: normalizeNonEmptyProjectText(event.locals.locale) ?? getHeaderValue(event, "x-locale") ?? defaults.locale,
375
+ scopeId: requested.explicitScopeId,
376
+ scopeResolution: requested.scopeResolution,
377
+ fallbackLocale: normalizeNonEmptyProjectText(event.locals.fallbackLocale) ?? getHeaderValue(event, "x-fallback-locale") ?? defaults.fallbackLocale,
378
+ projectId,
379
+ principal: resolveHostPrincipal(event.locals.principal)
380
+ };
381
+ }
382
+ async function attachResolvedProjectScope(event) {
383
+ const requested = readRequestedScopeContext(event);
384
+ if (getLocalsProjectId(event) && requested.explicitScopeId) {
385
+ return;
386
+ }
387
+ const scopeLocals = {
388
+ principal: event.locals.principal,
389
+ tenantId: normalizeNonEmptyProjectText(event.locals.tenantId),
390
+ locale: normalizeNonEmptyProjectText(event.locals.locale),
391
+ fallbackLocale: normalizeNonEmptyProjectText(event.locals.fallbackLocale)
392
+ };
393
+ writeLocalsScopeContext(event, { scopeResolution: requested.scopeResolution });
394
+ if (requested.projectId) {
395
+ const resolved = await resolveProjectScopeFromLocals({
396
+ input: { projectId: requested.projectId },
397
+ locals: scopeLocals
398
+ });
399
+ if (resolved.ok) {
400
+ writeLocalsScopeContext(event, { projectId: resolved.projectId });
401
+ if (resolved.scopeId) {
402
+ writeLocalsScopeContext(event, { explicitScopeId: resolved.scopeId });
403
+ }
404
+ return;
405
+ }
406
+ }
407
+ if (requested.projectName) {
408
+ const resolved = await resolveProjectScopeFromLocals({
409
+ input: { projectName: requested.projectName },
410
+ locals: scopeLocals
411
+ });
412
+ if (resolved.ok) {
413
+ writeLocalsScopeContext(event, { projectId: resolved.projectId });
414
+ if (resolved.scopeId) {
415
+ writeLocalsScopeContext(event, { explicitScopeId: resolved.scopeId });
416
+ }
417
+ }
418
+ }
419
+ }
420
+
421
+ export { attachResolvedProjectScope as a, resolveProjectScopeFromLocals as b, getAgentspaceKit as g, resolveHostRequestContext as r };
@@ -0,0 +1,16 @@
1
+ function okResult(data, messageText) {
2
+ return {
3
+ ok: true,
4
+ data,
5
+ messages: messageText ? [{ messageText }] : void 0
6
+ };
7
+ }
8
+ function errResult(messageText, opts) {
9
+ return {
10
+ ok: false,
11
+ data: null,
12
+ messages: [{ messageText, opts }]
13
+ };
14
+ }
15
+
16
+ export { errResult as e, okResult as o };
package/build/shims.js ADDED
@@ -0,0 +1,32 @@
1
+ import buffer from 'node:buffer';
2
+ import { webcrypto } from 'node:crypto';
3
+
4
+ // `buffer.File` was added in Node 18.13.0 while the `File` global was added in Node 20.0.0
5
+ const File = /** @type {import('node:buffer') & { File?: File}} */ (buffer).File;
6
+
7
+ /** @type {Record<string, any>} */
8
+ const globals = {
9
+ crypto: webcrypto,
10
+ File
11
+ };
12
+
13
+ // exported for dev/preview and node environments
14
+ /**
15
+ * Make various web APIs available as globals:
16
+ * - `crypto`
17
+ * - `File`
18
+ */
19
+ function installPolyfills() {
20
+ for (const name in globals) {
21
+ if (name in globalThis) continue;
22
+
23
+ Object.defineProperty(globalThis, name, {
24
+ enumerable: true,
25
+ configurable: true,
26
+ writable: true,
27
+ value: globals[name]
28
+ });
29
+ }
30
+ }
31
+
32
+ installPolyfills();
@@ -0,0 +1,198 @@
1
+ {
2
+ "../../node_modules/.pnpm/@fontsource+dm-sans@5.2.8/node_modules/@fontsource/dm-sans/files/dm-sans-latin-400-normal.woff": {
3
+ "file": "assets/dm-sans-latin-400-normal-BwCSEQnW.woff",
4
+ "src": "../../node_modules/.pnpm/@fontsource+dm-sans@5.2.8/node_modules/@fontsource/dm-sans/files/dm-sans-latin-400-normal.woff"
5
+ },
6
+ "../../node_modules/.pnpm/@fontsource+dm-sans@5.2.8/node_modules/@fontsource/dm-sans/files/dm-sans-latin-400-normal.woff2": {
7
+ "file": "assets/dm-sans-latin-400-normal-CW0RaeGs.woff2",
8
+ "src": "../../node_modules/.pnpm/@fontsource+dm-sans@5.2.8/node_modules/@fontsource/dm-sans/files/dm-sans-latin-400-normal.woff2"
9
+ },
10
+ "../../node_modules/.pnpm/@fontsource+dm-sans@5.2.8/node_modules/@fontsource/dm-sans/files/dm-sans-latin-500-normal.woff": {
11
+ "file": "assets/dm-sans-latin-500-normal-Dr3UlScf.woff",
12
+ "src": "../../node_modules/.pnpm/@fontsource+dm-sans@5.2.8/node_modules/@fontsource/dm-sans/files/dm-sans-latin-500-normal.woff"
13
+ },
14
+ "../../node_modules/.pnpm/@fontsource+dm-sans@5.2.8/node_modules/@fontsource/dm-sans/files/dm-sans-latin-500-normal.woff2": {
15
+ "file": "assets/dm-sans-latin-500-normal-B9HHJjqV.woff2",
16
+ "src": "../../node_modules/.pnpm/@fontsource+dm-sans@5.2.8/node_modules/@fontsource/dm-sans/files/dm-sans-latin-500-normal.woff2"
17
+ },
18
+ "../../node_modules/.pnpm/@fontsource+dm-sans@5.2.8/node_modules/@fontsource/dm-sans/files/dm-sans-latin-700-normal.woff": {
19
+ "file": "assets/dm-sans-latin-700-normal-CUSSCpQX.woff",
20
+ "src": "../../node_modules/.pnpm/@fontsource+dm-sans@5.2.8/node_modules/@fontsource/dm-sans/files/dm-sans-latin-700-normal.woff"
21
+ },
22
+ "../../node_modules/.pnpm/@fontsource+dm-sans@5.2.8/node_modules/@fontsource/dm-sans/files/dm-sans-latin-700-normal.woff2": {
23
+ "file": "assets/dm-sans-latin-700-normal-DvUfVpUG.woff2",
24
+ "src": "../../node_modules/.pnpm/@fontsource+dm-sans@5.2.8/node_modules/@fontsource/dm-sans/files/dm-sans-latin-700-normal.woff2"
25
+ },
26
+ "../../node_modules/.pnpm/@fontsource+dm-sans@5.2.8/node_modules/@fontsource/dm-sans/files/dm-sans-latin-ext-400-normal.woff": {
27
+ "file": "assets/dm-sans-latin-ext-400-normal-BjWJ59Pq.woff",
28
+ "src": "../../node_modules/.pnpm/@fontsource+dm-sans@5.2.8/node_modules/@fontsource/dm-sans/files/dm-sans-latin-ext-400-normal.woff"
29
+ },
30
+ "../../node_modules/.pnpm/@fontsource+dm-sans@5.2.8/node_modules/@fontsource/dm-sans/files/dm-sans-latin-ext-400-normal.woff2": {
31
+ "file": "assets/dm-sans-latin-ext-400-normal-BtiwyxMk.woff2",
32
+ "src": "../../node_modules/.pnpm/@fontsource+dm-sans@5.2.8/node_modules/@fontsource/dm-sans/files/dm-sans-latin-ext-400-normal.woff2"
33
+ },
34
+ "../../node_modules/.pnpm/@fontsource+dm-sans@5.2.8/node_modules/@fontsource/dm-sans/files/dm-sans-latin-ext-500-normal.woff": {
35
+ "file": "assets/dm-sans-latin-ext-500-normal-DR84L5F-.woff",
36
+ "src": "../../node_modules/.pnpm/@fontsource+dm-sans@5.2.8/node_modules/@fontsource/dm-sans/files/dm-sans-latin-ext-500-normal.woff"
37
+ },
38
+ "../../node_modules/.pnpm/@fontsource+dm-sans@5.2.8/node_modules/@fontsource/dm-sans/files/dm-sans-latin-ext-500-normal.woff2": {
39
+ "file": "assets/dm-sans-latin-ext-500-normal-BJfUCQsA.woff2",
40
+ "src": "../../node_modules/.pnpm/@fontsource+dm-sans@5.2.8/node_modules/@fontsource/dm-sans/files/dm-sans-latin-ext-500-normal.woff2"
41
+ },
42
+ "../../node_modules/.pnpm/@fontsource+dm-sans@5.2.8/node_modules/@fontsource/dm-sans/files/dm-sans-latin-ext-700-normal.woff": {
43
+ "file": "assets/dm-sans-latin-ext-700-normal-BLI3TTWz.woff",
44
+ "src": "../../node_modules/.pnpm/@fontsource+dm-sans@5.2.8/node_modules/@fontsource/dm-sans/files/dm-sans-latin-ext-700-normal.woff"
45
+ },
46
+ "../../node_modules/.pnpm/@fontsource+dm-sans@5.2.8/node_modules/@fontsource/dm-sans/files/dm-sans-latin-ext-700-normal.woff2": {
47
+ "file": "assets/dm-sans-latin-ext-700-normal-CJIcxD6K.woff2",
48
+ "src": "../../node_modules/.pnpm/@fontsource+dm-sans@5.2.8/node_modules/@fontsource/dm-sans/files/dm-sans-latin-ext-700-normal.woff2"
49
+ },
50
+ "../../node_modules/.pnpm/@fontsource+jetbrains-mono@5.2.8/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-cyrillic-400-normal.woff": {
51
+ "file": "assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff",
52
+ "src": "../../node_modules/.pnpm/@fontsource+jetbrains-mono@5.2.8/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-cyrillic-400-normal.woff"
53
+ },
54
+ "../../node_modules/.pnpm/@fontsource+jetbrains-mono@5.2.8/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-cyrillic-400-normal.woff2": {
55
+ "file": "assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2",
56
+ "src": "../../node_modules/.pnpm/@fontsource+jetbrains-mono@5.2.8/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-cyrillic-400-normal.woff2"
57
+ },
58
+ "../../node_modules/.pnpm/@fontsource+jetbrains-mono@5.2.8/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-greek-400-normal.woff": {
59
+ "file": "assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff",
60
+ "src": "../../node_modules/.pnpm/@fontsource+jetbrains-mono@5.2.8/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-greek-400-normal.woff"
61
+ },
62
+ "../../node_modules/.pnpm/@fontsource+jetbrains-mono@5.2.8/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-greek-400-normal.woff2": {
63
+ "file": "assets/jetbrains-mono-greek-400-normal-C190GLew.woff2",
64
+ "src": "../../node_modules/.pnpm/@fontsource+jetbrains-mono@5.2.8/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-greek-400-normal.woff2"
65
+ },
66
+ "../../node_modules/.pnpm/@fontsource+jetbrains-mono@5.2.8/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-latin-400-normal.woff": {
67
+ "file": "assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff",
68
+ "src": "../../node_modules/.pnpm/@fontsource+jetbrains-mono@5.2.8/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-latin-400-normal.woff"
69
+ },
70
+ "../../node_modules/.pnpm/@fontsource+jetbrains-mono@5.2.8/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-latin-400-normal.woff2": {
71
+ "file": "assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2",
72
+ "src": "../../node_modules/.pnpm/@fontsource+jetbrains-mono@5.2.8/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-latin-400-normal.woff2"
73
+ },
74
+ "../../node_modules/.pnpm/@fontsource+jetbrains-mono@5.2.8/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-latin-ext-400-normal.woff": {
75
+ "file": "assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff",
76
+ "src": "../../node_modules/.pnpm/@fontsource+jetbrains-mono@5.2.8/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-latin-ext-400-normal.woff"
77
+ },
78
+ "../../node_modules/.pnpm/@fontsource+jetbrains-mono@5.2.8/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-latin-ext-400-normal.woff2": {
79
+ "file": "assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2",
80
+ "src": "../../node_modules/.pnpm/@fontsource+jetbrains-mono@5.2.8/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-latin-ext-400-normal.woff2"
81
+ },
82
+ "../../node_modules/.pnpm/@fontsource+jetbrains-mono@5.2.8/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-vietnamese-400-normal.woff": {
83
+ "file": "assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff",
84
+ "src": "../../node_modules/.pnpm/@fontsource+jetbrains-mono@5.2.8/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-vietnamese-400-normal.woff"
85
+ },
86
+ "../../node_modules/.pnpm/@fontsource+outfit@5.2.8/node_modules/@fontsource/outfit/files/outfit-latin-400-normal.woff": {
87
+ "file": "assets/outfit-latin-400-normal-DMwTpYkH.woff",
88
+ "src": "../../node_modules/.pnpm/@fontsource+outfit@5.2.8/node_modules/@fontsource/outfit/files/outfit-latin-400-normal.woff"
89
+ },
90
+ "../../node_modules/.pnpm/@fontsource+outfit@5.2.8/node_modules/@fontsource/outfit/files/outfit-latin-400-normal.woff2": {
91
+ "file": "assets/outfit-latin-400-normal-BGsTXAXT.woff2",
92
+ "src": "../../node_modules/.pnpm/@fontsource+outfit@5.2.8/node_modules/@fontsource/outfit/files/outfit-latin-400-normal.woff2"
93
+ },
94
+ "../../node_modules/.pnpm/@fontsource+outfit@5.2.8/node_modules/@fontsource/outfit/files/outfit-latin-600-normal.woff": {
95
+ "file": "assets/outfit-latin-600-normal-BEfTtDA7.woff",
96
+ "src": "../../node_modules/.pnpm/@fontsource+outfit@5.2.8/node_modules/@fontsource/outfit/files/outfit-latin-600-normal.woff"
97
+ },
98
+ "../../node_modules/.pnpm/@fontsource+outfit@5.2.8/node_modules/@fontsource/outfit/files/outfit-latin-600-normal.woff2": {
99
+ "file": "assets/outfit-latin-600-normal-B7SfZ07L.woff2",
100
+ "src": "../../node_modules/.pnpm/@fontsource+outfit@5.2.8/node_modules/@fontsource/outfit/files/outfit-latin-600-normal.woff2"
101
+ },
102
+ "../../node_modules/.pnpm/@fontsource+outfit@5.2.8/node_modules/@fontsource/outfit/files/outfit-latin-ext-400-normal.woff": {
103
+ "file": "assets/outfit-latin-ext-400-normal-DHm7mdGe.woff",
104
+ "src": "../../node_modules/.pnpm/@fontsource+outfit@5.2.8/node_modules/@fontsource/outfit/files/outfit-latin-ext-400-normal.woff"
105
+ },
106
+ "../../node_modules/.pnpm/@fontsource+outfit@5.2.8/node_modules/@fontsource/outfit/files/outfit-latin-ext-400-normal.woff2": {
107
+ "file": "assets/outfit-latin-ext-400-normal-5tcqmc2S.woff2",
108
+ "src": "../../node_modules/.pnpm/@fontsource+outfit@5.2.8/node_modules/@fontsource/outfit/files/outfit-latin-ext-400-normal.woff2"
109
+ },
110
+ "../../node_modules/.pnpm/@fontsource+outfit@5.2.8/node_modules/@fontsource/outfit/files/outfit-latin-ext-600-normal.woff": {
111
+ "file": "assets/outfit-latin-ext-600-normal-CWJcPgd7.woff",
112
+ "src": "../../node_modules/.pnpm/@fontsource+outfit@5.2.8/node_modules/@fontsource/outfit/files/outfit-latin-ext-600-normal.woff"
113
+ },
114
+ "../../node_modules/.pnpm/@fontsource+outfit@5.2.8/node_modules/@fontsource/outfit/files/outfit-latin-ext-600-normal.woff2": {
115
+ "file": "assets/outfit-latin-ext-600-normal-B85nYjL1.woff2",
116
+ "src": "../../node_modules/.pnpm/@fontsource+outfit@5.2.8/node_modules/@fontsource/outfit/files/outfit-latin-ext-600-normal.woff2"
117
+ },
118
+ "../../node_modules/.pnpm/@fontsource+unbounded@5.2.8/node_modules/@fontsource/unbounded/files/unbounded-cyrillic-600-normal.woff": {
119
+ "file": "assets/unbounded-cyrillic-600-normal-B-s5c2Kn.woff",
120
+ "src": "../../node_modules/.pnpm/@fontsource+unbounded@5.2.8/node_modules/@fontsource/unbounded/files/unbounded-cyrillic-600-normal.woff"
121
+ },
122
+ "../../node_modules/.pnpm/@fontsource+unbounded@5.2.8/node_modules/@fontsource/unbounded/files/unbounded-cyrillic-600-normal.woff2": {
123
+ "file": "assets/unbounded-cyrillic-600-normal-DW6uzIMB.woff2",
124
+ "src": "../../node_modules/.pnpm/@fontsource+unbounded@5.2.8/node_modules/@fontsource/unbounded/files/unbounded-cyrillic-600-normal.woff2"
125
+ },
126
+ "../../node_modules/.pnpm/@fontsource+unbounded@5.2.8/node_modules/@fontsource/unbounded/files/unbounded-latin-600-normal.woff": {
127
+ "file": "assets/unbounded-latin-600-normal-BPdB_PEv.woff",
128
+ "src": "../../node_modules/.pnpm/@fontsource+unbounded@5.2.8/node_modules/@fontsource/unbounded/files/unbounded-latin-600-normal.woff"
129
+ },
130
+ "../../node_modules/.pnpm/@fontsource+unbounded@5.2.8/node_modules/@fontsource/unbounded/files/unbounded-latin-600-normal.woff2": {
131
+ "file": "assets/unbounded-latin-600-normal-oRSANpZr.woff2",
132
+ "src": "../../node_modules/.pnpm/@fontsource+unbounded@5.2.8/node_modules/@fontsource/unbounded/files/unbounded-latin-600-normal.woff2"
133
+ },
134
+ "../../node_modules/.pnpm/@fontsource+unbounded@5.2.8/node_modules/@fontsource/unbounded/files/unbounded-latin-ext-600-normal.woff": {
135
+ "file": "assets/unbounded-latin-ext-600-normal-ClMPf-bu.woff",
136
+ "src": "../../node_modules/.pnpm/@fontsource+unbounded@5.2.8/node_modules/@fontsource/unbounded/files/unbounded-latin-ext-600-normal.woff"
137
+ },
138
+ "../../node_modules/.pnpm/@fontsource+unbounded@5.2.8/node_modules/@fontsource/unbounded/files/unbounded-latin-ext-600-normal.woff2": {
139
+ "file": "assets/unbounded-latin-ext-600-normal-0iZLtTDV.woff2",
140
+ "src": "../../node_modules/.pnpm/@fontsource+unbounded@5.2.8/node_modules/@fontsource/unbounded/files/unbounded-latin-ext-600-normal.woff2"
141
+ },
142
+ "../../node_modules/.pnpm/@fontsource+unbounded@5.2.8/node_modules/@fontsource/unbounded/files/unbounded-vietnamese-600-normal.woff": {
143
+ "file": "assets/unbounded-vietnamese-600-normal-BzfrgZ_C.woff",
144
+ "src": "../../node_modules/.pnpm/@fontsource+unbounded@5.2.8/node_modules/@fontsource/unbounded/files/unbounded-vietnamese-600-normal.woff"
145
+ },
146
+ "../../node_modules/.pnpm/@fontsource+unbounded@5.2.8/node_modules/@fontsource/unbounded/files/unbounded-vietnamese-600-normal.woff2": {
147
+ "file": "assets/unbounded-vietnamese-600-normal-Cx2bTSHN.woff2",
148
+ "src": "../../node_modules/.pnpm/@fontsource+unbounded@5.2.8/node_modules/@fontsource/unbounded/files/unbounded-vietnamese-600-normal.woff2"
149
+ },
150
+ "index.html": {
151
+ "file": "assets/index-CkhZWZ2f.js",
152
+ "name": "index",
153
+ "src": "index.html",
154
+ "isEntry": true,
155
+ "css": [
156
+ "assets/index-TSfC5rf2.css"
157
+ ],
158
+ "assets": [
159
+ "assets/outfit-latin-ext-400-normal-5tcqmc2S.woff2",
160
+ "assets/outfit-latin-ext-400-normal-DHm7mdGe.woff",
161
+ "assets/outfit-latin-400-normal-BGsTXAXT.woff2",
162
+ "assets/outfit-latin-400-normal-DMwTpYkH.woff",
163
+ "assets/outfit-latin-ext-600-normal-B85nYjL1.woff2",
164
+ "assets/outfit-latin-ext-600-normal-CWJcPgd7.woff",
165
+ "assets/outfit-latin-600-normal-B7SfZ07L.woff2",
166
+ "assets/outfit-latin-600-normal-BEfTtDA7.woff",
167
+ "assets/dm-sans-latin-ext-400-normal-BtiwyxMk.woff2",
168
+ "assets/dm-sans-latin-ext-400-normal-BjWJ59Pq.woff",
169
+ "assets/dm-sans-latin-400-normal-CW0RaeGs.woff2",
170
+ "assets/dm-sans-latin-400-normal-BwCSEQnW.woff",
171
+ "assets/dm-sans-latin-ext-500-normal-BJfUCQsA.woff2",
172
+ "assets/dm-sans-latin-ext-500-normal-DR84L5F-.woff",
173
+ "assets/dm-sans-latin-500-normal-B9HHJjqV.woff2",
174
+ "assets/dm-sans-latin-500-normal-Dr3UlScf.woff",
175
+ "assets/dm-sans-latin-ext-700-normal-CJIcxD6K.woff2",
176
+ "assets/dm-sans-latin-ext-700-normal-BLI3TTWz.woff",
177
+ "assets/dm-sans-latin-700-normal-DvUfVpUG.woff2",
178
+ "assets/dm-sans-latin-700-normal-CUSSCpQX.woff",
179
+ "assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2",
180
+ "assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff",
181
+ "assets/jetbrains-mono-greek-400-normal-C190GLew.woff2",
182
+ "assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff",
183
+ "assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff",
184
+ "assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2",
185
+ "assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff",
186
+ "assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2",
187
+ "assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff",
188
+ "assets/unbounded-cyrillic-600-normal-DW6uzIMB.woff2",
189
+ "assets/unbounded-cyrillic-600-normal-B-s5c2Kn.woff",
190
+ "assets/unbounded-vietnamese-600-normal-Cx2bTSHN.woff2",
191
+ "assets/unbounded-vietnamese-600-normal-BzfrgZ_C.woff",
192
+ "assets/unbounded-latin-ext-600-normal-0iZLtTDV.woff2",
193
+ "assets/unbounded-latin-ext-600-normal-ClMPf-bu.woff",
194
+ "assets/unbounded-latin-600-normal-oRSANpZr.woff2",
195
+ "assets/unbounded-latin-600-normal-BPdB_PEv.woff"
196
+ ]
197
+ }
198
+ }