perf-skill 0.0.1 → 0.2.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.
Files changed (120) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +404 -0
  3. package/SKILL.md +238 -0
  4. package/dist/cli/init.d.ts +29 -0
  5. package/dist/cli/init.d.ts.map +1 -0
  6. package/dist/cli/init.js +139 -0
  7. package/dist/cli/init.js.map +1 -0
  8. package/dist/cli/main.d.ts +6 -0
  9. package/dist/cli/main.d.ts.map +1 -0
  10. package/dist/cli/main.js +389 -0
  11. package/dist/cli/main.js.map +1 -0
  12. package/dist/cli/options.d.ts +37 -0
  13. package/dist/cli/options.d.ts.map +1 -0
  14. package/dist/cli/options.js +54 -0
  15. package/dist/cli/options.js.map +1 -0
  16. package/dist/convert/converter.d.ts +39 -0
  17. package/dist/convert/converter.d.ts.map +1 -0
  18. package/dist/convert/converter.js +99 -0
  19. package/dist/convert/converter.js.map +1 -0
  20. package/dist/convert/extract.d.ts +32 -0
  21. package/dist/convert/extract.d.ts.map +1 -0
  22. package/dist/convert/extract.js +235 -0
  23. package/dist/convert/extract.js.map +1 -0
  24. package/dist/convert/index.d.ts +7 -0
  25. package/dist/convert/index.d.ts.map +1 -0
  26. package/dist/convert/index.js +7 -0
  27. package/dist/convert/index.js.map +1 -0
  28. package/dist/convert/sanitize.d.ts +60 -0
  29. package/dist/convert/sanitize.d.ts.map +1 -0
  30. package/dist/convert/sanitize.js +169 -0
  31. package/dist/convert/sanitize.js.map +1 -0
  32. package/dist/diff/engine.d.ts +76 -0
  33. package/dist/diff/engine.d.ts.map +1 -0
  34. package/dist/diff/engine.js +386 -0
  35. package/dist/diff/engine.js.map +1 -0
  36. package/dist/diff/index.d.ts +6 -0
  37. package/dist/diff/index.d.ts.map +1 -0
  38. package/dist/diff/index.js +6 -0
  39. package/dist/diff/index.js.map +1 -0
  40. package/dist/diff/markdown.d.ts +16 -0
  41. package/dist/diff/markdown.d.ts.map +1 -0
  42. package/dist/diff/markdown.js +342 -0
  43. package/dist/diff/markdown.js.map +1 -0
  44. package/dist/index.d.ts +52 -0
  45. package/dist/index.d.ts.map +1 -0
  46. package/dist/index.js +247 -0
  47. package/dist/index.js.map +1 -0
  48. package/dist/llm/client.d.ts +39 -0
  49. package/dist/llm/client.d.ts.map +1 -0
  50. package/dist/llm/client.js +270 -0
  51. package/dist/llm/client.js.map +1 -0
  52. package/dist/llm/index.d.ts +8 -0
  53. package/dist/llm/index.d.ts.map +1 -0
  54. package/dist/llm/index.js +8 -0
  55. package/dist/llm/index.js.map +1 -0
  56. package/dist/llm/prompt.d.ts +32 -0
  57. package/dist/llm/prompt.d.ts.map +1 -0
  58. package/dist/llm/prompt.js +146 -0
  59. package/dist/llm/prompt.js.map +1 -0
  60. package/dist/llm/schema.d.ts +150 -0
  61. package/dist/llm/schema.d.ts.map +1 -0
  62. package/dist/llm/schema.js +131 -0
  63. package/dist/llm/schema.js.map +1 -0
  64. package/dist/llm/validate.d.ts +33 -0
  65. package/dist/llm/validate.d.ts.map +1 -0
  66. package/dist/llm/validate.js +241 -0
  67. package/dist/llm/validate.js.map +1 -0
  68. package/dist/profile/duration.d.ts +2 -0
  69. package/dist/profile/duration.d.ts.map +1 -0
  70. package/dist/profile/duration.js +24 -0
  71. package/dist/profile/duration.js.map +1 -0
  72. package/dist/profile/preload.d.ts +2 -0
  73. package/dist/profile/preload.d.ts.map +1 -0
  74. package/dist/profile/preload.js +100 -0
  75. package/dist/profile/preload.js.map +1 -0
  76. package/dist/profile/runner.d.ts +22 -0
  77. package/dist/profile/runner.d.ts.map +1 -0
  78. package/dist/profile/runner.js +88 -0
  79. package/dist/profile/runner.js.map +1 -0
  80. package/dist/server/http.d.ts +27 -0
  81. package/dist/server/http.d.ts.map +1 -0
  82. package/dist/server/http.js +285 -0
  83. package/dist/server/http.js.map +1 -0
  84. package/dist/server/utils.d.ts +15 -0
  85. package/dist/server/utils.d.ts.map +1 -0
  86. package/dist/server/utils.js +71 -0
  87. package/dist/server/utils.js.map +1 -0
  88. package/dist/skill/handler.d.ts +77 -0
  89. package/dist/skill/handler.d.ts.map +1 -0
  90. package/dist/skill/handler.js +91 -0
  91. package/dist/skill/handler.js.map +1 -0
  92. package/dist/skill/index.d.ts +6 -0
  93. package/dist/skill/index.d.ts.map +1 -0
  94. package/dist/skill/index.js +6 -0
  95. package/dist/skill/index.js.map +1 -0
  96. package/dist/skill/manifest.d.ts +17 -0
  97. package/dist/skill/manifest.d.ts.map +1 -0
  98. package/dist/skill/manifest.js +231 -0
  99. package/dist/skill/manifest.js.map +1 -0
  100. package/dist/types.d.ts +260 -0
  101. package/dist/types.d.ts.map +1 -0
  102. package/dist/types.js +5 -0
  103. package/dist/types.js.map +1 -0
  104. package/dist/utils/fs.d.ts +52 -0
  105. package/dist/utils/fs.d.ts.map +1 -0
  106. package/dist/utils/fs.js +106 -0
  107. package/dist/utils/fs.js.map +1 -0
  108. package/dist/utils/index.d.ts +7 -0
  109. package/dist/utils/index.d.ts.map +1 -0
  110. package/dist/utils/index.js +7 -0
  111. package/dist/utils/index.js.map +1 -0
  112. package/dist/utils/limits.d.ts +38 -0
  113. package/dist/utils/limits.d.ts.map +1 -0
  114. package/dist/utils/limits.js +86 -0
  115. package/dist/utils/limits.js.map +1 -0
  116. package/dist/utils/logger.d.ts +21 -0
  117. package/dist/utils/logger.d.ts.map +1 -0
  118. package/dist/utils/logger.js +82 -0
  119. package/dist/utils/logger.js.map +1 -0
  120. package/package.json +70 -6
