@sylphx/contract 0.5.1 → 0.7.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/CHANGELOG.md +15 -1
- package/README.md +1 -1
- package/dist/compute.d.ts +33 -0
- package/dist/compute.d.ts.map +1 -0
- package/dist/compute.js +119 -0
- package/dist/endpoint.d.ts +3 -1
- package/dist/endpoint.d.ts.map +1 -1
- package/dist/endpoints/admin-audit.d.ts +2 -2
- package/dist/endpoints/admin-audit.js +2 -2
- package/dist/endpoints/admin-bootstrap.js +3 -3
- package/dist/endpoints/admin-branch-databases.d.ts +1 -1
- package/dist/endpoints/admin-branch-databases.js +2 -2
- package/dist/endpoints/admin-config.d.ts +3 -0
- package/dist/endpoints/admin-config.d.ts.map +1 -1
- package/dist/endpoints/admin-config.js +9 -1
- package/dist/endpoints/admin-envs-spec.d.ts +27 -0
- package/dist/endpoints/admin-envs-spec.d.ts.map +1 -0
- package/dist/endpoints/admin-envs-spec.js +25 -0
- package/dist/endpoints/admin-projects.d.ts +1 -1
- package/dist/endpoints/admin-rate-limits.d.ts +1 -1
- package/dist/endpoints/admin-rate-limits.js +3 -3
- package/dist/endpoints/admin-secrets.d.ts +3 -3
- package/dist/endpoints/admin-secrets.js +1 -1
- package/dist/endpoints/admin-services.d.ts +3 -3
- package/dist/endpoints/admin-services.d.ts.map +1 -1
- package/dist/endpoints/admin-services.js +4 -5
- package/dist/endpoints/ai-admin.d.ts +134 -5
- package/dist/endpoints/ai-admin.d.ts.map +1 -1
- package/dist/endpoints/analytics-admin.d.ts +141 -6
- package/dist/endpoints/analytics-admin.d.ts.map +1 -1
- package/dist/endpoints/analytics-admin.js +7 -7
- package/dist/endpoints/auth.d.ts +26 -8
- package/dist/endpoints/auth.d.ts.map +1 -1
- package/dist/endpoints/auth.js +5 -5
- package/dist/endpoints/branch-databases.d.ts +13 -7
- package/dist/endpoints/branch-databases.d.ts.map +1 -1
- package/dist/endpoints/branch-databases.js +3 -3
- package/dist/endpoints/databases.d.ts +100 -164
- package/dist/endpoints/databases.d.ts.map +1 -1
- package/dist/endpoints/databases.js +8 -35
- package/dist/endpoints/deployments.d.ts +1 -3
- package/dist/endpoints/deployments.d.ts.map +1 -1
- package/dist/endpoints/deployments.js +1 -1
- package/dist/endpoints/domains.d.ts +7 -1
- package/dist/endpoints/domains.d.ts.map +1 -1
- package/dist/endpoints/email-admin.d.ts +1 -0
- package/dist/endpoints/email-admin.d.ts.map +1 -1
- package/dist/endpoints/environments.d.ts +11 -42
- package/dist/endpoints/environments.d.ts.map +1 -1
- package/dist/endpoints/flags-admin.d.ts +8 -0
- package/dist/endpoints/flags-admin.d.ts.map +1 -1
- package/dist/endpoints/image-opt.d.ts +5 -13
- package/dist/endpoints/image-opt.d.ts.map +1 -1
- package/dist/endpoints/image-opt.js +6 -18
- package/dist/endpoints/kv-admin.d.ts +0 -1
- package/dist/endpoints/kv-admin.d.ts.map +1 -1
- package/dist/endpoints/notifications-admin.d.ts +4 -4
- package/dist/endpoints/organizations.d.ts +8 -6
- package/dist/endpoints/organizations.d.ts.map +1 -1
- package/dist/endpoints/project-manifest.d.ts +362 -354
- package/dist/endpoints/project-manifest.d.ts.map +1 -1
- package/dist/endpoints/projects.d.ts +0 -8
- package/dist/endpoints/projects.d.ts.map +1 -1
- package/dist/endpoints/realtime-admin.d.ts +0 -1
- package/dist/endpoints/realtime-admin.d.ts.map +1 -1
- package/dist/endpoints/realtime-admin.js +1 -1
- package/dist/endpoints/regions.d.ts +2 -4
- package/dist/endpoints/regions.d.ts.map +1 -1
- package/dist/endpoints/regions.js +2 -2
- package/dist/endpoints/tasks.d.ts +2 -6
- package/dist/endpoints/tasks.d.ts.map +1 -1
- package/dist/hono-app.d.ts +3 -3
- package/dist/hono-app.js +2 -2
- package/dist/index.d.ts +852 -632
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/schemas/_primitives.d.ts +14 -0
- package/dist/schemas/_primitives.d.ts.map +1 -1
- package/dist/schemas/_primitives.js +16 -0
- package/dist/schemas/admin-audit.d.ts +4 -4
- package/dist/schemas/admin-audit.js +3 -3
- package/dist/schemas/admin-bootstrap.d.ts +1 -1
- package/dist/schemas/admin-bootstrap.js +1 -1
- package/dist/schemas/admin-builds.d.ts +1 -1
- package/dist/schemas/admin-builds.js +1 -1
- package/dist/schemas/admin-config.d.ts +4 -0
- package/dist/schemas/admin-config.d.ts.map +1 -1
- package/dist/schemas/admin-config.js +3 -0
- package/dist/schemas/admin-envs-spec.d.ts +49 -0
- package/dist/schemas/admin-envs-spec.d.ts.map +1 -0
- package/dist/schemas/admin-envs-spec.js +58 -0
- package/dist/schemas/admin-projects.d.ts +2 -2
- package/dist/schemas/admin-projects.js +1 -1
- package/dist/schemas/admin-rate-limits.d.ts +2 -2
- package/dist/schemas/admin-rate-limits.js +2 -2
- package/dist/schemas/admin-secrets.d.ts +14 -14
- package/dist/schemas/admin-secrets.d.ts.map +1 -1
- package/dist/schemas/admin-secrets.js +10 -10
- package/dist/schemas/admin-services.d.ts +18 -22
- package/dist/schemas/admin-services.d.ts.map +1 -1
- package/dist/schemas/admin-services.js +15 -19
- package/dist/schemas/ai-admin.d.ts +137 -8
- package/dist/schemas/ai-admin.d.ts.map +1 -1
- package/dist/schemas/ai-admin.js +119 -13
- package/dist/schemas/analytics-admin.d.ts +164 -7
- package/dist/schemas/analytics-admin.d.ts.map +1 -1
- package/dist/schemas/analytics-admin.js +104 -3
- package/dist/schemas/auth.d.ts +2 -1
- package/dist/schemas/auth.d.ts.map +1 -1
- package/dist/schemas/auth.js +2 -1
- package/dist/schemas/branch-database.d.ts +25 -18
- package/dist/schemas/branch-database.d.ts.map +1 -1
- package/dist/schemas/branch-database.js +15 -14
- package/dist/schemas/database.d.ts +13 -19
- package/dist/schemas/database.d.ts.map +1 -1
- package/dist/schemas/database.js +7 -19
- package/dist/schemas/deployment.d.ts +5 -7
- package/dist/schemas/deployment.d.ts.map +1 -1
- package/dist/schemas/deployment.js +6 -6
- package/dist/schemas/domain.d.ts +3 -1
- package/dist/schemas/domain.d.ts.map +1 -1
- package/dist/schemas/domain.js +2 -1
- package/dist/schemas/email-admin.d.ts +1 -0
- package/dist/schemas/email-admin.d.ts.map +1 -1
- package/dist/schemas/email-admin.js +1 -0
- package/dist/schemas/environment.d.ts +17 -31
- package/dist/schemas/environment.d.ts.map +1 -1
- package/dist/schemas/environment.js +11 -16
- package/dist/schemas/flags-admin.d.ts +13 -0
- package/dist/schemas/flags-admin.d.ts.map +1 -1
- package/dist/schemas/flags-admin.js +6 -0
- package/dist/schemas/ids.d.ts +4 -0
- package/dist/schemas/ids.d.ts.map +1 -1
- package/dist/schemas/ids.js +2 -0
- package/dist/schemas/image-opt.d.ts +10 -11
- package/dist/schemas/image-opt.d.ts.map +1 -1
- package/dist/schemas/image-opt.js +11 -12
- package/dist/schemas/kv-admin.d.ts +0 -1
- package/dist/schemas/kv-admin.d.ts.map +1 -1
- package/dist/schemas/kv-admin.js +0 -1
- package/dist/schemas/notifications-admin.d.ts +6 -6
- package/dist/schemas/notifications-admin.js +1 -1
- package/dist/schemas/organization.d.ts +8 -6
- package/dist/schemas/organization.d.ts.map +1 -1
- package/dist/schemas/organization.js +11 -6
- package/dist/schemas/project-manifest.d.ts +458 -455
- package/dist/schemas/project-manifest.d.ts.map +1 -1
- package/dist/schemas/project-manifest.js +66 -56
- package/dist/schemas/project.d.ts +0 -6
- package/dist/schemas/project.d.ts.map +1 -1
- package/dist/schemas/project.js +0 -2
- package/dist/schemas/realtime-admin.d.ts +0 -1
- package/dist/schemas/realtime-admin.d.ts.map +1 -1
- package/dist/schemas/realtime-admin.js +0 -1
- package/dist/schemas/realtime.d.ts +2 -2
- package/dist/schemas/realtime.js +2 -2
- package/dist/schemas/region.d.ts +3 -21
- package/dist/schemas/region.d.ts.map +1 -1
- package/dist/schemas/region.js +2 -11
- package/dist/schemas/resources.d.ts +213 -164
- package/dist/schemas/resources.d.ts.map +1 -1
- package/dist/schemas/resources.js +87 -105
- package/dist/schemas/storage.d.ts +1 -1
- package/dist/schemas/storage.js +1 -1
- package/dist/schemas/tasks.d.ts +3 -8
- package/dist/schemas/tasks.d.ts.map +1 -1
- package/dist/schemas/tasks.js +1 -4
- package/package.json +5 -1
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Admin Secrets — operator-driven secret rotation primitives.
|
|
3
3
|
*
|
|
4
4
|
* G-5: closes the production-ready audit gap on secret rotation. The
|
|
5
|
-
* Platform holds a small set of HMAC / encryption secrets in
|
|
6
|
-
*
|
|
5
|
+
* Platform holds a small set of HMAC / encryption secrets in operator-managed
|
|
6
|
+
* secret slots (BREAK_GLASS_SECRET, PLATFORM_ENCRYPTION_KEY, …). Pre-G-5
|
|
7
7
|
* rotation was a manual two-person rule documented in
|
|
8
8
|
* `docs/runbooks/break-glass.md` §4 — not auditable, not metered, no
|
|
9
9
|
* automated reminder when a secret aged past 90 days.
|
|
@@ -12,13 +12,13 @@
|
|
|
12
12
|
* - List rotatable secrets + their last-rotation age (`--dry-run`)
|
|
13
13
|
* - Initiate a rotation event for compliance (audit row + metric tick)
|
|
14
14
|
*
|
|
15
|
-
* The actual
|
|
16
|
-
*
|
|
15
|
+
* The actual secret value rotation is delegated to the runbook's existing
|
|
16
|
+
* two-person procedure; this endpoint is the AUDIT trail and
|
|
17
17
|
* the OBSERVABILITY anchor for `sylphx_secret_age_days`. We deliberately
|
|
18
18
|
* do NOT mint the new value server-side — minting would require holding
|
|
19
|
-
* the
|
|
20
|
-
* rotation is hedging against. Operators
|
|
21
|
-
*
|
|
19
|
+
* the secret-store root key in process memory, which is the very threat the
|
|
20
|
+
* rotation is hedging against. Operators update the configured secret
|
|
21
|
+
* target; the endpoint records that it happened.
|
|
22
22
|
*
|
|
23
23
|
* Scope (`platform:secrets:rotate`) is service-token only; super-admin
|
|
24
24
|
* sessions are explicitly NOT accepted — a rotation MUST be a programmatic
|
|
@@ -59,7 +59,7 @@ export const AdminRotateSecretInput = Schema.Struct({
|
|
|
59
59
|
* Per-secret rotation status — one row per known secret type.
|
|
60
60
|
*
|
|
61
61
|
* `lastRotatedAt` is null for a secret that has never been rotated since
|
|
62
|
-
* ledger ingest (
|
|
62
|
+
* ledger ingest (fresh installations, freshly seeded `secret_rotation_events`).
|
|
63
63
|
* `ageDays` is `now() - lastRotatedAt` in days, or null when never-rotated;
|
|
64
64
|
* the alert rule fires when `ageDays > 90`.
|
|
65
65
|
*/
|
|
@@ -71,8 +71,8 @@ export const AdminSecretStatus = Schema.Struct({
|
|
|
71
71
|
cadenceDays: Schema.Number,
|
|
72
72
|
/** True iff `ageDays > cadenceDays` (or never-rotated). */
|
|
73
73
|
overdue: Schema.Boolean,
|
|
74
|
-
/**
|
|
75
|
-
|
|
74
|
+
/** Operator-facing target the runbook updates. */
|
|
75
|
+
rotationTarget: Schema.String,
|
|
76
76
|
});
|
|
77
77
|
export const AdminRotateSecretResult = Schema.Struct({
|
|
78
78
|
/** True iff a real rotation event was recorded; false on dry-run. */
|
|
@@ -5,12 +5,8 @@
|
|
|
5
5
|
*
|
|
6
6
|
* The drift watchdog (`infra/addons/dogfood-smoke/manifests/image-drift-cronjob.yaml`)
|
|
7
7
|
* polls this endpoint every 10 minutes. For each Platform service it
|
|
8
|
-
* compares
|
|
9
|
-
*
|
|
10
|
-
* - DB SSOT — `project_services.latest_image_ref` (the digest the
|
|
11
|
-
* build pipeline says is current).
|
|
12
|
-
* - K8s live — `deployment.spec.template.spec.containers[0].image`
|
|
13
|
-
* (the digest actually rolling on cluster).
|
|
8
|
+
* compares the control-plane artifact reference with the live runtime
|
|
9
|
+
* artifact reference.
|
|
14
10
|
*
|
|
15
11
|
* When the two diverge for >30 minutes the probe pages on-call. Inside the
|
|
16
12
|
* 30-minute grace window drift is tolerated (legit during a rolling deploy
|
|
@@ -25,27 +21,27 @@ import { Schema } from 'effect';
|
|
|
25
21
|
*
|
|
26
22
|
* - `name` — service name within the platform project
|
|
27
23
|
* (e.g. `api`, `controller`, `runtime`).
|
|
28
|
-
* - `
|
|
24
|
+
* - `controlRef` — artifact reference selected by the control plane.
|
|
29
25
|
* `null` if the service has never been built.
|
|
30
|
-
* - `
|
|
31
|
-
* `null` if the
|
|
26
|
+
* - `runtimeRef` — artifact reference observed in the live runtime.
|
|
27
|
+
* `null` if the runtime target is missing.
|
|
32
28
|
* - `driftMinutes` — minutes since the divergence first appeared.
|
|
33
|
-
* `0` when
|
|
29
|
+
* `0` when control and runtime agree (or both null).
|
|
34
30
|
* `null` when one side is missing.
|
|
35
|
-
* - `inSync` — `true` iff `
|
|
31
|
+
* - `inSync` — `true` iff `controlRef === runtimeRef` AND both non-null.
|
|
36
32
|
* Probes alert when this is `false` past the grace
|
|
37
33
|
* window.
|
|
38
|
-
* - `
|
|
39
|
-
*
|
|
40
|
-
*
|
|
34
|
+
* - `controlUpdatedAt` — ISO timestamp the control-plane artifact pointer
|
|
35
|
+
* was last touched. Drives `driftMinutes` when the
|
|
36
|
+
* control plane is the lagger.
|
|
41
37
|
*/
|
|
42
38
|
export declare const AdminServiceImageStatusRow: Schema.Struct<{
|
|
43
39
|
name: typeof Schema.String;
|
|
44
|
-
|
|
45
|
-
|
|
40
|
+
controlRef: Schema.NullOr<typeof Schema.String>;
|
|
41
|
+
runtimeRef: Schema.NullOr<typeof Schema.String>;
|
|
46
42
|
driftMinutes: Schema.NullOr<typeof Schema.Number>;
|
|
47
43
|
inSync: typeof Schema.Boolean;
|
|
48
|
-
|
|
44
|
+
controlUpdatedAt: Schema.NullOr<typeof Schema.String>;
|
|
49
45
|
}>;
|
|
50
46
|
export type AdminServiceImageStatusRow = typeof AdminServiceImageStatusRow.Type;
|
|
51
47
|
/**
|
|
@@ -53,17 +49,17 @@ export type AdminServiceImageStatusRow = typeof AdminServiceImageStatusRow.Type;
|
|
|
53
49
|
*
|
|
54
50
|
* Always returns one row per Platform service (controller, api, runtime,
|
|
55
51
|
* web, exec-server, storage-gateway, storage-worker). Missing rows on
|
|
56
|
-
* either side surface as `
|
|
57
|
-
* still page on configuration drift, not just digest drift.
|
|
52
|
+
* either side surface as `controlRef=null` or `runtimeRef=null` so the probe
|
|
53
|
+
* can still page on configuration drift, not just digest drift.
|
|
58
54
|
*/
|
|
59
55
|
export declare const AdminServiceImageStatusResult: Schema.Struct<{
|
|
60
56
|
services: Schema.Array$<Schema.Struct<{
|
|
61
57
|
name: typeof Schema.String;
|
|
62
|
-
|
|
63
|
-
|
|
58
|
+
controlRef: Schema.NullOr<typeof Schema.String>;
|
|
59
|
+
runtimeRef: Schema.NullOr<typeof Schema.String>;
|
|
64
60
|
driftMinutes: Schema.NullOr<typeof Schema.Number>;
|
|
65
61
|
inSync: typeof Schema.Boolean;
|
|
66
|
-
|
|
62
|
+
controlUpdatedAt: Schema.NullOr<typeof Schema.String>;
|
|
67
63
|
}>>;
|
|
68
64
|
checkedAt: typeof Schema.String;
|
|
69
65
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-services.d.ts","sourceRoot":"","sources":["../../src/schemas/admin-services.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"admin-services.d.ts","sourceRoot":"","sources":["../../src/schemas/admin-services.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,0BAA0B;;;;;;;EAOrC,CAAA;AACF,MAAM,MAAM,0BAA0B,GAAG,OAAO,0BAA0B,CAAC,IAAI,CAAA;AAE/E;;;;;;;GAOG;AACH,eAAO,MAAM,6BAA6B;;;;;;;;;;EAGxC,CAAA;AACF,MAAM,MAAM,6BAA6B,GAAG,OAAO,6BAA6B,CAAC,IAAI,CAAA"}
|
|
@@ -5,12 +5,8 @@
|
|
|
5
5
|
*
|
|
6
6
|
* The drift watchdog (`infra/addons/dogfood-smoke/manifests/image-drift-cronjob.yaml`)
|
|
7
7
|
* polls this endpoint every 10 minutes. For each Platform service it
|
|
8
|
-
* compares
|
|
9
|
-
*
|
|
10
|
-
* - DB SSOT — `project_services.latest_image_ref` (the digest the
|
|
11
|
-
* build pipeline says is current).
|
|
12
|
-
* - K8s live — `deployment.spec.template.spec.containers[0].image`
|
|
13
|
-
* (the digest actually rolling on cluster).
|
|
8
|
+
* compares the control-plane artifact reference with the live runtime
|
|
9
|
+
* artifact reference.
|
|
14
10
|
*
|
|
15
11
|
* When the two diverge for >30 minutes the probe pages on-call. Inside the
|
|
16
12
|
* 30-minute grace window drift is tolerated (legit during a rolling deploy
|
|
@@ -25,35 +21,35 @@ import { Schema } from 'effect';
|
|
|
25
21
|
*
|
|
26
22
|
* - `name` — service name within the platform project
|
|
27
23
|
* (e.g. `api`, `controller`, `runtime`).
|
|
28
|
-
* - `
|
|
24
|
+
* - `controlRef` — artifact reference selected by the control plane.
|
|
29
25
|
* `null` if the service has never been built.
|
|
30
|
-
* - `
|
|
31
|
-
* `null` if the
|
|
26
|
+
* - `runtimeRef` — artifact reference observed in the live runtime.
|
|
27
|
+
* `null` if the runtime target is missing.
|
|
32
28
|
* - `driftMinutes` — minutes since the divergence first appeared.
|
|
33
|
-
* `0` when
|
|
29
|
+
* `0` when control and runtime agree (or both null).
|
|
34
30
|
* `null` when one side is missing.
|
|
35
|
-
* - `inSync` — `true` iff `
|
|
31
|
+
* - `inSync` — `true` iff `controlRef === runtimeRef` AND both non-null.
|
|
36
32
|
* Probes alert when this is `false` past the grace
|
|
37
33
|
* window.
|
|
38
|
-
* - `
|
|
39
|
-
*
|
|
40
|
-
*
|
|
34
|
+
* - `controlUpdatedAt` — ISO timestamp the control-plane artifact pointer
|
|
35
|
+
* was last touched. Drives `driftMinutes` when the
|
|
36
|
+
* control plane is the lagger.
|
|
41
37
|
*/
|
|
42
38
|
export const AdminServiceImageStatusRow = Schema.Struct({
|
|
43
39
|
name: Schema.String,
|
|
44
|
-
|
|
45
|
-
|
|
40
|
+
controlRef: Schema.NullOr(Schema.String),
|
|
41
|
+
runtimeRef: Schema.NullOr(Schema.String),
|
|
46
42
|
driftMinutes: Schema.NullOr(Schema.Number),
|
|
47
43
|
inSync: Schema.Boolean,
|
|
48
|
-
|
|
44
|
+
controlUpdatedAt: Schema.NullOr(Schema.String),
|
|
49
45
|
});
|
|
50
46
|
/**
|
|
51
47
|
* Response of `GET /admin/services/image-status`.
|
|
52
48
|
*
|
|
53
49
|
* Always returns one row per Platform service (controller, api, runtime,
|
|
54
50
|
* web, exec-server, storage-gateway, storage-worker). Missing rows on
|
|
55
|
-
* either side surface as `
|
|
56
|
-
* still page on configuration drift, not just digest drift.
|
|
51
|
+
* either side surface as `controlRef=null` or `runtimeRef=null` so the probe
|
|
52
|
+
* can still page on configuration drift, not just digest drift.
|
|
57
53
|
*/
|
|
58
54
|
export const AdminServiceImageStatusResult = Schema.Struct({
|
|
59
55
|
services: Schema.Array(AdminServiceImageStatusRow),
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* AI Admin — schemas for Console-plane AI usage analytics + model config.
|
|
3
3
|
* Mirrors `routes/ai.ts`.
|
|
4
4
|
*
|
|
5
|
-
* Plane: `management`. Response shapes
|
|
6
|
-
*
|
|
5
|
+
* Plane: `management`. Response shapes are explicit because Console, SDK,
|
|
6
|
+
* OpenAPI, and route handlers all depend on the same analytics contract.
|
|
7
7
|
*/
|
|
8
8
|
import { Schema } from 'effect';
|
|
9
9
|
export declare const AiAdminProjectIdParams: Schema.Struct<{
|
|
@@ -24,16 +24,145 @@ export declare const AiProjectUsageQuery: Schema.Struct<{
|
|
|
24
24
|
period: Schema.optional<Schema.Literal<["day", "week", "month"]>>;
|
|
25
25
|
}>;
|
|
26
26
|
export type AiProjectUsageQuery = typeof AiProjectUsageQuery.Type;
|
|
27
|
-
export declare const AiOverviewResult:
|
|
27
|
+
export declare const AiOverviewResult: Schema.Struct<{
|
|
28
|
+
period: Schema.Literal<["day", "week", "month"]>;
|
|
29
|
+
totals: Schema.Struct<{
|
|
30
|
+
requests: typeof Schema.Number;
|
|
31
|
+
tokens: typeof Schema.Number;
|
|
32
|
+
cost: Schema.Struct<{
|
|
33
|
+
microdollars: typeof Schema.Number;
|
|
34
|
+
formatted: typeof Schema.String;
|
|
35
|
+
}>;
|
|
36
|
+
avgLatencyMs: typeof Schema.Number;
|
|
37
|
+
successRate: typeof Schema.Number;
|
|
38
|
+
}>;
|
|
39
|
+
byProject: Schema.Array$<Schema.Struct<{
|
|
40
|
+
projectId: typeof Schema.String;
|
|
41
|
+
projectName: typeof Schema.String;
|
|
42
|
+
requests: typeof Schema.Number;
|
|
43
|
+
inputTokens: typeof Schema.Number;
|
|
44
|
+
outputTokens: typeof Schema.Number;
|
|
45
|
+
cost: Schema.Struct<{
|
|
46
|
+
microdollars: typeof Schema.Number;
|
|
47
|
+
formatted: typeof Schema.String;
|
|
48
|
+
}>;
|
|
49
|
+
successRate: typeof Schema.Number;
|
|
50
|
+
}>>;
|
|
51
|
+
byModel: Schema.Array$<Schema.Struct<{
|
|
52
|
+
model: typeof Schema.String;
|
|
53
|
+
requests: typeof Schema.Number;
|
|
54
|
+
tokens: typeof Schema.Number;
|
|
55
|
+
cost: Schema.Struct<{
|
|
56
|
+
microdollars: typeof Schema.Number;
|
|
57
|
+
formatted: typeof Schema.String;
|
|
58
|
+
}>;
|
|
59
|
+
}>>;
|
|
60
|
+
byProvider: Schema.Array$<Schema.Struct<{
|
|
61
|
+
provider: typeof Schema.String;
|
|
62
|
+
requests: typeof Schema.Number;
|
|
63
|
+
tokens: typeof Schema.Number;
|
|
64
|
+
cost: Schema.Struct<{
|
|
65
|
+
microdollars: typeof Schema.Number;
|
|
66
|
+
formatted: typeof Schema.String;
|
|
67
|
+
}>;
|
|
68
|
+
}>>;
|
|
69
|
+
}>;
|
|
28
70
|
export type AiOverviewResult = typeof AiOverviewResult.Type;
|
|
29
|
-
export declare const AiProjectUsageResult:
|
|
71
|
+
export declare const AiProjectUsageResult: Schema.Struct<{
|
|
72
|
+
app: Schema.Struct<{
|
|
73
|
+
id: typeof Schema.String;
|
|
74
|
+
name: typeof Schema.String;
|
|
75
|
+
slug: typeof Schema.String;
|
|
76
|
+
}>;
|
|
77
|
+
period: Schema.Literal<["day", "week", "month"]>;
|
|
78
|
+
stats: Schema.Struct<{
|
|
79
|
+
requests: typeof Schema.Number;
|
|
80
|
+
inputTokens: typeof Schema.Number;
|
|
81
|
+
outputTokens: typeof Schema.Number;
|
|
82
|
+
cost: Schema.Struct<{
|
|
83
|
+
microdollars: typeof Schema.Number;
|
|
84
|
+
formatted: typeof Schema.String;
|
|
85
|
+
}>;
|
|
86
|
+
latency: Schema.Struct<{
|
|
87
|
+
avgMs: typeof Schema.Number;
|
|
88
|
+
p95Ms: typeof Schema.Number;
|
|
89
|
+
}>;
|
|
90
|
+
successRate: typeof Schema.Number;
|
|
91
|
+
}>;
|
|
92
|
+
byModel: Schema.Array$<Schema.Struct<{
|
|
93
|
+
model: typeof Schema.String;
|
|
94
|
+
requests: typeof Schema.Number;
|
|
95
|
+
tokens: typeof Schema.Number;
|
|
96
|
+
cost: Schema.Struct<{
|
|
97
|
+
microdollars: typeof Schema.Number;
|
|
98
|
+
formatted: typeof Schema.String;
|
|
99
|
+
}>;
|
|
100
|
+
}>>;
|
|
101
|
+
byType: Schema.Array$<Schema.Struct<{
|
|
102
|
+
type: typeof Schema.String;
|
|
103
|
+
requests: typeof Schema.Number;
|
|
104
|
+
tokens: typeof Schema.Number;
|
|
105
|
+
}>>;
|
|
106
|
+
recentErrors: Schema.Array$<Schema.Struct<{
|
|
107
|
+
id: typeof Schema.String;
|
|
108
|
+
model: typeof Schema.String;
|
|
109
|
+
type: typeof Schema.String;
|
|
110
|
+
error: Schema.NullOr<typeof Schema.String>;
|
|
111
|
+
code: Schema.NullOr<typeof Schema.String>;
|
|
112
|
+
timestamp: typeof Schema.String;
|
|
113
|
+
}>>;
|
|
114
|
+
}>;
|
|
30
115
|
export type AiProjectUsageResult = typeof AiProjectUsageResult.Type;
|
|
31
|
-
export declare const AiCostTrendsResult:
|
|
116
|
+
export declare const AiCostTrendsResult: Schema.Struct<{
|
|
117
|
+
period: Schema.Literal<["day", "week", "month"]>;
|
|
118
|
+
interval: Schema.Literal<["hour", "day"]>;
|
|
119
|
+
data: Schema.Array$<Schema.Struct<{
|
|
120
|
+
timestamp: typeof Schema.String;
|
|
121
|
+
requests: typeof Schema.Number;
|
|
122
|
+
tokens: typeof Schema.Number;
|
|
123
|
+
cost: Schema.Struct<{
|
|
124
|
+
microdollars: typeof Schema.Number;
|
|
125
|
+
formatted: typeof Schema.String;
|
|
126
|
+
}>;
|
|
127
|
+
avgLatencyMs: typeof Schema.Number;
|
|
128
|
+
}>>;
|
|
129
|
+
}>;
|
|
32
130
|
export type AiCostTrendsResult = typeof AiCostTrendsResult.Type;
|
|
33
|
-
export declare const AiProjectConfigResult:
|
|
131
|
+
export declare const AiProjectConfigResult: Schema.Struct<{
|
|
132
|
+
app: Schema.Struct<{
|
|
133
|
+
id: typeof Schema.String;
|
|
134
|
+
name: typeof Schema.String;
|
|
135
|
+
slug: typeof Schema.String;
|
|
136
|
+
}>;
|
|
137
|
+
config: Schema.Struct<{
|
|
138
|
+
defaultMaxTokens: typeof Schema.Number;
|
|
139
|
+
defaultTemperature: typeof Schema.Number;
|
|
140
|
+
enableCaching: typeof Schema.Boolean;
|
|
141
|
+
allowedModels: Schema.NullOr<Schema.Array$<typeof Schema.String>>;
|
|
142
|
+
blockedModels: Schema.NullOr<Schema.Array$<typeof Schema.String>>;
|
|
143
|
+
}>;
|
|
144
|
+
rateLimits: Schema.Array$<Schema.Struct<{
|
|
145
|
+
id: typeof Schema.String;
|
|
146
|
+
modelPattern: typeof Schema.String;
|
|
147
|
+
requestsPerMinute: Schema.NullOr<typeof Schema.Number>;
|
|
148
|
+
requestsPerDay: Schema.NullOr<typeof Schema.Number>;
|
|
149
|
+
tokensPerMinute: Schema.NullOr<typeof Schema.Number>;
|
|
150
|
+
tokensPerDay: Schema.NullOr<typeof Schema.Number>;
|
|
151
|
+
costPerDayMicrodollars: Schema.NullOr<typeof Schema.Number>;
|
|
152
|
+
isActive: typeof Schema.Boolean;
|
|
153
|
+
}>>;
|
|
154
|
+
}>;
|
|
34
155
|
export type AiProjectConfigResult = typeof AiProjectConfigResult.Type;
|
|
35
|
-
export declare const AiUpdateProjectConfigInput: Schema.
|
|
156
|
+
export declare const AiUpdateProjectConfigInput: Schema.Struct<{
|
|
157
|
+
defaultMaxTokens: Schema.optional<typeof Schema.Number>;
|
|
158
|
+
defaultTemperature: Schema.optional<typeof Schema.Number>;
|
|
159
|
+
enableCaching: Schema.optional<typeof Schema.Boolean>;
|
|
160
|
+
allowedModels: Schema.optional<Schema.NullOr<Schema.Array$<typeof Schema.String>>>;
|
|
161
|
+
blockedModels: Schema.optional<Schema.NullOr<Schema.Array$<typeof Schema.String>>>;
|
|
162
|
+
}>;
|
|
36
163
|
export type AiUpdateProjectConfigInput = typeof AiUpdateProjectConfigInput.Type;
|
|
37
|
-
export declare const AiUpdateProjectConfigResult:
|
|
164
|
+
export declare const AiUpdateProjectConfigResult: Schema.Struct<{
|
|
165
|
+
success: typeof Schema.Boolean;
|
|
166
|
+
}>;
|
|
38
167
|
export type AiUpdateProjectConfigResult = typeof AiUpdateProjectConfigResult.Type;
|
|
39
168
|
//# sourceMappingURL=ai-admin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-admin.d.ts","sourceRoot":"","sources":["../../src/schemas/ai-admin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,eAAO,MAAM,sBAAsB;;EAA8C,CAAA;AACjF,MAAM,MAAM,sBAAsB,GAAG,OAAO,sBAAsB,CAAC,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"ai-admin.d.ts","sourceRoot":"","sources":["../../src/schemas/ai-admin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,eAAO,MAAM,sBAAsB;;EAA8C,CAAA;AACjF,MAAM,MAAM,sBAAsB,GAAG,OAAO,sBAAsB,CAAC,IAAI,CAAA;AAoBvE,eAAO,MAAM,eAAe;;EAE1B,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAA;AAEzD,eAAO,MAAM,iBAAiB;;;;EAI5B,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAA;AAE7D,eAAO,MAAM,mBAAmB;;EAE9B,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAC,IAAI,CAAA;AAEjE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoC3B,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAC,IAAI,CAAA;AAE3D,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuC/B,CAAA;AACF,MAAM,MAAM,oBAAoB,GAAG,OAAO,oBAAoB,CAAC,IAAI,CAAA;AAEnE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;EAY7B,CAAA;AACF,MAAM,MAAM,kBAAkB,GAAG,OAAO,kBAAkB,CAAC,IAAI,CAAA;AAE/D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;EAehC,CAAA;AACF,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAC,IAAI,CAAA;AAErE,eAAO,MAAM,0BAA0B;;;;;;EAMrC,CAAA;AACF,MAAM,MAAM,0BAA0B,GAAG,OAAO,0BAA0B,CAAC,IAAI,CAAA;AAC/E,eAAO,MAAM,2BAA2B;;EAA6C,CAAA;AACrF,MAAM,MAAM,2BAA2B,GAAG,OAAO,2BAA2B,CAAC,IAAI,CAAA"}
|
package/dist/schemas/ai-admin.js
CHANGED
|
@@ -2,28 +2,134 @@
|
|
|
2
2
|
* AI Admin — schemas for Console-plane AI usage analytics + model config.
|
|
3
3
|
* Mirrors `routes/ai.ts`.
|
|
4
4
|
*
|
|
5
|
-
* Plane: `management`. Response shapes
|
|
6
|
-
*
|
|
5
|
+
* Plane: `management`. Response shapes are explicit because Console, SDK,
|
|
6
|
+
* OpenAPI, and route handlers all depend on the same analytics contract.
|
|
7
7
|
*/
|
|
8
8
|
import { Schema } from 'effect';
|
|
9
9
|
export const AiAdminProjectIdParams = Schema.Struct({ projectId: Schema.String });
|
|
10
|
+
const AiPeriod = Schema.Literal('day', 'week', 'month');
|
|
11
|
+
const AiMoney = Schema.Struct({
|
|
12
|
+
microdollars: Schema.Number,
|
|
13
|
+
formatted: Schema.String,
|
|
14
|
+
});
|
|
15
|
+
const AiProjectRef = Schema.Struct({
|
|
16
|
+
id: Schema.String,
|
|
17
|
+
name: Schema.String,
|
|
18
|
+
slug: Schema.String,
|
|
19
|
+
});
|
|
20
|
+
const AiModelConfig = Schema.Struct({
|
|
21
|
+
defaultMaxTokens: Schema.Number,
|
|
22
|
+
defaultTemperature: Schema.Number,
|
|
23
|
+
enableCaching: Schema.Boolean,
|
|
24
|
+
allowedModels: Schema.NullOr(Schema.Array(Schema.String)),
|
|
25
|
+
blockedModels: Schema.NullOr(Schema.Array(Schema.String)),
|
|
26
|
+
});
|
|
10
27
|
export const AiOverviewQuery = Schema.Struct({
|
|
11
|
-
period: Schema.optional(
|
|
28
|
+
period: Schema.optional(AiPeriod),
|
|
12
29
|
});
|
|
13
30
|
export const AiCostTrendsQuery = Schema.Struct({
|
|
14
|
-
period: Schema.optional(
|
|
31
|
+
period: Schema.optional(AiPeriod),
|
|
15
32
|
interval: Schema.optional(Schema.Literal('hour', 'day')),
|
|
16
33
|
projectId: Schema.optional(Schema.String),
|
|
17
34
|
});
|
|
18
35
|
export const AiProjectUsageQuery = Schema.Struct({
|
|
19
|
-
period: Schema.optional(
|
|
36
|
+
period: Schema.optional(AiPeriod),
|
|
37
|
+
});
|
|
38
|
+
export const AiOverviewResult = Schema.Struct({
|
|
39
|
+
period: AiPeriod,
|
|
40
|
+
totals: Schema.Struct({
|
|
41
|
+
requests: Schema.Number,
|
|
42
|
+
tokens: Schema.Number,
|
|
43
|
+
cost: AiMoney,
|
|
44
|
+
avgLatencyMs: Schema.Number,
|
|
45
|
+
successRate: Schema.Number,
|
|
46
|
+
}),
|
|
47
|
+
byProject: Schema.Array(Schema.Struct({
|
|
48
|
+
projectId: Schema.String,
|
|
49
|
+
projectName: Schema.String,
|
|
50
|
+
requests: Schema.Number,
|
|
51
|
+
inputTokens: Schema.Number,
|
|
52
|
+
outputTokens: Schema.Number,
|
|
53
|
+
cost: AiMoney,
|
|
54
|
+
successRate: Schema.Number,
|
|
55
|
+
})),
|
|
56
|
+
byModel: Schema.Array(Schema.Struct({
|
|
57
|
+
model: Schema.String,
|
|
58
|
+
requests: Schema.Number,
|
|
59
|
+
tokens: Schema.Number,
|
|
60
|
+
cost: AiMoney,
|
|
61
|
+
})),
|
|
62
|
+
byProvider: Schema.Array(Schema.Struct({
|
|
63
|
+
provider: Schema.String,
|
|
64
|
+
requests: Schema.Number,
|
|
65
|
+
tokens: Schema.Number,
|
|
66
|
+
cost: AiMoney,
|
|
67
|
+
})),
|
|
68
|
+
});
|
|
69
|
+
export const AiProjectUsageResult = Schema.Struct({
|
|
70
|
+
app: AiProjectRef,
|
|
71
|
+
period: AiPeriod,
|
|
72
|
+
stats: Schema.Struct({
|
|
73
|
+
requests: Schema.Number,
|
|
74
|
+
inputTokens: Schema.Number,
|
|
75
|
+
outputTokens: Schema.Number,
|
|
76
|
+
cost: AiMoney,
|
|
77
|
+
latency: Schema.Struct({
|
|
78
|
+
avgMs: Schema.Number,
|
|
79
|
+
p95Ms: Schema.Number,
|
|
80
|
+
}),
|
|
81
|
+
successRate: Schema.Number,
|
|
82
|
+
}),
|
|
83
|
+
byModel: Schema.Array(Schema.Struct({
|
|
84
|
+
model: Schema.String,
|
|
85
|
+
requests: Schema.Number,
|
|
86
|
+
tokens: Schema.Number,
|
|
87
|
+
cost: AiMoney,
|
|
88
|
+
})),
|
|
89
|
+
byType: Schema.Array(Schema.Struct({
|
|
90
|
+
type: Schema.String,
|
|
91
|
+
requests: Schema.Number,
|
|
92
|
+
tokens: Schema.Number,
|
|
93
|
+
})),
|
|
94
|
+
recentErrors: Schema.Array(Schema.Struct({
|
|
95
|
+
id: Schema.String,
|
|
96
|
+
model: Schema.String,
|
|
97
|
+
type: Schema.String,
|
|
98
|
+
error: Schema.NullOr(Schema.String),
|
|
99
|
+
code: Schema.NullOr(Schema.String),
|
|
100
|
+
timestamp: Schema.String,
|
|
101
|
+
})),
|
|
102
|
+
});
|
|
103
|
+
export const AiCostTrendsResult = Schema.Struct({
|
|
104
|
+
period: AiPeriod,
|
|
105
|
+
interval: Schema.Literal('hour', 'day'),
|
|
106
|
+
data: Schema.Array(Schema.Struct({
|
|
107
|
+
timestamp: Schema.String,
|
|
108
|
+
requests: Schema.Number,
|
|
109
|
+
tokens: Schema.Number,
|
|
110
|
+
cost: AiMoney,
|
|
111
|
+
avgLatencyMs: Schema.Number,
|
|
112
|
+
})),
|
|
113
|
+
});
|
|
114
|
+
export const AiProjectConfigResult = Schema.Struct({
|
|
115
|
+
app: AiProjectRef,
|
|
116
|
+
config: AiModelConfig,
|
|
117
|
+
rateLimits: Schema.Array(Schema.Struct({
|
|
118
|
+
id: Schema.String,
|
|
119
|
+
modelPattern: Schema.String,
|
|
120
|
+
requestsPerMinute: Schema.NullOr(Schema.Number),
|
|
121
|
+
requestsPerDay: Schema.NullOr(Schema.Number),
|
|
122
|
+
tokensPerMinute: Schema.NullOr(Schema.Number),
|
|
123
|
+
tokensPerDay: Schema.NullOr(Schema.Number),
|
|
124
|
+
costPerDayMicrodollars: Schema.NullOr(Schema.Number),
|
|
125
|
+
isActive: Schema.Boolean,
|
|
126
|
+
})),
|
|
20
127
|
});
|
|
21
|
-
export const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
value: Schema.Unknown,
|
|
128
|
+
export const AiUpdateProjectConfigInput = Schema.Struct({
|
|
129
|
+
defaultMaxTokens: Schema.optional(Schema.Number),
|
|
130
|
+
defaultTemperature: Schema.optional(Schema.Number),
|
|
131
|
+
enableCaching: Schema.optional(Schema.Boolean),
|
|
132
|
+
allowedModels: Schema.optional(Schema.NullOr(Schema.Array(Schema.String))),
|
|
133
|
+
blockedModels: Schema.optional(Schema.NullOr(Schema.Array(Schema.String))),
|
|
28
134
|
});
|
|
29
|
-
export const AiUpdateProjectConfigResult = Schema.
|
|
135
|
+
export const AiUpdateProjectConfigResult = Schema.Struct({ success: Schema.Boolean });
|