@kb-labs/rest-api-contracts 1.0.0 → 1.1.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/dist/index.d.ts +163 -101
- package/dist/index.js +77 -2
- package/dist/index.js.map +1 -1
- package/package.json +15 -15
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import
|
|
3
|
-
export {
|
|
2
|
+
import * as _kb_labs_plugin_contracts from '@kb-labs/plugin-contracts';
|
|
3
|
+
export { StudioConfig, StudioMenuEntry, StudioPageEntry } from '@kb-labs/plugin-contracts';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Standardized error codes shared across CLI, REST and Studio.
|
|
@@ -82,61 +82,13 @@ declare const errorEnvelopeSchema: z.ZodObject<{
|
|
|
82
82
|
details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
83
83
|
cause: z.ZodOptional<z.ZodUnknown>;
|
|
84
84
|
traceId: z.ZodOptional<z.ZodString>;
|
|
85
|
-
},
|
|
86
|
-
code: string;
|
|
87
|
-
message: string;
|
|
88
|
-
details?: Record<string, unknown> | undefined;
|
|
89
|
-
cause?: unknown;
|
|
90
|
-
traceId?: string | undefined;
|
|
91
|
-
}, {
|
|
92
|
-
code: string;
|
|
93
|
-
message: string;
|
|
94
|
-
details?: Record<string, unknown> | undefined;
|
|
95
|
-
cause?: unknown;
|
|
96
|
-
traceId?: string | undefined;
|
|
97
|
-
}>;
|
|
85
|
+
}, z.core.$strip>;
|
|
98
86
|
meta: z.ZodObject<{
|
|
99
87
|
requestId: z.ZodString;
|
|
100
88
|
durationMs: z.ZodNumber;
|
|
101
89
|
apiVersion: z.ZodString;
|
|
102
|
-
},
|
|
103
|
-
|
|
104
|
-
durationMs: number;
|
|
105
|
-
apiVersion: string;
|
|
106
|
-
}, {
|
|
107
|
-
requestId: string;
|
|
108
|
-
durationMs: number;
|
|
109
|
-
apiVersion: string;
|
|
110
|
-
}>;
|
|
111
|
-
}, "strip", z.ZodTypeAny, {
|
|
112
|
-
ok: false;
|
|
113
|
-
error: {
|
|
114
|
-
code: string;
|
|
115
|
-
message: string;
|
|
116
|
-
details?: Record<string, unknown> | undefined;
|
|
117
|
-
cause?: unknown;
|
|
118
|
-
traceId?: string | undefined;
|
|
119
|
-
};
|
|
120
|
-
meta: {
|
|
121
|
-
requestId: string;
|
|
122
|
-
durationMs: number;
|
|
123
|
-
apiVersion: string;
|
|
124
|
-
};
|
|
125
|
-
}, {
|
|
126
|
-
ok: false;
|
|
127
|
-
error: {
|
|
128
|
-
code: string;
|
|
129
|
-
message: string;
|
|
130
|
-
details?: Record<string, unknown> | undefined;
|
|
131
|
-
cause?: unknown;
|
|
132
|
-
traceId?: string | undefined;
|
|
133
|
-
};
|
|
134
|
-
meta: {
|
|
135
|
-
requestId: string;
|
|
136
|
-
durationMs: number;
|
|
137
|
-
apiVersion: string;
|
|
138
|
-
};
|
|
139
|
-
}>;
|
|
90
|
+
}, z.core.$strip>;
|
|
91
|
+
}, z.core.$strip>;
|
|
140
92
|
/**
|
|
141
93
|
* Structured error produced by the plugin runtime.
|
|
142
94
|
*/
|
|
@@ -159,6 +111,19 @@ interface PluginErrorEnvelope {
|
|
|
159
111
|
};
|
|
160
112
|
}
|
|
161
113
|
|
|
114
|
+
/**
|
|
115
|
+
* Payload returned by the hello service.
|
|
116
|
+
*/
|
|
117
|
+
interface HelloPayload {
|
|
118
|
+
schema: 'kb.hello/1';
|
|
119
|
+
message: string;
|
|
120
|
+
ts: string;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Response envelope for GET /hello
|
|
124
|
+
*/
|
|
125
|
+
type HelloResponse = SuccessEnvelope<HelloPayload>;
|
|
126
|
+
|
|
162
127
|
interface SystemHealthSnapshot {
|
|
163
128
|
schema: 'kb.health/1';
|
|
164
129
|
ts: string;
|
|
@@ -235,7 +200,7 @@ interface ReadyComponents {
|
|
|
235
200
|
stale: boolean;
|
|
236
201
|
};
|
|
237
202
|
plugins: {
|
|
238
|
-
mounted:
|
|
203
|
+
mounted: boolean;
|
|
239
204
|
inProgress: boolean;
|
|
240
205
|
routeCount: number;
|
|
241
206
|
errors: number;
|
|
@@ -268,56 +233,28 @@ type NotReadyResponse = ReadyResponseBase & {
|
|
|
268
233
|
};
|
|
269
234
|
|
|
270
235
|
/**
|
|
271
|
-
*
|
|
272
|
-
* Re-exports from @kb-labs/studio-contracts + REST-specific types.
|
|
273
|
-
*
|
|
274
|
-
* Studio should ONLY import from this package - no server-side dependencies.
|
|
275
|
-
*
|
|
276
|
-
* @example
|
|
277
|
-
* ```typescript
|
|
278
|
-
* // Preferred: Import directly from studio-contracts
|
|
279
|
-
* import { StudioWidgetDecl, StudioConfig } from '@kb-labs/studio-contracts';
|
|
280
|
-
*
|
|
281
|
-
* // Still works: Import via rest-api-contracts (re-export)
|
|
282
|
-
* import { StudioWidgetDecl, StudioConfig } from '@kb-labs/rest-api-contracts';
|
|
283
|
-
* ```
|
|
284
|
-
*/
|
|
285
|
-
|
|
286
|
-
/**
|
|
287
|
-
* GET /studio/registry response
|
|
288
|
-
* Extends StudioRegistry with REST-specific metadata
|
|
289
|
-
*/
|
|
290
|
-
type StudioRegistryResponse = StudioRegistry;
|
|
291
|
-
/**
|
|
292
|
-
* Batch data request for multiple widgets
|
|
236
|
+
* Studio plugin entry in the registry.
|
|
293
237
|
*/
|
|
294
|
-
interface
|
|
295
|
-
|
|
238
|
+
interface StudioPluginEntryV2 {
|
|
239
|
+
pluginId: string;
|
|
240
|
+
displayName?: string;
|
|
241
|
+
pluginVersion?: string;
|
|
242
|
+
remoteName: string;
|
|
243
|
+
/** Browser URL for loading remoteEntry.js (relative, proxied through gateway) */
|
|
244
|
+
remoteEntryUrl: string;
|
|
245
|
+
/** Absolute filesystem path to dist/widgets/ directory (server-side only, used by gateway) */
|
|
246
|
+
widgetBundleDir: string;
|
|
247
|
+
pages: _kb_labs_plugin_contracts.StudioPageEntry[];
|
|
248
|
+
menus: _kb_labs_plugin_contracts.StudioMenuEntry[];
|
|
296
249
|
}
|
|
297
250
|
/**
|
|
298
|
-
*
|
|
251
|
+
* GET /api/v1/studio/registry response.
|
|
299
252
|
*/
|
|
300
|
-
interface
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
}
|
|
306
|
-
/**
|
|
307
|
-
* Action execution request
|
|
308
|
-
*/
|
|
309
|
-
interface ActionRequest {
|
|
310
|
-
widgetId: string;
|
|
311
|
-
actionId: string;
|
|
312
|
-
payload?: unknown;
|
|
313
|
-
}
|
|
314
|
-
/**
|
|
315
|
-
* Action execution response
|
|
316
|
-
*/
|
|
317
|
-
interface ActionResponse {
|
|
318
|
-
success: boolean;
|
|
319
|
-
data?: unknown;
|
|
320
|
-
error?: string;
|
|
253
|
+
interface StudioRegistryV2 {
|
|
254
|
+
schema: 'kb.studio/2';
|
|
255
|
+
schemaVersion: 2;
|
|
256
|
+
generatedAt: string;
|
|
257
|
+
plugins: StudioPluginEntryV2[];
|
|
321
258
|
}
|
|
322
259
|
|
|
323
260
|
/**
|
|
@@ -499,4 +436,129 @@ interface PlatformConfigPayload {
|
|
|
499
436
|
}
|
|
500
437
|
type PlatformConfigResponse = SuccessEnvelope<PlatformConfigPayload>;
|
|
501
438
|
|
|
502
|
-
|
|
439
|
+
/**
|
|
440
|
+
* @module @kb-labs/rest-api-contracts/route-schemas
|
|
441
|
+
* Zod schemas for REST API route-level body/query/response.
|
|
442
|
+
* Used with fastify-type-provider-zod so route schemas are fully typed.
|
|
443
|
+
*/
|
|
444
|
+
|
|
445
|
+
declare const ErrorResponseSchema: z.ZodObject<{
|
|
446
|
+
ok: z.ZodLiteral<false>;
|
|
447
|
+
message: z.ZodOptional<z.ZodString>;
|
|
448
|
+
error: z.ZodObject<{
|
|
449
|
+
code: z.ZodString;
|
|
450
|
+
message: z.ZodString;
|
|
451
|
+
}, z.core.$strip>;
|
|
452
|
+
}, z.core.$strip>;
|
|
453
|
+
declare const OkResponseSchema: z.ZodObject<{
|
|
454
|
+
ok: z.ZodLiteral<true>;
|
|
455
|
+
}, z.core.$strip>;
|
|
456
|
+
declare const ListJobsQuerySchema: z.ZodObject<{
|
|
457
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
458
|
+
active: "active";
|
|
459
|
+
paused: "paused";
|
|
460
|
+
}>>;
|
|
461
|
+
}, z.core.$strip>;
|
|
462
|
+
declare const JobSchema: z.ZodObject<{
|
|
463
|
+
id: z.ZodString;
|
|
464
|
+
name: z.ZodOptional<z.ZodString>;
|
|
465
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
466
|
+
active: "active";
|
|
467
|
+
paused: "paused";
|
|
468
|
+
}>>;
|
|
469
|
+
schedule: z.ZodOptional<z.ZodString>;
|
|
470
|
+
}, z.core.$loose>;
|
|
471
|
+
declare const JobsListResponseSchema: z.ZodObject<{
|
|
472
|
+
jobs: z.ZodArray<z.ZodObject<{
|
|
473
|
+
id: z.ZodString;
|
|
474
|
+
name: z.ZodOptional<z.ZodString>;
|
|
475
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
476
|
+
active: "active";
|
|
477
|
+
paused: "paused";
|
|
478
|
+
}>>;
|
|
479
|
+
schedule: z.ZodOptional<z.ZodString>;
|
|
480
|
+
}, z.core.$loose>>;
|
|
481
|
+
}, z.core.$strip>;
|
|
482
|
+
declare const JobResponseSchema: z.ZodObject<{
|
|
483
|
+
job: z.ZodObject<{
|
|
484
|
+
id: z.ZodString;
|
|
485
|
+
name: z.ZodOptional<z.ZodString>;
|
|
486
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
487
|
+
active: "active";
|
|
488
|
+
paused: "paused";
|
|
489
|
+
}>>;
|
|
490
|
+
schedule: z.ZodOptional<z.ZodString>;
|
|
491
|
+
}, z.core.$loose>;
|
|
492
|
+
}, z.core.$strip>;
|
|
493
|
+
declare const JobStatsResponseSchema: z.ZodObject<{
|
|
494
|
+
stats: z.ZodObject<{
|
|
495
|
+
total: z.ZodNumber;
|
|
496
|
+
jobs: z.ZodArray<z.ZodObject<{
|
|
497
|
+
id: z.ZodString;
|
|
498
|
+
name: z.ZodOptional<z.ZodString>;
|
|
499
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
500
|
+
active: "active";
|
|
501
|
+
paused: "paused";
|
|
502
|
+
}>>;
|
|
503
|
+
schedule: z.ZodOptional<z.ZodString>;
|
|
504
|
+
}, z.core.$loose>>;
|
|
505
|
+
}, z.core.$strip>;
|
|
506
|
+
}, z.core.$strip>;
|
|
507
|
+
declare const JobActionResponseSchema: z.ZodObject<{
|
|
508
|
+
success: z.ZodLiteral<true>;
|
|
509
|
+
message: z.ZodString;
|
|
510
|
+
}, z.core.$strip>;
|
|
511
|
+
declare const ListWorkflowsQuerySchema: z.ZodObject<{
|
|
512
|
+
source: z.ZodOptional<z.ZodEnum<{
|
|
513
|
+
manifest: "manifest";
|
|
514
|
+
standalone: "standalone";
|
|
515
|
+
}>>;
|
|
516
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
517
|
+
active: "active";
|
|
518
|
+
paused: "paused";
|
|
519
|
+
disabled: "disabled";
|
|
520
|
+
}>>;
|
|
521
|
+
tags: z.ZodOptional<z.ZodString>;
|
|
522
|
+
search: z.ZodOptional<z.ZodString>;
|
|
523
|
+
}, z.core.$strip>;
|
|
524
|
+
declare const WorkflowSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
525
|
+
declare const WorkflowsListResponseSchema: z.ZodObject<{
|
|
526
|
+
workflows: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
527
|
+
total: z.ZodNumber;
|
|
528
|
+
}, z.core.$strip>;
|
|
529
|
+
declare const WorkflowResponseSchema: z.ZodObject<{
|
|
530
|
+
workflow: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
531
|
+
}, z.core.$strip>;
|
|
532
|
+
declare const CreateWorkflowBodySchema: z.ZodObject<{
|
|
533
|
+
spec: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
534
|
+
}, z.core.$strip>;
|
|
535
|
+
declare const UpdateWorkflowBodySchema: z.ZodObject<{
|
|
536
|
+
spec: z.ZodOptional<z.ZodObject<{
|
|
537
|
+
name: z.ZodOptional<z.ZodString>;
|
|
538
|
+
version: z.ZodOptional<z.ZodString>;
|
|
539
|
+
description: z.ZodOptional<z.ZodString>;
|
|
540
|
+
on: z.ZodOptional<z.ZodAny>;
|
|
541
|
+
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
542
|
+
secrets: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
543
|
+
jobs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
|
|
544
|
+
}, z.core.$strip>>;
|
|
545
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
546
|
+
active: "active";
|
|
547
|
+
paused: "paused";
|
|
548
|
+
disabled: "disabled";
|
|
549
|
+
}>>;
|
|
550
|
+
}, z.core.$strip>;
|
|
551
|
+
declare const ScheduleConfigBodySchema: z.ZodObject<{
|
|
552
|
+
cron: z.ZodString;
|
|
553
|
+
enabled: z.ZodBoolean;
|
|
554
|
+
timezone: z.ZodOptional<z.ZodString>;
|
|
555
|
+
}, z.core.$strip>;
|
|
556
|
+
declare const ValidateWorkflowBodySchema: z.ZodObject<{
|
|
557
|
+
spec: z.ZodAny;
|
|
558
|
+
}, z.core.$strip>;
|
|
559
|
+
declare const HandlersListResponseSchema: z.ZodObject<{
|
|
560
|
+
handlers: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
561
|
+
total: z.ZodNumber;
|
|
562
|
+
}, z.core.$strip>;
|
|
563
|
+
|
|
564
|
+
export { type AdapterValue, type CapabilitiesResponse, type ConfigResponse, CreateWorkflowBodySchema, type DevKitHealthPayload, type DevKitHealthSnapshot, type EnvelopeMeta, ErrorCode, type ErrorEnvelope, ErrorResponseSchema, HandlersListResponseSchema, type HeatmapCell, type HelloPayload, type HelloResponse, type HistoricalDataPoint, type InfoResponse, JobActionResponseSchema, JobResponseSchema, JobSchema, JobStatsResponseSchema, JobsListResponseSchema, ListJobsQuerySchema, ListWorkflowsQuerySchema, type MetricsHeatmapPayload, type MetricsHistoryPayload, type NamespaceStats, type NotReadyResponse, OkResponseSchema, type PermissionDiff, type PermissionSummary, type PlatformConfigPayload, type PlatformConfigResponse, type PluginErrorEnvelope, type ReadyComponents, type ReadyResponse, ScheduleConfigBodySchema, type StateBrokerStats, type StateBrokerStatsPayload, type StudioPluginEntryV2, type StudioRegistryV2, type SuccessEnvelope, type SystemCapabilitiesPayload, type SystemConfigPayload, type SystemHealthSnapshot, type SystemInfoPayload, type TenantStats, UpdateWorkflowBodySchema, ValidateWorkflowBodySchema, WorkflowResponseSchema, WorkflowSchema, WorkflowsListResponseSchema, errorEnvelopeSchema };
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
export { COMPOSITE_WIDGET_KINDS, STANDARD_EVENTS, STUDIO_SCHEMA_VERSION, STUDIO_SCHEMA_VERSION_NUMBER, WIDGET_CATEGORIES, createEmptyRegistry, flattenRegistry, isCompositeKind, isCompositeWidget, isEmitActionHandler, isGridConfig, isLeafWidget, isMockDataSource, isNavigateActionHandler, isRestActionHandler, isRestDataSource, isStackConfig, isStaticDataSource, matchesVisibility, needsMigration, validateSchemaVersion } from '@kb-labs/studio-contracts';
|
|
3
2
|
|
|
4
3
|
// src/error-code.ts
|
|
5
4
|
var ErrorCode = /* @__PURE__ */ ((ErrorCode2) => {
|
|
@@ -31,7 +30,83 @@ var errorEnvelopeSchema = z.object({
|
|
|
31
30
|
apiVersion: z.string()
|
|
32
31
|
})
|
|
33
32
|
});
|
|
33
|
+
var ErrorResponseSchema = z.object({
|
|
34
|
+
ok: z.literal(false),
|
|
35
|
+
message: z.string().optional(),
|
|
36
|
+
error: z.object({
|
|
37
|
+
code: z.string(),
|
|
38
|
+
message: z.string()
|
|
39
|
+
})
|
|
40
|
+
});
|
|
41
|
+
var OkResponseSchema = z.object({ ok: z.literal(true) });
|
|
42
|
+
var AnyRecord = z.record(z.string(), z.unknown());
|
|
43
|
+
var ListJobsQuerySchema = z.object({
|
|
44
|
+
status: z.enum(["active", "paused"]).optional()
|
|
45
|
+
});
|
|
46
|
+
var JobSchema = z.object({
|
|
47
|
+
id: z.string(),
|
|
48
|
+
name: z.string().optional(),
|
|
49
|
+
status: z.enum(["active", "paused"]).optional(),
|
|
50
|
+
schedule: z.string().optional()
|
|
51
|
+
}).passthrough();
|
|
52
|
+
var JobsListResponseSchema = z.object({
|
|
53
|
+
jobs: z.array(JobSchema)
|
|
54
|
+
});
|
|
55
|
+
var JobResponseSchema = z.object({
|
|
56
|
+
job: JobSchema
|
|
57
|
+
});
|
|
58
|
+
var JobStatsResponseSchema = z.object({
|
|
59
|
+
stats: z.object({
|
|
60
|
+
total: z.number(),
|
|
61
|
+
jobs: z.array(JobSchema)
|
|
62
|
+
})
|
|
63
|
+
});
|
|
64
|
+
var JobActionResponseSchema = z.object({
|
|
65
|
+
success: z.literal(true),
|
|
66
|
+
message: z.string()
|
|
67
|
+
});
|
|
68
|
+
var ListWorkflowsQuerySchema = z.object({
|
|
69
|
+
source: z.enum(["manifest", "standalone"]).optional(),
|
|
70
|
+
status: z.enum(["active", "paused", "disabled"]).optional(),
|
|
71
|
+
tags: z.string().optional(),
|
|
72
|
+
search: z.string().optional()
|
|
73
|
+
});
|
|
74
|
+
var WorkflowSchema = AnyRecord;
|
|
75
|
+
var WorkflowsListResponseSchema = z.object({
|
|
76
|
+
workflows: z.array(AnyRecord),
|
|
77
|
+
total: z.number()
|
|
78
|
+
});
|
|
79
|
+
var WorkflowResponseSchema = z.object({
|
|
80
|
+
workflow: AnyRecord.nullable()
|
|
81
|
+
});
|
|
82
|
+
var CreateWorkflowBodySchema = z.object({
|
|
83
|
+
spec: AnyRecord
|
|
84
|
+
});
|
|
85
|
+
var UpdateWorkflowBodySchema = z.object({
|
|
86
|
+
spec: z.object({
|
|
87
|
+
name: z.string().min(1).optional(),
|
|
88
|
+
version: z.string().min(1).optional(),
|
|
89
|
+
description: z.string().optional(),
|
|
90
|
+
on: z.any().optional(),
|
|
91
|
+
env: z.record(z.string(), z.string()).optional(),
|
|
92
|
+
secrets: z.array(z.string().min(1)).optional(),
|
|
93
|
+
jobs: z.record(z.string().min(1), z.any()).optional()
|
|
94
|
+
}).optional(),
|
|
95
|
+
status: z.enum(["active", "paused", "disabled"]).optional()
|
|
96
|
+
});
|
|
97
|
+
var ScheduleConfigBodySchema = z.object({
|
|
98
|
+
cron: z.string().min(1),
|
|
99
|
+
enabled: z.boolean(),
|
|
100
|
+
timezone: z.string().optional()
|
|
101
|
+
});
|
|
102
|
+
var ValidateWorkflowBodySchema = z.object({
|
|
103
|
+
spec: z.any()
|
|
104
|
+
});
|
|
105
|
+
var HandlersListResponseSchema = z.object({
|
|
106
|
+
handlers: z.array(AnyRecord),
|
|
107
|
+
total: z.number()
|
|
108
|
+
});
|
|
34
109
|
|
|
35
|
-
export { ErrorCode, errorEnvelopeSchema };
|
|
110
|
+
export { CreateWorkflowBodySchema, ErrorCode, ErrorResponseSchema, HandlersListResponseSchema, JobActionResponseSchema, JobResponseSchema, JobSchema, JobStatsResponseSchema, JobsListResponseSchema, ListJobsQuerySchema, ListWorkflowsQuerySchema, OkResponseSchema, ScheduleConfigBodySchema, UpdateWorkflowBodySchema, ValidateWorkflowBodySchema, WorkflowResponseSchema, WorkflowSchema, WorkflowsListResponseSchema, errorEnvelopeSchema };
|
|
36
111
|
//# sourceMappingURL=index.js.map
|
|
37
112
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/error-code.ts","../src/envelopes.ts"],"names":["ErrorCode"],"mappings":";;;;AAKO,IAAK,SAAA,qBAAAA,UAAAA,KAAL;AACL,EAAAA,WAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,WAAA,0BAAA,CAAA,GAA2B,0BAAA;AAC3B,EAAAA,WAAA,2BAAA,CAAA,GAA4B,2BAAA;AAC5B,EAAAA,WAAA,0BAAA,CAAA,GAA2B,0BAAA;AAC3B,EAAAA,WAAA,gBAAA,CAAA,GAAiB,gBAAA;AACjB,EAAAA,WAAA,iCAAA,CAAA,GAAkC,iCAAA;AAClC,EAAAA,WAAA,wBAAA,CAAA,GAAyB,wBAAA;AACzB,EAAAA,WAAA,uBAAA,CAAA,GAAwB,uBAAA;AACxB,EAAAA,WAAA,sBAAA,CAAA,GAAuB,sBAAA;AACvB,EAAAA,WAAA,uBAAA,CAAA,GAAwB,uBAAA;AACxB,EAAAA,WAAA,UAAA,CAAA,GAAW,UAAA;AAXD,EAAA,OAAAA,UAAAA;AAAA,CAAA,EAAA,SAAA,IAAA,EAAA;ACuBL,IAAM,mBAAA,GAAsB,EAAE,MAAA,CAAO;AAAA,EAC1C,EAAA,EAAI,CAAA,CAAE,OAAA,CAAQ,KAAK,CAAA;AAAA,EACnB,KAAA,EAAO,EAAE,MAAA,CAAO;AAAA,IACd,IAAA,EAAM,EAAE,MAAA,EAAO;AAAA,IACf,OAAA,EAAS,EAAE,MAAA,EAAO;AAAA,IAClB,OAAA,EAAS,CAAA,CAAE,MAAA,CAAO,CAAA,CAAE,MAAA,IAAU,CAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS;AAAA,IACpD,KAAA,EAAO,CAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,IAC5B,OAAA,EAAS,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,GAC9B,CAAA;AAAA,EACD,IAAA,EAAM,EAAE,MAAA,CAAO;AAAA,IACb,SAAA,EAAW,EAAE,MAAA,EAAO;AAAA,IACpB,UAAA,EAAY,EAAE,MAAA,EAAO;AAAA,IACrB,UAAA,EAAY,EAAE,MAAA;AAAO,GACtB;AACH,CAAC","file":"index.js","sourcesContent":["/**\n * Standardized error codes shared across CLI, REST and Studio.\n * These values intentionally line up with the codes used by the\n * plugin runtime so adapters can map them to HTTP status codes.\n */\nexport enum ErrorCode {\n INTERNAL = 'INTERNAL',\n PLUGIN_PERMISSION_DENIED = 'PLUGIN_PERMISSION_DENIED',\n PLUGIN_CAPABILITY_MISSING = 'PLUGIN_CAPABILITY_MISSING',\n PLUGIN_HANDLER_NOT_FOUND = 'PLUGIN_HANDLER_NOT_FOUND',\n PLUGIN_TIMEOUT = 'PLUGIN_TIMEOUT',\n PLUGIN_SCHEMA_VALIDATION_FAILED = 'PLUGIN_SCHEMA_VALIDATION_FAILED',\n PLUGIN_ARTIFACT_FAILED = 'PLUGIN_ARTIFACT_FAILED',\n PLUGIN_QUOTA_EXCEEDED = 'PLUGIN_QUOTA_EXCEEDED',\n ARTIFACT_READ_DENIED = 'ARTIFACT_READ_DENIED',\n ARTIFACT_WRITE_DENIED = 'ARTIFACT_WRITE_DENIED',\n CONFLICT = 'CONFLICT',\n}\n\n/**\n * Helper describing a compact permission summary.\n */\nexport interface PermissionSummary {\n fs?: {\n mode?: string;\n allowCount?: number;\n denyCount?: number;\n };\n net?: 'none' | { allowHostsCount?: number; denyHostsCount?: number };\n env?: { allowCount?: number };\n quotas?: {\n timeoutMs?: number;\n memoryMb?: number;\n cpuMs?: number;\n };\n capabilities?: string[];\n}\n\n/**\n * Permissions diff emitted when the runtime compares required\n * vs granted permissions for a failing invocation.\n */\nexport interface PermissionDiff {\n required?: string[];\n granted?: string[];\n}\n\n","import { z } from 'zod';\nimport type { PermissionDiff, PermissionSummary } from './error-code';\n\nexport interface EnvelopeMeta {\n requestId: string;\n durationMs: number;\n apiVersion: string;\n [key: string]: unknown;\n}\n\nexport type SuccessEnvelope<T = unknown> = {\n ok: true;\n data: T;\n meta?: EnvelopeMeta;\n};\n\nexport type ErrorEnvelope = {\n ok: false;\n error: {\n code: string;\n message: string;\n details?: Record<string, unknown>;\n cause?: unknown;\n traceId?: string;\n };\n meta: EnvelopeMeta;\n};\n\nexport const errorEnvelopeSchema = z.object({\n ok: z.literal(false),\n error: z.object({\n code: z.string(),\n message: z.string(),\n details: z.record(z.string(), z.unknown()).optional(),\n cause: z.unknown().optional(),\n traceId: z.string().optional(),\n }),\n meta: z.object({\n requestId: z.string(),\n durationMs: z.number(),\n apiVersion: z.string(),\n }),\n});\n\n/**\n * Structured error produced by the plugin runtime.\n */\nexport interface PluginErrorEnvelope {\n status: 'error';\n http: number;\n code: string;\n message: string;\n details?: Record<string, unknown>;\n trace?: string;\n meta: {\n requestId: string;\n pluginId: string;\n pluginVersion: string;\n routeOrCommand: string;\n timeMs: number;\n cpuMs?: number;\n memMb?: number;\n perms?: PermissionSummary | PermissionDiff | Record<string, unknown>;\n };\n}\n\n\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/error-code.ts","../src/envelopes.ts","../src/route-schemas.ts"],"names":["ErrorCode","z"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Standardized error codes shared across CLI, REST and Studio.\n * These values intentionally line up with the codes used by the\n * plugin runtime so adapters can map them to HTTP status codes.\n */\nexport enum ErrorCode {\n INTERNAL = 'INTERNAL',\n PLUGIN_PERMISSION_DENIED = 'PLUGIN_PERMISSION_DENIED',\n PLUGIN_CAPABILITY_MISSING = 'PLUGIN_CAPABILITY_MISSING',\n PLUGIN_HANDLER_NOT_FOUND = 'PLUGIN_HANDLER_NOT_FOUND',\n PLUGIN_TIMEOUT = 'PLUGIN_TIMEOUT',\n PLUGIN_SCHEMA_VALIDATION_FAILED = 'PLUGIN_SCHEMA_VALIDATION_FAILED',\n PLUGIN_ARTIFACT_FAILED = 'PLUGIN_ARTIFACT_FAILED',\n PLUGIN_QUOTA_EXCEEDED = 'PLUGIN_QUOTA_EXCEEDED',\n ARTIFACT_READ_DENIED = 'ARTIFACT_READ_DENIED',\n ARTIFACT_WRITE_DENIED = 'ARTIFACT_WRITE_DENIED',\n CONFLICT = 'CONFLICT',\n}\n\n/**\n * Helper describing a compact permission summary.\n */\nexport interface PermissionSummary {\n fs?: {\n mode?: string;\n allowCount?: number;\n denyCount?: number;\n };\n net?: 'none' | { allowHostsCount?: number; denyHostsCount?: number };\n env?: { allowCount?: number };\n quotas?: {\n timeoutMs?: number;\n memoryMb?: number;\n cpuMs?: number;\n };\n capabilities?: string[];\n}\n\n/**\n * Permissions diff emitted when the runtime compares required\n * vs granted permissions for a failing invocation.\n */\nexport interface PermissionDiff {\n required?: string[];\n granted?: string[];\n}\n\n","import { z } from 'zod';\nimport type { PermissionDiff, PermissionSummary } from './error-code';\n\nexport interface EnvelopeMeta {\n requestId: string;\n durationMs: number;\n apiVersion: string;\n [key: string]: unknown;\n}\n\nexport type SuccessEnvelope<T = unknown> = {\n ok: true;\n data: T;\n meta?: EnvelopeMeta;\n};\n\nexport type ErrorEnvelope = {\n ok: false;\n error: {\n code: string;\n message: string;\n details?: Record<string, unknown>;\n cause?: unknown;\n traceId?: string;\n };\n meta: EnvelopeMeta;\n};\n\nexport const errorEnvelopeSchema = z.object({\n ok: z.literal(false),\n error: z.object({\n code: z.string(),\n message: z.string(),\n details: z.record(z.string(), z.unknown()).optional(),\n cause: z.unknown().optional(),\n traceId: z.string().optional(),\n }),\n meta: z.object({\n requestId: z.string(),\n durationMs: z.number(),\n apiVersion: z.string(),\n }),\n});\n\n/**\n * Structured error produced by the plugin runtime.\n */\nexport interface PluginErrorEnvelope {\n status: 'error';\n http: number;\n code: string;\n message: string;\n details?: Record<string, unknown>;\n trace?: string;\n meta: {\n requestId: string;\n pluginId: string;\n pluginVersion: string;\n routeOrCommand: string;\n timeMs: number;\n cpuMs?: number;\n memMb?: number;\n perms?: PermissionSummary | PermissionDiff | Record<string, unknown>;\n };\n}\n\n\n","/**\n * @module @kb-labs/rest-api-contracts/route-schemas\n * Zod schemas for REST API route-level body/query/response.\n * Used with fastify-type-provider-zod so route schemas are fully typed.\n */\n\nimport { z } from 'zod';\n\n// ── Shared ────────────────────────────────────────────────────────────────────\n\nexport const ErrorResponseSchema = z.object({\n ok: z.literal(false),\n message: z.string().optional(),\n error: z.object({\n code: z.string(),\n message: z.string(),\n }),\n});\n\nexport const OkResponseSchema = z.object({ ok: z.literal(true) });\n\nconst AnyRecord = z.record(z.string(), z.unknown());\n\n// ── Jobs ──────────────────────────────────────────────────────────────────────\n\nexport const ListJobsQuerySchema = z.object({\n status: z.enum(['active', 'paused']).optional(),\n});\n\nexport const JobSchema = z.object({\n id: z.string(),\n name: z.string().optional(),\n status: z.enum(['active', 'paused']).optional(),\n schedule: z.string().optional(),\n}).passthrough();\n\nexport const JobsListResponseSchema = z.object({\n jobs: z.array(JobSchema),\n});\n\nexport const JobResponseSchema = z.object({\n job: JobSchema,\n});\n\nexport const JobStatsResponseSchema = z.object({\n stats: z.object({\n total: z.number(),\n jobs: z.array(JobSchema),\n }),\n});\n\nexport const JobActionResponseSchema = z.object({\n success: z.literal(true),\n message: z.string(),\n});\n\n// ── Workflows ─────────────────────────────────────────────────────────────────\n\nexport const ListWorkflowsQuerySchema = z.object({\n source: z.enum(['manifest', 'standalone']).optional(),\n status: z.enum(['active', 'paused', 'disabled']).optional(),\n tags: z.string().optional(),\n search: z.string().optional(),\n});\n\nexport const WorkflowSchema = AnyRecord;\n\nexport const WorkflowsListResponseSchema = z.object({\n workflows: z.array(AnyRecord),\n total: z.number(),\n});\n\nexport const WorkflowResponseSchema = z.object({\n workflow: AnyRecord.nullable(),\n});\n\nexport const CreateWorkflowBodySchema = z.object({\n spec: AnyRecord,\n});\n\nexport const UpdateWorkflowBodySchema = z.object({\n spec: z.object({\n name: z.string().min(1).optional(),\n version: z.string().min(1).optional(),\n description: z.string().optional(),\n on: z.any().optional(),\n env: z.record(z.string(), z.string()).optional(),\n secrets: z.array(z.string().min(1)).optional(),\n jobs: z.record(z.string().min(1), z.any()).optional(),\n }).optional(),\n status: z.enum(['active', 'paused', 'disabled']).optional(),\n});\n\nexport const ScheduleConfigBodySchema = z.object({\n cron: z.string().min(1),\n enabled: z.boolean(),\n timezone: z.string().optional(),\n});\n\nexport const ValidateWorkflowBodySchema = z.object({\n spec: z.any(),\n});\n\nexport const HandlersListResponseSchema = z.object({\n handlers: z.array(AnyRecord),\n total: z.number(),\n});\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kb-labs/rest-api-contracts",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Shared API contracts for KB Labs REST/CLI/Studio surfaces",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -15,12 +15,22 @@
|
|
|
15
15
|
"dist",
|
|
16
16
|
"README.md"
|
|
17
17
|
],
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "tsup --config tsup.config.ts",
|
|
20
|
+
"dev": "tsup --config tsup.config.ts --watch",
|
|
21
|
+
"clean": "rimraf dist",
|
|
22
|
+
"lint": "eslint src",
|
|
23
|
+
"test": "vitest run --passWithNoTests",
|
|
24
|
+
"lint:fix": "eslint . --fix",
|
|
25
|
+
"type-check": "tsc --noEmit",
|
|
26
|
+
"test:watch": "vitest"
|
|
27
|
+
},
|
|
18
28
|
"dependencies": {
|
|
19
|
-
"@kb-labs/
|
|
20
|
-
"zod": "^
|
|
29
|
+
"@kb-labs/plugin-contracts": "^1.1.0",
|
|
30
|
+
"zod": "^4.0.0"
|
|
21
31
|
},
|
|
22
32
|
"devDependencies": {
|
|
23
|
-
"@kb-labs/devkit": "link
|
|
33
|
+
"@kb-labs/devkit": "link:../../../../infra/kb-labs-devkit",
|
|
24
34
|
"@types/node": "^24.3.3",
|
|
25
35
|
"rimraf": "^6.0.1",
|
|
26
36
|
"tsup": "^8.5.0",
|
|
@@ -33,15 +43,5 @@
|
|
|
33
43
|
},
|
|
34
44
|
"publishConfig": {
|
|
35
45
|
"access": "public"
|
|
36
|
-
},
|
|
37
|
-
"scripts": {
|
|
38
|
-
"build": "tsup --config tsup.config.ts",
|
|
39
|
-
"dev": "tsup --config tsup.config.ts --watch",
|
|
40
|
-
"clean": "rimraf dist",
|
|
41
|
-
"lint": "eslint src",
|
|
42
|
-
"test": "vitest run --passWithNoTests",
|
|
43
|
-
"lint:fix": "eslint . --fix",
|
|
44
|
-
"type-check": "tsc --noEmit",
|
|
45
|
-
"test:watch": "vitest"
|
|
46
46
|
}
|
|
47
|
-
}
|
|
47
|
+
}
|