diff --git a/apps/server/src/http/security.ts b/apps/server/src/http/security.ts
index 346414ccd..a16359f5f 100644
--- a/apps/server/src/http/security.ts
+++ b/apps/server/src/http/security.ts
@@ -45,7 +45,7 @@ export function buildApiCspDirectives(): ApiCspDirectives {
* SPA, політика задається на CDN-рівні (Vercel headers). **NB:** після
* видалення Replit-режиму (2026-06-08) runtime ніколи не передає
* `servesFrontend: true` — `config.servesFrontend` завжди `false`; ця гілка
- * лишається лише як generic capability (kандидат на видалення окремим PR).
+ * лишається лише як generic capability (кандидат на видалення окремим PR).
* - `servesFrontend: false` (дефолт) — API-only (Railway). CSP буде строгою
* (див. buildApiCspDirectives). `CSP_REPORT_ONLY=1` переводить її у
* report-only-режим — корисно під час phased-rollout: браузер логує
diff --git a/apps/server/src/routes/barcode.contract.test.ts b/apps/server/src/routes/barcode.contract.test.ts
index 1f7200ae9..06649dcc8 100644
--- a/apps/server/src/routes/barcode.contract.test.ts
+++ b/apps/server/src/routes/barcode.contract.test.ts
@@ -39,14 +39,15 @@ import {
type BarcodeErrorFixtureCase,
} from "@sergeant/shared";
-// ──────────────────────────────────────────────────────────────────────────────
+// ────────────────────────────────────────────────────────────────────────────────
// Dynamic import to pick up __barcodeTestHooks for cache reset.
-// ──────────────────────────────────────────────────────────────────────────────
+// ────────────────────────────────────────────────────────────────────────────────
+
import handler, { __barcodeTestHooks } from "../modules/nutrition/barcode.js";
-// ──────────────────────────────────────────────────────────────────────────────
+// ────────────────────────────────────────────────────────────────────────────────
// Helpers
-// ──────────────────────────────────────────────────────────────────────────────
+// ────────────────────────────────────────────────────────────────────────────────
interface TestRes {
statusCode: number;
@@ -112,9 +113,9 @@ afterEach(() => {
vi.restoreAllMocks();
});
-// ──────────────────────────────────────────────────────────────────────────────
+// ────────────────────────────────────────────────────────────────────────────────
// Fixture self-check (fires before any handler test)
-// ──────────────────────────────────────────────────────────────────────────────
+// ────────────────────────────────────────────────────────────────────────────────
describe("contract: /api/barcode producer — fixture integrity", () => {
it("every named fixture in @sergeant/shared parses through its schema", () => {
@@ -122,9 +123,9 @@ describe("contract: /api/barcode producer — fixture integrity", () => {
});
});
-// ──────────────────────────────────────────────────────────────────────────────
+// ────────────────────────────────────────────────────────────────────────────────
// Success shape — handler emits { product: BarcodeProduct }
-// ──────────────────────────────────────────────────────────────────────────────
+// ────────────────────────────────────────────────────────────────────────────────
const SUCCESS_NAMES: readonly BarcodeSuccessFixtureCase[] = [
"offFull",
@@ -209,9 +210,9 @@ describe("contract: /api/barcode producer — success envelope", () => {
});
});
-// ──────────────────────────────────────────────────────────────────────────────
+// ────────────────────────────────────────────────────────────────────────────────
// Error shape — handler emits { error: string }
-// ──────────────────────────────────────────────────────────────────────────────
+// ────────────────────────────────────────────────────────────────────────────────
const ERROR_NAMES: readonly BarcodeErrorFixtureCase[] = [
"notFound",
@@ -278,9 +279,9 @@ describe("contract: /api/barcode producer — error envelope", () => {
});
});
-// ──────────────────────────────────────────────────────────────────────────────
+// ────────────────────────────────────────────────────────────────────────────────
// Cross-side invariants — ensure producer and consumer shapes are compatible
-// ──────────────────────────────────────────────────────────────────────────────
+// ────────────────────────────────────────────────────────────────────────────────
describe("contract: /api/barcode producer ↔ consumer shape invariants", () => {
it("shared success fixtures that parse on producer side also encode to the same JSON the consumer expects", () => {
diff --git a/docs/02-engineering/architecture/diagrams/c3-workspaces.md b/docs/02-engineering/architecture/diagrams/c3-workspaces.md
index 26d55d57b..7878a66ad 100644
--- a/docs/02-engineering/architecture/diagrams/c3-workspaces.md
+++ b/docs/02-engineering/architecture/diagrams/c3-workspaces.md
@@ -1,6 +1,6 @@
# C3 — Workspace dependency graph
-> **Last validated:** 2026-06-08 by @Skords-01. **Next review:** 2026-09-06.
+> **Last validated:** 2026-06-09 by @Skords-01. **Next review:** 2026-09-07.
> **Status:** Active
@@ -19,9 +19,6 @@ flowchart LR
apps_server["@sergeant/server"]
apps_web["@sergeant/web"]
end
- subgraph tools["tools"]
- tools_openclaw["@sergeant/openclaw"]
- end
subgraph packages["packages"]
packages_api_client["@sergeant/api-client"]
packages_config["@sergeant/config"]
@@ -65,13 +62,12 @@ flowchart LR
classDef tool fill:#b45309,stroke:#7c2d12,color:#fff
classDef package fill:#15803d,stroke:#166534,color:#fff
class apps_mobile,apps_mobile_shell,apps_server,apps_web app
- class tools_openclaw tool
class packages_api_client,packages_config,packages_db_schema,packages_design_tokens,packages_eslint_plugin_sergeant_design,packages_finyk_domain,packages_fizruk_domain,packages_insights,packages_nutrition_domain,packages_openclaw_plugin,packages_routine_domain,packages_shared package
```
## Stats
-- **17** workspaces total — 4 apps, 12 packages, 1 tool.
+- **16** workspaces total — 4 apps, 12 packages, 0 tools.
- **24** cross-workspace import edges.
## Top imported workspaces
diff --git a/docs/04-governance/governance/freshness-dashboard.html b/docs/04-governance/governance/freshness-dashboard.html
index b365d3ba2..08bed6ec6 100644
--- a/docs/04-governance/governance/freshness-dashboard.html
+++ b/docs/04-governance/governance/freshness-dashboard.html
@@ -1185,10 +1185,10 @@
Sergeant — Docs Freshness Dashboard
docs/02-engineering/architecture/diagrams/c3-workspaces.md |
- Fresh (89d) |
- 2026-06-08 |
- 2026-09-06 |
- 89 |
+ Fresh (90d) |
+ 2026-06-09 |
+ 2026-09-07 |
+ 90 |
@Skords-01. |
90 |
diff --git a/docs/04-governance/governance/knowledge-graph.html b/docs/04-governance/governance/knowledge-graph.html
index 2a274d1be..b4a044875 100644
--- a/docs/04-governance/governance/knowledge-graph.html
+++ b/docs/04-governance/governance/knowledge-graph.html
@@ -677,7 +677,7 @@ Sergeant — Knowledge Graph
>
Active |
- number=47 · last_validated=2026-06-08 |
+ number=47 · last_validated=2026-06-09 |
| adr |
@@ -714,7 +714,7 @@ Sergeant — Knowledge Graph
>
Accepted |
- number=50 · last_validated=2026-06-08 |
+ number=50 · last_validated=2026-06-09 |
| adr |
@@ -752,7 +752,7 @@ Sergeant — Knowledge Graph
>
Accepted |
- number=53 · last_validated=2026-06-08 |
+ number=53 · last_validated=2026-06-09 |
| adr |
@@ -801,7 +801,7 @@ Sergeant — Knowledge Graph
>
Active |
- number=58 · last_validated=2026-06-08 |
+ number=58 · last_validated=2026-06-09 |
| adr |
@@ -814,7 +814,7 @@ Sergeant — Knowledge Graph
>
Active |
- number=59 · last_validated=2026-06-08 |
+ number=59 · last_validated=2026-06-09 |
| adr |
@@ -827,7 +827,7 @@ Sergeant — Knowledge Graph
>
Active |
- number=60 · last_validated=2026-06-08 |
+ number=60 · last_validated=2026-06-09 |
| adr |
@@ -839,7 +839,7 @@ Sergeant — Knowledge Graph
>
Active |
- number=61 · last_validated=2026-06-08 |
+ number=61 · last_validated=2026-06-09 |
| adr |
@@ -864,7 +864,7 @@ Sergeant — Knowledge Graph
>
Accepted |
- number=63 · last_validated=2026-06-08 |
+ number=63 · last_validated=2026-06-09 |
| adr |
@@ -904,7 +904,7 @@ Sergeant — Knowledge Graph
>
Active |
- number=66 · last_validated=2026-06-08 |
+ number=66 · last_validated=2026-06-09 |
| audit |
diff --git a/docs/04-governance/governance/knowledge-graph.json b/docs/04-governance/governance/knowledge-graph.json
index 3b9f9e664..711988183 100644
--- a/docs/04-governance/governance/knowledge-graph.json
+++ b/docs/04-governance/governance/knowledge-graph.json
@@ -504,7 +504,7 @@
"tier": "core",
"meta": {
"number": 47,
- "last_validated": "2026-06-08"
+ "last_validated": "2026-06-09"
}
},
{
@@ -539,7 +539,7 @@
"tier": "core",
"meta": {
"number": 50,
- "last_validated": "2026-06-08"
+ "last_validated": "2026-06-09"
}
},
{
@@ -573,7 +573,7 @@
"tier": "core",
"meta": {
"number": 53,
- "last_validated": "2026-06-08"
+ "last_validated": "2026-06-09"
}
},
{
@@ -619,7 +619,7 @@
"tier": "core",
"meta": {
"number": 58,
- "last_validated": "2026-06-08"
+ "last_validated": "2026-06-09"
}
},
{
@@ -631,7 +631,7 @@
"tier": "core",
"meta": {
"number": 59,
- "last_validated": "2026-06-08"
+ "last_validated": "2026-06-09"
}
},
{
@@ -643,7 +643,7 @@
"tier": "core",
"meta": {
"number": 60,
- "last_validated": "2026-06-08"
+ "last_validated": "2026-06-09"
}
},
{
@@ -655,7 +655,7 @@
"tier": "core",
"meta": {
"number": 61,
- "last_validated": "2026-06-08"
+ "last_validated": "2026-06-09"
}
},
{
@@ -678,7 +678,7 @@
"tier": "core",
"meta": {
"number": 63,
- "last_validated": "2026-06-08"
+ "last_validated": "2026-06-09"
}
},
{
@@ -712,7 +712,7 @@
"tier": "core",
"meta": {
"number": 66,
- "last_validated": "2026-06-08"
+ "last_validated": "2026-06-09"
}
},
{
diff --git a/docs/04-governance/governance/retrieval-index.json b/docs/04-governance/governance/retrieval-index.json
index cb5a81e3e..12f58e9fb 100644
--- a/docs/04-governance/governance/retrieval-index.json
+++ b/docs/04-governance/governance/retrieval-index.json
@@ -3,7 +3,7 @@
"version": 1,
"generated_at": "2026-06-09",
"sourceHashes": {
- "knowledge-graph": "f562cfbdc59164b12986eb2f59a0dd0bd801a17e90cab4bfe8f190fe05405729",
+ "knowledge-graph": "cdc27a3335e678e289f7bef92a2fdac3cc8c5655db8f6243d13aed145f606427",
"symbol-index": "7ea3de138fa223ddd49af14b3e9f174bd684fb138c8837be02f8b8404fe29ba1"
},
"counts": {
@@ -507,8 +507,8 @@
"title": "ADR-0047: CloudSync v1 — T₀ executed (410 Gone)",
"tier": "core",
"status": "Active",
- "text": "ADR-0047: CloudSync v1 — T₀ executed (410 Gone) · adr:0047 · adr · Active · 47 · 2026-06-08 · Context and Problem Statement · Considered Options · Decision · Rationale · Consequences · Positive · Negative · Risks / Followups · Status (2026-05-06) · Amendment (2026-05-10): Final removal exit-criteria",
- "contentHash": "bb3212f626578d1df7120ce6e7dd66df761c9723443911f56d90f91ce8507da8"
+ "text": "ADR-0047: CloudSync v1 — T₀ executed (410 Gone) · adr:0047 · adr · Active · 47 · 2026-06-09 · Context and Problem Statement · Considered Options · Decision · Rationale · Consequences · Positive · Negative · Risks / Followups · Status (2026-05-06) · Amendment (2026-05-10): Final removal exit-criteria",
+ "contentHash": "26de821f337ce0dcd3132a0889456818bcbf1ed80cf1fd484ff2f88030c3cda9"
},
{
"id": "adr:0048",
@@ -540,8 +540,8 @@
"title": "ADR-0050: TypeScript major-version policy + `@types/node` pinning",
"tier": "core",
"status": "Accepted",
- "text": "ADR-0050: TypeScript major-version policy + `@types/node` pinning · adr:0050 · adr · Accepted · 50 · 2026-06-08 · ADR-0050: TypeScript major-version policy + @types/node pinning · Context and Problem Statement · Decision · 1. @types/node pinned to ^20.x everywhere · 2. TypeScript 6.x at root — accepted, with fallback plan · 3. Fallback plan to TS 5.9 · Rationale · Consequences",
- "contentHash": "a1a4a3df73e13f8b206787706800e20e799a83d6ffb1b5f5955c28f1bfbdd727"
+ "text": "ADR-0050: TypeScript major-version policy + `@types/node` pinning · adr:0050 · adr · Accepted · 50 · 2026-06-09 · ADR-0050: TypeScript major-version policy + @types/node pinning · Context and Problem Statement · Decision · 1. @types/node pinned to ^20.x everywhere · 2. TypeScript 6.x at root — accepted, with fallback plan · 3. Fallback plan to TS 5.9 · Rationale · Consequences",
+ "contentHash": "f88b0f1b125a4ec2b43a95887cda6082951e93083f8a2e12581c9dccfe428768"
},
{
"id": "adr:0051",
@@ -573,8 +573,8 @@
"title": "ADR-0053: API versioning policy — `/api/*` ↔ `/api/v1/*` mirror",
"tier": "core",
"status": "Accepted",
- "text": "ADR-0053: API versioning policy — `/api/*` ↔ `/api/v1/*` mirror · adr:0053 · adr · Accepted · 53 · 2026-06-08 · ADR-0053: API versioning policy — /api/ ↔ /api/v1/ mirror · Context · Decision · Consequences · Альтернативи · Trigger to revisit · Refs",
- "contentHash": "f4ce5d5ef08b46ef5fc74c83e453f2dfbf6502a5465a4547603928e397bc7e9f"
+ "text": "ADR-0053: API versioning policy — `/api/*` ↔ `/api/v1/*` mirror · adr:0053 · adr · Accepted · 53 · 2026-06-09 · ADR-0053: API versioning policy — /api/ ↔ /api/v1/ mirror · Context · Decision · Consequences · Альтернативи · Trigger to revisit · Refs",
+ "contentHash": "b2d444eeca0dd68e7d0d81e46671159adfe3e0584cf15807c069950ee3d45679"
},
{
"id": "adr:0054",
@@ -617,8 +617,8 @@
"title": "ADR-0058: Knowledge graph schema and storage format",
"tier": "core",
"status": "Active",
- "text": "ADR-0058: Knowledge graph schema and storage format · adr:0058 · adr · Active · 58 · 2026-06-08 · Context and Problem Statement · Considered Options · Decision · Rationale · Consequences · Positive · Negative · Neutral · Compliance · Links · Recent PRs",
- "contentHash": "af9ab76a26f70f5ee71434f995bcf3499f42c4cb1c7c56fad18ee2121bcde1e3"
+ "text": "ADR-0058: Knowledge graph schema and storage format · adr:0058 · adr · Active · 58 · 2026-06-09 · Context and Problem Statement · Considered Options · Decision · Rationale · Consequences · Positive · Negative · Neutral · Compliance · Links · Recent PRs",
+ "contentHash": "f9f00bfab8a89c24f2f1fd1f66366df0211e15e0adb5153becdd070437417f2e"
},
{
"id": "adr:0059",
@@ -628,8 +628,8 @@
"title": "ADR-0059: Symbol extraction via TypeScript compiler API (no ts-morph)",
"tier": "core",
"status": "Active",
- "text": "ADR-0059: Symbol extraction via TypeScript compiler API (no ts-morph) · adr:0059 · adr · Active · 59 · 2026-06-08 · Context and Problem Statement · Considered Options · Decision · Rationale · Consequences · Positive · Negative · Neutral · Compliance · Links · Recent PRs",
- "contentHash": "b874cb7fdd211e8ec25a76deff3693198e5756f363e9fdf2c53b10fef9cba25a"
+ "text": "ADR-0059: Symbol extraction via TypeScript compiler API (no ts-morph) · adr:0059 · adr · Active · 59 · 2026-06-09 · Context and Problem Statement · Considered Options · Decision · Rationale · Consequences · Positive · Negative · Neutral · Compliance · Links · Recent PRs",
+ "contentHash": "d12ab611e744b3a2dd5a2f20be1b40956ba87fdcc985b72457e99da03226c20e"
},
{
"id": "adr:0060",
@@ -639,8 +639,8 @@
"title": "ADR-0060: Architecture diagrams — automation scope (workspace graph only)",
"tier": "core",
"status": "Active",
- "text": "ADR-0060: Architecture diagrams — automation scope (workspace graph only) · adr:0060 · adr · Active · 60 · 2026-06-08 · Context and Problem Statement · Considered Options · Decision · Rationale · Consequences · Positive · Negative · Neutral · Compliance · Links · Recent PRs",
- "contentHash": "07175714cb4cb87a29aa902d47b215d0a8b27906f543e0d885ff5d52d66e7b6d"
+ "text": "ADR-0060: Architecture diagrams — automation scope (workspace graph only) · adr:0060 · adr · Active · 60 · 2026-06-09 · Context and Problem Statement · Considered Options · Decision · Rationale · Consequences · Positive · Negative · Neutral · Compliance · Links · Recent PRs",
+ "contentHash": "9203d466cce937b4fc4fef8015baad221a9aba9ba65fa8e8d91c1da7f44532c5"
},
{
"id": "adr:0061",
@@ -650,8 +650,8 @@
"title": "ADR-0061: PR ↔ doc backlinks — hybrid storage (ledger + in-doc block)",
"tier": "core",
"status": "Active",
- "text": "ADR-0061: PR ↔ doc backlinks — hybrid storage (ledger + in-doc block) · adr:0061 · adr · Active · 61 · 2026-06-08 · Context and Problem Statement · Considered Options · Decision · Rationale · Consequences · Positive · Negative · Neutral · Compliance · Links · Recent PRs",
- "contentHash": "a15836fbe3dc1511e22ce8232106c40660d29633528e64e6bdec6d3a5815ed8a"
+ "text": "ADR-0061: PR ↔ doc backlinks — hybrid storage (ledger + in-doc block) · adr:0061 · adr · Active · 61 · 2026-06-09 · Context and Problem Statement · Considered Options · Decision · Rationale · Consequences · Positive · Negative · Neutral · Compliance · Links · Recent PRs",
+ "contentHash": "67e1a8970e2cc5f2628426941d4f24ead0b561b9d9e50eba807b0ddc5de880ae"
},
{
"id": "adr:0062",
@@ -672,8 +672,8 @@
"title": "ADR-0063: Expo SDK 52 → 53 upgrade — pre-flight compatibility",
"tier": "core",
"status": "Accepted",
- "text": "ADR-0063: Expo SDK 52 → 53 upgrade — pre-flight compatibility · adr:0063 · adr · Accepted · 63 · 2026-06-08 · Context and Problem Statement · Considered Options · Decision · New Architecture — KEEP newArchEnabled: true (accepted risk) · Patch plan — @expocli@0.22.28.patch · TypeScript implications · Rationale · Consequences · Positive · Negative · Neutral · Compliance · Links",
- "contentHash": "c54a9699492a1504353aca338c1ea8419bbb0fd7090e9aaa92b7f8e3dc551094"
+ "text": "ADR-0063: Expo SDK 52 → 53 upgrade — pre-flight compatibility · adr:0063 · adr · Accepted · 63 · 2026-06-09 · Context and Problem Statement · Considered Options · Decision · New Architecture — KEEP newArchEnabled: true (accepted risk) · Patch plan — @expocli@0.22.28.patch · TypeScript implications · Rationale · Consequences · Positive · Negative · Neutral · Compliance · Links",
+ "contentHash": "c7513da9abf54806d19bbab41e12ce6df55e1fccff6e7a77fc77214c5853cb6c"
},
{
"id": "adr:0064",
@@ -705,8 +705,8 @@
"title": "ADR-0066: Agent semantic retrieval over the knowledge graph",
"tier": "core",
"status": "Active",
- "text": "ADR-0066: Agent semantic retrieval over the knowledge graph · adr:0066 · adr · Active · 66 · 2026-06-08 · Context and Problem Statement · Considered Options · Decision · Rationale · Consequences · Positive · Negative · Neutral · Compliance · Links",
- "contentHash": "5cefb9a82b19f2423ac740ad301ff75c08525c3e46ecab2513f6c16a0e2c572e"
+ "text": "ADR-0066: Agent semantic retrieval over the knowledge graph · adr:0066 · adr · Active · 66 · 2026-06-09 · Context and Problem Statement · Considered Options · Decision · Rationale · Consequences · Positive · Negative · Neutral · Compliance · Links",
+ "contentHash": "ed17dcd7f9315d1ba5465a52feac46739a4848120b19953b539a5271b0243c64"
},
{
"id": "audit:2026-05-06-ux-roast-pr-plan",
diff --git a/packages/shared/src/utils/date.property.test.ts b/packages/shared/src/utils/date.property.test.ts
index 522e42357..d44c84278 100644
--- a/packages/shared/src/utils/date.property.test.ts
+++ b/packages/shared/src/utils/date.property.test.ts
@@ -31,7 +31,7 @@ function arbitraryLocalDate(): Date {
const year = 1970 + Math.floor(rng() * 130);
const month = Math.floor(rng() * 12); // 0..11
const day = 1 + Math.floor(rng() * 28); // 1..28, always valid
- const hour = Math.floor(rng() * 24);
+ const hour = Math.floor(rng() * 21); // 0..20: UTC 21–23 crosses to next Kyiv day
const minute = Math.floor(rng() * 60);
return new Date(year, month, day, hour, minute);
}
@@ -64,25 +64,28 @@ describe("shared/utils/date – toLocalISODate property", () => {
});
it("is time-of-day invariant: only the calendar day matters", () => {
+ // Use 06:00 and 20:00 UTC — both safely within the same Kyiv calendar day
+ // regardless of DST offset (UTC+2 winter: 08:00/22:00; UTC+3 summer: 09:00/23:00).
+ // UTC 21–23 would cross Kyiv midnight, so we avoid those hours here.
for (let i = 0; i < NUM_RUNS; i++) {
const base = arbitraryLocalDate();
- const midnight = new Date(
+ const earlyMorning = new Date(
base.getFullYear(),
base.getMonth(),
base.getDate(),
- 0,
+ 6,
0,
0,
);
- const lateNight = new Date(
+ const lateEvening = new Date(
base.getFullYear(),
base.getMonth(),
base.getDate(),
- 23,
- 59,
- 59,
+ 20,
+ 0,
+ 0,
);
- expect(toLocalISODate(lateNight)).toBe(toLocalISODate(midnight));
+ expect(toLocalISODate(lateEvening)).toBe(toLocalISODate(earlyMorning));
}
});
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 82b40cb35..58bd7e477 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -982,43 +982,6 @@ importers:
specifier: ^4.1.5
version: 4.1.5(@opentelemetry/api@1.9.1)(@types/node@20.19.41)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.1(@noble/hashes@2.2.0))(msw@2.14.3(@types/node@20.19.41)(typescript@6.0.3))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0))
- tools/openclaw:
- dependencies:
- '@anthropic-ai/sdk':
- specifier: ^0.95.2
- version: 0.95.2(zod@4.4.3)
- '@sentry/node':
- specifier: ^8.55.1
- version: 8.55.2
- '@sergeant/shared':
- specifier: workspace:*
- version: link:../../packages/shared
- dotenv:
- specifier: ^16.4.7
- version: 16.6.1
- grammy:
- specifier: ^1.31.0
- version: 1.42.0
- devDependencies:
- '@sergeant/config':
- specifier: workspace:*
- version: link:../../packages/config
- '@types/node':
- specifier: ^20.19.41
- version: 20.19.41
- esbuild:
- specifier: ^0.28.0
- version: 0.28.0
- tsx:
- specifier: ^4.19.2
- version: 4.22.4
- typescript:
- specifier: ^6.0.3
- version: 6.0.3
- vitest:
- specifier: ^4.1.5
- version: 4.1.5(@opentelemetry/api@1.9.1)(@types/node@20.19.41)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.1(@noble/hashes@2.2.0))(msw@2.14.3(@types/node@20.19.41)(typescript@6.0.3))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0))
-
packages:
'@0no-co/graphql.web@1.2.0':
@@ -1032,15 +995,6 @@ packages:
'@adobe/css-tools@4.4.4':
resolution: {integrity: sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==}
- '@anthropic-ai/sdk@0.95.2':
- resolution: {integrity: sha512-Egddwo3sheo1PzUrMkZnH6VkQYwS0h/b/i8vSK8Ta9M45UQipAMeDFH57dYuDAfXMEUUGeKw6CMlremgMZgrSQ==}
- hasBin: true
- peerDependencies:
- zod: ^3.25.0 || ^4.0.0
- peerDependenciesMeta:
- zod:
- optional: true
-
'@aparajita/capacitor-secure-storage@7.1.6':
resolution: {integrity: sha512-KIfLOm/oSciUiWsOMtMv2nzlnwW3LERid0DvZ3djt7UORBQvFqpvSefiLG5kkc8D34pGkb2ZqAz0ZprrI9LiTQ==}
engines: {node: '>=20.0.0'}
@@ -2637,9 +2591,6 @@ packages:
'@formatjs/intl-localematcher@0.6.2':
resolution: {integrity: sha512-XOMO2Hupl0wdd172Y06h6kLpBz6Dv+J4okPLl4LPtzbr8f66WbIoy4ev98EBuZ6ZK4h5ydTN6XneT4QVpD7cdA==}
- '@grammyjs/types@3.26.0':
- resolution: {integrity: sha512-jlnyfxfev/2o68HlvAGRocAXgdPPX5QabG7jZlbqC2r9DZyWBfzTlg+nu3O3Fy4EhgLWu28hZ/8wr7DsNamP9A==}
-
'@grpc/grpc-js@1.14.3':
resolution: {integrity: sha512-Iq8QQQ/7X3Sac15oB6p0FmUg/klxQvXLeileoqrTRGJYLV+/9tubbr9ipz0GKHjmXVsgFPo/+W+2cA8eNcR+XA==}
engines: {node: '>=12.10.0'}
@@ -5001,9 +4952,6 @@ packages:
resolution: {integrity: sha512-tj2Sa6X4gVZqS9SiT2xlEeChSUklSGq8Hz6zKNbHW6NRiGyrSXiFcspnrWru1wPBT76RX/VxweESKxawCxfDxg==}
engines: {node: '>=22'}
- '@stablelib/base64@1.0.1':
- resolution: {integrity: sha512-1bnPQqSxSuc3Ii6MhBysoWCg58j97aUjuCSZrGSmDxNqtytIi0k8utUenAwTZN4V5mXXYGsVUI9zeBqy+jBOSQ==}
-
'@standard-schema/spec@1.1.0':
resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==}
@@ -8213,9 +8161,6 @@ packages:
fast-safe-stringify@2.1.1:
resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==}
- fast-sha256@1.3.0:
- resolution: {integrity: sha512-n11RGP/lrWEFI/bWdygLxhI+pVeo1ZYIVwvvPkW7azl/rOy+F3HYRZ2K5zeE9mmkhQppyv9sQFx0JM9UabnpPQ==}
-
fast-string-truncated-width@3.0.3:
resolution: {integrity: sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g==}
@@ -8643,10 +8588,6 @@ packages:
graceful-fs@4.2.11:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
- grammy@1.42.0:
- resolution: {integrity: sha512-1AdCge+AkjSdp2FwfICSFnVbl8Mq3KVHJDy+DgTI9+D6keJ0zWALPRKas5jv/8psiCzL4N2cEOcGW7O45Kn39g==}
- engines: {node: ^12.20.0 || >=14.13.1}
-
graphql-tag@2.12.6:
resolution: {integrity: sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==}
engines: {node: '>=10'}
@@ -9546,10 +9487,6 @@ packages:
json-rpc-2.0@1.7.1:
resolution: {integrity: sha512-JqZjhjAanbpkXIzFE7u8mE/iFblawwlXtONaCvRqI+pyABVz7B4M1EUNpyVW+dZjqgQ2L5HFmZCmOCgUKm00hg==}
- json-schema-to-ts@3.1.1:
- resolution: {integrity: sha512-+DWg8jCJG2TEnpy7kOm/7/AxaYoaRbjVB4LFZLySZlWn8exGs3A4OLJR966cVvU26N7X9TWxl+Jsw7dzAqKT6g==}
- engines: {node: '>=16'}
-
json-schema-traverse@0.4.1:
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
@@ -11943,9 +11880,6 @@ packages:
standard-as-callback@2.1.0:
resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==}
- standardwebhooks@1.0.0:
- resolution: {integrity: sha512-BbHGOQK9olHPMvQNHWul6MYlrRTAOKn03rOe4A8O3CLWhNf4YHBqq2HJKKC+sfqpxiBY52pNeesD6jIiLDz8jg==}
-
statuses@1.5.0:
resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==}
engines: {node: '>= 0.6'}
@@ -12410,9 +12344,6 @@ packages:
truncate-utf8-bytes@1.0.2:
resolution: {integrity: sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==}
- ts-algebra@2.0.0:
- resolution: {integrity: sha512-FPAhNPFMrkwz76P7cdjdmiShwMynZYN6SgOujD1urY4oNm80Ou9oMdmbR45LotcKOXoy7wSmHkRFE6Mxbrhefw==}
-
ts-api-utils@2.5.0:
resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==}
engines: {node: '>=18.12'}
@@ -13399,13 +13330,6 @@ snapshots:
'@adobe/css-tools@4.4.4': {}
- '@anthropic-ai/sdk@0.95.2(zod@4.4.3)':
- dependencies:
- json-schema-to-ts: 3.1.1
- standardwebhooks: 1.0.0
- optionalDependencies:
- zod: 4.4.3
-
'@aparajita/capacitor-secure-storage@7.1.6':
dependencies:
'@capacitor/android': 7.6.2(@capacitor/core@7.6.2)
@@ -15285,8 +15209,6 @@ snapshots:
dependencies:
tslib: 2.8.1
- '@grammyjs/types@3.26.0': {}
-
'@grpc/grpc-js@1.14.3':
dependencies:
'@grpc/proto-loader': 0.8.1
@@ -18056,8 +17978,6 @@ snapshots:
'@sqlite.org/sqlite-wasm@3.51.2-build9': {}
- '@stablelib/base64@1.0.1': {}
-
'@standard-schema/spec@1.1.0': {}
'@standard-schema/utils@0.3.0': {}
@@ -21667,8 +21587,6 @@ snapshots:
fast-safe-stringify@2.1.1: {}
- fast-sha256@1.3.0: {}
-
fast-string-truncated-width@3.0.3: {}
fast-string-width@3.0.2:
@@ -22165,16 +22083,6 @@ snapshots:
graceful-fs@4.2.11: {}
- grammy@1.42.0:
- dependencies:
- '@grammyjs/types': 3.26.0
- abort-controller: 3.0.0
- debug: 4.4.3(supports-color@10.2.2)
- node-fetch: 2.7.0
- transitivePeerDependencies:
- - encoding
- - supports-color
-
graphql-tag@2.12.6(graphql@16.14.0):
dependencies:
graphql: 16.14.0
@@ -23336,11 +23244,6 @@ snapshots:
json-rpc-2.0@1.7.1: {}
- json-schema-to-ts@3.1.1:
- dependencies:
- '@babel/runtime': 7.29.7
- ts-algebra: 2.0.0
-
json-schema-traverse@0.4.1: {}
json-schema-traverse@1.0.0: {}
@@ -26160,11 +26063,6 @@ snapshots:
standard-as-callback@2.1.0: {}
- standardwebhooks@1.0.0:
- dependencies:
- '@stablelib/base64': 1.0.1
- fast-sha256: 1.3.0
-
statuses@1.5.0: {}
statuses@2.0.2: {}
@@ -26685,8 +26583,6 @@ snapshots:
dependencies:
utf8-byte-length: 1.0.5
- ts-algebra@2.0.0: {}
-
ts-api-utils@2.5.0(typescript@6.0.3):
dependencies:
typescript: 6.0.3