@elevasis/ui 2.68.0 → 2.70.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/api/index.js +3 -3
- package/dist/app/index.d.ts +577 -367
- package/dist/app/index.js +10 -19
- package/dist/auth/index.d.ts +5 -0
- package/dist/auth/index.js +5 -5
- package/dist/charts/index.js +5 -5
- package/dist/{chunk-JC5W55J3.js → chunk-26BTE3Z4.js} +1 -1
- package/dist/{chunk-ZNKZMK2E.js → chunk-5C62IRKS.js} +5 -5
- package/dist/{chunk-ZGCWTWBD.js → chunk-6TT3FQEZ.js} +16218 -15769
- package/dist/{chunk-QYI5BZKM.js → chunk-AGX2CY2O.js} +1 -1
- package/dist/{chunk-UFTM5SZZ.js → chunk-AKANHRQ5.js} +9 -3
- package/dist/{chunk-NDHMZT2G.js → chunk-C75XWBYZ.js} +1 -1
- package/dist/{chunk-2MTP3H3A.js → chunk-CCZJ4OWY.js} +1 -1
- package/dist/{chunk-75NOC536.js → chunk-DUEGHF7A.js} +4 -4
- package/dist/{chunk-SIVUCZXQ.js → chunk-GJQF3S2Q.js} +1 -1
- package/dist/{chunk-ZWS3TCQR.js → chunk-GZADST64.js} +21 -108
- package/dist/{chunk-TYKAKJGW.js → chunk-JA2XDMAE.js} +1 -1
- package/dist/{chunk-76IVMVI3.js → chunk-LWYLZUUV.js} +3 -3
- package/dist/{chunk-WPIASV3H.js → chunk-LY3IKYTZ.js} +2 -2
- package/dist/{chunk-HJVPVS57.js → chunk-MFCV4JMQ.js} +5 -5
- package/dist/{chunk-L3HFJFYF.js → chunk-NM4A63KJ.js} +30 -48
- package/dist/{chunk-OOACTYRA.js → chunk-QDMIFD6F.js} +1 -1
- package/dist/{chunk-GBXTRSAU.js → chunk-SMH6SQQE.js} +1 -1
- package/dist/{chunk-TGPJNKDU.js → chunk-TJMZUL6E.js} +4 -4
- package/dist/{chunk-5NRJ2BLQ.js → chunk-VDX6DL7Z.js} +1 -1
- package/dist/{chunk-FK3K2VK2.js → chunk-XKUEO4HG.js} +10 -7
- package/dist/components/index.d.ts +1614 -256
- package/dist/components/index.js +25 -25
- package/dist/components/navigation/index.js +6 -6
- package/dist/features/auth/index.d.ts +457 -163
- package/dist/features/auth/index.js +7 -7
- package/dist/features/clients/index.d.ts +39 -1
- package/dist/features/clients/index.js +6 -5
- package/dist/features/content/index.css +659 -0
- package/dist/features/content/index.d.ts +1978 -0
- package/dist/features/content/index.js +2312 -0
- package/dist/features/crm/index.d.ts +584 -369
- package/dist/features/crm/index.js +7 -7
- package/dist/features/dashboard/index.d.ts +0 -6
- package/dist/features/dashboard/index.js +7 -7
- package/dist/features/delivery/index.css +149 -149
- package/dist/features/delivery/index.d.ts +457 -163
- package/dist/features/delivery/index.js +6 -6
- package/dist/features/knowledge/index.js +5 -5
- package/dist/features/lead-gen/index.d.ts +20 -91
- package/dist/features/lead-gen/index.js +7 -7
- package/dist/features/monitoring/index.css +149 -149
- package/dist/features/monitoring/index.js +8 -8
- package/dist/features/monitoring/requests/index.js +7 -12
- package/dist/features/operations/index.d.ts +0 -84
- package/dist/features/operations/index.js +10 -10
- package/dist/features/settings/index.d.ts +457 -163
- package/dist/features/settings/index.js +7 -7
- package/dist/hooks/access/index.d.ts +5 -0
- package/dist/hooks/access/index.js +5 -5
- package/dist/hooks/delivery/index.d.ts +457 -163
- package/dist/hooks/delivery/index.js +2 -2
- package/dist/hooks/index.css +149 -149
- package/dist/hooks/index.d.ts +2128 -233
- package/dist/hooks/index.js +5 -5
- package/dist/hooks/operations/command-view/utils/transformCommandViewData.d.ts +0 -6
- package/dist/hooks/published.css +149 -149
- package/dist/hooks/published.d.ts +2128 -233
- package/dist/hooks/published.js +5 -5
- package/dist/initialization/index.d.ts +464 -164
- package/dist/knowledge/index.d.ts +4 -88
- package/dist/knowledge/index.js +3211 -3201
- package/dist/{knowledge-search-index-6EZNBNSR.js → knowledge-search-index-LP2WVSQX.js} +689 -695
- package/dist/layout/index.js +8 -8
- package/dist/organization/index.d.ts +7 -1
- package/dist/profile/index.d.ts +457 -163
- package/dist/provider/index.d.ts +577 -368
- package/dist/provider/index.js +5 -5
- package/dist/provider/published.d.ts +577 -368
- package/dist/provider/published.js +5 -5
- package/dist/supabase/index.d.ts +906 -339
- package/dist/test-utils/index.d.ts +10 -2
- package/dist/test-utils/index.js +39 -10
- package/dist/types/index.d.ts +464 -170
- package/dist/utils/index.d.ts +0 -6
- package/dist/utils/index.js +1 -1
- package/dist/vite/index.js +2 -2
- package/dist/vite-plugin-knowledge/index.js +1 -1
- package/package.json +9 -5
- package/src/features/README.md +28 -28
|
@@ -0,0 +1,1978 @@
|
|
|
1
|
+
import { ComponentType, ReactNode } from 'react';
|
|
2
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
|
|
5
|
+
declare const ResourceKindSchema: z.ZodEnum<{
|
|
6
|
+
agent: "agent";
|
|
7
|
+
workflow: "workflow";
|
|
8
|
+
integration: "integration";
|
|
9
|
+
script: "script";
|
|
10
|
+
}>;
|
|
11
|
+
|
|
12
|
+
declare const OntologyScopeSchema: z.ZodDefault<z.ZodObject<{
|
|
13
|
+
objectTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
14
|
+
id: z.ZodString;
|
|
15
|
+
label: z.ZodOptional<z.ZodString>;
|
|
16
|
+
description: z.ZodOptional<z.ZodString>;
|
|
17
|
+
ownerSystemId: z.ZodOptional<z.ZodString>;
|
|
18
|
+
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
19
|
+
properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
20
|
+
storage: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
21
|
+
}, z.core.$loose>>>>;
|
|
22
|
+
linkTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
23
|
+
id: z.ZodString;
|
|
24
|
+
label: z.ZodOptional<z.ZodString>;
|
|
25
|
+
description: z.ZodOptional<z.ZodString>;
|
|
26
|
+
ownerSystemId: z.ZodOptional<z.ZodString>;
|
|
27
|
+
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
28
|
+
from: z.ZodString;
|
|
29
|
+
to: z.ZodString;
|
|
30
|
+
cardinality: z.ZodOptional<z.ZodString>;
|
|
31
|
+
via: z.ZodOptional<z.ZodString>;
|
|
32
|
+
}, z.core.$loose>>>>;
|
|
33
|
+
actionTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
34
|
+
id: z.ZodString;
|
|
35
|
+
label: z.ZodOptional<z.ZodString>;
|
|
36
|
+
description: z.ZodOptional<z.ZodString>;
|
|
37
|
+
ownerSystemId: z.ZodOptional<z.ZodString>;
|
|
38
|
+
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
39
|
+
actsOn: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
|
|
40
|
+
input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
41
|
+
effects: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
42
|
+
}, z.core.$loose>>>>;
|
|
43
|
+
catalogTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
44
|
+
id: z.ZodString;
|
|
45
|
+
label: z.ZodOptional<z.ZodString>;
|
|
46
|
+
description: z.ZodOptional<z.ZodString>;
|
|
47
|
+
ownerSystemId: z.ZodOptional<z.ZodString>;
|
|
48
|
+
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
49
|
+
kind: z.ZodOptional<z.ZodString>;
|
|
50
|
+
appliesTo: z.ZodOptional<z.ZodString>;
|
|
51
|
+
entries: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
52
|
+
}, z.core.$loose>>>>;
|
|
53
|
+
eventTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
54
|
+
id: z.ZodString;
|
|
55
|
+
label: z.ZodOptional<z.ZodString>;
|
|
56
|
+
description: z.ZodOptional<z.ZodString>;
|
|
57
|
+
ownerSystemId: z.ZodOptional<z.ZodString>;
|
|
58
|
+
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
59
|
+
payload: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
60
|
+
}, z.core.$loose>>>>;
|
|
61
|
+
interfaceTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
62
|
+
id: z.ZodString;
|
|
63
|
+
label: z.ZodOptional<z.ZodString>;
|
|
64
|
+
description: z.ZodOptional<z.ZodString>;
|
|
65
|
+
ownerSystemId: z.ZodOptional<z.ZodString>;
|
|
66
|
+
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
67
|
+
properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
68
|
+
}, z.core.$loose>>>>;
|
|
69
|
+
valueTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
70
|
+
id: z.ZodString;
|
|
71
|
+
label: z.ZodOptional<z.ZodString>;
|
|
72
|
+
description: z.ZodOptional<z.ZodString>;
|
|
73
|
+
ownerSystemId: z.ZodOptional<z.ZodString>;
|
|
74
|
+
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
75
|
+
primitive: z.ZodOptional<z.ZodString>;
|
|
76
|
+
}, z.core.$loose>>>>;
|
|
77
|
+
sharedProperties: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
78
|
+
id: z.ZodString;
|
|
79
|
+
label: z.ZodOptional<z.ZodString>;
|
|
80
|
+
description: z.ZodOptional<z.ZodString>;
|
|
81
|
+
ownerSystemId: z.ZodOptional<z.ZodString>;
|
|
82
|
+
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
83
|
+
valueType: z.ZodOptional<z.ZodString>;
|
|
84
|
+
searchable: z.ZodOptional<z.ZodBoolean>;
|
|
85
|
+
pii: z.ZodOptional<z.ZodBoolean>;
|
|
86
|
+
}, z.core.$loose>>>>;
|
|
87
|
+
groups: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
88
|
+
id: z.ZodString;
|
|
89
|
+
label: z.ZodOptional<z.ZodString>;
|
|
90
|
+
description: z.ZodOptional<z.ZodString>;
|
|
91
|
+
ownerSystemId: z.ZodOptional<z.ZodString>;
|
|
92
|
+
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
93
|
+
members: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
|
|
94
|
+
}, z.core.$loose>>>>;
|
|
95
|
+
endpoints: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
96
|
+
id: z.ZodString;
|
|
97
|
+
label: z.ZodOptional<z.ZodString>;
|
|
98
|
+
description: z.ZodOptional<z.ZodString>;
|
|
99
|
+
ownerSystemId: z.ZodOptional<z.ZodString>;
|
|
100
|
+
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
101
|
+
route: z.ZodOptional<z.ZodString>;
|
|
102
|
+
}, z.core.$loose>>>>;
|
|
103
|
+
}, z.core.$strip>>;
|
|
104
|
+
type OntologyScope = z.infer<typeof OntologyScopeSchema>;
|
|
105
|
+
|
|
106
|
+
declare const SystemApiInterfaceSchema: z.ZodObject<{
|
|
107
|
+
lifecycle: z.ZodDefault<z.ZodEnum<{
|
|
108
|
+
active: "active";
|
|
109
|
+
deprecated: "deprecated";
|
|
110
|
+
draft: "draft";
|
|
111
|
+
archived: "archived";
|
|
112
|
+
disabled: "disabled";
|
|
113
|
+
}>>;
|
|
114
|
+
readinessProfile: z.ZodOptional<z.ZodString>;
|
|
115
|
+
resourceIds: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
|
|
116
|
+
readinessContract: z.ZodOptional<z.ZodObject<{
|
|
117
|
+
requiredObjects: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
118
|
+
requiredCatalogs: z.ZodArray<z.ZodString>;
|
|
119
|
+
}, z.core.$strict>>;
|
|
120
|
+
}, z.core.$strict>;
|
|
121
|
+
type JsonPrimitive = string | number | boolean | null;
|
|
122
|
+
type JsonValue = JsonPrimitive | JsonValue[] | {
|
|
123
|
+
[key: string]: JsonValue;
|
|
124
|
+
};
|
|
125
|
+
/** Explicit interface needed to annotate the recursive SystemEntrySchema. */
|
|
126
|
+
interface SystemEntry {
|
|
127
|
+
id: string;
|
|
128
|
+
label?: string;
|
|
129
|
+
title?: string;
|
|
130
|
+
description?: string;
|
|
131
|
+
kind?: 'product' | 'operational' | 'platform' | 'diagnostic';
|
|
132
|
+
parentSystemId?: string;
|
|
133
|
+
ui?: {
|
|
134
|
+
path: string;
|
|
135
|
+
surfaces: string[];
|
|
136
|
+
icon?: string;
|
|
137
|
+
};
|
|
138
|
+
lifecycle?: 'draft' | 'beta' | 'active' | 'deprecated' | 'archived';
|
|
139
|
+
responsibleRoleId?: string;
|
|
140
|
+
governedByKnowledge?: string[];
|
|
141
|
+
actions?: {
|
|
142
|
+
actionId: string;
|
|
143
|
+
intent: 'exposes' | 'consumes';
|
|
144
|
+
invocation?: unknown;
|
|
145
|
+
}[];
|
|
146
|
+
drivesGoals?: string[];
|
|
147
|
+
apiInterface?: z.infer<typeof SystemApiInterfaceSchema>;
|
|
148
|
+
path?: string;
|
|
149
|
+
icon?: string;
|
|
150
|
+
uiPosition?: 'sidebar-primary' | 'sidebar-bottom';
|
|
151
|
+
enabled?: boolean;
|
|
152
|
+
order: number;
|
|
153
|
+
config?: Record<string, JsonValue>;
|
|
154
|
+
ontology?: OntologyScope;
|
|
155
|
+
systems?: Record<string, SystemEntry>;
|
|
156
|
+
subsystems?: Record<string, SystemEntry>;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
declare const SurfaceTypeSchema: z.ZodEnum<{
|
|
160
|
+
dashboard: "dashboard";
|
|
161
|
+
settings: "settings";
|
|
162
|
+
graph: "graph";
|
|
163
|
+
page: "page";
|
|
164
|
+
detail: "detail";
|
|
165
|
+
list: "list";
|
|
166
|
+
}>;
|
|
167
|
+
interface SidebarSurfaceNode {
|
|
168
|
+
type: 'surface';
|
|
169
|
+
label: string;
|
|
170
|
+
path: string;
|
|
171
|
+
surfaceType: z.infer<typeof SurfaceTypeSchema>;
|
|
172
|
+
description?: string;
|
|
173
|
+
icon?: string;
|
|
174
|
+
order?: number;
|
|
175
|
+
targets?: {
|
|
176
|
+
systems?: string[];
|
|
177
|
+
entities?: string[];
|
|
178
|
+
resources?: string[];
|
|
179
|
+
actions?: string[];
|
|
180
|
+
};
|
|
181
|
+
devOnly?: boolean;
|
|
182
|
+
requiresAdmin?: boolean;
|
|
183
|
+
}
|
|
184
|
+
interface SidebarGroupNode {
|
|
185
|
+
type: 'group';
|
|
186
|
+
label: string;
|
|
187
|
+
description?: string;
|
|
188
|
+
icon?: string;
|
|
189
|
+
order?: number;
|
|
190
|
+
children: Record<string, SidebarNode>;
|
|
191
|
+
}
|
|
192
|
+
type SidebarNode = SidebarSurfaceNode | SidebarGroupNode;
|
|
193
|
+
|
|
194
|
+
/** D5: who/what executes a content pipeline step. */
|
|
195
|
+
declare const ContentPipelineStepActorSchema: z.ZodEnum<{
|
|
196
|
+
agent: "agent";
|
|
197
|
+
workflow: "workflow";
|
|
198
|
+
vendor: "vendor";
|
|
199
|
+
}>;
|
|
200
|
+
type ContentPipelineStepActor = z.infer<typeof ContentPipelineStepActorSchema>;
|
|
201
|
+
/** D5: how a human reviews a content pipeline step's output. */
|
|
202
|
+
declare const ContentPipelineStepReviewModeSchema: z.ZodEnum<{
|
|
203
|
+
none: "none";
|
|
204
|
+
live: "live";
|
|
205
|
+
queued: "queued";
|
|
206
|
+
}>;
|
|
207
|
+
type ContentPipelineStepReviewMode = z.infer<typeof ContentPipelineStepReviewModeSchema>;
|
|
208
|
+
/** D17: one entry in a step's template-declared serializable payload field list. */
|
|
209
|
+
declare const ContentPayloadFieldDeclarationSchema: z.ZodObject<{
|
|
210
|
+
key: z.ZodString;
|
|
211
|
+
label: z.ZodString;
|
|
212
|
+
type: z.ZodEnum<{
|
|
213
|
+
string: "string";
|
|
214
|
+
number: "number";
|
|
215
|
+
boolean: "boolean";
|
|
216
|
+
text: "text";
|
|
217
|
+
url: "url";
|
|
218
|
+
"string-array": "string-array";
|
|
219
|
+
}>;
|
|
220
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
221
|
+
}, z.core.$strip>;
|
|
222
|
+
type ContentPayloadFieldDeclaration = z.infer<typeof ContentPayloadFieldDeclarationSchema>;
|
|
223
|
+
/** One step in a resolved content pipeline, as returned by `getContentBuildTemplates`. */
|
|
224
|
+
interface ContentPipelineStepEntry {
|
|
225
|
+
/** Matches the catalog entry id (the step's local id within its step catalog). */
|
|
226
|
+
key: string;
|
|
227
|
+
/** Human-readable label for UI display. */
|
|
228
|
+
label: string;
|
|
229
|
+
/** Short description of what this step does. */
|
|
230
|
+
description?: string;
|
|
231
|
+
/** Canonical step order for UI sorting. Lower = earlier in the pipeline. */
|
|
232
|
+
order: number;
|
|
233
|
+
/** D5: who/what executes this step. */
|
|
234
|
+
actor: ContentPipelineStepActor;
|
|
235
|
+
/** D5: how a human reviews this step's output. */
|
|
236
|
+
reviewMode: ContentPipelineStepReviewMode;
|
|
237
|
+
/** D5: the step key this step advances to. Absent on a terminal step. */
|
|
238
|
+
advancesTo?: string;
|
|
239
|
+
/**
|
|
240
|
+
* The ontology action id this step invokes. Absent when no Resource
|
|
241
|
+
* implements the step yet. See `ContentPipelineStepDeclarationSchema`.
|
|
242
|
+
*/
|
|
243
|
+
actionId?: string;
|
|
244
|
+
/** D17: the template-declared serializable field list for this step's payload. */
|
|
245
|
+
payloadFields: ContentPayloadFieldDeclaration[];
|
|
246
|
+
}
|
|
247
|
+
/** One resolved content pipeline, as returned by `getContentBuildTemplates`. */
|
|
248
|
+
interface ContentPipelineTemplate {
|
|
249
|
+
id: string;
|
|
250
|
+
label: string;
|
|
251
|
+
description?: string;
|
|
252
|
+
color?: string;
|
|
253
|
+
steps: ContentPipelineStepEntry[];
|
|
254
|
+
}
|
|
255
|
+
/** One entry in a resolved `content-stage` catalog (status / pillar / platform), as returned by `getContentStageCatalog`. */
|
|
256
|
+
interface ContentStageCatalogEntry {
|
|
257
|
+
/** Local id of the `content-stage` catalog this entry came from (e.g. 'status', 'pillar', 'platform'). */
|
|
258
|
+
catalogKey: string;
|
|
259
|
+
/** Matches the entry id within its catalog (e.g. 'draft', 'linkedin'). */
|
|
260
|
+
key: string;
|
|
261
|
+
label: string;
|
|
262
|
+
description: string;
|
|
263
|
+
order: number;
|
|
264
|
+
color?: string;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
declare const OrganizationModelSchema: z.ZodObject<{
|
|
268
|
+
version: z.ZodDefault<z.ZodLiteral<1>>;
|
|
269
|
+
snapshotHash: z.ZodOptional<z.ZodString>;
|
|
270
|
+
domainMetadata: z.ZodPipe<z.ZodDefault<z.ZodObject<{
|
|
271
|
+
branding: z.ZodOptional<z.ZodObject<{
|
|
272
|
+
version: z.ZodDefault<z.ZodLiteral<1>>;
|
|
273
|
+
lastModified: z.ZodString;
|
|
274
|
+
}, z.core.$strip>>;
|
|
275
|
+
identity: z.ZodOptional<z.ZodObject<{
|
|
276
|
+
version: z.ZodDefault<z.ZodLiteral<1>>;
|
|
277
|
+
lastModified: z.ZodString;
|
|
278
|
+
}, z.core.$strip>>;
|
|
279
|
+
clients: z.ZodOptional<z.ZodObject<{
|
|
280
|
+
version: z.ZodDefault<z.ZodLiteral<1>>;
|
|
281
|
+
lastModified: z.ZodString;
|
|
282
|
+
}, z.core.$strip>>;
|
|
283
|
+
customers: z.ZodOptional<z.ZodObject<{
|
|
284
|
+
version: z.ZodDefault<z.ZodLiteral<1>>;
|
|
285
|
+
lastModified: z.ZodString;
|
|
286
|
+
}, z.core.$strip>>;
|
|
287
|
+
offerings: z.ZodOptional<z.ZodObject<{
|
|
288
|
+
version: z.ZodDefault<z.ZodLiteral<1>>;
|
|
289
|
+
lastModified: z.ZodString;
|
|
290
|
+
}, z.core.$strip>>;
|
|
291
|
+
roles: z.ZodOptional<z.ZodObject<{
|
|
292
|
+
version: z.ZodDefault<z.ZodLiteral<1>>;
|
|
293
|
+
lastModified: z.ZodString;
|
|
294
|
+
}, z.core.$strip>>;
|
|
295
|
+
goals: z.ZodOptional<z.ZodObject<{
|
|
296
|
+
version: z.ZodDefault<z.ZodLiteral<1>>;
|
|
297
|
+
lastModified: z.ZodString;
|
|
298
|
+
}, z.core.$strip>>;
|
|
299
|
+
systems: z.ZodOptional<z.ZodObject<{
|
|
300
|
+
version: z.ZodDefault<z.ZodLiteral<1>>;
|
|
301
|
+
lastModified: z.ZodString;
|
|
302
|
+
}, z.core.$strip>>;
|
|
303
|
+
ontology: z.ZodOptional<z.ZodObject<{
|
|
304
|
+
version: z.ZodDefault<z.ZodLiteral<1>>;
|
|
305
|
+
lastModified: z.ZodString;
|
|
306
|
+
}, z.core.$strip>>;
|
|
307
|
+
resources: z.ZodOptional<z.ZodObject<{
|
|
308
|
+
version: z.ZodDefault<z.ZodLiteral<1>>;
|
|
309
|
+
lastModified: z.ZodString;
|
|
310
|
+
}, z.core.$strip>>;
|
|
311
|
+
topology: z.ZodOptional<z.ZodObject<{
|
|
312
|
+
version: z.ZodDefault<z.ZodLiteral<1>>;
|
|
313
|
+
lastModified: z.ZodString;
|
|
314
|
+
}, z.core.$strip>>;
|
|
315
|
+
actions: z.ZodOptional<z.ZodObject<{
|
|
316
|
+
version: z.ZodDefault<z.ZodLiteral<1>>;
|
|
317
|
+
lastModified: z.ZodString;
|
|
318
|
+
}, z.core.$strip>>;
|
|
319
|
+
entities: z.ZodOptional<z.ZodObject<{
|
|
320
|
+
version: z.ZodDefault<z.ZodLiteral<1>>;
|
|
321
|
+
lastModified: z.ZodString;
|
|
322
|
+
}, z.core.$strip>>;
|
|
323
|
+
knowledge: z.ZodOptional<z.ZodObject<{
|
|
324
|
+
version: z.ZodDefault<z.ZodLiteral<1>>;
|
|
325
|
+
lastModified: z.ZodString;
|
|
326
|
+
}, z.core.$strip>>;
|
|
327
|
+
}, z.core.$strip>>, z.ZodTransform<{
|
|
328
|
+
branding: {
|
|
329
|
+
version: 1;
|
|
330
|
+
lastModified: string;
|
|
331
|
+
};
|
|
332
|
+
identity: {
|
|
333
|
+
version: 1;
|
|
334
|
+
lastModified: string;
|
|
335
|
+
};
|
|
336
|
+
clients: {
|
|
337
|
+
version: 1;
|
|
338
|
+
lastModified: string;
|
|
339
|
+
};
|
|
340
|
+
customers: {
|
|
341
|
+
version: 1;
|
|
342
|
+
lastModified: string;
|
|
343
|
+
};
|
|
344
|
+
offerings: {
|
|
345
|
+
version: 1;
|
|
346
|
+
lastModified: string;
|
|
347
|
+
};
|
|
348
|
+
roles: {
|
|
349
|
+
version: 1;
|
|
350
|
+
lastModified: string;
|
|
351
|
+
};
|
|
352
|
+
goals: {
|
|
353
|
+
version: 1;
|
|
354
|
+
lastModified: string;
|
|
355
|
+
};
|
|
356
|
+
systems: {
|
|
357
|
+
version: 1;
|
|
358
|
+
lastModified: string;
|
|
359
|
+
};
|
|
360
|
+
ontology: {
|
|
361
|
+
version: 1;
|
|
362
|
+
lastModified: string;
|
|
363
|
+
};
|
|
364
|
+
resources: {
|
|
365
|
+
version: 1;
|
|
366
|
+
lastModified: string;
|
|
367
|
+
};
|
|
368
|
+
topology: {
|
|
369
|
+
version: 1;
|
|
370
|
+
lastModified: string;
|
|
371
|
+
};
|
|
372
|
+
actions: {
|
|
373
|
+
version: 1;
|
|
374
|
+
lastModified: string;
|
|
375
|
+
};
|
|
376
|
+
entities: {
|
|
377
|
+
version: 1;
|
|
378
|
+
lastModified: string;
|
|
379
|
+
};
|
|
380
|
+
knowledge: {
|
|
381
|
+
version: 1;
|
|
382
|
+
lastModified: string;
|
|
383
|
+
};
|
|
384
|
+
}, {
|
|
385
|
+
branding?: {
|
|
386
|
+
version: 1;
|
|
387
|
+
lastModified: string;
|
|
388
|
+
} | undefined;
|
|
389
|
+
identity?: {
|
|
390
|
+
version: 1;
|
|
391
|
+
lastModified: string;
|
|
392
|
+
} | undefined;
|
|
393
|
+
clients?: {
|
|
394
|
+
version: 1;
|
|
395
|
+
lastModified: string;
|
|
396
|
+
} | undefined;
|
|
397
|
+
customers?: {
|
|
398
|
+
version: 1;
|
|
399
|
+
lastModified: string;
|
|
400
|
+
} | undefined;
|
|
401
|
+
offerings?: {
|
|
402
|
+
version: 1;
|
|
403
|
+
lastModified: string;
|
|
404
|
+
} | undefined;
|
|
405
|
+
roles?: {
|
|
406
|
+
version: 1;
|
|
407
|
+
lastModified: string;
|
|
408
|
+
} | undefined;
|
|
409
|
+
goals?: {
|
|
410
|
+
version: 1;
|
|
411
|
+
lastModified: string;
|
|
412
|
+
} | undefined;
|
|
413
|
+
systems?: {
|
|
414
|
+
version: 1;
|
|
415
|
+
lastModified: string;
|
|
416
|
+
} | undefined;
|
|
417
|
+
ontology?: {
|
|
418
|
+
version: 1;
|
|
419
|
+
lastModified: string;
|
|
420
|
+
} | undefined;
|
|
421
|
+
resources?: {
|
|
422
|
+
version: 1;
|
|
423
|
+
lastModified: string;
|
|
424
|
+
} | undefined;
|
|
425
|
+
topology?: {
|
|
426
|
+
version: 1;
|
|
427
|
+
lastModified: string;
|
|
428
|
+
} | undefined;
|
|
429
|
+
actions?: {
|
|
430
|
+
version: 1;
|
|
431
|
+
lastModified: string;
|
|
432
|
+
} | undefined;
|
|
433
|
+
entities?: {
|
|
434
|
+
version: 1;
|
|
435
|
+
lastModified: string;
|
|
436
|
+
} | undefined;
|
|
437
|
+
knowledge?: {
|
|
438
|
+
version: 1;
|
|
439
|
+
lastModified: string;
|
|
440
|
+
} | undefined;
|
|
441
|
+
}>>;
|
|
442
|
+
branding: z.ZodDefault<z.ZodObject<{
|
|
443
|
+
organizationName: z.ZodString;
|
|
444
|
+
productName: z.ZodString;
|
|
445
|
+
shortName: z.ZodString;
|
|
446
|
+
description: z.ZodOptional<z.ZodString>;
|
|
447
|
+
logos: z.ZodDefault<z.ZodObject<{
|
|
448
|
+
light: z.ZodOptional<z.ZodString>;
|
|
449
|
+
dark: z.ZodOptional<z.ZodString>;
|
|
450
|
+
}, z.core.$strip>>;
|
|
451
|
+
voice: z.ZodOptional<z.ZodString>;
|
|
452
|
+
tagline: z.ZodOptional<z.ZodString>;
|
|
453
|
+
values: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
454
|
+
themePresetId: z.ZodOptional<z.ZodString>;
|
|
455
|
+
}, z.core.$loose>>;
|
|
456
|
+
navigation: z.ZodDefault<z.ZodObject<{
|
|
457
|
+
sidebar: z.ZodDefault<z.ZodObject<{
|
|
458
|
+
primary: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodType<SidebarNode, unknown, z.core.$ZodTypeInternals<SidebarNode, unknown>>>>;
|
|
459
|
+
bottom: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodType<SidebarNode, unknown, z.core.$ZodTypeInternals<SidebarNode, unknown>>>>;
|
|
460
|
+
}, z.core.$strip>>;
|
|
461
|
+
topbar: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
462
|
+
id: z.ZodString;
|
|
463
|
+
label: z.ZodString;
|
|
464
|
+
tooltip: z.ZodOptional<z.ZodString>;
|
|
465
|
+
icon: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
466
|
+
message: "message";
|
|
467
|
+
error: "error";
|
|
468
|
+
agent: "agent";
|
|
469
|
+
workflow: "workflow";
|
|
470
|
+
"google-sheets": "google-sheets";
|
|
471
|
+
dashboard: "dashboard";
|
|
472
|
+
calendar: "calendar";
|
|
473
|
+
sales: "sales";
|
|
474
|
+
crm: "crm";
|
|
475
|
+
"lead-gen": "lead-gen";
|
|
476
|
+
projects: "projects";
|
|
477
|
+
clients: "clients";
|
|
478
|
+
operations: "operations";
|
|
479
|
+
monitoring: "monitoring";
|
|
480
|
+
knowledge: "knowledge";
|
|
481
|
+
settings: "settings";
|
|
482
|
+
admin: "admin";
|
|
483
|
+
archive: "archive";
|
|
484
|
+
business: "business";
|
|
485
|
+
finance: "finance";
|
|
486
|
+
platform: "platform";
|
|
487
|
+
seo: "seo";
|
|
488
|
+
playbook: "playbook";
|
|
489
|
+
strategy: "strategy";
|
|
490
|
+
reference: "reference";
|
|
491
|
+
integration: "integration";
|
|
492
|
+
database: "database";
|
|
493
|
+
user: "user";
|
|
494
|
+
team: "team";
|
|
495
|
+
gmail: "gmail";
|
|
496
|
+
attio: "attio";
|
|
497
|
+
overview: "overview";
|
|
498
|
+
"command-view": "command-view";
|
|
499
|
+
"command-queue": "command-queue";
|
|
500
|
+
pipeline: "pipeline";
|
|
501
|
+
lists: "lists";
|
|
502
|
+
resources: "resources";
|
|
503
|
+
approve: "approve";
|
|
504
|
+
reject: "reject";
|
|
505
|
+
retry: "retry";
|
|
506
|
+
edit: "edit";
|
|
507
|
+
view: "view";
|
|
508
|
+
launch: "launch";
|
|
509
|
+
"message-plus": "message-plus";
|
|
510
|
+
escalate: "escalate";
|
|
511
|
+
promote: "promote";
|
|
512
|
+
submit: "submit";
|
|
513
|
+
email: "email";
|
|
514
|
+
success: "success";
|
|
515
|
+
warning: "warning";
|
|
516
|
+
info: "info";
|
|
517
|
+
pending: "pending";
|
|
518
|
+
bolt: "bolt";
|
|
519
|
+
building: "building";
|
|
520
|
+
briefcase: "briefcase";
|
|
521
|
+
apps: "apps";
|
|
522
|
+
graph: "graph";
|
|
523
|
+
shield: "shield";
|
|
524
|
+
users: "users";
|
|
525
|
+
"chart-bar": "chart-bar";
|
|
526
|
+
search: "search";
|
|
527
|
+
}>, z.ZodString]>>;
|
|
528
|
+
order: z.ZodOptional<z.ZodNumber>;
|
|
529
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
530
|
+
devOnly: z.ZodOptional<z.ZodBoolean>;
|
|
531
|
+
requiresAdmin: z.ZodOptional<z.ZodBoolean>;
|
|
532
|
+
targets: z.ZodOptional<z.ZodDefault<z.ZodObject<{
|
|
533
|
+
systems: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
|
|
534
|
+
entities: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
|
|
535
|
+
resources: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
|
|
536
|
+
actions: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
|
|
537
|
+
}, z.core.$strip>>>;
|
|
538
|
+
}, z.core.$strip>>>;
|
|
539
|
+
}, z.core.$strip>>;
|
|
540
|
+
identity: z.ZodDefault<z.ZodObject<{
|
|
541
|
+
mission: z.ZodDefault<z.ZodString>;
|
|
542
|
+
vision: z.ZodDefault<z.ZodString>;
|
|
543
|
+
legalName: z.ZodDefault<z.ZodString>;
|
|
544
|
+
entityType: z.ZodDefault<z.ZodString>;
|
|
545
|
+
jurisdiction: z.ZodDefault<z.ZodString>;
|
|
546
|
+
industryCategory: z.ZodDefault<z.ZodString>;
|
|
547
|
+
geographicFocus: z.ZodDefault<z.ZodString>;
|
|
548
|
+
timeZone: z.ZodDefault<z.ZodString>;
|
|
549
|
+
businessHours: z.ZodDefault<z.ZodObject<{
|
|
550
|
+
monday: z.ZodOptional<z.ZodObject<{
|
|
551
|
+
open: z.ZodString;
|
|
552
|
+
close: z.ZodString;
|
|
553
|
+
}, z.core.$strip>>;
|
|
554
|
+
tuesday: z.ZodOptional<z.ZodObject<{
|
|
555
|
+
open: z.ZodString;
|
|
556
|
+
close: z.ZodString;
|
|
557
|
+
}, z.core.$strip>>;
|
|
558
|
+
wednesday: z.ZodOptional<z.ZodObject<{
|
|
559
|
+
open: z.ZodString;
|
|
560
|
+
close: z.ZodString;
|
|
561
|
+
}, z.core.$strip>>;
|
|
562
|
+
thursday: z.ZodOptional<z.ZodObject<{
|
|
563
|
+
open: z.ZodString;
|
|
564
|
+
close: z.ZodString;
|
|
565
|
+
}, z.core.$strip>>;
|
|
566
|
+
friday: z.ZodOptional<z.ZodObject<{
|
|
567
|
+
open: z.ZodString;
|
|
568
|
+
close: z.ZodString;
|
|
569
|
+
}, z.core.$strip>>;
|
|
570
|
+
saturday: z.ZodOptional<z.ZodObject<{
|
|
571
|
+
open: z.ZodString;
|
|
572
|
+
close: z.ZodString;
|
|
573
|
+
}, z.core.$strip>>;
|
|
574
|
+
sunday: z.ZodOptional<z.ZodObject<{
|
|
575
|
+
open: z.ZodString;
|
|
576
|
+
close: z.ZodString;
|
|
577
|
+
}, z.core.$strip>>;
|
|
578
|
+
}, z.core.$strip>>;
|
|
579
|
+
clientBrief: z.ZodDefault<z.ZodString>;
|
|
580
|
+
organizationName: z.ZodOptional<z.ZodString>;
|
|
581
|
+
productName: z.ZodOptional<z.ZodString>;
|
|
582
|
+
shortName: z.ZodOptional<z.ZodString>;
|
|
583
|
+
description: z.ZodOptional<z.ZodString>;
|
|
584
|
+
}, z.core.$loose>>;
|
|
585
|
+
clients: z.ZodDefault<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
586
|
+
id: z.ZodString;
|
|
587
|
+
slug: z.ZodString;
|
|
588
|
+
name: z.ZodString;
|
|
589
|
+
status: z.ZodDefault<z.ZodEnum<{
|
|
590
|
+
active: "active";
|
|
591
|
+
onboarding: "onboarding";
|
|
592
|
+
paused: "paused";
|
|
593
|
+
completed: "completed";
|
|
594
|
+
churned: "churned";
|
|
595
|
+
}>>;
|
|
596
|
+
source: z.ZodOptional<z.ZodString>;
|
|
597
|
+
identity: z.ZodDefault<z.ZodObject<{
|
|
598
|
+
organizationName: z.ZodOptional<z.ZodString>;
|
|
599
|
+
shortName: z.ZodOptional<z.ZodString>;
|
|
600
|
+
clientBrief: z.ZodDefault<z.ZodString>;
|
|
601
|
+
geographicFocus: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
602
|
+
timeZone: z.ZodDefault<z.ZodString>;
|
|
603
|
+
}, z.core.$loose>>;
|
|
604
|
+
branding: z.ZodDefault<z.ZodObject<{
|
|
605
|
+
voice: z.ZodOptional<z.ZodString>;
|
|
606
|
+
tagline: z.ZodOptional<z.ZodString>;
|
|
607
|
+
values: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
608
|
+
}, z.core.$loose>>;
|
|
609
|
+
workspace: z.ZodDefault<z.ZodObject<{
|
|
610
|
+
kind: z.ZodOptional<z.ZodEnum<{
|
|
611
|
+
"external-project": "external-project";
|
|
612
|
+
"internal-project": "internal-project";
|
|
613
|
+
none: "none";
|
|
614
|
+
}>>;
|
|
615
|
+
owner: z.ZodOptional<z.ZodEnum<{
|
|
616
|
+
platform: "platform";
|
|
617
|
+
client: "client";
|
|
618
|
+
developer: "developer";
|
|
619
|
+
}>>;
|
|
620
|
+
projectId: z.ZodOptional<z.ZodString>;
|
|
621
|
+
workspacePath: z.ZodOptional<z.ZodString>;
|
|
622
|
+
}, z.core.$loose>>;
|
|
623
|
+
links: z.ZodDefault<z.ZodObject<{
|
|
624
|
+
projectIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
625
|
+
primaryCompanyId: z.ZodOptional<z.ZodString>;
|
|
626
|
+
primaryContactId: z.ZodOptional<z.ZodString>;
|
|
627
|
+
sourceDealId: z.ZodOptional<z.ZodString>;
|
|
628
|
+
}, z.core.$strip>>;
|
|
629
|
+
prompts: z.ZodDefault<z.ZodObject<{
|
|
630
|
+
defaultContext: z.ZodDefault<z.ZodString>;
|
|
631
|
+
}, z.core.$loose>>;
|
|
632
|
+
config: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
|
|
633
|
+
customValues: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
|
|
634
|
+
}, z.core.$strict>>>>;
|
|
635
|
+
customers: z.ZodDefault<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
636
|
+
id: z.ZodString;
|
|
637
|
+
order: z.ZodNumber;
|
|
638
|
+
name: z.ZodDefault<z.ZodString>;
|
|
639
|
+
description: z.ZodDefault<z.ZodString>;
|
|
640
|
+
jobsToBeDone: z.ZodDefault<z.ZodString>;
|
|
641
|
+
pains: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
642
|
+
gains: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
643
|
+
firmographics: z.ZodDefault<z.ZodObject<{
|
|
644
|
+
industry: z.ZodOptional<z.ZodString>;
|
|
645
|
+
companySize: z.ZodOptional<z.ZodString>;
|
|
646
|
+
region: z.ZodOptional<z.ZodString>;
|
|
647
|
+
}, z.core.$strip>>;
|
|
648
|
+
valueProp: z.ZodDefault<z.ZodString>;
|
|
649
|
+
}, z.core.$strip>>>>;
|
|
650
|
+
offerings: z.ZodDefault<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
651
|
+
id: z.ZodString;
|
|
652
|
+
order: z.ZodNumber;
|
|
653
|
+
name: z.ZodDefault<z.ZodString>;
|
|
654
|
+
description: z.ZodDefault<z.ZodString>;
|
|
655
|
+
pricingModel: z.ZodDefault<z.ZodEnum<{
|
|
656
|
+
custom: "custom";
|
|
657
|
+
"one-time": "one-time";
|
|
658
|
+
subscription: "subscription";
|
|
659
|
+
"usage-based": "usage-based";
|
|
660
|
+
}>>;
|
|
661
|
+
price: z.ZodDefault<z.ZodNumber>;
|
|
662
|
+
currency: z.ZodDefault<z.ZodString>;
|
|
663
|
+
targetSegmentIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
664
|
+
deliveryFeatureId: z.ZodOptional<z.ZodString>;
|
|
665
|
+
}, z.core.$strip>>>>;
|
|
666
|
+
roles: z.ZodDefault<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
667
|
+
id: z.ZodString;
|
|
668
|
+
order: z.ZodNumber;
|
|
669
|
+
title: z.ZodString;
|
|
670
|
+
responsibilities: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
671
|
+
reportsToId: z.ZodOptional<z.ZodString>;
|
|
672
|
+
heldBy: z.ZodOptional<z.ZodUnion<readonly [z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
673
|
+
kind: z.ZodLiteral<"human">;
|
|
674
|
+
userId: z.ZodString;
|
|
675
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
676
|
+
kind: z.ZodLiteral<"agent">;
|
|
677
|
+
agentId: z.ZodString;
|
|
678
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
679
|
+
kind: z.ZodLiteral<"team">;
|
|
680
|
+
memberIds: z.ZodArray<z.ZodString>;
|
|
681
|
+
}, z.core.$strip>], "kind">, z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
682
|
+
kind: z.ZodLiteral<"human">;
|
|
683
|
+
userId: z.ZodString;
|
|
684
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
685
|
+
kind: z.ZodLiteral<"agent">;
|
|
686
|
+
agentId: z.ZodString;
|
|
687
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
688
|
+
kind: z.ZodLiteral<"team">;
|
|
689
|
+
memberIds: z.ZodArray<z.ZodString>;
|
|
690
|
+
}, z.core.$strip>], "kind">>]>>;
|
|
691
|
+
responsibleFor: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
692
|
+
}, z.core.$strip>>>>;
|
|
693
|
+
goals: z.ZodDefault<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
694
|
+
id: z.ZodString;
|
|
695
|
+
order: z.ZodNumber;
|
|
696
|
+
description: z.ZodString;
|
|
697
|
+
periodStart: z.ZodString;
|
|
698
|
+
periodEnd: z.ZodString;
|
|
699
|
+
keyResults: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
700
|
+
id: z.ZodString;
|
|
701
|
+
description: z.ZodString;
|
|
702
|
+
targetMetric: z.ZodString;
|
|
703
|
+
currentValue: z.ZodDefault<z.ZodNumber>;
|
|
704
|
+
targetValue: z.ZodOptional<z.ZodNumber>;
|
|
705
|
+
}, z.core.$strip>>>;
|
|
706
|
+
}, z.core.$strip>>>>;
|
|
707
|
+
systems: z.ZodDefault<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodType<SystemEntry, unknown, z.core.$ZodTypeInternals<SystemEntry, unknown>>>>>;
|
|
708
|
+
ontology: z.ZodDefault<z.ZodDefault<z.ZodObject<{
|
|
709
|
+
objectTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
710
|
+
id: z.ZodString;
|
|
711
|
+
label: z.ZodOptional<z.ZodString>;
|
|
712
|
+
description: z.ZodOptional<z.ZodString>;
|
|
713
|
+
ownerSystemId: z.ZodOptional<z.ZodString>;
|
|
714
|
+
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
715
|
+
properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
716
|
+
storage: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
717
|
+
}, z.core.$loose>>>>;
|
|
718
|
+
linkTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
719
|
+
id: z.ZodString;
|
|
720
|
+
label: z.ZodOptional<z.ZodString>;
|
|
721
|
+
description: z.ZodOptional<z.ZodString>;
|
|
722
|
+
ownerSystemId: z.ZodOptional<z.ZodString>;
|
|
723
|
+
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
724
|
+
from: z.ZodString;
|
|
725
|
+
to: z.ZodString;
|
|
726
|
+
cardinality: z.ZodOptional<z.ZodString>;
|
|
727
|
+
via: z.ZodOptional<z.ZodString>;
|
|
728
|
+
}, z.core.$loose>>>>;
|
|
729
|
+
actionTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
730
|
+
id: z.ZodString;
|
|
731
|
+
label: z.ZodOptional<z.ZodString>;
|
|
732
|
+
description: z.ZodOptional<z.ZodString>;
|
|
733
|
+
ownerSystemId: z.ZodOptional<z.ZodString>;
|
|
734
|
+
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
735
|
+
actsOn: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
|
|
736
|
+
input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
737
|
+
effects: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
738
|
+
}, z.core.$loose>>>>;
|
|
739
|
+
catalogTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
740
|
+
id: z.ZodString;
|
|
741
|
+
label: z.ZodOptional<z.ZodString>;
|
|
742
|
+
description: z.ZodOptional<z.ZodString>;
|
|
743
|
+
ownerSystemId: z.ZodOptional<z.ZodString>;
|
|
744
|
+
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
745
|
+
kind: z.ZodOptional<z.ZodString>;
|
|
746
|
+
appliesTo: z.ZodOptional<z.ZodString>;
|
|
747
|
+
entries: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
748
|
+
}, z.core.$loose>>>>;
|
|
749
|
+
eventTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
750
|
+
id: z.ZodString;
|
|
751
|
+
label: z.ZodOptional<z.ZodString>;
|
|
752
|
+
description: z.ZodOptional<z.ZodString>;
|
|
753
|
+
ownerSystemId: z.ZodOptional<z.ZodString>;
|
|
754
|
+
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
755
|
+
payload: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
756
|
+
}, z.core.$loose>>>>;
|
|
757
|
+
interfaceTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
758
|
+
id: z.ZodString;
|
|
759
|
+
label: z.ZodOptional<z.ZodString>;
|
|
760
|
+
description: z.ZodOptional<z.ZodString>;
|
|
761
|
+
ownerSystemId: z.ZodOptional<z.ZodString>;
|
|
762
|
+
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
763
|
+
properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
764
|
+
}, z.core.$loose>>>>;
|
|
765
|
+
valueTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
766
|
+
id: z.ZodString;
|
|
767
|
+
label: z.ZodOptional<z.ZodString>;
|
|
768
|
+
description: z.ZodOptional<z.ZodString>;
|
|
769
|
+
ownerSystemId: z.ZodOptional<z.ZodString>;
|
|
770
|
+
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
771
|
+
primitive: z.ZodOptional<z.ZodString>;
|
|
772
|
+
}, z.core.$loose>>>>;
|
|
773
|
+
sharedProperties: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
774
|
+
id: z.ZodString;
|
|
775
|
+
label: z.ZodOptional<z.ZodString>;
|
|
776
|
+
description: z.ZodOptional<z.ZodString>;
|
|
777
|
+
ownerSystemId: z.ZodOptional<z.ZodString>;
|
|
778
|
+
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
779
|
+
valueType: z.ZodOptional<z.ZodString>;
|
|
780
|
+
searchable: z.ZodOptional<z.ZodBoolean>;
|
|
781
|
+
pii: z.ZodOptional<z.ZodBoolean>;
|
|
782
|
+
}, z.core.$loose>>>>;
|
|
783
|
+
groups: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
784
|
+
id: z.ZodString;
|
|
785
|
+
label: z.ZodOptional<z.ZodString>;
|
|
786
|
+
description: z.ZodOptional<z.ZodString>;
|
|
787
|
+
ownerSystemId: z.ZodOptional<z.ZodString>;
|
|
788
|
+
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
789
|
+
members: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
|
|
790
|
+
}, z.core.$loose>>>>;
|
|
791
|
+
endpoints: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
792
|
+
id: z.ZodString;
|
|
793
|
+
label: z.ZodOptional<z.ZodString>;
|
|
794
|
+
description: z.ZodOptional<z.ZodString>;
|
|
795
|
+
ownerSystemId: z.ZodOptional<z.ZodString>;
|
|
796
|
+
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
797
|
+
route: z.ZodOptional<z.ZodString>;
|
|
798
|
+
}, z.core.$loose>>>>;
|
|
799
|
+
}, z.core.$strip>>>;
|
|
800
|
+
resources: z.ZodDefault<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
801
|
+
id: z.ZodString;
|
|
802
|
+
order: z.ZodDefault<z.ZodNumber>;
|
|
803
|
+
systemPath: z.ZodString;
|
|
804
|
+
title: z.ZodOptional<z.ZodString>;
|
|
805
|
+
description: z.ZodOptional<z.ZodString>;
|
|
806
|
+
ownerRoleId: z.ZodOptional<z.ZodString>;
|
|
807
|
+
status: z.ZodEnum<{
|
|
808
|
+
active: "active";
|
|
809
|
+
deprecated: "deprecated";
|
|
810
|
+
archived: "archived";
|
|
811
|
+
}>;
|
|
812
|
+
ontology: z.ZodOptional<z.ZodObject<{
|
|
813
|
+
actions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
814
|
+
primaryAction: z.ZodOptional<z.ZodString>;
|
|
815
|
+
reads: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
816
|
+
writes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
817
|
+
usesCatalogs: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
818
|
+
emits: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
819
|
+
contract: z.ZodOptional<z.ZodObject<{
|
|
820
|
+
input: z.ZodOptional<z.ZodString>;
|
|
821
|
+
output: z.ZodOptional<z.ZodString>;
|
|
822
|
+
}, z.core.$strip>>;
|
|
823
|
+
}, z.core.$strip>>;
|
|
824
|
+
codeRefs: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
825
|
+
path: z.ZodString;
|
|
826
|
+
role: z.ZodEnum<{
|
|
827
|
+
entrypoint: "entrypoint";
|
|
828
|
+
handler: "handler";
|
|
829
|
+
schema: "schema";
|
|
830
|
+
test: "test";
|
|
831
|
+
docs: "docs";
|
|
832
|
+
config: "config";
|
|
833
|
+
}>;
|
|
834
|
+
symbol: z.ZodOptional<z.ZodString>;
|
|
835
|
+
description: z.ZodOptional<z.ZodString>;
|
|
836
|
+
}, z.core.$strip>>>;
|
|
837
|
+
kind: z.ZodLiteral<"workflow">;
|
|
838
|
+
emits: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
839
|
+
eventKey: z.ZodString;
|
|
840
|
+
label: z.ZodString;
|
|
841
|
+
payloadSchema: z.ZodOptional<z.ZodString>;
|
|
842
|
+
lifecycle: z.ZodOptional<z.ZodEnum<{
|
|
843
|
+
active: "active";
|
|
844
|
+
deprecated: "deprecated";
|
|
845
|
+
draft: "draft";
|
|
846
|
+
beta: "beta";
|
|
847
|
+
archived: "archived";
|
|
848
|
+
}>>;
|
|
849
|
+
}, z.core.$strip>>>;
|
|
850
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
851
|
+
id: z.ZodString;
|
|
852
|
+
order: z.ZodDefault<z.ZodNumber>;
|
|
853
|
+
systemPath: z.ZodString;
|
|
854
|
+
title: z.ZodOptional<z.ZodString>;
|
|
855
|
+
description: z.ZodOptional<z.ZodString>;
|
|
856
|
+
ownerRoleId: z.ZodOptional<z.ZodString>;
|
|
857
|
+
status: z.ZodEnum<{
|
|
858
|
+
active: "active";
|
|
859
|
+
deprecated: "deprecated";
|
|
860
|
+
archived: "archived";
|
|
861
|
+
}>;
|
|
862
|
+
ontology: z.ZodOptional<z.ZodObject<{
|
|
863
|
+
actions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
864
|
+
primaryAction: z.ZodOptional<z.ZodString>;
|
|
865
|
+
reads: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
866
|
+
writes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
867
|
+
usesCatalogs: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
868
|
+
emits: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
869
|
+
contract: z.ZodOptional<z.ZodObject<{
|
|
870
|
+
input: z.ZodOptional<z.ZodString>;
|
|
871
|
+
output: z.ZodOptional<z.ZodString>;
|
|
872
|
+
}, z.core.$strip>>;
|
|
873
|
+
}, z.core.$strip>>;
|
|
874
|
+
codeRefs: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
875
|
+
path: z.ZodString;
|
|
876
|
+
role: z.ZodEnum<{
|
|
877
|
+
entrypoint: "entrypoint";
|
|
878
|
+
handler: "handler";
|
|
879
|
+
schema: "schema";
|
|
880
|
+
test: "test";
|
|
881
|
+
docs: "docs";
|
|
882
|
+
config: "config";
|
|
883
|
+
}>;
|
|
884
|
+
symbol: z.ZodOptional<z.ZodString>;
|
|
885
|
+
description: z.ZodOptional<z.ZodString>;
|
|
886
|
+
}, z.core.$strip>>>;
|
|
887
|
+
kind: z.ZodLiteral<"agent">;
|
|
888
|
+
agentKind: z.ZodEnum<{
|
|
889
|
+
platform: "platform";
|
|
890
|
+
orchestrator: "orchestrator";
|
|
891
|
+
specialist: "specialist";
|
|
892
|
+
utility: "utility";
|
|
893
|
+
}>;
|
|
894
|
+
actsAsRoleId: z.ZodOptional<z.ZodString>;
|
|
895
|
+
sessionCapable: z.ZodBoolean;
|
|
896
|
+
invocations: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
897
|
+
kind: z.ZodLiteral<"slash-command">;
|
|
898
|
+
command: z.ZodString;
|
|
899
|
+
toolFactory: z.ZodOptional<z.ZodString>;
|
|
900
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
901
|
+
kind: z.ZodLiteral<"mcp-tool">;
|
|
902
|
+
server: z.ZodString;
|
|
903
|
+
name: z.ZodString;
|
|
904
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
905
|
+
kind: z.ZodLiteral<"api-endpoint">;
|
|
906
|
+
method: z.ZodEnum<{
|
|
907
|
+
GET: "GET";
|
|
908
|
+
POST: "POST";
|
|
909
|
+
PATCH: "PATCH";
|
|
910
|
+
DELETE: "DELETE";
|
|
911
|
+
}>;
|
|
912
|
+
path: z.ZodString;
|
|
913
|
+
requestSchema: z.ZodOptional<z.ZodString>;
|
|
914
|
+
responseSchema: z.ZodOptional<z.ZodString>;
|
|
915
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
916
|
+
kind: z.ZodLiteral<"script-execution">;
|
|
917
|
+
resourceId: z.ZodString;
|
|
918
|
+
}, z.core.$strip>], "kind">>>;
|
|
919
|
+
emits: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
920
|
+
eventKey: z.ZodString;
|
|
921
|
+
label: z.ZodString;
|
|
922
|
+
payloadSchema: z.ZodOptional<z.ZodString>;
|
|
923
|
+
lifecycle: z.ZodOptional<z.ZodEnum<{
|
|
924
|
+
active: "active";
|
|
925
|
+
deprecated: "deprecated";
|
|
926
|
+
draft: "draft";
|
|
927
|
+
beta: "beta";
|
|
928
|
+
archived: "archived";
|
|
929
|
+
}>>;
|
|
930
|
+
}, z.core.$strip>>>;
|
|
931
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
932
|
+
id: z.ZodString;
|
|
933
|
+
order: z.ZodDefault<z.ZodNumber>;
|
|
934
|
+
systemPath: z.ZodString;
|
|
935
|
+
title: z.ZodOptional<z.ZodString>;
|
|
936
|
+
description: z.ZodOptional<z.ZodString>;
|
|
937
|
+
ownerRoleId: z.ZodOptional<z.ZodString>;
|
|
938
|
+
status: z.ZodEnum<{
|
|
939
|
+
active: "active";
|
|
940
|
+
deprecated: "deprecated";
|
|
941
|
+
archived: "archived";
|
|
942
|
+
}>;
|
|
943
|
+
ontology: z.ZodOptional<z.ZodObject<{
|
|
944
|
+
actions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
945
|
+
primaryAction: z.ZodOptional<z.ZodString>;
|
|
946
|
+
reads: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
947
|
+
writes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
948
|
+
usesCatalogs: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
949
|
+
emits: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
950
|
+
contract: z.ZodOptional<z.ZodObject<{
|
|
951
|
+
input: z.ZodOptional<z.ZodString>;
|
|
952
|
+
output: z.ZodOptional<z.ZodString>;
|
|
953
|
+
}, z.core.$strip>>;
|
|
954
|
+
}, z.core.$strip>>;
|
|
955
|
+
codeRefs: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
956
|
+
path: z.ZodString;
|
|
957
|
+
role: z.ZodEnum<{
|
|
958
|
+
entrypoint: "entrypoint";
|
|
959
|
+
handler: "handler";
|
|
960
|
+
schema: "schema";
|
|
961
|
+
test: "test";
|
|
962
|
+
docs: "docs";
|
|
963
|
+
config: "config";
|
|
964
|
+
}>;
|
|
965
|
+
symbol: z.ZodOptional<z.ZodString>;
|
|
966
|
+
description: z.ZodOptional<z.ZodString>;
|
|
967
|
+
}, z.core.$strip>>>;
|
|
968
|
+
kind: z.ZodLiteral<"integration">;
|
|
969
|
+
provider: z.ZodString;
|
|
970
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
971
|
+
id: z.ZodString;
|
|
972
|
+
order: z.ZodDefault<z.ZodNumber>;
|
|
973
|
+
systemPath: z.ZodString;
|
|
974
|
+
title: z.ZodOptional<z.ZodString>;
|
|
975
|
+
description: z.ZodOptional<z.ZodString>;
|
|
976
|
+
ownerRoleId: z.ZodOptional<z.ZodString>;
|
|
977
|
+
status: z.ZodEnum<{
|
|
978
|
+
active: "active";
|
|
979
|
+
deprecated: "deprecated";
|
|
980
|
+
archived: "archived";
|
|
981
|
+
}>;
|
|
982
|
+
ontology: z.ZodOptional<z.ZodObject<{
|
|
983
|
+
actions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
984
|
+
primaryAction: z.ZodOptional<z.ZodString>;
|
|
985
|
+
reads: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
986
|
+
writes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
987
|
+
usesCatalogs: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
988
|
+
emits: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
989
|
+
contract: z.ZodOptional<z.ZodObject<{
|
|
990
|
+
input: z.ZodOptional<z.ZodString>;
|
|
991
|
+
output: z.ZodOptional<z.ZodString>;
|
|
992
|
+
}, z.core.$strip>>;
|
|
993
|
+
}, z.core.$strip>>;
|
|
994
|
+
codeRefs: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
995
|
+
path: z.ZodString;
|
|
996
|
+
role: z.ZodEnum<{
|
|
997
|
+
entrypoint: "entrypoint";
|
|
998
|
+
handler: "handler";
|
|
999
|
+
schema: "schema";
|
|
1000
|
+
test: "test";
|
|
1001
|
+
docs: "docs";
|
|
1002
|
+
config: "config";
|
|
1003
|
+
}>;
|
|
1004
|
+
symbol: z.ZodOptional<z.ZodString>;
|
|
1005
|
+
description: z.ZodOptional<z.ZodString>;
|
|
1006
|
+
}, z.core.$strip>>>;
|
|
1007
|
+
kind: z.ZodLiteral<"script">;
|
|
1008
|
+
language: z.ZodEnum<{
|
|
1009
|
+
shell: "shell";
|
|
1010
|
+
sql: "sql";
|
|
1011
|
+
typescript: "typescript";
|
|
1012
|
+
python: "python";
|
|
1013
|
+
}>;
|
|
1014
|
+
source: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
1015
|
+
file: z.ZodString;
|
|
1016
|
+
}, z.core.$strip>]>;
|
|
1017
|
+
}, z.core.$strip>], "kind">>>>;
|
|
1018
|
+
topology: z.ZodDefault<z.ZodDefault<z.ZodObject<{
|
|
1019
|
+
version: z.ZodDefault<z.ZodLiteral<1>>;
|
|
1020
|
+
relationships: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
1021
|
+
from: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
1022
|
+
kind: z.ZodLiteral<"system">;
|
|
1023
|
+
id: z.ZodString;
|
|
1024
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1025
|
+
kind: z.ZodLiteral<"resource">;
|
|
1026
|
+
id: z.ZodString;
|
|
1027
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1028
|
+
kind: z.ZodLiteral<"ontology">;
|
|
1029
|
+
id: z.ZodString;
|
|
1030
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1031
|
+
kind: z.ZodLiteral<"role">;
|
|
1032
|
+
id: z.ZodString;
|
|
1033
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1034
|
+
kind: z.ZodLiteral<"trigger">;
|
|
1035
|
+
id: z.ZodString;
|
|
1036
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1037
|
+
kind: z.ZodLiteral<"humanCheckpoint">;
|
|
1038
|
+
id: z.ZodString;
|
|
1039
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1040
|
+
kind: z.ZodLiteral<"externalResource">;
|
|
1041
|
+
id: z.ZodString;
|
|
1042
|
+
}, z.core.$strip>], "kind">;
|
|
1043
|
+
kind: z.ZodEnum<{
|
|
1044
|
+
triggers: "triggers";
|
|
1045
|
+
uses: "uses";
|
|
1046
|
+
approval: "approval";
|
|
1047
|
+
}>;
|
|
1048
|
+
to: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
1049
|
+
kind: z.ZodLiteral<"system">;
|
|
1050
|
+
id: z.ZodString;
|
|
1051
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1052
|
+
kind: z.ZodLiteral<"resource">;
|
|
1053
|
+
id: z.ZodString;
|
|
1054
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1055
|
+
kind: z.ZodLiteral<"ontology">;
|
|
1056
|
+
id: z.ZodString;
|
|
1057
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1058
|
+
kind: z.ZodLiteral<"role">;
|
|
1059
|
+
id: z.ZodString;
|
|
1060
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1061
|
+
kind: z.ZodLiteral<"trigger">;
|
|
1062
|
+
id: z.ZodString;
|
|
1063
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1064
|
+
kind: z.ZodLiteral<"humanCheckpoint">;
|
|
1065
|
+
id: z.ZodString;
|
|
1066
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1067
|
+
kind: z.ZodLiteral<"externalResource">;
|
|
1068
|
+
id: z.ZodString;
|
|
1069
|
+
}, z.core.$strip>], "kind">;
|
|
1070
|
+
systemPath: z.ZodOptional<z.ZodString>;
|
|
1071
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
1072
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
|
|
1073
|
+
}, z.core.$strip>>>;
|
|
1074
|
+
}, z.core.$strip>>>;
|
|
1075
|
+
actions: z.ZodDefault<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
1076
|
+
id: z.ZodString;
|
|
1077
|
+
order: z.ZodNumber;
|
|
1078
|
+
label: z.ZodString;
|
|
1079
|
+
description: z.ZodOptional<z.ZodString>;
|
|
1080
|
+
scope: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<"global">, z.ZodObject<{
|
|
1081
|
+
domain: z.ZodString;
|
|
1082
|
+
}, z.core.$strip>]>>;
|
|
1083
|
+
resourceId: z.ZodOptional<z.ZodString>;
|
|
1084
|
+
affects: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1085
|
+
invocations: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
1086
|
+
kind: z.ZodLiteral<"slash-command">;
|
|
1087
|
+
command: z.ZodString;
|
|
1088
|
+
toolFactory: z.ZodOptional<z.ZodString>;
|
|
1089
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1090
|
+
kind: z.ZodLiteral<"mcp-tool">;
|
|
1091
|
+
server: z.ZodString;
|
|
1092
|
+
name: z.ZodString;
|
|
1093
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1094
|
+
kind: z.ZodLiteral<"api-endpoint">;
|
|
1095
|
+
method: z.ZodEnum<{
|
|
1096
|
+
GET: "GET";
|
|
1097
|
+
POST: "POST";
|
|
1098
|
+
PATCH: "PATCH";
|
|
1099
|
+
DELETE: "DELETE";
|
|
1100
|
+
}>;
|
|
1101
|
+
path: z.ZodString;
|
|
1102
|
+
requestSchema: z.ZodOptional<z.ZodString>;
|
|
1103
|
+
responseSchema: z.ZodOptional<z.ZodString>;
|
|
1104
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1105
|
+
kind: z.ZodLiteral<"script-execution">;
|
|
1106
|
+
resourceId: z.ZodString;
|
|
1107
|
+
}, z.core.$strip>], "kind">>>;
|
|
1108
|
+
knowledge: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
|
|
1109
|
+
lifecycle: z.ZodDefault<z.ZodEnum<{
|
|
1110
|
+
active: "active";
|
|
1111
|
+
deprecated: "deprecated";
|
|
1112
|
+
draft: "draft";
|
|
1113
|
+
beta: "beta";
|
|
1114
|
+
archived: "archived";
|
|
1115
|
+
}>>;
|
|
1116
|
+
}, z.core.$strip>>>>;
|
|
1117
|
+
entities: z.ZodDefault<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
1118
|
+
id: z.ZodString;
|
|
1119
|
+
order: z.ZodNumber;
|
|
1120
|
+
label: z.ZodString;
|
|
1121
|
+
description: z.ZodOptional<z.ZodString>;
|
|
1122
|
+
ownedBySystemId: z.ZodString;
|
|
1123
|
+
table: z.ZodOptional<z.ZodString>;
|
|
1124
|
+
rowSchema: z.ZodOptional<z.ZodString>;
|
|
1125
|
+
stateCatalogId: z.ZodOptional<z.ZodString>;
|
|
1126
|
+
links: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1127
|
+
toEntity: z.ZodString;
|
|
1128
|
+
kind: z.ZodEnum<{
|
|
1129
|
+
"belongs-to": "belongs-to";
|
|
1130
|
+
"has-many": "has-many";
|
|
1131
|
+
"has-one": "has-one";
|
|
1132
|
+
"many-to-many": "many-to-many";
|
|
1133
|
+
}>;
|
|
1134
|
+
via: z.ZodOptional<z.ZodString>;
|
|
1135
|
+
label: z.ZodOptional<z.ZodString>;
|
|
1136
|
+
}, z.core.$strip>>>;
|
|
1137
|
+
}, z.core.$strip>>>>;
|
|
1138
|
+
knowledge: z.ZodDefault<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
1139
|
+
id: z.ZodString;
|
|
1140
|
+
kind: z.ZodEnum<{
|
|
1141
|
+
playbook: "playbook";
|
|
1142
|
+
strategy: "strategy";
|
|
1143
|
+
reference: "reference";
|
|
1144
|
+
}>;
|
|
1145
|
+
title: z.ZodString;
|
|
1146
|
+
summary: z.ZodString;
|
|
1147
|
+
icon: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
1148
|
+
message: "message";
|
|
1149
|
+
error: "error";
|
|
1150
|
+
agent: "agent";
|
|
1151
|
+
workflow: "workflow";
|
|
1152
|
+
"google-sheets": "google-sheets";
|
|
1153
|
+
dashboard: "dashboard";
|
|
1154
|
+
calendar: "calendar";
|
|
1155
|
+
sales: "sales";
|
|
1156
|
+
crm: "crm";
|
|
1157
|
+
"lead-gen": "lead-gen";
|
|
1158
|
+
projects: "projects";
|
|
1159
|
+
clients: "clients";
|
|
1160
|
+
operations: "operations";
|
|
1161
|
+
monitoring: "monitoring";
|
|
1162
|
+
knowledge: "knowledge";
|
|
1163
|
+
settings: "settings";
|
|
1164
|
+
admin: "admin";
|
|
1165
|
+
archive: "archive";
|
|
1166
|
+
business: "business";
|
|
1167
|
+
finance: "finance";
|
|
1168
|
+
platform: "platform";
|
|
1169
|
+
seo: "seo";
|
|
1170
|
+
playbook: "playbook";
|
|
1171
|
+
strategy: "strategy";
|
|
1172
|
+
reference: "reference";
|
|
1173
|
+
integration: "integration";
|
|
1174
|
+
database: "database";
|
|
1175
|
+
user: "user";
|
|
1176
|
+
team: "team";
|
|
1177
|
+
gmail: "gmail";
|
|
1178
|
+
attio: "attio";
|
|
1179
|
+
overview: "overview";
|
|
1180
|
+
"command-view": "command-view";
|
|
1181
|
+
"command-queue": "command-queue";
|
|
1182
|
+
pipeline: "pipeline";
|
|
1183
|
+
lists: "lists";
|
|
1184
|
+
resources: "resources";
|
|
1185
|
+
approve: "approve";
|
|
1186
|
+
reject: "reject";
|
|
1187
|
+
retry: "retry";
|
|
1188
|
+
edit: "edit";
|
|
1189
|
+
view: "view";
|
|
1190
|
+
launch: "launch";
|
|
1191
|
+
"message-plus": "message-plus";
|
|
1192
|
+
escalate: "escalate";
|
|
1193
|
+
promote: "promote";
|
|
1194
|
+
submit: "submit";
|
|
1195
|
+
email: "email";
|
|
1196
|
+
success: "success";
|
|
1197
|
+
warning: "warning";
|
|
1198
|
+
info: "info";
|
|
1199
|
+
pending: "pending";
|
|
1200
|
+
bolt: "bolt";
|
|
1201
|
+
building: "building";
|
|
1202
|
+
briefcase: "briefcase";
|
|
1203
|
+
apps: "apps";
|
|
1204
|
+
graph: "graph";
|
|
1205
|
+
shield: "shield";
|
|
1206
|
+
users: "users";
|
|
1207
|
+
"chart-bar": "chart-bar";
|
|
1208
|
+
search: "search";
|
|
1209
|
+
}>, z.ZodString]>>;
|
|
1210
|
+
externalUrl: z.ZodOptional<z.ZodString>;
|
|
1211
|
+
sourceFilePath: z.ZodOptional<z.ZodString>;
|
|
1212
|
+
body: z.ZodString;
|
|
1213
|
+
links: z.ZodDefault<z.ZodArray<z.ZodPipe<z.ZodUnion<readonly [z.ZodObject<{
|
|
1214
|
+
target: z.ZodObject<{
|
|
1215
|
+
kind: z.ZodEnum<{
|
|
1216
|
+
knowledge: "knowledge";
|
|
1217
|
+
system: "system";
|
|
1218
|
+
resource: "resource";
|
|
1219
|
+
action: "action";
|
|
1220
|
+
ontology: "ontology";
|
|
1221
|
+
role: "role";
|
|
1222
|
+
client: "client";
|
|
1223
|
+
stage: "stage";
|
|
1224
|
+
goal: "goal";
|
|
1225
|
+
"customer-segment": "customer-segment";
|
|
1226
|
+
offering: "offering";
|
|
1227
|
+
}>;
|
|
1228
|
+
id: z.ZodString;
|
|
1229
|
+
}, z.core.$strip>;
|
|
1230
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1231
|
+
nodeId: z.ZodUnion<readonly [z.ZodString, z.ZodTemplateLiteral<`ontology:${string}`>]>;
|
|
1232
|
+
}, z.core.$strip>]>, z.ZodTransform<{
|
|
1233
|
+
target: {
|
|
1234
|
+
kind: "knowledge" | "system" | "resource" | "action" | "ontology" | "role" | "client" | "stage" | "goal" | "customer-segment" | "offering";
|
|
1235
|
+
id: string;
|
|
1236
|
+
};
|
|
1237
|
+
nodeId: string;
|
|
1238
|
+
}, {
|
|
1239
|
+
nodeId: string;
|
|
1240
|
+
} | {
|
|
1241
|
+
target: {
|
|
1242
|
+
kind: "knowledge" | "system" | "resource" | "action" | "ontology" | "role" | "client" | "stage" | "goal" | "customer-segment" | "offering";
|
|
1243
|
+
id: string;
|
|
1244
|
+
};
|
|
1245
|
+
}>>>>;
|
|
1246
|
+
ownerIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
1247
|
+
updatedAt: z.ZodString;
|
|
1248
|
+
}, z.core.$strip>>>>;
|
|
1249
|
+
}, z.core.$strip>;
|
|
1250
|
+
|
|
1251
|
+
type OrganizationModel = z.infer<typeof OrganizationModelSchema>;
|
|
1252
|
+
type OrganizationModelResourceKind = z.infer<typeof ResourceKindSchema>;
|
|
1253
|
+
|
|
1254
|
+
declare const ContentItemResponseSchema: z.ZodObject<{
|
|
1255
|
+
id: z.ZodString;
|
|
1256
|
+
organizationId: z.ZodString;
|
|
1257
|
+
title: z.ZodString;
|
|
1258
|
+
body: z.ZodNullable<z.ZodString>;
|
|
1259
|
+
payload: z.ZodUnknown;
|
|
1260
|
+
status: z.ZodString;
|
|
1261
|
+
pillar: z.ZodNullable<z.ZodString>;
|
|
1262
|
+
pipelineId: z.ZodNullable<z.ZodString>;
|
|
1263
|
+
clientId: z.ZodNullable<z.ZodString>;
|
|
1264
|
+
sourceAssetId: z.ZodNullable<z.ZodString>;
|
|
1265
|
+
processingState: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
1266
|
+
status: z.ZodEnum<{
|
|
1267
|
+
error: "error";
|
|
1268
|
+
success: "success";
|
|
1269
|
+
no_result: "no_result";
|
|
1270
|
+
skipped: "skipped";
|
|
1271
|
+
}>;
|
|
1272
|
+
data: z.ZodOptional<z.ZodUnknown>;
|
|
1273
|
+
}, z.core.$loose>>;
|
|
1274
|
+
reviewedAt: z.ZodNullable<z.ZodString>;
|
|
1275
|
+
reviewedBy: z.ZodNullable<z.ZodString>;
|
|
1276
|
+
reviewerFeedback: z.ZodNullable<z.ZodString>;
|
|
1277
|
+
rejectReason: z.ZodNullable<z.ZodString>;
|
|
1278
|
+
createdBy: z.ZodNullable<z.ZodString>;
|
|
1279
|
+
updatedBy: z.ZodNullable<z.ZodString>;
|
|
1280
|
+
createdAt: z.ZodString;
|
|
1281
|
+
updatedAt: z.ZodString;
|
|
1282
|
+
}, z.core.$strip>;
|
|
1283
|
+
type ContentItemResponse = z.infer<typeof ContentItemResponseSchema>;
|
|
1284
|
+
|
|
1285
|
+
type SystemSidebarComponent = ComponentType;
|
|
1286
|
+
type SystemIconComponent = ComponentType<{
|
|
1287
|
+
size?: number;
|
|
1288
|
+
stroke?: number;
|
|
1289
|
+
}>;
|
|
1290
|
+
type SystemSidebarWidthResolver = number | ((context: {
|
|
1291
|
+
currentPath: string;
|
|
1292
|
+
}) => number);
|
|
1293
|
+
interface SystemModule {
|
|
1294
|
+
/** Unique stable identifier for this UI system module. */
|
|
1295
|
+
key: string;
|
|
1296
|
+
/** Organization Model system id this module presents. Omit for navigation-only app surfaces. */
|
|
1297
|
+
systemId?: string;
|
|
1298
|
+
/** Route prefixes owned by navigation-only app surfaces. */
|
|
1299
|
+
routePrefixes?: string[];
|
|
1300
|
+
/** Capability identifiers contributed by this system module. */
|
|
1301
|
+
capabilityIds?: string[];
|
|
1302
|
+
/** Icon used when this system node appears in shell navigation. */
|
|
1303
|
+
icon?: SystemIconComponent;
|
|
1304
|
+
/** Sidebar component rendered when this system's subtree route is active. */
|
|
1305
|
+
sidebar?: SystemSidebarComponent;
|
|
1306
|
+
/** Optional shell sidebar width override. Defaults to 250px. */
|
|
1307
|
+
sidebarWidth?: SystemSidebarWidthResolver;
|
|
1308
|
+
/** Operations-only bridge connecting this system to the organization graph node. */
|
|
1309
|
+
organizationGraph?: OrganizationGraphSystemBridge;
|
|
1310
|
+
}
|
|
1311
|
+
interface OrganizationGraphSystemBridge {
|
|
1312
|
+
systemId?: string;
|
|
1313
|
+
}
|
|
1314
|
+
|
|
1315
|
+
interface ContentOverviewPageSlots {
|
|
1316
|
+
/** Optional content rendered after the page title, before the main body. Default: nothing rendered. */
|
|
1317
|
+
headerActions?: ReactNode;
|
|
1318
|
+
/** Optional content rendered below the main page stack. Default: nothing rendered. */
|
|
1319
|
+
footer?: ReactNode;
|
|
1320
|
+
}
|
|
1321
|
+
declare function ContentOverviewPage({ headerActions, footer }?: ContentOverviewPageSlots): react_jsx_runtime.JSX.Element;
|
|
1322
|
+
|
|
1323
|
+
interface ContentItemsPageSlots {
|
|
1324
|
+
/** Optional content rendered after the page title. Default: nothing rendered. */
|
|
1325
|
+
headerActions?: ReactNode;
|
|
1326
|
+
}
|
|
1327
|
+
/**
|
|
1328
|
+
* Flat, cross-pipeline items report -- kept as a reachable filtered view rather than
|
|
1329
|
+
* primary navigation (usability review Proposal, Decision 3; finding 1). The sidebar's
|
|
1330
|
+
* review-queue nav entry links here with `?review=pending`; `MyReviewQueuePanel`'s
|
|
1331
|
+
* "See all" does the same.
|
|
1332
|
+
*/
|
|
1333
|
+
declare function ContentItemsPage({ headerActions }?: ContentItemsPageSlots): react_jsx_runtime.JSX.Element;
|
|
1334
|
+
|
|
1335
|
+
interface ContentItemReviewPageSlots {
|
|
1336
|
+
/** Optional content rendered after the page title. Default: nothing rendered. */
|
|
1337
|
+
headerActions?: ReactNode;
|
|
1338
|
+
}
|
|
1339
|
+
declare function ContentItemReviewPage({ itemId, headerActions }: {
|
|
1340
|
+
itemId: string;
|
|
1341
|
+
} & ContentItemReviewPageSlots): react_jsx_runtime.JSX.Element;
|
|
1342
|
+
|
|
1343
|
+
interface ContentPipelinesPageSlots {
|
|
1344
|
+
/** Optional content rendered after the page title. Default: nothing rendered. */
|
|
1345
|
+
headerActions?: ReactNode;
|
|
1346
|
+
}
|
|
1347
|
+
/**
|
|
1348
|
+
* Pipelines -- one row per `content:catalog/pipeline` entry. Mirrors `LeadGenListsPage`
|
|
1349
|
+
* structurally; unlike lists, pipelines come from the Organization Model rather than a
|
|
1350
|
+
* paginated API resource, so there is no pagination or server-side search here.
|
|
1351
|
+
*/
|
|
1352
|
+
declare function ContentPipelinesPage({ headerActions }?: ContentPipelinesPageSlots): react_jsx_runtime.JSX.Element;
|
|
1353
|
+
|
|
1354
|
+
interface ContentPipelineWorkspacePageSlots {
|
|
1355
|
+
/** Optional content rendered after the page title. Default: nothing rendered. */
|
|
1356
|
+
headerActions?: ReactNode;
|
|
1357
|
+
}
|
|
1358
|
+
/**
|
|
1359
|
+
* Pipeline workspace -- tabbed via `?tab=`, matching how `LeadGenListDetailPage`
|
|
1360
|
+
* (`../../../lead-gen/pages/list-detail/ListDetailPage.tsx`) already does it.
|
|
1361
|
+
*/
|
|
1362
|
+
declare function ContentPipelineWorkspacePage({ pipelineId, headerActions }: {
|
|
1363
|
+
pipelineId: string;
|
|
1364
|
+
} & ContentPipelineWorkspacePageSlots): react_jsx_runtime.JSX.Element;
|
|
1365
|
+
|
|
1366
|
+
interface ContentDistributionsPageSlots {
|
|
1367
|
+
/** Optional content rendered after the page title. Default: nothing rendered. */
|
|
1368
|
+
headerActions?: ReactNode;
|
|
1369
|
+
}
|
|
1370
|
+
/**
|
|
1371
|
+
* Distributions -- ported from `/acquisition/content/distributions`. Two data-layer
|
|
1372
|
+
* changes from the original: the read goes through `useContentDistributions` (API,
|
|
1373
|
+
* not Supabase-direct), and the list no longer joins `content_items(title, pillar)` --
|
|
1374
|
+
* titles are resolved client-side by pairing `useContentItems({ limit: 100 })` against
|
|
1375
|
+
* `contentItemId`. `format` and `status` have no `content:catalog` backing (only
|
|
1376
|
+
* status-the-item-field, pillar, and platform do -- distribution `status` is a
|
|
1377
|
+
* different, uncataloged vocabulary), so both filters run client-side over the
|
|
1378
|
+
* returned rows and their options are derived from the data present rather than a
|
|
1379
|
+
* hardcoded array.
|
|
1380
|
+
*/
|
|
1381
|
+
declare function ContentDistributionsPage({ headerActions }?: ContentDistributionsPageSlots): react_jsx_runtime.JSX.Element;
|
|
1382
|
+
|
|
1383
|
+
interface ContentDistributionDetailPageSlots {
|
|
1384
|
+
/** Optional content rendered after the page title. Default: nothing rendered. */
|
|
1385
|
+
headerActions?: ReactNode;
|
|
1386
|
+
}
|
|
1387
|
+
/**
|
|
1388
|
+
* Distribution detail -- ported from `/acquisition/content/distribution/$distributionId`.
|
|
1389
|
+
* The four writes the original made through Supabase-direct hooks (checklist toggle,
|
|
1390
|
+
* platform-content edit, media delete, general field update) all collapse into
|
|
1391
|
+
* `useUpdateContentDistribution`, since each was a partial write of `checklist`,
|
|
1392
|
+
* `platformContent`, or `mediaUrls` and the PATCH route accepts all three plus the
|
|
1393
|
+
* general fields. Surfaces the four columns that have never been rendered anywhere:
|
|
1394
|
+
* `metrics`, `metricsUpdatedAt`, `publishMethod`, `platformPostId` -- `publishMethod` is
|
|
1395
|
+
* where D7's manual-publish state becomes visible (a row with `publishedAt` set and no
|
|
1396
|
+
* `platformPostId`).
|
|
1397
|
+
*/
|
|
1398
|
+
declare function ContentDistributionDetailPage({ distributionId, headerActions }: {
|
|
1399
|
+
distributionId: string;
|
|
1400
|
+
} & ContentDistributionDetailPageSlots): react_jsx_runtime.JSX.Element;
|
|
1401
|
+
|
|
1402
|
+
/**
|
|
1403
|
+
* Optional page component overrides / slot injections for content pages. Each key maps
|
|
1404
|
+
* to a page surface; the value is an object of optional slot props (all absent ->
|
|
1405
|
+
* byte-identical default render). Mirrors `LeadGenPageOverrides`
|
|
1406
|
+
* (`../lead-gen/manifest.ts`) -- extend this map as more pages gain slot support.
|
|
1407
|
+
*/
|
|
1408
|
+
interface ContentPageOverrides {
|
|
1409
|
+
/** Slot props injected into `ContentOverviewPage`. */
|
|
1410
|
+
overview?: ContentOverviewPageSlots;
|
|
1411
|
+
/** Slot props injected into `ContentItemsPage`. */
|
|
1412
|
+
items?: ContentItemsPageSlots;
|
|
1413
|
+
/** Slot props injected into `ContentItemReviewPage`. */
|
|
1414
|
+
itemReview?: ContentItemReviewPageSlots;
|
|
1415
|
+
/** Slot props injected into `ContentPipelinesPage`. */
|
|
1416
|
+
pipelines?: ContentPipelinesPageSlots;
|
|
1417
|
+
/** Slot props injected into `ContentPipelineWorkspacePage`. */
|
|
1418
|
+
pipelineWorkspace?: ContentPipelineWorkspacePageSlots;
|
|
1419
|
+
}
|
|
1420
|
+
/**
|
|
1421
|
+
* Extended `SystemModule` for the content feature that carries optional page overrides
|
|
1422
|
+
* alongside the standard manifest fields.
|
|
1423
|
+
*/
|
|
1424
|
+
interface ContentSystemModule extends SystemModule {
|
|
1425
|
+
/**
|
|
1426
|
+
* Optional page override map. Absent -> no override (default renders apply).
|
|
1427
|
+
* Replaces the need for route-wrapper bolt-ons in tenant projects.
|
|
1428
|
+
*/
|
|
1429
|
+
pages?: ContentPageOverrides;
|
|
1430
|
+
}
|
|
1431
|
+
/**
|
|
1432
|
+
* Manifest for the `content` System path (`U1`, top-level `content`). `systemId` is a
|
|
1433
|
+
* plain string matching the System path rather than an import from `@repo/core/content`
|
|
1434
|
+
* or the OM System declaration -- this package stays data-free by design (D6).
|
|
1435
|
+
*
|
|
1436
|
+
* `sidebar` wires in `ContentSidebar` (the two-entry nav). Page overrides and OM-derived
|
|
1437
|
+
* config are consumed by the caller via `useContentConfig` and the individual page
|
|
1438
|
+
* components, matching the `LeadGenSystemModule` pattern. `pages` is left unset here --
|
|
1439
|
+
* every page above renders its byte-identical default until a consumer supplies an
|
|
1440
|
+
* override.
|
|
1441
|
+
*/
|
|
1442
|
+
declare const contentManifest: ContentSystemModule;
|
|
1443
|
+
|
|
1444
|
+
interface ContentPayloadField {
|
|
1445
|
+
/** Key into the `payload` object this field renders. */
|
|
1446
|
+
key: string;
|
|
1447
|
+
/** Display label. */
|
|
1448
|
+
label: string;
|
|
1449
|
+
/** Render hint. Defaults to 'text'. */
|
|
1450
|
+
kind?: 'text' | 'longText' | 'list';
|
|
1451
|
+
}
|
|
1452
|
+
interface PayloadBodyProps {
|
|
1453
|
+
/** The human's canonical, editable text -- `content_items.body` in the eventual schema. */
|
|
1454
|
+
body: string;
|
|
1455
|
+
onBodyChange: (next: string) => void;
|
|
1456
|
+
/**
|
|
1457
|
+
* The producer's original emission for this same text, frozen. `body` starts as a copy
|
|
1458
|
+
* of this value and diverges on first edit; the two are never reconciled, because they
|
|
1459
|
+
* answer different questions. This asymmetry is what makes Reset implementable.
|
|
1460
|
+
*/
|
|
1461
|
+
originalBody: string;
|
|
1462
|
+
onReset: () => void;
|
|
1463
|
+
/**
|
|
1464
|
+
* The producer's full emission, rendered read-only per `payloadFields`. Declared
|
|
1465
|
+
* structurally rather than typed against any specific schema -- the card takes no
|
|
1466
|
+
* dependency on the content catalog contract. Omit either prop to hide the panel.
|
|
1467
|
+
*/
|
|
1468
|
+
payload?: Record<string, unknown>;
|
|
1469
|
+
payloadFields?: ContentPayloadField[];
|
|
1470
|
+
disabled?: boolean;
|
|
1471
|
+
}
|
|
1472
|
+
/**
|
|
1473
|
+
* The editable body plus the producer's frozen original payload, read-only.
|
|
1474
|
+
*
|
|
1475
|
+
* A textarea rather than a read-only block: the reviewer rewrites a line, and Copy
|
|
1476
|
+
* (wherever the caller wires it) hands back the version just written, not the one the
|
|
1477
|
+
* producer emitted.
|
|
1478
|
+
*/
|
|
1479
|
+
declare function PayloadBody({ body, onBodyChange, originalBody, onReset, payload, payloadFields, disabled }: PayloadBodyProps): react_jsx_runtime.JSX.Element;
|
|
1480
|
+
|
|
1481
|
+
interface ContentAlternateOption {
|
|
1482
|
+
/** Stable id for the React key -- text alone is not guaranteed unique. */
|
|
1483
|
+
id: string;
|
|
1484
|
+
text: string;
|
|
1485
|
+
}
|
|
1486
|
+
interface AlternatesPanelProps {
|
|
1487
|
+
/** The item's current canonical text, so the active opening/closing line can be highlighted. */
|
|
1488
|
+
body: string;
|
|
1489
|
+
onBodyChange: (next: string) => void;
|
|
1490
|
+
/** Alternate opening lines, including the current one, so a swap is always reversible. */
|
|
1491
|
+
hookOptions?: ContentAlternateOption[];
|
|
1492
|
+
/** Alternate closing lines, including the current one. */
|
|
1493
|
+
closeOptions?: ContentAlternateOption[];
|
|
1494
|
+
/** Fetch more of one kind. Absent hides the corresponding "more" control. */
|
|
1495
|
+
onMoreHooks?: () => void;
|
|
1496
|
+
onMoreCloses?: () => void;
|
|
1497
|
+
/** Which fetch, if any, is running for this item. */
|
|
1498
|
+
running?: 'hooks' | 'closes';
|
|
1499
|
+
/** Seconds the in-flight fetch has been running. */
|
|
1500
|
+
elapsed?: number;
|
|
1501
|
+
}
|
|
1502
|
+
/**
|
|
1503
|
+
* Replace the item's opening line.
|
|
1504
|
+
*
|
|
1505
|
+
* Line-based rather than sentence-based: the opening line stands alone with a blank
|
|
1506
|
+
* line under it in the shapes this generalizes from. Leading blank lines are skipped
|
|
1507
|
+
* so existing spacing survives the swap.
|
|
1508
|
+
*/
|
|
1509
|
+
declare function swapFirstLine(text: string, replacement: string): string;
|
|
1510
|
+
/** The same operation for the closing line. */
|
|
1511
|
+
declare function swapLastLine(text: string, replacement: string): string;
|
|
1512
|
+
/** The item's opening line, ignoring leading blanks. Empty string if there is no text. */
|
|
1513
|
+
declare function firstLine(text: string): string;
|
|
1514
|
+
/** The item's closing line, ignoring trailing blanks. */
|
|
1515
|
+
declare function lastLine(text: string): string;
|
|
1516
|
+
/**
|
|
1517
|
+
* Swap the opening or closing line from a declared alternates list. Each option list
|
|
1518
|
+
* includes the current value so a swap is always reversible without a separate Reset.
|
|
1519
|
+
*/
|
|
1520
|
+
declare function AlternatesPanel({ body, onBodyChange, hookOptions, closeOptions, onMoreHooks, onMoreCloses, running, elapsed }: AlternatesPanelProps): react_jsx_runtime.JSX.Element | null;
|
|
1521
|
+
|
|
1522
|
+
type ContentProcessingStatus = 'pending' | 'in_progress' | 'completed' | 'failed';
|
|
1523
|
+
interface ContentProcessingStep {
|
|
1524
|
+
/** Stable step key -- matches the pipeline step catalog's key, e.g. 'render' or 'verify'. */
|
|
1525
|
+
key: string;
|
|
1526
|
+
/** Display label. */
|
|
1527
|
+
label: string;
|
|
1528
|
+
status: ContentProcessingStatus;
|
|
1529
|
+
/** Seconds elapsed, shown while `status` is 'in_progress'. */
|
|
1530
|
+
elapsedSeconds?: number;
|
|
1531
|
+
}
|
|
1532
|
+
interface ProcessingStateStripProps {
|
|
1533
|
+
/**
|
|
1534
|
+
* Per-step processing state for this item, declared structurally per D3's shape
|
|
1535
|
+
* (`{ stepKey: { status, data? } }`) rather than imported from any content schema.
|
|
1536
|
+
*/
|
|
1537
|
+
steps: ContentProcessingStep[];
|
|
1538
|
+
}
|
|
1539
|
+
/** "42s" under a minute, then "1m 20s". Seconds alone stop reading as progress past 60. */
|
|
1540
|
+
declare function formatElapsed(seconds: number): string;
|
|
1541
|
+
/**
|
|
1542
|
+
* A strip of badges, one per declared processing step, showing where this item is in
|
|
1543
|
+
* its pipeline. Purely a projection of caller-supplied state -- it fetches nothing and
|
|
1544
|
+
* writes nothing, matching D4: the tool that assigns processing state is the only writer.
|
|
1545
|
+
*/
|
|
1546
|
+
declare function ProcessingStateStrip({ steps }: ProcessingStateStripProps): react_jsx_runtime.JSX.Element | null;
|
|
1547
|
+
|
|
1548
|
+
interface ContentReviewAction {
|
|
1549
|
+
/** Stable id, passed back through `onAction`. */
|
|
1550
|
+
id: string;
|
|
1551
|
+
label: string;
|
|
1552
|
+
icon?: ComponentType<{
|
|
1553
|
+
size?: number;
|
|
1554
|
+
}>;
|
|
1555
|
+
color?: string;
|
|
1556
|
+
/** Colors the button/modal red by default when `color` is omitted. */
|
|
1557
|
+
tone?: 'default' | 'danger';
|
|
1558
|
+
/** Ask for a plain confirmation before firing. Ignored when `requiresFeedback` is set. */
|
|
1559
|
+
requiresConfirmation?: boolean;
|
|
1560
|
+
/**
|
|
1561
|
+
* Shown in whichever modal opens. An action that collects optional feedback still wants
|
|
1562
|
+
* to say what the action does -- `requiresFeedback` supersedes `requiresConfirmation`,
|
|
1563
|
+
* so without this the explanation would be lost the moment a note field is added.
|
|
1564
|
+
*/
|
|
1565
|
+
confirmationMessage?: string;
|
|
1566
|
+
/** Collect free-text feedback before firing -- e.g. `reviewer_feedback` / `reject_reason`. */
|
|
1567
|
+
requiresFeedback?: boolean;
|
|
1568
|
+
feedbackLabel?: string;
|
|
1569
|
+
feedbackPlaceholder?: string;
|
|
1570
|
+
/** Feedback below one non-whitespace character disables the modal's submit button. */
|
|
1571
|
+
feedbackRequired?: boolean;
|
|
1572
|
+
/**
|
|
1573
|
+
* Grades this action by consequence (proposal "grade actions by consequence" /
|
|
1574
|
+
* finding 10): publishing is irreversible and outward-facing -- the video pipeline's
|
|
1575
|
+
* Gate C says "never automate this one away" -- while approving a draft costs nothing
|
|
1576
|
+
* to undo. Defaults to `'standard'`, which reproduces today's rendering exactly
|
|
1577
|
+
* (`variant="light"`, no forced confirmation). `'irreversible'` renders the button
|
|
1578
|
+
* filled in `var(--color-warning)` (or `var(--color-error)` when `tone: 'danger'` is
|
|
1579
|
+
* also set) instead of light, and always gates behind a confirmation or feedback modal
|
|
1580
|
+
* carrying a standing warning line, even if the action itself set neither
|
|
1581
|
+
* `requiresConfirmation` nor `requiresFeedback` -- so a caller cannot accidentally ship
|
|
1582
|
+
* a one-click irreversible action.
|
|
1583
|
+
*/
|
|
1584
|
+
consequence?: 'standard' | 'irreversible';
|
|
1585
|
+
}
|
|
1586
|
+
interface ReviewActionBarProps {
|
|
1587
|
+
/**
|
|
1588
|
+
* Declared review actions for this item's pipeline step -- typically approve and
|
|
1589
|
+
* reject per D5. Rendered from this list rather than hardcoded, following the
|
|
1590
|
+
* `TaskCard` precedent, so a tenant's step catalog can add a third action without a
|
|
1591
|
+
* card-level code change.
|
|
1592
|
+
*/
|
|
1593
|
+
actions: ContentReviewAction[];
|
|
1594
|
+
onAction: (actionId: string, feedback?: string) => void;
|
|
1595
|
+
/** Disables every action while a submission is in flight. */
|
|
1596
|
+
pending?: boolean;
|
|
1597
|
+
}
|
|
1598
|
+
/** Approve, or reject with `reviewer_feedback` and `reject_reason`, declared as data. */
|
|
1599
|
+
declare function ReviewActionBar({ actions, onAction, pending }: ReviewActionBarProps): react_jsx_runtime.JSX.Element;
|
|
1600
|
+
|
|
1601
|
+
/**
|
|
1602
|
+
* How this item's pipeline step declares review should happen -- 'live' (a human reviews
|
|
1603
|
+
* before it goes out), 'queued' (batched review), or 'none' (auto-approved). Declared on
|
|
1604
|
+
* the step catalog per D5; this card only reads the value to decide what to render, and
|
|
1605
|
+
* never derives it. Declared as a local literal union, not imported from any content
|
|
1606
|
+
* schema -- see the binding constraint below.
|
|
1607
|
+
*/
|
|
1608
|
+
type ReviewMode = 'live' | 'queued' | 'none';
|
|
1609
|
+
interface ContentFidelityCheck {
|
|
1610
|
+
/** Whether the producer's own verification pass considers this item grounded. */
|
|
1611
|
+
matches: boolean;
|
|
1612
|
+
/** The core claim this item makes. */
|
|
1613
|
+
coreClaim?: string;
|
|
1614
|
+
/** Figures/numbers this item cites, and what they were checked against. */
|
|
1615
|
+
figuresUsed?: string[];
|
|
1616
|
+
/** Free-form note from the producer's verification pass. */
|
|
1617
|
+
note?: string;
|
|
1618
|
+
}
|
|
1619
|
+
interface ContentReviewCardProps {
|
|
1620
|
+
/**
|
|
1621
|
+
* Display handle -- `content_items.title` in the eventual schema. Omit it where the
|
|
1622
|
+
* surrounding page already carries the same identity as its heading; repeating it
|
|
1623
|
+
* inside the card puts the same sentence on screen twice.
|
|
1624
|
+
*/
|
|
1625
|
+
title?: string;
|
|
1626
|
+
/** Presentational only; the caller decides what to render for each mode. */
|
|
1627
|
+
reviewMode: ReviewMode;
|
|
1628
|
+
/** The human's canonical, editable text. */
|
|
1629
|
+
body: string;
|
|
1630
|
+
onBodyChange: (next: string) => void;
|
|
1631
|
+
/** The producer's original emission for this same text, frozen. Powers Reset. */
|
|
1632
|
+
originalBody: string;
|
|
1633
|
+
onReset: () => void;
|
|
1634
|
+
/**
|
|
1635
|
+
* The producer's full emission, rendered read-only per `payloadFields`. Both are
|
|
1636
|
+
* declared structurally -- **no dependency on the content catalog contract and no
|
|
1637
|
+
* import of any `@repo/core/content` or Supabase type.** That is what lets this card
|
|
1638
|
+
* ship before the data path exists and lets any tenant adopt it independently.
|
|
1639
|
+
*/
|
|
1640
|
+
payload?: Record<string, unknown>;
|
|
1641
|
+
payloadFields?: ContentPayloadField[];
|
|
1642
|
+
/** The producer's own grounding/verification output, if it emitted one. */
|
|
1643
|
+
fidelity?: ContentFidelityCheck;
|
|
1644
|
+
/**
|
|
1645
|
+
* A claim the producer could not verify and is asking the reviewer to confirm.
|
|
1646
|
+
* Rendered as-is when present -- deciding whether a given string is "nothing to
|
|
1647
|
+
* confirm" (nirvana's `needsConfirming` heuristic) stays tenant-owned per D6.
|
|
1648
|
+
*/
|
|
1649
|
+
checkFirst?: string;
|
|
1650
|
+
/** Alternate opening lines, including the current one. Omit to hide the panel. */
|
|
1651
|
+
hookOptions?: ContentAlternateOption[];
|
|
1652
|
+
/** Alternate closing lines, including the current one. */
|
|
1653
|
+
closeOptions?: ContentAlternateOption[];
|
|
1654
|
+
onMoreHooks?: () => void;
|
|
1655
|
+
onMoreCloses?: () => void;
|
|
1656
|
+
/** Which alternates fetch, if any, is running for this item. */
|
|
1657
|
+
alternatesRunning?: 'hooks' | 'closes';
|
|
1658
|
+
alternatesElapsed?: number;
|
|
1659
|
+
/** Per-step processing state. Omit or pass `[]` to hide the strip. */
|
|
1660
|
+
processingSteps?: ContentProcessingStep[];
|
|
1661
|
+
/** Declared review actions -- approve, reject, or a tenant-defined addition. */
|
|
1662
|
+
actions: ContentReviewAction[];
|
|
1663
|
+
onAction: (actionId: string, feedback?: string) => void;
|
|
1664
|
+
/** True while a submitted action is in flight. Disables the action bar and the body. */
|
|
1665
|
+
actionsPending?: boolean;
|
|
1666
|
+
}
|
|
1667
|
+
/**
|
|
1668
|
+
* The generic content review card. Generalizes three things that exist separately
|
|
1669
|
+
* today: the reviewer-in-the-loop flow already shipped for `acq_social_posts`,
|
|
1670
|
+
* nirvana's `DraftCard`, and the attempt-lineage / processing-state surfaces that had
|
|
1671
|
+
* no reader at all. Keyed off `reviewMode` rather than any tenant-specific vocabulary.
|
|
1672
|
+
*/
|
|
1673
|
+
declare function ContentReviewCard({ title, body, onBodyChange, originalBody, onReset, payload, payloadFields, fidelity, checkFirst, hookOptions, closeOptions, onMoreHooks, onMoreCloses, alternatesRunning, alternatesElapsed, processingSteps, actions, onAction, actionsPending }: ContentReviewCardProps): react_jsx_runtime.JSX.Element;
|
|
1674
|
+
|
|
1675
|
+
/** A single tenant-facing noun with singular and plural forms, e.g. `{ singular: 'Post', plural: 'Posts' }`. */
|
|
1676
|
+
interface ContentNoun {
|
|
1677
|
+
singular: string;
|
|
1678
|
+
plural: string;
|
|
1679
|
+
}
|
|
1680
|
+
/**
|
|
1681
|
+
* The shell's vocabulary for the content feature: what a tenant calls its content
|
|
1682
|
+
* items, where they get distributed, and the fixed labels around the pipeline and
|
|
1683
|
+
* board chrome. Every field defaults to the generic table-name-shaped label so a
|
|
1684
|
+
* tenant that has not declared a `vocabulary` block still gets a coherent shell.
|
|
1685
|
+
*/
|
|
1686
|
+
interface ContentVocabulary {
|
|
1687
|
+
item: ContentNoun;
|
|
1688
|
+
distribution: ContentNoun;
|
|
1689
|
+
pipeline: ContentNoun;
|
|
1690
|
+
board: string;
|
|
1691
|
+
reviewQueue: string;
|
|
1692
|
+
}
|
|
1693
|
+
declare const DEFAULT_CONTENT_VOCABULARY: ContentVocabulary;
|
|
1694
|
+
/**
|
|
1695
|
+
* Reads the content System's declared vocabulary off `system.config.vocabulary` --
|
|
1696
|
+
* the same optional, tenant-authored slice of `config` that `getDefaultPipelineId`
|
|
1697
|
+
* already reads for `defaultPipelineId` in `useContentConfig.ts` (no schema change:
|
|
1698
|
+
* `config` is `Record<string, JsonValue>` and this is a second key on it). Merges over
|
|
1699
|
+
* `DEFAULT_CONTENT_VOCABULARY` field by field, so a partial declaration only overrides
|
|
1700
|
+
* what it actually names. `undefined` model, a missing `vocabulary` block, or any
|
|
1701
|
+
* wrongly-shaped value all resolve to the defaults -- this never throws.
|
|
1702
|
+
*/
|
|
1703
|
+
declare function resolveContentVocabulary(model: OrganizationModel | undefined): ContentVocabulary;
|
|
1704
|
+
|
|
1705
|
+
interface ContentStepResourceBinding {
|
|
1706
|
+
/** The OM Resource id that runs this step. */
|
|
1707
|
+
resourceId: string;
|
|
1708
|
+
/**
|
|
1709
|
+
* The Resource's declared kind. `'workflow'` and `'agent'` are executable through
|
|
1710
|
+
* `RunResourceButton` / `useExecuteResource` (`ResourceType` is `'agent' | 'workflow'`
|
|
1711
|
+
* only); `'integration'` and `'script'` resources resolve but are not directly
|
|
1712
|
+
* runnable from that surface.
|
|
1713
|
+
*/
|
|
1714
|
+
resourceKind: OrganizationModelResourceKind;
|
|
1715
|
+
}
|
|
1716
|
+
/**
|
|
1717
|
+
* Resolves a content pipeline step to the OM Resource that runs it, by matching the
|
|
1718
|
+
* step's declared `actionId` against `resource.ontology.primaryAction` /
|
|
1719
|
+
* `resource.ontology.actions`, scoped to `resource.systemPath === 'content'`. Copies
|
|
1720
|
+
* `getLeadGenExportWorkflowId`'s shape (`../lead-gen/useLeadGenConfig.ts`) exactly --
|
|
1721
|
+
* the house pattern for this resolution, reading `model.resources` off the OM already
|
|
1722
|
+
* in React context.
|
|
1723
|
+
*
|
|
1724
|
+
* `actionId` is optional -- a step may declare none -- and a declared one may match no
|
|
1725
|
+
* Resource yet (a tenant may adopt the step catalog before authoring any Resource at
|
|
1726
|
+
* all). Both cases return `undefined` -- never a resource id built by
|
|
1727
|
+
* string-concatenating the step key, which would resolve to nothing at runtime instead
|
|
1728
|
+
* of failing as a type error.
|
|
1729
|
+
*/
|
|
1730
|
+
declare function resolveContentStepResource(model: OrganizationModel, step: Pick<ContentPipelineStepEntry, 'actionId'>): ContentStepResourceBinding | undefined;
|
|
1731
|
+
interface ContentConfig {
|
|
1732
|
+
/**
|
|
1733
|
+
* Every `content-pipeline` template declared on the content System's catalogs, each
|
|
1734
|
+
* resolved with its ordered steps. Empty when no Organization Model is available yet.
|
|
1735
|
+
*/
|
|
1736
|
+
pipelines: ContentPipelineTemplate[];
|
|
1737
|
+
/**
|
|
1738
|
+
* The content System's `content-stage` catalog entries (status / pillar / platform),
|
|
1739
|
+
* flattened into one map keyed by entry id -- mirrors `useLeadGenConfig`'s
|
|
1740
|
+
* `stageCatalog` shape.
|
|
1741
|
+
*/
|
|
1742
|
+
stageCatalog: Record<string, ContentStageCatalogEntry>;
|
|
1743
|
+
/**
|
|
1744
|
+
* `stageCatalog` grouped by its source catalog (`entry.catalogKey`) -- e.g.
|
|
1745
|
+
* `stagesByCatalog.status`, `stagesByCatalog.pillar`, `stagesByCatalog.platform`.
|
|
1746
|
+
* Convenience projection for pages that render one catalog's entries as a Select or
|
|
1747
|
+
* a filter row without re-deriving the grouping themselves.
|
|
1748
|
+
*/
|
|
1749
|
+
stagesByCatalog: Record<string, ContentStageCatalogEntry[]>;
|
|
1750
|
+
/**
|
|
1751
|
+
* Configured default pipeline id, from `system.config.defaultPipelineId` when the
|
|
1752
|
+
* content System declares one and it names a pipeline that actually resolved;
|
|
1753
|
+
* otherwise the first declared pipeline. `undefined` when no pipeline exists yet.
|
|
1754
|
+
*/
|
|
1755
|
+
defaultPipelineId: string | undefined;
|
|
1756
|
+
/**
|
|
1757
|
+
* Resolves a content pipeline step to its runnable OM Resource, bound to this config's
|
|
1758
|
+
* Organization Model. See {@link resolveContentStepResource}. `undefined` when no
|
|
1759
|
+
* Organization Model is available -- every step then resolves to "no resource
|
|
1760
|
+
* configured" rather than throwing.
|
|
1761
|
+
*/
|
|
1762
|
+
resolveStepResource: (step: Pick<ContentPipelineStepEntry, 'actionId'>) => ContentStepResourceBinding | undefined;
|
|
1763
|
+
/**
|
|
1764
|
+
* The tenant's declared vocabulary for the content shell -- item / distribution /
|
|
1765
|
+
* pipeline nouns and the fixed board labels. See {@link resolveContentVocabulary}.
|
|
1766
|
+
* Defaults to {@link DEFAULT_CONTENT_VOCABULARY} when the model or its `vocabulary`
|
|
1767
|
+
* declaration is absent, so consuming shell chrome never renders a blank label.
|
|
1768
|
+
*/
|
|
1769
|
+
vocabulary: ContentVocabulary;
|
|
1770
|
+
}
|
|
1771
|
+
/**
|
|
1772
|
+
* `useContentConfig` is `useLeadGenConfig`'s twin for the content System: a pure
|
|
1773
|
+
* `useMemo` over the Organization Model already in React context via
|
|
1774
|
+
* `useOptionalElevasisSystems()`. It fetches nothing.
|
|
1775
|
+
*
|
|
1776
|
+
* The stage and step vocabulary comes from the model, never a hardcoded list. This is
|
|
1777
|
+
* the deliberate divergence from `useCrmPipelineSummary`, which hardcodes
|
|
1778
|
+
* `PIPELINE_FUNNEL_ORDER` as a `DealStage[]` and only consults the OM for labels and
|
|
1779
|
+
* colours -- a tenant whose model declares different stages gets those stages zeroed
|
|
1780
|
+
* out rather than rendered. Here, `getContentStageCatalog(organizationModel)` reads the
|
|
1781
|
+
* content System's own `content-stage` catalogs (status / pillar / platform) and
|
|
1782
|
+
* `getContentBuildTemplates(organizationModel)` reads its `content-pipeline` /
|
|
1783
|
+
* `content-pipeline-step` catalogs, so a tenant with an entirely different pipeline and
|
|
1784
|
+
* stage set gets its own vocabulary rendered, not someone else's zeroed rows.
|
|
1785
|
+
*/
|
|
1786
|
+
declare function useContentConfig(): ContentConfig;
|
|
1787
|
+
|
|
1788
|
+
/**
|
|
1789
|
+
* `deriveContentBoard` -- a pure function of `(items, pipeline, now)`. No React, no
|
|
1790
|
+
* hooks, no fetching. `content_items` has NO `step_key` column (only
|
|
1791
|
+
* `content_item_attempts` does), so an item's current step is derived from
|
|
1792
|
+
* `processingState`, whose declared shape is
|
|
1793
|
+
* `Record<stepKey, { status: 'success' | 'no_result' | 'skipped' | 'error'; data?: unknown }>`.
|
|
1794
|
+
*
|
|
1795
|
+
* Placement rule (implemented exactly as follows):
|
|
1796
|
+
*
|
|
1797
|
+
* 1. Sort the pipeline's steps ascending by `order`. Ties break by `key` so the result
|
|
1798
|
+
* is deterministic.
|
|
1799
|
+
* 2. An item's current step is the first step in that order whose `processingState`
|
|
1800
|
+
* entry is missing, or present with a status other than `'success'`. Rationale:
|
|
1801
|
+
* `processingState` records what has run; a step recorded `'success'` is behind the
|
|
1802
|
+
* item.
|
|
1803
|
+
* 3. If every declared step has a `'success'` entry, `stepKey` is `null` and the card
|
|
1804
|
+
* goes in `done`.
|
|
1805
|
+
* 4. If `processingState` is empty (`{}`), the item sits at the first step -- nothing
|
|
1806
|
+
* has run yet.
|
|
1807
|
+
* 5. A card goes in `unplaced` only when `processingState` is non-empty AND none of its
|
|
1808
|
+
* keys appear in the catalog. This is the honest bucket for an item produced against
|
|
1809
|
+
* a step catalog that has since changed; unplaced items are never silently dropped
|
|
1810
|
+
* into column 1.
|
|
1811
|
+
*/
|
|
1812
|
+
interface ContentBoardCard {
|
|
1813
|
+
item: ContentItemResponse;
|
|
1814
|
+
/** Step key this item currently sits at. `null` when every declared step has succeeded. */
|
|
1815
|
+
stepKey: string | null;
|
|
1816
|
+
/** Milliseconds since `item.updatedAt`, measured against the `now` argument. */
|
|
1817
|
+
ageMs: number;
|
|
1818
|
+
/** True when this card is waiting on a person: its step's reviewMode is not 'none' and `reviewedAt` is null. */
|
|
1819
|
+
awaitingReview: boolean;
|
|
1820
|
+
}
|
|
1821
|
+
interface ContentBoardGate {
|
|
1822
|
+
/** The review mode of the step this gate follows. Never 'none' -- a 'none' step has no gate. */
|
|
1823
|
+
reviewMode: Exclude<ContentPipelineStepReviewMode, 'none'>;
|
|
1824
|
+
/** How many cards in the preceding column are awaiting review. */
|
|
1825
|
+
waitingCount: number;
|
|
1826
|
+
}
|
|
1827
|
+
interface ContentBoardColumn {
|
|
1828
|
+
step: ContentPipelineStepEntry;
|
|
1829
|
+
cards: ContentBoardCard[];
|
|
1830
|
+
/** Present when this step's reviewMode is 'live' or 'queued'. Absent on a 'none' step. */
|
|
1831
|
+
gate?: ContentBoardGate;
|
|
1832
|
+
}
|
|
1833
|
+
interface ContentBoard {
|
|
1834
|
+
columns: ContentBoardColumn[];
|
|
1835
|
+
/** Cards whose every declared step succeeded. */
|
|
1836
|
+
done: ContentBoardCard[];
|
|
1837
|
+
/** Cards whose processingState names only step keys the catalog does not declare. */
|
|
1838
|
+
unplaced: ContentBoardCard[];
|
|
1839
|
+
/** True when the pipeline declares 0 or 1 steps -- the consumer renders pick-then-review, not columns. */
|
|
1840
|
+
isCollapsed: boolean;
|
|
1841
|
+
}
|
|
1842
|
+
declare function deriveContentBoard(items: ContentItemResponse[], pipeline: ContentPipelineTemplate, now: number): ContentBoard;
|
|
1843
|
+
|
|
1844
|
+
/**
|
|
1845
|
+
* `getContentItemIdentity` -- a pure function that names a content item for display when
|
|
1846
|
+
* `title` cannot be trusted to do it. The tenant `nirvana-marketing`'s drafts have no
|
|
1847
|
+
* titles at all, so a title-first surface renders an empty or meaningless column. A
|
|
1848
|
+
* post's identity is its opening line.
|
|
1849
|
+
*
|
|
1850
|
+
* Resolution order, first non-empty wins:
|
|
1851
|
+
* 1. First non-blank line of `item.body`.
|
|
1852
|
+
* 2. The first string-valued field of `item.payload`, taken in `payloadFields`
|
|
1853
|
+
* declaration order when that argument is supplied, otherwise `Object.keys` order.
|
|
1854
|
+
* Only a non-blank string value counts.
|
|
1855
|
+
* 3. `item.title`, when non-blank.
|
|
1856
|
+
* 4. The literal `'Untitled'`.
|
|
1857
|
+
*
|
|
1858
|
+
* The resolved candidate is then normalized: runs of whitespace collapse to one space,
|
|
1859
|
+
* the result is trimmed, and anything longer than `maxLength` is truncated at the last
|
|
1860
|
+
* word boundary at or before `maxLength` with a trailing `'…'` -- never mid-word.
|
|
1861
|
+
* The source complaint this fixes is titles clipped mid-word
|
|
1862
|
+
* (`MOCK Pipeline Walk S…`).
|
|
1863
|
+
*/
|
|
1864
|
+
declare function getContentItemIdentity(item: Pick<ContentItemResponse, 'title' | 'body' | 'payload'>, payloadFields?: ContentPayloadFieldDeclaration[], maxLength?: number): string;
|
|
1865
|
+
|
|
1866
|
+
/**
|
|
1867
|
+
* Shared nav-item shape used by feature sidebar middle components.
|
|
1868
|
+
*
|
|
1869
|
+
* Matches the subset of {@link SubshellNavItemProps} that the existing
|
|
1870
|
+
* hardcoded item arrays use. Consumers import this type alongside the
|
|
1871
|
+
* exported item arrays (e.g. `CRM_ITEMS`) to type their custom arrays.
|
|
1872
|
+
*
|
|
1873
|
+
* @example
|
|
1874
|
+
* import { NavItem, CRM_ITEMS } from '@elevasis/ui/features/crm'
|
|
1875
|
+
*
|
|
1876
|
+
* const customItems: NavItem[] = [
|
|
1877
|
+
* ...CRM_ITEMS,
|
|
1878
|
+
* { label: 'Reports', to: '/crm/reports', icon: IconFileText, exact: false },
|
|
1879
|
+
* ]
|
|
1880
|
+
*/
|
|
1881
|
+
interface NavItem {
|
|
1882
|
+
/** Display label for the nav entry. */
|
|
1883
|
+
label: string;
|
|
1884
|
+
/** Route path the item links to. */
|
|
1885
|
+
to: string;
|
|
1886
|
+
/** Tabler icon component (or any component accepting `size` + `style`). */
|
|
1887
|
+
icon: ComponentType<{
|
|
1888
|
+
size?: number;
|
|
1889
|
+
style?: React.CSSProperties;
|
|
1890
|
+
}>;
|
|
1891
|
+
/**
|
|
1892
|
+
* When `true`, the item is only active when the path matches exactly.
|
|
1893
|
+
* When `false`, it is active for any path that starts with `to`.
|
|
1894
|
+
*/
|
|
1895
|
+
exact: boolean;
|
|
1896
|
+
}
|
|
1897
|
+
|
|
1898
|
+
interface ContentSidebarProps {
|
|
1899
|
+
/**
|
|
1900
|
+
* Tenant-authored authoring surfaces for the `Create` section, forwarded to
|
|
1901
|
+
* `ContentSidebarMiddle`. Ignored when `children` is supplied, since that replaces the
|
|
1902
|
+
* middle outright. This is the one-line path for a tenant adding its own creator:
|
|
1903
|
+
*
|
|
1904
|
+
* ```tsx
|
|
1905
|
+
* const sidebar = () => <ContentSidebar createItems={[{ label: 'Draft a Post', to: '/content/write', icon: IconPencil, exact: false }]} />
|
|
1906
|
+
* ```
|
|
1907
|
+
*/
|
|
1908
|
+
createItems?: NavItem[];
|
|
1909
|
+
/** Replace the default `ContentSidebarMiddle` with custom middle content. Leave unset for the default layout. */
|
|
1910
|
+
children?: ReactNode;
|
|
1911
|
+
}
|
|
1912
|
+
declare const ContentSidebar: ({ createItems, children }?: ContentSidebarProps) => react_jsx_runtime.JSX.Element;
|
|
1913
|
+
|
|
1914
|
+
/**
|
|
1915
|
+
* Static two-entry default, built from {@link DEFAULT_CONTENT_VOCABULARY}. Exists for
|
|
1916
|
+
* consumers that spread it at module load time (see `extend-content.md`), where a
|
|
1917
|
+
* tenant's declared vocabulary isn't available. `ContentSidebarMiddle` itself renders
|
|
1918
|
+
* the live, vocabulary-aware version instead of this constant.
|
|
1919
|
+
*/
|
|
1920
|
+
declare const CONTENT_ITEMS: NavItem[];
|
|
1921
|
+
interface ContentSidebarMiddleProps {
|
|
1922
|
+
/**
|
|
1923
|
+
* Tenant-authored authoring surfaces, rendered under the `Create` section above the
|
|
1924
|
+
* pipeline nav. Empty or omitted -> the section renders its "nothing declared" hint
|
|
1925
|
+
* instead of nav entries; the section header itself is always present.
|
|
1926
|
+
*
|
|
1927
|
+
* This is the seam for a tenant's own content creator -- a LinkedIn drafting screen,
|
|
1928
|
+
* a brief builder, whatever the tenant authors -- without it having to restate the
|
|
1929
|
+
* pipeline entries. Prefer this over {@link ContentSidebarMiddleProps.items}, which
|
|
1930
|
+
* replaces the pipeline list wholesale and stops tracking the tenant's vocabulary.
|
|
1931
|
+
*/
|
|
1932
|
+
createItems?: NavItem[];
|
|
1933
|
+
/** Override the pipeline nav items. Defaults to the two-entry nav built from the tenant's declared vocabulary. */
|
|
1934
|
+
items?: NavItem[];
|
|
1935
|
+
}
|
|
1936
|
+
/**
|
|
1937
|
+
* The content subshell nav, in two labeled sections.
|
|
1938
|
+
*
|
|
1939
|
+
* `Create` sits on top and is where content gets made; the pipeline section below is
|
|
1940
|
+
* where it gets reviewed and tracked. The split exists because authoring is
|
|
1941
|
+
* tenant-specific by nature (every tenant writes a different kind of thing, through a
|
|
1942
|
+
* different screen) while the pipeline underneath is the same shared system for all of
|
|
1943
|
+
* them.
|
|
1944
|
+
*
|
|
1945
|
+
* **Both section labels are fixed platform vocabulary, not tenant-declared.** The nav
|
|
1946
|
+
* entries inside them still are — a tenant that renames its pipelines to "Campaigns"
|
|
1947
|
+
* gets `Content Pipeline > Campaigns`. The sections name the two halves of the System
|
|
1948
|
+
* itself, which every tenant has; only what they contain varies.
|
|
1949
|
+
*
|
|
1950
|
+
* There is deliberately no section header above `Create`: the subshell is already
|
|
1951
|
+
* reached through the `Content` nav entry, so a third `Content` header only repeated
|
|
1952
|
+
* what the breadcrumb and the left rail both already say.
|
|
1953
|
+
*/
|
|
1954
|
+
declare const ContentSidebarMiddle: ({ createItems, items }?: ContentSidebarMiddleProps) => react_jsx_runtime.JSX.Element;
|
|
1955
|
+
|
|
1956
|
+
interface MyReviewQueuePanelProps {
|
|
1957
|
+
onItemClick: (itemId: string) => void;
|
|
1958
|
+
onSeeAll?: () => void;
|
|
1959
|
+
showSectionLabel?: boolean;
|
|
1960
|
+
}
|
|
1961
|
+
/**
|
|
1962
|
+
* `MyReviewQueue` -- mirrors `MyTasksPanel` for the content System's sidebar workbench,
|
|
1963
|
+
* and is the review queue's second way in (usability review Proposal, Decision 3): a
|
|
1964
|
+
* cross-pipeline "what needs review" view rather than a panel beside a table browser.
|
|
1965
|
+
*
|
|
1966
|
+
* The `/content/items` route accepts no "pending review" filter (only `reviewedBy`, not
|
|
1967
|
+
* a reviewed/unreviewed flag), so this fetches a page of items and filters to
|
|
1968
|
+
* `reviewedAt === null` client-side. A future backend addition could push this
|
|
1969
|
+
* server-side; documenting the gap here rather than silently over-claiming precision.
|
|
1970
|
+
*
|
|
1971
|
+
* Rows are ordered oldest-first by `updatedAt` -- finding 6 is that nothing on the
|
|
1972
|
+
* screen ages, and the operational question is always what has been sitting the
|
|
1973
|
+
* longest.
|
|
1974
|
+
*/
|
|
1975
|
+
declare function MyReviewQueuePanel({ onItemClick, onSeeAll, showSectionLabel }: MyReviewQueuePanelProps): react_jsx_runtime.JSX.Element;
|
|
1976
|
+
|
|
1977
|
+
export { AlternatesPanel, CONTENT_ITEMS, ContentDistributionDetailPage, ContentDistributionsPage, ContentItemReviewPage, ContentItemsPage, ContentOverviewPage, ContentPipelineWorkspacePage, ContentPipelinesPage, ContentReviewCard, ContentSidebar, ContentSidebarMiddle, DEFAULT_CONTENT_VOCABULARY, MyReviewQueuePanel, PayloadBody, ProcessingStateStrip, ReviewActionBar, contentManifest, deriveContentBoard, firstLine, formatElapsed, getContentItemIdentity, lastLine, resolveContentStepResource, resolveContentVocabulary, swapFirstLine, swapLastLine, useContentConfig };
|
|
1978
|
+
export type { AlternatesPanelProps, ContentAlternateOption, ContentBoard, ContentBoardCard, ContentBoardColumn, ContentBoardGate, ContentConfig, ContentDistributionDetailPageSlots, ContentDistributionsPageSlots, ContentFidelityCheck, ContentItemReviewPageSlots, ContentItemsPageSlots, ContentNoun, ContentOverviewPageSlots, ContentPayloadField, ContentPipelineWorkspacePageSlots, ContentPipelinesPageSlots, ContentProcessingStatus, ContentProcessingStep, ContentReviewAction, ContentReviewCardProps, ContentSidebarMiddleProps, ContentSidebarProps, ContentStepResourceBinding, ContentVocabulary, MyReviewQueuePanelProps, PayloadBodyProps, ProcessingStateStripProps, ReviewActionBarProps, ReviewMode };
|