@vibesdotdev/infra-core 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +78 -0
- package/SPEC.md +169 -0
- package/dist/bootstrap/index.d.ts +5 -0
- package/dist/bootstrap/index.d.ts.map +1 -0
- package/dist/bootstrap/index.js +4 -0
- package/dist/bootstrap/index.js.map +1 -0
- package/dist/bootstrap/seed.descriptor.d.ts +31 -0
- package/dist/bootstrap/seed.descriptor.d.ts.map +1 -0
- package/dist/bootstrap/seed.descriptor.js +18 -0
- package/dist/bootstrap/seed.descriptor.js.map +1 -0
- package/dist/bootstrap/seed.impl-shape.d.ts +5 -0
- package/dist/bootstrap/seed.impl-shape.d.ts.map +1 -0
- package/dist/bootstrap/seed.impl-shape.js +2 -0
- package/dist/bootstrap/seed.impl-shape.js.map +1 -0
- package/dist/bootstrap/seed.kind.d.ts +5 -0
- package/dist/bootstrap/seed.kind.d.ts.map +1 -0
- package/dist/bootstrap/seed.kind.js +14 -0
- package/dist/bootstrap/seed.kind.js.map +1 -0
- package/dist/bootstrap/seed.runner.d.ts +18 -0
- package/dist/bootstrap/seed.runner.d.ts.map +1 -0
- package/dist/bootstrap/seed.runner.js +59 -0
- package/dist/bootstrap/seed.runner.js.map +1 -0
- package/dist/credentials/resolve.d.ts +80 -0
- package/dist/credentials/resolve.d.ts.map +1 -0
- package/dist/credentials/resolve.js +128 -0
- package/dist/credentials/resolve.js.map +1 -0
- package/dist/deployment.d.ts +9 -0
- package/dist/deployment.d.ts.map +1 -0
- package/dist/deployment.js +25 -0
- package/dist/deployment.js.map +1 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/infra.plugin.d.ts +18 -0
- package/dist/infra.plugin.d.ts.map +1 -0
- package/dist/infra.plugin.js +52 -0
- package/dist/infra.plugin.js.map +1 -0
- package/dist/kinds/alerts.kind.d.ts +192 -0
- package/dist/kinds/alerts.kind.d.ts.map +1 -0
- package/dist/kinds/alerts.kind.js +116 -0
- package/dist/kinds/alerts.kind.js.map +1 -0
- package/dist/kinds/artifact.kind.d.ts +96 -0
- package/dist/kinds/artifact.kind.d.ts.map +1 -0
- package/dist/kinds/artifact.kind.js +53 -0
- package/dist/kinds/artifact.kind.js.map +1 -0
- package/dist/kinds/cache.kind.d.ts +128 -0
- package/dist/kinds/cache.kind.d.ts.map +1 -0
- package/dist/kinds/cache.kind.js +90 -0
- package/dist/kinds/cache.kind.js.map +1 -0
- package/dist/kinds/database.kind.d.ts +141 -0
- package/dist/kinds/database.kind.d.ts.map +1 -0
- package/dist/kinds/database.kind.js +103 -0
- package/dist/kinds/database.kind.js.map +1 -0
- package/dist/kinds/discovery.d.ts +20 -0
- package/dist/kinds/discovery.d.ts.map +1 -0
- package/dist/kinds/discovery.js +25 -0
- package/dist/kinds/discovery.js.map +1 -0
- package/dist/kinds/git-hosting.kind.d.ts +98 -0
- package/dist/kinds/git-hosting.kind.d.ts.map +1 -0
- package/dist/kinds/git-hosting.kind.js +81 -0
- package/dist/kinds/git-hosting.kind.js.map +1 -0
- package/dist/kinds/index.d.ts +16 -0
- package/dist/kinds/index.d.ts.map +1 -0
- package/dist/kinds/index.js +16 -0
- package/dist/kinds/index.js.map +1 -0
- package/dist/kinds/logs.kind.d.ts +91 -0
- package/dist/kinds/logs.kind.d.ts.map +1 -0
- package/dist/kinds/logs.kind.js +73 -0
- package/dist/kinds/logs.kind.js.map +1 -0
- package/dist/kinds/object-storage.kind.d.ts +85 -0
- package/dist/kinds/object-storage.kind.d.ts.map +1 -0
- package/dist/kinds/object-storage.kind.js +81 -0
- package/dist/kinds/object-storage.kind.js.map +1 -0
- package/dist/kinds/observability.kind.d.ts +176 -0
- package/dist/kinds/observability.kind.d.ts.map +1 -0
- package/dist/kinds/observability.kind.js +120 -0
- package/dist/kinds/observability.kind.js.map +1 -0
- package/dist/kinds/package-registry.kind.d.ts +89 -0
- package/dist/kinds/package-registry.kind.d.ts.map +1 -0
- package/dist/kinds/package-registry.kind.js +78 -0
- package/dist/kinds/package-registry.kind.js.map +1 -0
- package/dist/kinds/queue.kind.d.ts +113 -0
- package/dist/kinds/queue.kind.d.ts.map +1 -0
- package/dist/kinds/queue.kind.js +86 -0
- package/dist/kinds/queue.kind.js.map +1 -0
- package/dist/kinds/rum.kind.d.ts +113 -0
- package/dist/kinds/rum.kind.d.ts.map +1 -0
- package/dist/kinds/rum.kind.js +80 -0
- package/dist/kinds/rum.kind.js.map +1 -0
- package/dist/kinds/sandbox.kind.d.ts +111 -0
- package/dist/kinds/sandbox.kind.d.ts.map +1 -0
- package/dist/kinds/sandbox.kind.js +94 -0
- package/dist/kinds/sandbox.kind.js.map +1 -0
- package/dist/kinds/web-app.kind.d.ts +99 -0
- package/dist/kinds/web-app.kind.d.ts.map +1 -0
- package/dist/kinds/web-app.kind.js +86 -0
- package/dist/kinds/web-app.kind.js.map +1 -0
- package/dist/kinds/worker.kind.d.ts +244 -0
- package/dist/kinds/worker.kind.d.ts.map +1 -0
- package/dist/kinds/worker.kind.js +171 -0
- package/dist/kinds/worker.kind.js.map +1 -0
- package/dist/schemas.d.ts +125 -0
- package/dist/schemas.d.ts.map +1 -0
- package/dist/schemas.js +102 -0
- package/dist/schemas.js.map +1 -0
- package/package.json +92 -0
- package/src/bootstrap/index.ts +15 -0
- package/src/bootstrap/seed.descriptor.ts +24 -0
- package/src/bootstrap/seed.impl-shape.ts +5 -0
- package/src/bootstrap/seed.kind.ts +26 -0
- package/src/bootstrap/seed.runner.ts +87 -0
- package/src/credentials/resolve.ts +205 -0
- package/src/deployment.ts +57 -0
- package/src/index.ts +149 -0
- package/src/infra.plugin.ts +54 -0
- package/src/kinds/alerts.kind.ts +164 -0
- package/src/kinds/artifact.kind.ts +96 -0
- package/src/kinds/cache.kind.ts +104 -0
- package/src/kinds/database.kind.ts +120 -0
- package/src/kinds/discovery.ts +26 -0
- package/src/kinds/git-hosting.kind.ts +100 -0
- package/src/kinds/index.ts +139 -0
- package/src/kinds/logs.kind.ts +104 -0
- package/src/kinds/object-storage.kind.ts +101 -0
- package/src/kinds/observability.kind.ts +178 -0
- package/src/kinds/package-registry.kind.ts +95 -0
- package/src/kinds/queue.kind.ts +102 -0
- package/src/kinds/rum.kind.ts +135 -0
- package/src/kinds/sandbox.kind.ts +115 -0
- package/src/kinds/web-app.kind.ts +103 -0
- package/src/kinds/worker.kind.ts +203 -0
- package/src/schemas.ts +127 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kind: infra/database
|
|
3
|
+
*
|
|
4
|
+
* Describes a database instance.
|
|
5
|
+
*
|
|
6
|
+
* Schema shape: strict common base + `config` discriminated union.
|
|
7
|
+
*
|
|
8
|
+
* - The base defines fields universal across adapters: id/kind/name +
|
|
9
|
+
* the database shape (engine, size, replicas, backups).
|
|
10
|
+
* - Adapter-specific fields (namespace, storageSize, version, region, …)
|
|
11
|
+
* live under `config`. Each adapter package defines its own concrete schema.
|
|
12
|
+
*/
|
|
13
|
+
import * as z from 'zod/v4';
|
|
14
|
+
import { createRuntimeKind } from '@vibesdotdev/runtime/factory/kind';
|
|
15
|
+
import { RuntimeDescriptorSchema } from '@vibesdotdev/runtime/schemas/descriptor';
|
|
16
|
+
import { INFRA_DISCOVERY_PATTERN, extractStem } from "./discovery.js";
|
|
17
|
+
export const DatabaseBackupSchema = z.object({
|
|
18
|
+
enabled: z.boolean().default(false),
|
|
19
|
+
schedule: z.string().optional(),
|
|
20
|
+
retention: z.string().optional()
|
|
21
|
+
});
|
|
22
|
+
const DatabaseBaseSchema = RuntimeDescriptorSchema.extend({
|
|
23
|
+
kind: z.literal('infra/database'),
|
|
24
|
+
/** Database engine (e.g., 'turso', 'postgres'). */
|
|
25
|
+
engine: z.string().min(1).optional(),
|
|
26
|
+
/** Instance size hint. */
|
|
27
|
+
size: z.string().optional(),
|
|
28
|
+
/** Replica count. */
|
|
29
|
+
replicas: z.number().int().nonnegative().optional(),
|
|
30
|
+
/** Backup configuration. */
|
|
31
|
+
backups: DatabaseBackupSchema.optional()
|
|
32
|
+
});
|
|
33
|
+
export const DoksDatabaseConfigSchema = z.object({
|
|
34
|
+
/** Kubernetes namespace (default: vibes). */
|
|
35
|
+
namespace: z.string().min(1).default('vibes'),
|
|
36
|
+
/** Storage size for pgdata volume (default: 10Gi). */
|
|
37
|
+
storageSize: z.string().min(1).default('10Gi'),
|
|
38
|
+
/** Container resources. */
|
|
39
|
+
resources: z
|
|
40
|
+
.object({
|
|
41
|
+
requests: z.object({ cpu: z.string().min(1), memory: z.string().min(1) }).optional(),
|
|
42
|
+
limits: z.object({ cpu: z.string().min(1), memory: z.string().min(1) }).optional()
|
|
43
|
+
})
|
|
44
|
+
.optional(),
|
|
45
|
+
/** Postgres version tag (default: 16-alpine). */
|
|
46
|
+
version: z.string().min(1).default('16-alpine')
|
|
47
|
+
});
|
|
48
|
+
export const DOManagedPostgresConfigSchema = z.object({
|
|
49
|
+
/** Database size tier (default: db-s-1vcpu-1gb). */
|
|
50
|
+
size: z.string().min(1).default('db-s-1vcpu-1gb'),
|
|
51
|
+
/** DO region (default: nyc1). */
|
|
52
|
+
region: z.string().min(1).default('nyc1'),
|
|
53
|
+
/** Postgres version (default: 16). */
|
|
54
|
+
version: z.string().min(1).default('16')
|
|
55
|
+
});
|
|
56
|
+
export const TursoDatabaseConfigSchema = z.object({
|
|
57
|
+
/** Turso database name (defaults to descriptor id). */
|
|
58
|
+
database: z.string().min(1).optional(),
|
|
59
|
+
/** Edge region for replication (default: aws:iad1). */
|
|
60
|
+
region: z.string().min(1).default('aws:iad1')
|
|
61
|
+
});
|
|
62
|
+
export const CloudflareD1ConfigSchema = z.object({
|
|
63
|
+
/** D1 adapter name (always 'cloudflare-d1'). */
|
|
64
|
+
adapter: z.literal('cloudflare-d1'),
|
|
65
|
+
/** Binding name for D1 in Cloudflare Workers (default: 'DB'). */
|
|
66
|
+
binding: z.string().min(1).default('DB'),
|
|
67
|
+
/** D1 database name. */
|
|
68
|
+
databaseName: z.string().min(1),
|
|
69
|
+
/** ID of the consuming app (for wrangler.jsonc generation). */
|
|
70
|
+
consumerAppId: z.string().min(1)
|
|
71
|
+
});
|
|
72
|
+
export const DatabaseConfigSchema = z.union([
|
|
73
|
+
DoksDatabaseConfigSchema.extend({ adapter: z.literal('doks-statefulset') }),
|
|
74
|
+
DOManagedPostgresConfigSchema.extend({ adapter: z.literal('do-managed-postgres') }),
|
|
75
|
+
TursoDatabaseConfigSchema.extend({ adapter: z.literal('turso') }),
|
|
76
|
+
CloudflareD1ConfigSchema
|
|
77
|
+
]);
|
|
78
|
+
export const DatabaseDescriptorSchema = DatabaseBaseSchema.extend({
|
|
79
|
+
/**
|
|
80
|
+
* Adapter-specific configuration. Discriminated union — each adapter
|
|
81
|
+
* package defines its own config schema under its discriminator key.
|
|
82
|
+
*/
|
|
83
|
+
config: DatabaseConfigSchema.optional()
|
|
84
|
+
});
|
|
85
|
+
class DefaultDatabaseImplementation {
|
|
86
|
+
descriptor;
|
|
87
|
+
context;
|
|
88
|
+
constructor(descriptor, context) {
|
|
89
|
+
this.descriptor = descriptor;
|
|
90
|
+
this.context = context;
|
|
91
|
+
}
|
|
92
|
+
get config() {
|
|
93
|
+
return this.descriptor;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
export const databaseKind = createRuntimeKind({
|
|
97
|
+
id: 'infra/database',
|
|
98
|
+
descriptorSchema: DatabaseDescriptorSchema,
|
|
99
|
+
defaultImplementation: DefaultDatabaseImplementation,
|
|
100
|
+
discoveryPattern: INFRA_DISCOVERY_PATTERN,
|
|
101
|
+
extractStem
|
|
102
|
+
});
|
|
103
|
+
//# sourceMappingURL=database.kind.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.kind.js","sourceRoot":"","sources":["../../src/kinds/database.kind.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared discovery helpers for infra resource kinds.
|
|
3
|
+
*
|
|
4
|
+
* All infra kinds use the same discovery pattern for *.infra.ts files.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Glob pattern for discovering infra resource declaration files.
|
|
8
|
+
*/
|
|
9
|
+
export declare const INFRA_DISCOVERY_PATTERN = "**/*.infra.ts";
|
|
10
|
+
/**
|
|
11
|
+
* Extract the stem (base name without extension) from an infra file.
|
|
12
|
+
* Matches both .infra.ts and .infra.tsx extensions.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* extractStem('auth.infra.ts') // 'auth'
|
|
16
|
+
* extractStem('my-service.infra.tsx') // 'my-service'
|
|
17
|
+
* extractStem('not-infra.ts') // null
|
|
18
|
+
*/
|
|
19
|
+
export declare function extractStem(filename: string): string | null;
|
|
20
|
+
//# sourceMappingURL=discovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/kinds/discovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,eAAO,MAAM,uBAAuB,kBAAkB,CAAC;AAEvD;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK3D"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared discovery helpers for infra resource kinds.
|
|
3
|
+
*
|
|
4
|
+
* All infra kinds use the same discovery pattern for *.infra.ts files.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Glob pattern for discovering infra resource declaration files.
|
|
8
|
+
*/
|
|
9
|
+
export const INFRA_DISCOVERY_PATTERN = '**/*.infra.ts';
|
|
10
|
+
/**
|
|
11
|
+
* Extract the stem (base name without extension) from an infra file.
|
|
12
|
+
* Matches both .infra.ts and .infra.tsx extensions.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* extractStem('auth.infra.ts') // 'auth'
|
|
16
|
+
* extractStem('my-service.infra.tsx') // 'my-service'
|
|
17
|
+
* extractStem('not-infra.ts') // null
|
|
18
|
+
*/
|
|
19
|
+
export function extractStem(filename) {
|
|
20
|
+
const match = filename.match(/^(.+)\.infra\.tsx?$/);
|
|
21
|
+
const stem = match ? match[1] : null;
|
|
22
|
+
// Return null for empty stem (e.g., '.infra.ts')
|
|
23
|
+
return stem && stem.length > 0 ? stem : null;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=discovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/kinds/discovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,eAAe,CAAC;AAEvD;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACtC,iDAAiD;IACjD,OAAO,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kind: infra/git-hosting
|
|
3
|
+
*
|
|
4
|
+
* Describes a git hosting service instance (e.g. Gitea, Forgejo).
|
|
5
|
+
*
|
|
6
|
+
* Schema shape: strict common base + `config` discriminated union.
|
|
7
|
+
*
|
|
8
|
+
* - The base (this file) defines fields that are universal across every
|
|
9
|
+
* adapter: id/kind/name + the hosting shape every git host declares
|
|
10
|
+
* (domain, url, storagePath, authMethod, etc.).
|
|
11
|
+
* - Adapter-specific fields (dropletSize, dockerImage, volumeSizeGb, …)
|
|
12
|
+
* live exclusively under `config`. Each adapter package defines its own
|
|
13
|
+
* concrete schema under its discriminator key.
|
|
14
|
+
*/
|
|
15
|
+
import * as z from 'zod/v4';
|
|
16
|
+
import type { RuntimeKindDescriptorRecord } from '@vibesdotdev/runtime/schemas/kind';
|
|
17
|
+
import type { RuntimeDescriptor } from '@vibesdotdev/runtime/schemas/descriptor';
|
|
18
|
+
export declare const GitHostingTypeSchema: z.ZodEnum<{
|
|
19
|
+
gitea: "gitea";
|
|
20
|
+
forgejo: "forgejo";
|
|
21
|
+
}>;
|
|
22
|
+
export type GitHostingType = z.infer<typeof GitHostingTypeSchema>;
|
|
23
|
+
export declare const GitHostingAuthMethodSchema: z.ZodEnum<{
|
|
24
|
+
local: "local";
|
|
25
|
+
oauth: "oauth";
|
|
26
|
+
token: "token";
|
|
27
|
+
}>;
|
|
28
|
+
export type GitHostingAuthMethod = z.infer<typeof GitHostingAuthMethodSchema>;
|
|
29
|
+
export declare const GiteaDoksGitHostingConfigSchema: z.ZodObject<{
|
|
30
|
+
dropletSize: z.ZodDefault<z.ZodString>;
|
|
31
|
+
dockerImage: z.ZodDefault<z.ZodString>;
|
|
32
|
+
volumeSizeGb: z.ZodDefault<z.ZodNumber>;
|
|
33
|
+
domain: z.ZodString;
|
|
34
|
+
sshPort: z.ZodDefault<z.ZodNumber>;
|
|
35
|
+
httpPort: z.ZodDefault<z.ZodNumber>;
|
|
36
|
+
}, z.core.$strip>;
|
|
37
|
+
export declare const GitHostingConfigSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
38
|
+
dropletSize: z.ZodDefault<z.ZodString>;
|
|
39
|
+
dockerImage: z.ZodDefault<z.ZodString>;
|
|
40
|
+
volumeSizeGb: z.ZodDefault<z.ZodNumber>;
|
|
41
|
+
domain: z.ZodString;
|
|
42
|
+
sshPort: z.ZodDefault<z.ZodNumber>;
|
|
43
|
+
httpPort: z.ZodDefault<z.ZodNumber>;
|
|
44
|
+
adapter: z.ZodLiteral<"gitea-doks">;
|
|
45
|
+
}, z.core.$strip>]>;
|
|
46
|
+
export declare const GitHostingDescriptorSchema: z.ZodObject<{
|
|
47
|
+
id: z.ZodString;
|
|
48
|
+
name: z.ZodOptional<z.ZodString>;
|
|
49
|
+
description: z.ZodOptional<z.ZodString>;
|
|
50
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
51
|
+
hardware: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
52
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
53
|
+
priority: z.ZodOptional<z.ZodNumber>;
|
|
54
|
+
requiredContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
55
|
+
optionalContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
56
|
+
kind: z.ZodLiteral<"infra/git-hosting">;
|
|
57
|
+
url: z.ZodString;
|
|
58
|
+
hostname: z.ZodString;
|
|
59
|
+
type: z.ZodEnum<{
|
|
60
|
+
gitea: "gitea";
|
|
61
|
+
forgejo: "forgejo";
|
|
62
|
+
}>;
|
|
63
|
+
storagePath: z.ZodDefault<z.ZodString>;
|
|
64
|
+
authMethod: z.ZodDefault<z.ZodEnum<{
|
|
65
|
+
local: "local";
|
|
66
|
+
oauth: "oauth";
|
|
67
|
+
token: "token";
|
|
68
|
+
}>>;
|
|
69
|
+
ssl: z.ZodDefault<z.ZodBoolean>;
|
|
70
|
+
env: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
71
|
+
name: z.ZodString;
|
|
72
|
+
public: z.ZodOptional<z.ZodBoolean>;
|
|
73
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
74
|
+
value: z.ZodOptional<z.ZodString>;
|
|
75
|
+
secret: z.ZodOptional<z.ZodBoolean>;
|
|
76
|
+
description: z.ZodOptional<z.ZodString>;
|
|
77
|
+
storeKey: z.ZodOptional<z.ZodString>;
|
|
78
|
+
}, z.core.$strip>>>;
|
|
79
|
+
config: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
|
|
80
|
+
dropletSize: z.ZodDefault<z.ZodString>;
|
|
81
|
+
dockerImage: z.ZodDefault<z.ZodString>;
|
|
82
|
+
volumeSizeGb: z.ZodDefault<z.ZodNumber>;
|
|
83
|
+
domain: z.ZodString;
|
|
84
|
+
sshPort: z.ZodDefault<z.ZodNumber>;
|
|
85
|
+
httpPort: z.ZodDefault<z.ZodNumber>;
|
|
86
|
+
adapter: z.ZodLiteral<"gitea-doks">;
|
|
87
|
+
}, z.core.$strip>]>>;
|
|
88
|
+
}, z.core.$strip>;
|
|
89
|
+
export type GitHostingDescriptor = z.infer<typeof GitHostingDescriptorSchema>;
|
|
90
|
+
declare class DefaultGitHostingImplementation {
|
|
91
|
+
readonly descriptor: RuntimeDescriptor;
|
|
92
|
+
readonly context: unknown;
|
|
93
|
+
constructor(descriptor: RuntimeDescriptor, context: unknown);
|
|
94
|
+
get config(): GitHostingDescriptor;
|
|
95
|
+
}
|
|
96
|
+
export declare const gitHostingKind: RuntimeKindDescriptorRecord<DefaultGitHostingImplementation>;
|
|
97
|
+
export {};
|
|
98
|
+
//# sourceMappingURL=git-hosting.kind.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-hosting.kind.d.ts","sourceRoot":"","sources":["../../src/kinds/git-hosting.kind.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAErF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAIjF,eAAO,MAAM,oBAAoB;;;EAA+B,CAAC;AACjE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,0BAA0B;;;;EAAsC,CAAC;AAC9E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AA2B9E,eAAO,MAAM,+BAA+B;;;;;;;iBAa1C,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;mBAEjC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAMrC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,cAAM,+BAA+B;aAEnB,UAAU,EAAE,iBAAiB;aAC7B,OAAO,EAAE,OAAO;gBADhB,UAAU,EAAE,iBAAiB,EAC7B,OAAO,EAAE,OAAO;IAGjC,IAAI,MAAM,IAAI,oBAAoB,CAEjC;CACD;AAED,eAAO,MAAM,cAAc,8DAMzB,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kind: infra/git-hosting
|
|
3
|
+
*
|
|
4
|
+
* Describes a git hosting service instance (e.g. Gitea, Forgejo).
|
|
5
|
+
*
|
|
6
|
+
* Schema shape: strict common base + `config` discriminated union.
|
|
7
|
+
*
|
|
8
|
+
* - The base (this file) defines fields that are universal across every
|
|
9
|
+
* adapter: id/kind/name + the hosting shape every git host declares
|
|
10
|
+
* (domain, url, storagePath, authMethod, etc.).
|
|
11
|
+
* - Adapter-specific fields (dropletSize, dockerImage, volumeSizeGb, …)
|
|
12
|
+
* live exclusively under `config`. Each adapter package defines its own
|
|
13
|
+
* concrete schema under its discriminator key.
|
|
14
|
+
*/
|
|
15
|
+
import * as z from 'zod/v4';
|
|
16
|
+
import { createRuntimeKind } from '@vibesdotdev/runtime/factory/kind';
|
|
17
|
+
import { RuntimeDescriptorSchema } from '@vibesdotdev/runtime/schemas/descriptor';
|
|
18
|
+
import { INFRA_DISCOVERY_PATTERN, extractStem } from "./discovery.js";
|
|
19
|
+
import { deploymentEnvRequirementSchema } from "../schemas.js";
|
|
20
|
+
export const GitHostingTypeSchema = z.enum(['gitea', 'forgejo']);
|
|
21
|
+
export const GitHostingAuthMethodSchema = z.enum(['local', 'oauth', 'token']);
|
|
22
|
+
const GitHostingBaseSchema = RuntimeDescriptorSchema.extend({
|
|
23
|
+
kind: z.literal('infra/git-hosting'),
|
|
24
|
+
/** Primary access URL (e.g. 'https://git.vibes.dev'). */
|
|
25
|
+
url: z.string().url(),
|
|
26
|
+
/** Hostname for DNS resolution (e.g. 'git.vibes.dev'). */
|
|
27
|
+
hostname: z.string().min(1),
|
|
28
|
+
/** Git hosting software type. */
|
|
29
|
+
type: GitHostingTypeSchema,
|
|
30
|
+
/** Storage mount path inside the container. */
|
|
31
|
+
storagePath: z.string().min(1).default('/data'),
|
|
32
|
+
/** Authentication method. */
|
|
33
|
+
authMethod: GitHostingAuthMethodSchema.default('token'),
|
|
34
|
+
/** Whether TLS is enabled. */
|
|
35
|
+
ssl: z.boolean().default(true),
|
|
36
|
+
/** Environment variable requirements. */
|
|
37
|
+
env: z.array(deploymentEnvRequirementSchema).optional()
|
|
38
|
+
});
|
|
39
|
+
export const GiteaDoksGitHostingConfigSchema = z.object({
|
|
40
|
+
/** DigitalOcean Droplet size. */
|
|
41
|
+
dropletSize: z.string().default('s-2vcpu-2gb'),
|
|
42
|
+
/** Docker image for the Gitea container. */
|
|
43
|
+
dockerImage: z.string().default('gitea/gitea:1.21'),
|
|
44
|
+
/** Volume size in GiB for persistent storage. */
|
|
45
|
+
volumeSizeGb: z.number().int().positive().default(50),
|
|
46
|
+
/** Primary domain for the Gitea instance. */
|
|
47
|
+
domain: z.string().min(1),
|
|
48
|
+
/** SSH port exposed on the service. */
|
|
49
|
+
sshPort: z.number().int().positive().default(22),
|
|
50
|
+
/** HTTP port exposed on the service. */
|
|
51
|
+
httpPort: z.number().int().positive().default(3000)
|
|
52
|
+
});
|
|
53
|
+
export const GitHostingConfigSchema = z.union([
|
|
54
|
+
GiteaDoksGitHostingConfigSchema.extend({ adapter: z.literal('gitea-doks') })
|
|
55
|
+
]);
|
|
56
|
+
export const GitHostingDescriptorSchema = GitHostingBaseSchema.extend({
|
|
57
|
+
/**
|
|
58
|
+
* Adapter-specific configuration. Discriminated union — each adapter
|
|
59
|
+
* package defines its own config schema under its discriminator key.
|
|
60
|
+
*/
|
|
61
|
+
config: GitHostingConfigSchema.optional()
|
|
62
|
+
});
|
|
63
|
+
class DefaultGitHostingImplementation {
|
|
64
|
+
descriptor;
|
|
65
|
+
context;
|
|
66
|
+
constructor(descriptor, context) {
|
|
67
|
+
this.descriptor = descriptor;
|
|
68
|
+
this.context = context;
|
|
69
|
+
}
|
|
70
|
+
get config() {
|
|
71
|
+
return this.descriptor;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
export const gitHostingKind = createRuntimeKind({
|
|
75
|
+
id: 'infra/git-hosting',
|
|
76
|
+
descriptorSchema: GitHostingDescriptorSchema,
|
|
77
|
+
defaultImplementation: DefaultGitHostingImplementation,
|
|
78
|
+
discoveryPattern: INFRA_DISCOVERY_PATTERN,
|
|
79
|
+
extractStem
|
|
80
|
+
});
|
|
81
|
+
//# sourceMappingURL=git-hosting.kind.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-hosting.kind.js","sourceRoot":"","sources":["../../src/kinds/git-hosting.kind.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export { webAppKind, WebAppDescriptorSchema, WebAppConfigSchema, CloudflareWorkersWebAppConfigSchema, DigitalOceanAppWebAppConfigSchema, type WebAppDescriptor, type WebAppDependency } from './web-app.kind';
|
|
2
|
+
export { workerKind, WorkerDescriptorSchema, WorkerConfigSchema, DoksDeploymentWorkerConfigSchema, WorkerScalingSchema, type WorkerDescriptor, type WorkerScaling } from './worker.kind';
|
|
3
|
+
export { databaseKind, DatabaseDescriptorSchema, DatabaseConfigSchema, DoksDatabaseConfigSchema, DOManagedPostgresConfigSchema, TursoDatabaseConfigSchema, CloudflareD1ConfigSchema, DatabaseBackupSchema, type DatabaseDescriptor, type DatabaseBackup } from './database.kind';
|
|
4
|
+
export { queueKind, QueueDescriptorSchema, QueueConfigSchema, DoksQueueConfigSchema, QueueTopicSchema, type QueueDescriptor, type QueueTopic } from './queue.kind';
|
|
5
|
+
export { cacheKind, CacheDescriptorSchema, CacheConfigSchema, DOManagedRedisConfigSchema, type CacheDescriptor } from './cache.kind';
|
|
6
|
+
export { objectStorageKind, ObjectStorageDescriptorSchema, ObjectStorageConfigSchema, DOSpacesConfigSchema, CorsRuleSchema, LifecycleRuleSchema, type ObjectStorageDescriptor, type CorsRule, type LifecycleRule } from './object-storage.kind';
|
|
7
|
+
export { sandboxKind, SandboxDescriptorSchema, SandboxConfigSchema, CloudflareSandboxConfigSchema, DockerSandboxConfigSchema, DigitalOceanDropletSandboxConfigSchema, SandboxOutboundProxySchema, SandboxResourceLimitsSchema, type SandboxDescriptor, type SandboxOutboundProxy, type SandboxResourceLimits } from './sandbox.kind';
|
|
8
|
+
export { gitHostingKind, GitHostingDescriptorSchema, GitHostingConfigSchema, GiteaDoksGitHostingConfigSchema, GitHostingTypeSchema, GitHostingAuthMethodSchema, type GitHostingDescriptor, type GitHostingType, type GitHostingAuthMethod } from './git-hosting.kind';
|
|
9
|
+
export { packageRegistryKind, PackageRegistryDescriptorSchema, PackageRegistryConfigSchema, VerdaccioDoksPackageRegistryConfigSchema, PackageRegistryTypeSchema, type PackageRegistryDescriptor, type PackageRegistryType } from './package-registry.kind';
|
|
10
|
+
export { logsKind, InfraLogsDescriptorSchema, type InfraLogsDescriptor, type InfraLogsDescriptorInput, type InfraLogsKind, type InfraLogsKindInput, type LogsImplementation } from './logs.kind';
|
|
11
|
+
export { artifactKind, ArtifactDescriptorSchema, type ArtifactDescriptor, type ArtifactGenerator, type ArtifactOutput } from './artifact.kind';
|
|
12
|
+
export { alertsKind, InfraAlertsDescriptorSchema, AlertPolicySchema, AlertMechanismSchema, AlertTypeSchema, AlertWindowSchema, type InfraAlertsDescriptor, type InfraAlertsDescriptorInput, type InfraAlertsKind, type InfraAlertsKindInput, type AlertsImplementation, type AlertPolicy, type AlertMechanism, type AlertType } from './alerts.kind.ts';
|
|
13
|
+
export { observabilityKind, InfraObservabilityDescriptorSchema, ObservabilityScopeSchema, ObservabilitySettingsSchema, type InfraObservabilityDescriptor, type InfraObservabilityDescriptorInput, type InfraObservabilityKind, type InfraObservabilityKindInput, type ObservabilityImplementation, type ObservabilityScope, type ObservabilitySettings, type ObservabilitySnapshot, type SetObservabilityInput, type SetObservabilityResult } from './observability.kind.ts';
|
|
14
|
+
export { rumKind, InfraRumDescriptorSchema, RumPrivacySchema, RumInjectionSchema, type InfraRumDescriptor, type InfraRumDescriptorInput, type InfraRumKind, type InfraRumKindInput, type RumImplementation, type RumSiteSnapshot, type RumPrivacy, type RumInjection } from './rum.kind.ts';
|
|
15
|
+
export { INFRA_DISCOVERY_PATTERN, extractStem } from './discovery.ts';
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/kinds/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,mCAAmC,EAAE,iCAAiC,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC9M,OAAO,EACN,UAAU,EACV,sBAAsB,EACtB,kBAAkB,EAClB,gCAAgC,EAChC,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,YAAY,EACZ,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,EACxB,6BAA6B,EAC7B,yBAAyB,EACzB,wBAAwB,EACxB,oBAAoB,EACpB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACN,SAAS,EACT,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AACrI,OAAO,EACN,iBAAiB,EACjB,6BAA6B,EAC7B,yBAAyB,EACzB,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,KAAK,uBAAuB,EAC5B,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACN,WAAW,EACX,uBAAuB,EACvB,mBAAmB,EACnB,6BAA6B,EAC7B,yBAAyB,EACzB,sCAAsC,EACtC,0BAA0B,EAC1B,2BAA2B,EAC3B,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACN,cAAc,EACd,0BAA0B,EAC1B,sBAAsB,EACtB,+BAA+B,EAC/B,oBAAoB,EACpB,0BAA0B,EAC1B,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACN,mBAAmB,EACnB,+BAA+B,EAC/B,2BAA2B,EAC3B,wCAAwC,EACxC,yBAAyB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACN,QAAQ,EACR,yBAAyB,EACzB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,YAAY,EACZ,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACN,UAAU,EACV,2BAA2B,EAC3B,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACN,iBAAiB,EACjB,kCAAkC,EAClC,wBAAwB,EACxB,2BAA2B,EAC3B,KAAK,4BAA4B,EACjC,KAAK,iCAAiC,EACtC,KAAK,sBAAsB,EAC3B,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACN,OAAO,EACP,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export { webAppKind, WebAppDescriptorSchema, WebAppConfigSchema, CloudflareWorkersWebAppConfigSchema, DigitalOceanAppWebAppConfigSchema } from './web-app.kind';
|
|
2
|
+
export { workerKind, WorkerDescriptorSchema, WorkerConfigSchema, DoksDeploymentWorkerConfigSchema, WorkerScalingSchema } from './worker.kind';
|
|
3
|
+
export { databaseKind, DatabaseDescriptorSchema, DatabaseConfigSchema, DoksDatabaseConfigSchema, DOManagedPostgresConfigSchema, TursoDatabaseConfigSchema, CloudflareD1ConfigSchema, DatabaseBackupSchema } from './database.kind';
|
|
4
|
+
export { queueKind, QueueDescriptorSchema, QueueConfigSchema, DoksQueueConfigSchema, QueueTopicSchema } from './queue.kind';
|
|
5
|
+
export { cacheKind, CacheDescriptorSchema, CacheConfigSchema, DOManagedRedisConfigSchema } from './cache.kind';
|
|
6
|
+
export { objectStorageKind, ObjectStorageDescriptorSchema, ObjectStorageConfigSchema, DOSpacesConfigSchema, CorsRuleSchema, LifecycleRuleSchema } from './object-storage.kind';
|
|
7
|
+
export { sandboxKind, SandboxDescriptorSchema, SandboxConfigSchema, CloudflareSandboxConfigSchema, DockerSandboxConfigSchema, DigitalOceanDropletSandboxConfigSchema, SandboxOutboundProxySchema, SandboxResourceLimitsSchema } from './sandbox.kind';
|
|
8
|
+
export { gitHostingKind, GitHostingDescriptorSchema, GitHostingConfigSchema, GiteaDoksGitHostingConfigSchema, GitHostingTypeSchema, GitHostingAuthMethodSchema } from './git-hosting.kind';
|
|
9
|
+
export { packageRegistryKind, PackageRegistryDescriptorSchema, PackageRegistryConfigSchema, VerdaccioDoksPackageRegistryConfigSchema, PackageRegistryTypeSchema } from './package-registry.kind';
|
|
10
|
+
export { logsKind, InfraLogsDescriptorSchema } from './logs.kind';
|
|
11
|
+
export { artifactKind, ArtifactDescriptorSchema } from './artifact.kind';
|
|
12
|
+
export { alertsKind, InfraAlertsDescriptorSchema, AlertPolicySchema, AlertMechanismSchema, AlertTypeSchema, AlertWindowSchema } from "./alerts.kind.js";
|
|
13
|
+
export { observabilityKind, InfraObservabilityDescriptorSchema, ObservabilityScopeSchema, ObservabilitySettingsSchema } from "./observability.kind.js";
|
|
14
|
+
export { rumKind, InfraRumDescriptorSchema, RumPrivacySchema, RumInjectionSchema } from "./rum.kind.js";
|
|
15
|
+
export { INFRA_DISCOVERY_PATTERN, extractStem } from "./discovery.js";
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/kinds/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,mCAAmC,EAAE,iCAAiC,EAAgD,MAAM,gBAAgB,CAAC;AAC9M,OAAO,EACN,UAAU,EACV,sBAAsB,EACtB,kBAAkB,EAClB,gCAAgC,EAChC,mBAAmB,EAGnB,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,YAAY,EACZ,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,EACxB,6BAA6B,EAC7B,yBAAyB,EACzB,wBAAwB,EACxB,oBAAoB,EAGpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACN,SAAS,EACT,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAGhB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,0BAA0B,EAAwB,MAAM,cAAc,CAAC;AACrI,OAAO,EACN,iBAAiB,EACjB,6BAA6B,EAC7B,yBAAyB,EACzB,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EAInB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACN,WAAW,EACX,uBAAuB,EACvB,mBAAmB,EACnB,6BAA6B,EAC7B,yBAAyB,EACzB,sCAAsC,EACtC,0BAA0B,EAC1B,2BAA2B,EAI3B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACN,cAAc,EACd,0BAA0B,EAC1B,sBAAsB,EACtB,+BAA+B,EAC/B,oBAAoB,EACpB,0BAA0B,EAI1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACN,mBAAmB,EACnB,+BAA+B,EAC/B,2BAA2B,EAC3B,wCAAwC,EACxC,yBAAyB,EAGzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACN,QAAQ,EACR,yBAAyB,EAMzB,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,YAAY,EACZ,wBAAwB,EAIxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACN,UAAU,EACV,2BAA2B,EAC3B,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EASjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACN,iBAAiB,EACjB,kCAAkC,EAClC,wBAAwB,EACxB,2BAA2B,EAW3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACN,OAAO,EACP,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,EASlB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Infra Logs Kind
|
|
3
|
+
*
|
|
4
|
+
* Descriptor schema for log sources (Workers, Pages, D1, etc.)
|
|
5
|
+
* Provides programmatic access to logs for tailing, queries, and analytics.
|
|
6
|
+
*/
|
|
7
|
+
import * as z from 'zod/v4';
|
|
8
|
+
export declare const InfraLogsDescriptorSchema: z.ZodObject<{
|
|
9
|
+
id: z.ZodString;
|
|
10
|
+
name: z.ZodOptional<z.ZodString>;
|
|
11
|
+
description: z.ZodOptional<z.ZodString>;
|
|
12
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
13
|
+
hardware: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
14
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
15
|
+
priority: z.ZodOptional<z.ZodNumber>;
|
|
16
|
+
requiredContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
17
|
+
optionalContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
18
|
+
config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
19
|
+
kind: z.ZodLiteral<"infra/logs">;
|
|
20
|
+
adapter: z.ZodString;
|
|
21
|
+
adapterConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
22
|
+
sources: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
23
|
+
type: z.ZodEnum<{
|
|
24
|
+
worker: "worker";
|
|
25
|
+
pages: "pages";
|
|
26
|
+
d1: "d1";
|
|
27
|
+
r2: "r2";
|
|
28
|
+
kv: "kv";
|
|
29
|
+
}>;
|
|
30
|
+
name: z.ZodString;
|
|
31
|
+
environment: z.ZodOptional<z.ZodString>;
|
|
32
|
+
}, z.core.$strip>>>;
|
|
33
|
+
retention: z.ZodOptional<z.ZodObject<{
|
|
34
|
+
hotDays: z.ZodDefault<z.ZodNumber>;
|
|
35
|
+
coldDays: z.ZodDefault<z.ZodNumber>;
|
|
36
|
+
}, z.core.$strip>>;
|
|
37
|
+
alerts: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
38
|
+
name: z.ZodString;
|
|
39
|
+
condition: z.ZodEnum<{
|
|
40
|
+
duration: "duration";
|
|
41
|
+
errorRate: "errorRate";
|
|
42
|
+
invocationCount: "invocationCount";
|
|
43
|
+
}>;
|
|
44
|
+
threshold: z.ZodNumber;
|
|
45
|
+
window: z.ZodString;
|
|
46
|
+
channels: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
47
|
+
}, z.core.$strip>>>;
|
|
48
|
+
}, z.core.$strip>;
|
|
49
|
+
export type InfraLogsDescriptor = z.infer<typeof InfraLogsDescriptorSchema>;
|
|
50
|
+
export type InfraLogsDescriptorInput = z.input<typeof InfraLogsDescriptorSchema>;
|
|
51
|
+
export interface LogsImplementation {
|
|
52
|
+
/** Stream logs in real-time (returns WebSocket URL) */
|
|
53
|
+
tailLogs(sourceName: string, options?: {
|
|
54
|
+
status?: 'ok' | 'error' | 'canceled';
|
|
55
|
+
limit?: number;
|
|
56
|
+
}): Promise<{
|
|
57
|
+
tailId: string;
|
|
58
|
+
websocketUrl: string;
|
|
59
|
+
}>;
|
|
60
|
+
/** Stop a log tail session */
|
|
61
|
+
stopTail(sourceName: string, tailId: string): Promise<void>;
|
|
62
|
+
/** List active tail sessions */
|
|
63
|
+
listTails(sourceName: string): Promise<Array<{
|
|
64
|
+
id: string;
|
|
65
|
+
createdAt: string;
|
|
66
|
+
}>>;
|
|
67
|
+
/** Get analytics summary */
|
|
68
|
+
getAnalytics(sourceName: string, timeRange?: {
|
|
69
|
+
timeStart: string;
|
|
70
|
+
timeEnd?: string;
|
|
71
|
+
}): Promise<{
|
|
72
|
+
totalInvocations: number;
|
|
73
|
+
errorCount: number;
|
|
74
|
+
errorRate: number;
|
|
75
|
+
avgDurationMs: number;
|
|
76
|
+
p99DurationMs: number;
|
|
77
|
+
totalCpuTimeMs: number;
|
|
78
|
+
}>;
|
|
79
|
+
/** Get error rate */
|
|
80
|
+
getErrorRate(sourceName: string, timeRange?: {
|
|
81
|
+
timeStart: string;
|
|
82
|
+
timeEnd?: string;
|
|
83
|
+
}): Promise<number>;
|
|
84
|
+
}
|
|
85
|
+
export interface DefaultLogsImplementation {
|
|
86
|
+
generateConfig: () => InfraLogsDescriptor;
|
|
87
|
+
}
|
|
88
|
+
export declare const logsKind: import("@vibesdotdev/runtime/schemas/kind").RuntimeKindDescriptorRecord<DefaultLogsImplementation>;
|
|
89
|
+
export type InfraLogsKind = InfraLogsDescriptor;
|
|
90
|
+
export type InfraLogsKindInput = InfraLogsDescriptorInput;
|
|
91
|
+
//# sourceMappingURL=logs.kind.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.kind.d.ts","sourceRoot":"","sources":["../../src/kinds/logs.kind.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAqD5B,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAiB,CAAC;AACxD,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAEjF,MAAM,WAAW,kBAAkB;IAClC,uDAAuD;IACvD,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,IAAI,GAAG,OAAO,GAAG,UAAU,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpJ,8BAA8B;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,gCAAgC;IAChC,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACjF,4BAA4B;IAC5B,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1O,qBAAqB;IACrB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACvG;AAED,MAAM,WAAW,yBAAyB;IACzC,cAAc,EAAE,MAAM,mBAAmB,CAAC;CAC1C;AAeD,eAAO,MAAM,QAAQ,oGAMnB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAChD,MAAM,MAAM,kBAAkB,GAAG,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Infra Logs Kind
|
|
3
|
+
*
|
|
4
|
+
* Descriptor schema for log sources (Workers, Pages, D1, etc.)
|
|
5
|
+
* Provides programmatic access to logs for tailing, queries, and analytics.
|
|
6
|
+
*/
|
|
7
|
+
import * as z from 'zod/v4';
|
|
8
|
+
import { createRuntimeKind } from '@vibesdotdev/runtime/factory/kind';
|
|
9
|
+
import { RuntimeDescriptorSchema } from '@vibesdotdev/runtime/schemas/descriptor';
|
|
10
|
+
import { INFRA_DISCOVERY_PATTERN, extractStem } from "./discovery.js";
|
|
11
|
+
const LogsBaseSchema = RuntimeDescriptorSchema.extend({
|
|
12
|
+
kind: z.literal('infra/logs'),
|
|
13
|
+
/** Adapter type (e.g., 'cloudflare-logs', 'datadog', 'splunk') */
|
|
14
|
+
adapter: z.string().min(1),
|
|
15
|
+
/** Adapter-specific configuration */
|
|
16
|
+
adapterConfig: z.record(z.string(), z.unknown()).optional(),
|
|
17
|
+
/** Log sources to monitor */
|
|
18
|
+
sources: z
|
|
19
|
+
.array(z.object({
|
|
20
|
+
/** Source type */
|
|
21
|
+
type: z.enum(['worker', 'pages', 'd1', 'r2', 'kv']),
|
|
22
|
+
/** Source name/identifier */
|
|
23
|
+
name: z.string().min(1),
|
|
24
|
+
/** Optional environment filter */
|
|
25
|
+
environment: z.string().optional()
|
|
26
|
+
}))
|
|
27
|
+
.default([]),
|
|
28
|
+
/** Default retention period */
|
|
29
|
+
retention: z
|
|
30
|
+
.object({
|
|
31
|
+
/** Hot storage (immediately accessible) */
|
|
32
|
+
hotDays: z.number().int().positive().default(7),
|
|
33
|
+
/** Cold storage (requires retrieval) */
|
|
34
|
+
coldDays: z.number().int().positive().default(30)
|
|
35
|
+
})
|
|
36
|
+
.optional(),
|
|
37
|
+
/** Alerting configuration */
|
|
38
|
+
alerts: z
|
|
39
|
+
.array(z.object({
|
|
40
|
+
/** Alert name */
|
|
41
|
+
name: z.string().min(1),
|
|
42
|
+
/** Alert condition */
|
|
43
|
+
condition: z.enum(['errorRate', 'duration', 'invocationCount']),
|
|
44
|
+
/** Threshold value */
|
|
45
|
+
threshold: z.number(),
|
|
46
|
+
/** Time window for evaluation */
|
|
47
|
+
window: z.string(),
|
|
48
|
+
/** Notification channels */
|
|
49
|
+
channels: z.array(z.string()).default([])
|
|
50
|
+
}))
|
|
51
|
+
.default([])
|
|
52
|
+
});
|
|
53
|
+
export const InfraLogsDescriptorSchema = LogsBaseSchema;
|
|
54
|
+
class DefaultLogsImplementationClass {
|
|
55
|
+
generateConfig() {
|
|
56
|
+
return {
|
|
57
|
+
kind: 'infra/logs',
|
|
58
|
+
id: 'default-logs',
|
|
59
|
+
name: 'Default Logs',
|
|
60
|
+
adapter: 'unknown',
|
|
61
|
+
sources: [],
|
|
62
|
+
alerts: []
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
export const logsKind = createRuntimeKind({
|
|
67
|
+
id: 'infra/logs',
|
|
68
|
+
descriptorSchema: InfraLogsDescriptorSchema,
|
|
69
|
+
defaultImplementation: DefaultLogsImplementationClass,
|
|
70
|
+
discoveryPattern: INFRA_DISCOVERY_PATTERN,
|
|
71
|
+
extractStem
|
|
72
|
+
});
|
|
73
|
+
//# sourceMappingURL=logs.kind.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.kind.js","sourceRoot":"","sources":["../../src/kinds/logs.kind.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAElF,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEtE,MAAM,cAAc,GAAG,uBAAuB,CAAC,MAAM,CAAC;IACrD,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;IAC7B,kEAAkE;IAClE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,qCAAqC;IACrC,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC3D,6BAA6B;IAC7B,OAAO,EAAE,CAAC;SACR,KAAK,CACL,CAAC,CAAC,MAAM,CAAC;QACR,kBAAkB;QAClB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACnD,6BAA6B;QAC7B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACvB,kCAAkC;QAClC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAClC,CAAC,CACF;SACA,OAAO,CAAC,EAAE,CAAC;IACb,+BAA+B;IAC/B,SAAS,EAAE,CAAC;SACV,MAAM,CAAC;QACP,2CAA2C;QAC3C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/C,wCAAwC;QACxC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;KACjD,CAAC;SACD,QAAQ,EAAE;IACZ,6BAA6B;IAC7B,MAAM,EAAE,CAAC;SACP,KAAK,CACL,CAAC,CAAC,MAAM,CAAC;QACR,iBAAiB;QACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACvB,sBAAsB;QACtB,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;QAC/D,sBAAsB;QACtB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,iCAAiC;QACjC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,4BAA4B;QAC5B,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;KACzC,CAAC,CACF;SACA,OAAO,CAAC,EAAE,CAAC;CACb,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,cAAc,CAAC;AAqBxD,MAAM,8BAA8B;IACnC,cAAc;QACb,OAAO;YACN,IAAI,EAAE,YAAY;YAClB,EAAE,EAAE,cAAc;YAClB,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,EAAE;SACV,CAAC;IACH,CAAC;CACD;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,iBAAiB,CAAiD;IACzF,EAAE,EAAE,YAAY;IAChB,gBAAgB,EAAE,yBAAyB;IAC3C,qBAAqB,EAAE,8BAA8B;IACrD,gBAAgB,EAAE,uBAAuB;IACzC,WAAW;CACX,CAAC,CAAC"}
|