@rizom/ops 0.2.0-alpha.254 → 0.2.0-alpha.256

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.
@@ -0,0 +1,63 @@
1
+ import type { FetchLike } from "@brains/deploy-support/origin-ca";
2
+ import { type DirectorySyncStressPhase, type DirectorySyncStressProfile, type DirectorySyncStressReport, type StressRuntimeSample } from "./directory-sync-stress";
3
+ export interface StressCommandOptions {
4
+ cwd?: string;
5
+ env?: NodeJS.ProcessEnv;
6
+ stdin?: string;
7
+ }
8
+ export interface StressCommandResult {
9
+ exitCode: number;
10
+ stdout: string;
11
+ stderr: string;
12
+ }
13
+ export type StressCommandRunner = (command: string, args: readonly string[], options?: StressCommandOptions) => Promise<StressCommandResult>;
14
+ export interface DeployedDirectorySyncStressOptions {
15
+ rootDir: string;
16
+ handle: string;
17
+ profile: DirectorySyncStressProfile;
18
+ confirmation: string;
19
+ artifactsDir?: string;
20
+ env?: NodeJS.ProcessEnv;
21
+ fetchImpl?: FetchLike;
22
+ commandRunner?: StressCommandRunner;
23
+ logger?: (message: string) => void;
24
+ now?: () => Date;
25
+ sleep?: (milliseconds: number) => Promise<void>;
26
+ }
27
+ export interface CleanupDirectorySyncStressOptions {
28
+ rootDir: string;
29
+ handle: string;
30
+ confirmation: string;
31
+ artifactsDir?: string;
32
+ env?: NodeJS.ProcessEnv;
33
+ commandRunner?: StressCommandRunner;
34
+ logger?: (message: string) => void;
35
+ now?: () => Date;
36
+ }
37
+ export interface DeployedDirectorySyncStressResult {
38
+ runId: string;
39
+ artifactsDir: string;
40
+ target: {
41
+ handle: string;
42
+ domain: string;
43
+ contentRepo: string;
44
+ };
45
+ startedAt: string;
46
+ completedAt: string;
47
+ report: DirectorySyncStressReport;
48
+ }
49
+ export interface CleanupDirectorySyncStressResult {
50
+ success: boolean;
51
+ artifactsDir: string;
52
+ probesRemoved: number;
53
+ probesRemaining: number;
54
+ backupBranchesDeleted: string[];
55
+ cleanupCommit?: string;
56
+ }
57
+ export declare function runDeployedDirectorySyncStress(options: DeployedDirectorySyncStressOptions): Promise<DeployedDirectorySyncStressResult>;
58
+ export declare function cleanupDirectorySyncStress(options: CleanupDirectorySyncStressOptions): Promise<CleanupDirectorySyncStressResult>;
59
+ export declare function applyDirectorySyncStressPhase(checkoutDir: string, phase: DirectorySyncStressPhase): Promise<void>;
60
+ export declare function listProbeFiles(checkoutDir: string): Promise<string[]>;
61
+ export declare function removeProbeFiles(checkoutDir: string): Promise<number>;
62
+ export declare function parseStressRuntimeSample(output: string, timestamp: string): StressRuntimeSample | undefined;
63
+ export declare const runStressCommand: StressCommandRunner;
@@ -0,0 +1,105 @@
1
+ import type { FetchLike } from "@brains/deploy-support/origin-ca";
2
+ import { z } from "@brains/utils/zod";
3
+ export type DirectorySyncStressProfile = "regression" | "load" | "stress";
4
+ export type DirectorySyncStressOperation = "add" | "update" | "rename" | "delete";
5
+ export interface DirectorySyncStressPhase {
6
+ id: string;
7
+ operation: DirectorySyncStressOperation;
8
+ count: number;
9
+ targetProbeCount: number;
10
+ settleMs: number;
11
+ }
12
+ export interface DirectorySyncStressPlan {
13
+ profile: DirectorySyncStressProfile;
14
+ maximumProbeCount: number;
15
+ phases: DirectorySyncStressPhase[];
16
+ }
17
+ export interface StressBaseline {
18
+ entities: number;
19
+ notes: number;
20
+ version: string;
21
+ }
22
+ export interface StressHealthSample {
23
+ timestamp: string;
24
+ endpoint: string;
25
+ status: number;
26
+ durationMs: number;
27
+ ok: boolean;
28
+ error?: string | undefined;
29
+ }
30
+ export interface StressRuntimeSample {
31
+ timestamp: string;
32
+ cpuPercent: number;
33
+ memoryPercent: number;
34
+ pids: number;
35
+ }
36
+ export interface StressPhaseResult {
37
+ id: string;
38
+ operation: DirectorySyncStressOperation;
39
+ count: number;
40
+ success: boolean;
41
+ commitLatencyMs?: number | undefined;
42
+ persistenceLatencyMs?: number | undefined;
43
+ error?: string | undefined;
44
+ }
45
+ export interface StressCleanupResult {
46
+ success: boolean;
47
+ probesRemaining: number;
48
+ finalEntities?: number | undefined;
49
+ finalNotes?: number | undefined;
50
+ contentTreeRestored?: boolean | undefined;
51
+ error?: string | undefined;
52
+ }
53
+ export interface StressContainerState {
54
+ status: string;
55
+ restartCount: number;
56
+ oomKilled: boolean;
57
+ }
58
+ export interface StressMetrics {
59
+ health: StressHealthSample[];
60
+ runtime: StressRuntimeSample[];
61
+ container?: StressContainerState | undefined;
62
+ }
63
+ export interface DirectorySyncStressReport {
64
+ profile: DirectorySyncStressProfile;
65
+ success: boolean;
66
+ baseline: StressBaseline;
67
+ phases: StressPhaseResult[];
68
+ cleanup: StressCleanupResult;
69
+ metrics: StressMetrics;
70
+ failure?: string | undefined;
71
+ }
72
+ export declare const directorySyncStressProfileSchema: z.ZodType<DirectorySyncStressProfile>;
73
+ export declare const directorySyncStressOperationSchema: z.ZodType<DirectorySyncStressOperation>;
74
+ export declare const directorySyncStressPhaseSchema: z.ZodType<DirectorySyncStressPhase>;
75
+ export declare const directorySyncStressPlanSchema: z.ZodType<DirectorySyncStressPlan>;
76
+ export declare const stressBaselineSchema: z.ZodType<StressBaseline>;
77
+ export declare const stressHealthSampleSchema: z.ZodType<StressHealthSample>;
78
+ export declare const stressRuntimeSampleSchema: z.ZodType<StressRuntimeSample>;
79
+ export declare const stressPhaseResultSchema: z.ZodType<StressPhaseResult>;
80
+ export declare const stressCleanupResultSchema: z.ZodType<StressCleanupResult>;
81
+ export declare const stressMetricsSchema: z.ZodType<StressMetrics>;
82
+ export declare const directorySyncStressReportSchema: z.ZodType<DirectorySyncStressReport>;
83
+ export interface DirectorySyncStressTarget {
84
+ handle: string;
85
+ domain: string;
86
+ contentRepo: string;
87
+ confirmation: string;
88
+ }
89
+ export interface DirectorySyncStressDriver {
90
+ prepare(plan: DirectorySyncStressPlan): Promise<StressBaseline>;
91
+ startMonitoring(): Promise<void>;
92
+ executePhase(phase: DirectorySyncStressPhase, baseline: StressBaseline): Promise<StressPhaseResult>;
93
+ cleanup(baseline: StressBaseline): Promise<StressCleanupResult>;
94
+ stopMonitoring(): Promise<StressMetrics>;
95
+ }
96
+ export declare function resolveDirectorySyncStressPlan(profile: DirectorySyncStressProfile): DirectorySyncStressPlan;
97
+ export declare function assertDirectorySyncStressTarget(target: DirectorySyncStressTarget): void;
98
+ export interface SampleStressHealthOptions {
99
+ fetchImpl?: FetchLike;
100
+ now?: () => Date;
101
+ timeoutMs?: number;
102
+ }
103
+ export declare function sampleStressHealth(url: string, options?: SampleStressHealthOptions): Promise<StressHealthSample>;
104
+ export declare function runDirectorySyncStressPlan(plan: DirectorySyncStressPlan, driver: DirectorySyncStressDriver): Promise<DirectorySyncStressReport>;
105
+ export declare function stressMetricsFailure(metrics: StressMetrics): string | undefined;
package/dist/index.d.ts CHANGED
@@ -14,5 +14,7 @@ export { bootstrapPilotOriginCertificate, runPilotCertBootstrap, } from "./cert-
14
14
  export { encryptPilotSecrets } from "./secrets-encrypt";
15
15
  export { pushPilotSecrets } from "./secrets-push";
16
16
  export { verifyPilotUser } from "./verify-user";
17
+ export { assertDirectorySyncStressTarget, directorySyncStressPlanSchema, directorySyncStressProfileSchema, directorySyncStressReportSchema, resolveDirectorySyncStressPlan, runDirectorySyncStressPlan, sampleStressHealth, stressMetricsFailure, type DirectorySyncStressDriver, type DirectorySyncStressPhase, type DirectorySyncStressPlan, type DirectorySyncStressProfile, type DirectorySyncStressReport, } from "./directory-sync-stress";
18
+ export { cleanupDirectorySyncStress, runDeployedDirectorySyncStress, type CleanupDirectorySyncStressOptions, type CleanupDirectorySyncStressResult, type DeployedDirectorySyncStressOptions, type DeployedDirectorySyncStressResult, } from "./directory-sync-stress-system";
17
19
  export { runCommand, type CommandResult } from "./run-command";
18
20
  export { pilotSchema, cohortSchema, canonicalBundleIdSchema, type PilotConfig, type CohortConfig, } from "./schema";