@@ -0,0 +1,231 @@
1
+ /**
2
+ * Skill manifest for AI platform integration
3
+ */
4
+ /**
5
+ * Full skill manifest with JSON schemas
6
+ */
7
+ export const SKILL_MANIFEST = {
8
+ name: "pprof_ai_analyzer",
9
+ description: "Convert pprof .pb.gz profiles to Markdown and generate AI-powered performance recommendations. Supports CPU and heap profiling analysis, profile comparison/diff, and actionable optimization suggestions.",
10
+ version: "1.0.0",
11
+ inputSchema: {
12
+ type: "object",
13
+ oneOf: [
14
+ {
15
+ title: "Analyze Single Profile",
16
+ properties: {
17
+ action: { type: "string", const: "analyze" },
18
+ profile_base64: {
19
+ type: "string",
20
+ description: "Base64 encoded pprof profile (.pb.gz)",
21
+ },
22
+ profile_path: {
23
+ type: "string",
24
+ description: "Path to pprof profile file",
25
+ },
26
+ format: {
27
+ type: "string",
28
+ enum: ["summary", "detailed", "adaptive"],
29
+ default: "adaptive",
30
+ },
31
+ profile_type: {
32
+ type: "string",
33
+ enum: ["cpu", "heap", "auto"],
34
+ default: "auto",
35
+ },
36
+ max_hotspots: {
37
+ type: "integer",
38
+ minimum: 1,
39
+ maximum: 50,
40
+ default: 10,
41
+ },
42
+ include_source: {
43
+ type: "boolean",
44
+ default: false,
45
+ },
46
+ mode: {
47
+ type: "string",
48
+ enum: ["convert-only", "analyze"],
49
+ default: "analyze",
50
+ description: "convert-only skips LLM analysis",
51
+ },
52
+ context: {
53
+ type: "object",
54
+ properties: {
55
+ service_name: { type: "string" },
56
+ scenario: { type: "string" },
57
+ target_slo: { type: "string" },
58
+ env: { type: "string" },
59
+ recent_changes: { type: "string" },
60
+ },
61
+ },
62
+ },
63
+ required: [],
64
+ oneOf: [
65
+ { required: ["profile_base64"] },
66
+ { required: ["profile_path"] },
67
+ ],
68
+ },
69
+ {
70
+ title: "Diff Two Profiles",
71
+ properties: {
72
+ action: { type: "string", const: "diff" },
73
+ base_profile_base64: { type: "string" },
74
+ base_profile_path: { type: "string" },
75
+ current_profile_base64: { type: "string" },
76
+ current_profile_path: { type: "string" },
77
+ format: {
78
+ type: "string",
79
+ enum: ["diff-summary", "diff-detailed", "diff-adaptive"],
80
+ default: "diff-adaptive",
81
+ },
82
+ normalize: {
83
+ type: "string",
84
+ enum: ["none", "scale-to-base-total", "per-second"],
85
+ default: "scale-to-base-total",
86
+ },
87
+ max_regressions: {
88
+ type: "integer",
89
+ minimum: 1,
90
+ maximum: 20,
91
+ default: 10,
92
+ },
93
+ max_improvements: {
94
+ type: "integer",
95
+ minimum: 1,
96
+ maximum: 20,
97
+ default: 5,
98
+ },
99
+ },
100
+ required: ["action"],
101
+ },
102
+ ],
103
+ },
104
+ outputSchema: {
105
+ type: "object",
106
+ properties: {
107
+ markdown: {
108
+ type: "string",
109
+ description: "Full markdown report",
110
+ },
111
+ profile_meta: {
112
+ type: "object",
113
+ properties: {
114
+ type: { type: "string", enum: ["cpu", "heap"] },
115
+ duration_sec: { type: "number" },
116
+ samples: { type: "integer" },
117
+ sample_type: { type: "string" },
118
+ unit: { type: "string" },
119
+ },
120
+ },
121
+ hotspots: {
122
+ type: "array",
123
+ items: {
124
+ type: "object",
125
+ properties: {
126
+ rank: { type: "integer" },
127
+ function: { type: "string" },
128
+ self_pct: { type: "number" },
129
+ cum_pct: { type: "number" },
130
+ location: { type: "string" },
131
+ call_path: { type: "array", items: { type: "string" } },
132
+ },
133
+ required: ["rank", "function"],
134
+ },
135
+ },
136
+ recommendations: {
137
+ type: "array",
138
+ items: {
139
+ type: "object",
140
+ properties: {
141
+ title: { type: "string" },
142
+ rationale: { type: "string" },
143
+ steps: { type: "array", items: { type: "string" } },
144
+ expected_impact: { type: "string", enum: ["high", "medium", "low"] },
145
+ risk: { type: "string", enum: ["high", "medium", "low"] },
146
+ confidence: { type: "number", minimum: 0, maximum: 1 },
147
+ },
148
+ required: ["title", "rationale", "steps", "expected_impact", "risk", "confidence"],
149
+ },
150
+ },
151
+ next_steps: {
152
+ type: "array",
153
+ items: { type: "string" },
154
+ },
155
+ // Diff-specific fields
156
+ regressions: {
157
+ type: "array",
158
+ items: {
159
+ type: "object",
160
+ properties: {
161
+ rank: { type: "integer" },
162
+ function: { type: "string" },
163
+ delta_self: { type: "number" },
164
+ delta_self_pct: { type: "number" },
165
+ change_type: { type: "string", enum: ["regression", "improvement", "new", "removed"] },
166
+ },
167
+ },
168
+ },
169
+ improvements: {
170
+ type: "array",
171
+ items: {
172
+ type: "object",
173
+ },
174
+ },
175
+ summary: {
176
+ type: "array",
177
+ items: { type: "string" },
178
+ description: "Executive summary points for diff",
179
+ },
180
+ },
181
+ required: ["markdown", "hotspots"],
182
+ },
183
+ };
184
+ /**
185
+ * Get manifest as JSON string
186
+ */
187
+ export function getManifestJson() {
188
+ return JSON.stringify(SKILL_MANIFEST, null, 2);
189
+ }
190
+ /**
191
+ * Get simplified manifest for function calling
192
+ */
193
+ export function getFunctionCallingManifest() {
194
+ return {
195
+ name: "analyze_pprof_profile",
196
+ description: SKILL_MANIFEST.description,
197
+ parameters: {
198
+ type: "object",
199
+ properties: {
200
+ profile_base64: {
201
+ type: "string",
202
+ description: "Base64 encoded pprof profile (.pb.gz)",
203
+ },
204
+ format: {
205
+ type: "string",
206
+ enum: ["summary", "detailed", "adaptive"],
207
+ description: "Output format (default: adaptive)",
208
+ },
209
+ profile_type: {
210
+ type: "string",
211
+ enum: ["cpu", "heap", "auto"],
212
+ description: "Profile type (default: auto-detect)",
213
+ },
214
+ max_hotspots: {
215
+ type: "integer",
216
+ description: "Maximum hotspots to show (default: 10)",
217
+ },
218
+ service_name: {
219
+ type: "string",
220
+ description: "Name of the service being profiled",
221
+ },
222
+ scenario: {
223
+ type: "string",
224
+ description: "Scenario context (e.g., 'load test', 'production incident')",
225
+ },
226
+ },
227
+ required: ["profile_base64"],
228
+ },
229
+ };
230
+ }
231
+ //# sourceMappingURL=manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/skill/manifest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,260 @@
1
+ /**
2
+ * Core types for perf-skill
3
+ */
4
+ export type ProfileType = "cpu" | "heap" | "auto";
5
+ export type OutputFormat = "summary" | "detailed" | "adaptive";
6
+ export type DiffFormat = "diff-summary" | "diff-detailed" | "diff-adaptive";
7
+ export type NormalizeMode = "none" | "scale-to-base-total" | "per-second";
8
+ export interface ConvertOptions {
9
+ /** Output format: summary, detailed, or adaptive */
10
+ format?: OutputFormat;
11
+ /** Profile type: cpu, heap, or auto-detect */
12
+ profileType?: ProfileType;
13
+ /** Maximum number of hotspots to include */
14
+ maxHotspots?: number;
15
+ /** Source directory for code context */
16
+ sourceDir?: string;
17
+ /** Include source code in output */
18
+ includeSource?: boolean;
19
+ }
20
+ export interface LLMConfig {
21
+ provider: "openai" | "azure-openai" | "anthropic" | "custom";
22
+ model: string;
23
+ apiKey?: string;
24
+ baseUrl?: string;
25
+ maxTokens?: number;
26
+ temperature?: number;
27
+ maxRetries?: number;
28
+ retryDelayMs?: number;
29
+ timeoutMs?: number;
30
+ }
31
+ export interface AnalysisContext {
32
+ /** Service or application name */
33
+ serviceName?: string;
34
+ /** Scenario description (e.g., load test, production, specific API) */
35
+ scenario?: string;
36
+ /** Target SLO (e.g., p99 < 100ms) */
37
+ targetSLO?: string;
38
+ /** Environment (prod, staging, dev) */
39
+ env?: string;
40
+ /** Recent changes or deployment info */
41
+ recentChanges?: string;
42
+ }
43
+ export interface ResourceLimits {
44
+ /** Maximum profile file size in bytes (compressed) */
45
+ maxProfileBytes?: number;
46
+ /** Maximum decompressed profile size in bytes */
47
+ maxDecompressedBytes?: number;
48
+ /** Maximum markdown output characters */
49
+ maxMarkdownChars?: number;
50
+ /** Maximum source lines per file */
51
+ maxSourceLinesPerFile?: number;
52
+ /** Processing timeout in milliseconds */
53
+ timeoutMs?: number;
54
+ }
55
+ export interface AnalyzeOptions extends ConvertOptions {
56
+ /** Mode: convert-only skips LLM, analyze includes recommendations */
57
+ mode?: "convert-only" | "analyze";
58
+ /** LLM configuration */
59
+ llm?: LLMConfig;
60
+ /** Analysis context */
61
+ context?: AnalysisContext;
62
+ /** Resource limits */
63
+ limits?: ResourceLimits;
64
+ /** Redact sensitive information */
65
+ redact?: boolean;
66
+ }
67
+ export interface DiffOptions extends Omit<ConvertOptions, "format"> {
68
+ /** Diff output format */
69
+ format?: DiffFormat | OutputFormat;
70
+ /** Normalization mode for comparison */
71
+ normalize?: NormalizeMode;
72
+ /** Maximum regressions to show */
73
+ maxRegressions?: number;
74
+ /** Maximum improvements to show */
75
+ maxImprovements?: number;
76
+ /** Minimum absolute delta to report */
77
+ minAbsoluteDelta?: number;
78
+ /** Minimum percentage delta to report */
79
+ minPercentDelta?: number;
80
+ /** Disable inline frame expansion */
81
+ noInlines?: boolean;
82
+ /** Resource limits */
83
+ limits?: ResourceLimits;
84
+ }
85
+ export interface Hotspot {
86
+ /** Rank by impact */
87
+ rank: number;
88
+ /** Function name */
89
+ function: string;
90
+ /** Self percentage (flat) */
91
+ selfPct?: number;
92
+ /** Cumulative percentage */
93
+ cumPct?: number;
94
+ /** Self value (samples/bytes) */
95
+ selfValue?: number;
96
+ /** Cumulative value */
97
+ cumValue?: number;
98
+ /** Source location (file:line) */
99
+ location?: string;
100
+ /** Call path from root to this function */
101
+ callPath?: string[];
102
+ /** Callers of this function */
103
+ callers?: string[];
104
+ /** Callees of this function */
105
+ callees?: string[];
106
+ }
107
+ export interface Recommendation {
108
+ /** Short title */
109
+ title: string;
110
+ /** Explanation with evidence from report */
111
+ rationale: string;
112
+ /** Concrete action steps */
113
+ steps: string[];
114
+ /** Expected performance impact */
115
+ expectedImpact: "high" | "medium" | "low";
116
+ /** Implementation risk */
117
+ risk: "high" | "medium" | "low";
118
+ /** Confidence level 0-1 */
119
+ confidence: number;
120
+ /** Related hotspot ranks */
121
+ relatedHotspots?: number[];
122
+ }
123
+ export interface ProfileMeta {
124
+ type?: "cpu" | "heap";
125
+ /** Duration in seconds (for CPU profiles) */
126
+ durationSec?: number;
127
+ /** Total samples */
128
+ samples?: number;
129
+ /** Total value (samples for CPU, bytes for heap) */
130
+ totalValue?: number;
131
+ /** Sample type (e.g., "samples", "cpu", "alloc_space") */
132
+ sampleType?: string;
133
+ /** Value unit */
134
+ unit?: string;
135
+ }
136
+ export interface AnalyzeResult {
137
+ /** Profile metadata */
138
+ profileMeta?: ProfileMeta;
139
+ /** Final markdown report (may include LLM appendix) */
140
+ markdown: string;
141
+ /** Extracted hotspots */
142
+ hotspots: Hotspot[];
143
+ /** LLM-generated recommendations (if mode=analyze) */
144
+ recommendations?: Recommendation[];
145
+ /** Suggested next steps for validation */
146
+ nextSteps?: string[];
147
+ /** Raw outputs for debugging */
148
+ raw?: {
149
+ /** Original pprof-to-md output */
150
+ pprofToMdMarkdown: string;
151
+ /** Raw LLM JSON response */
152
+ llmJson?: unknown;
153
+ /** LLM parse errors if any */
154
+ llmErrors?: string[];
155
+ };
156
+ /** Processing metrics */
157
+ metrics?: {
158
+ convertMs: number;
159
+ llmMs?: number;
160
+ totalMs: number;
161
+ profileBytes: number;
162
+ markdownChars: number;
163
+ };
164
+ }
165
+ export interface DiffHotspot extends Hotspot {
166
+ /** Delta in self value */
167
+ deltaSelf: number;
168
+ /** Delta in cumulative value */
169
+ deltaCum: number;
170
+ /** Delta as percentage of base */
171
+ deltaSelfPct: number;
172
+ deltaCumPct: number;
173
+ /** Base profile values */
174
+ baseSelf?: number;
175
+ baseCum?: number;
176
+ baseSelfPct?: number;
177
+ baseCumPct?: number;
178
+ /** Current profile values */
179
+ currentSelf?: number;
180
+ currentCum?: number;
181
+ currentSelfPct?: number;
182
+ currentCumPct?: number;
183
+ /** Change type */
184
+ changeType: "regression" | "improvement" | "new" | "removed";
185
+ }
186
+ export interface DiffCallPath {
187
+ /** Full path from root to leaf */
188
+ path: string[];
189
+ /** Delta value */
190
+ deltaValue: number;
191
+ /** Base value */
192
+ baseValue?: number;
193
+ /** Current value */
194
+ currentValue?: number;
195
+ }
196
+ export interface DiffResult {
197
+ /** Base profile metadata */
198
+ baseMeta?: ProfileMeta;
199
+ /** Current profile metadata */
200
+ currentMeta?: ProfileMeta;
201
+ /** Markdown diff report */
202
+ markdown: string;
203
+ /** Top regressions (functions that got worse) */
204
+ regressions: DiffHotspot[];
205
+ /** Top improvements (functions that got better) */
206
+ improvements: DiffHotspot[];
207
+ /** New functions (not in base) */
208
+ newFunctions?: DiffHotspot[];
209
+ /** Removed functions (not in current) */
210
+ removedFunctions?: DiffHotspot[];
211
+ /** Executive summary points */
212
+ summary: string[];
213
+ /** Key regression call paths */
214
+ regressionPaths?: DiffCallPath[];
215
+ /** LLM recommendations if requested */
216
+ recommendations?: Recommendation[];
217
+ /** Processing metrics */
218
+ metrics?: {
219
+ parseBaseMs: number;
220
+ parseCurrentMs: number;
221
+ diffMs: number;
222
+ llmMs?: number;
223
+ totalMs: number;
224
+ };
225
+ }
226
+ export interface SkillManifest {
227
+ name: string;
228
+ description: string;
229
+ version: string;
230
+ inputSchema: object;
231
+ outputSchema: object;
232
+ }
233
+ export interface AnalyzeRequest {
234
+ /** Base64 encoded profile or file path */
235
+ profile: string;
236
+ /** Profile encoding type */
237
+ profileEncoding?: "base64" | "path";
238
+ /** Analysis options */
239
+ options?: AnalyzeOptions;
240
+ }
241
+ export interface DiffRequest {
242
+ /** Base profile (base64 or path) */
243
+ baseProfile: string;
244
+ /** Current profile (base64 or path) */
245
+ currentProfile: string;
246
+ /** Profile encoding type */
247
+ profileEncoding?: "base64" | "path";
248
+ /** Diff options */
249
+ options?: DiffOptions & AnalyzeOptions;
250
+ }
251
+ export interface ApiResponse<T> {
252
+ success: boolean;
253
+ data?: T;
254
+ error?: {
255
+ code: string;
256
+ message: string;
257
+ details?: unknown;
258
+ };
259
+ }
260
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Core types for perf-skill
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * File system utilities for temporary file management
3
+ */
4
+ /**
5
+ * Generate a unique temporary file path
6
+ */
7
+ export declare function getTempPath(prefix?: string, ext?: string): string;
8
+ /**
9
+ * Write data to a temporary file and return the path
10
+ */
11
+ export declare function writeToTemp(data: Uint8Array | Buffer, prefix?: string, ext?: string): Promise<string>;
12
+ /**
13
+ * Safely remove a file (ignores errors)
14
+ */
15
+ export declare function safeRemove(path: string): Promise<void>;
16
+ /**
17
+ * Execute a function with a temporary file, ensuring cleanup
18
+ */
19
+ export declare function withTempFile<T>(data: Uint8Array | Buffer, fn: (path: string) => Promise<T>, prefix?: string, ext?: string): Promise<T>;
20
+ /**
21
+ * Read and decompress a gzipped file
22
+ */
23
+ export declare function readGzipFile(path: string, maxOutputBytes?: number): Promise<Buffer>;
24
+ /**
25
+ * Decompress data if gzipped
26
+ */
27
+ export declare function decompressIfNeeded(data: Uint8Array | Buffer, maxOutputBytes?: number): Buffer;
28
+ /**
29
+ * Compress data with gzip
30
+ */
31
+ export declare function compressGzip(data: Uint8Array | Buffer): Buffer;
32
+ /**
33
+ * Pick a profile file extension based on compression
34
+ */
35
+ export declare function getProfileExtension(data: Uint8Array | Buffer): ".pb.gz" | ".pb";
36
+ /**
37
+ * Ensure directory exists
38
+ */
39
+ export declare function ensureDir(path: string): Promise<void>;
40
+ /**
41
+ * Convert base64 to Buffer
42
+ */
43
+ export declare function base64ToBuffer(base64: string): Buffer;
44
+ /**
45
+ * Convert Buffer to base64
46
+ */
47
+ export declare function bufferToBase64(buffer: Buffer | Uint8Array): string;
48
+ /**
49
+ * Load profile from path or base64
50
+ */
51
+ export declare function loadProfile(input: string, encoding?: "base64" | "path"): Promise<Buffer>;
52
+ //# sourceMappingURL=fs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,GAAE,MAAgB,EAAE,GAAG,GAAE,MAAiB,GAAG,MAAM,CAEpF;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,UAAU,GAAG,MAAM,EACzB,MAAM,GAAE,MAAgB,EACxB,GAAG,GAAE,MAAiB,GACrB,OAAO,CAAC,MAAM,CAAC,CAIjB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAM5D;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAClC,IAAI,EAAE,UAAU,GAAG,MAAM,EACzB,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,EAChC,MAAM,GAAE,MAAgB,EACxB,GAAG,GAAE,MAAiB,GACrB,OAAO,CAAC,CAAC,CAAC,CAOZ;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,UAAU,GAAG,MAAM,EACzB,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM,CAQR;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAE9D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAE/E;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG3D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAElE;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,MAAM,EACb,QAAQ,GAAE,QAAQ,GAAG,MAAe,GACnC,OAAO,CAAC,MAAM,CAAC,CAKjB"}