@elevasis/sdk 1.51.0 → 1.52.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-HIVK54X6.js → chunk-T6DTAP2U.js} +121 -18
- package/dist/{chunk-NNRXVYNC.js → chunk-XC57JNMA.js} +79 -19
- package/dist/cli.cjs +151 -19
- package/dist/index.d.ts +248 -1
- package/dist/index.js +1 -1
- package/dist/test-utils/index.d.ts +13 -2
- package/dist/test-utils/index.js +16 -3
- package/dist/worker/index.d.ts +1 -1
- package/dist/worker/index.js +2 -2
- package/package.json +2 -2
- package/reference/_navigation.md +4 -5
- package/reference/_reference-manifest.json +0 -14
- package/reference/packages/ui/src/hooks/README.md +22 -23
- package/reference/rules/content.md +4 -1
- package/reference/rules/frontend.md +2 -2
- package/reference/rules/organization-os.md +1 -1
- package/reference/rules/ui.md +18 -16
- package/reference/rules/vibe-intents.md +28 -6
- package/reference/rules/vibe.md +3 -2
- package/reference/scaffold/operations/propagation-pipeline.md +33 -19
- package/reference/scaffold/operations/scaffold-maintenance.md +1 -1
- package/reference/scaffold/recipes/customize-crm-actions.md +1 -1
- package/reference/scaffold/recipes/extend-content.md +262 -14
- package/reference/scaffold/recipes/extend-crm.md +4 -2
- package/reference/scaffold/recipes/extend-lead-gen.md +34 -5
- package/reference/scaffold/ui/customization.md +5 -5
- package/reference/scaffold/ui/recipes.md +11 -15
- package/reference/sdk/platform-tools/adapters-integration.mdx +2 -1
- package/reference/sdk/platform-tools/adapters-platform.mdx +1 -1
- package/reference/sdk/platform-tools/index.mdx +7 -7
- package/reference/sdk/resources/index.mdx +8 -8
- package/reference/ui/exports.mdx +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -3743,6 +3743,7 @@ type Database = {
|
|
|
3743
3743
|
created_at: string | null;
|
|
3744
3744
|
error: string | null;
|
|
3745
3745
|
execution_id: string;
|
|
3746
|
+
idempotency_key: string | null;
|
|
3746
3747
|
input: Json | null;
|
|
3747
3748
|
last_heartbeat_at: string | null;
|
|
3748
3749
|
logs: Json | null;
|
|
@@ -3769,6 +3770,7 @@ type Database = {
|
|
|
3769
3770
|
created_at?: string | null;
|
|
3770
3771
|
error?: string | null;
|
|
3771
3772
|
execution_id?: string;
|
|
3773
|
+
idempotency_key?: string | null;
|
|
3772
3774
|
input?: Json | null;
|
|
3773
3775
|
last_heartbeat_at?: string | null;
|
|
3774
3776
|
logs?: Json | null;
|
|
@@ -3795,6 +3797,7 @@ type Database = {
|
|
|
3795
3797
|
created_at?: string | null;
|
|
3796
3798
|
error?: string | null;
|
|
3797
3799
|
execution_id?: string;
|
|
3800
|
+
idempotency_key?: string | null;
|
|
3798
3801
|
input?: Json | null;
|
|
3799
3802
|
last_heartbeat_at?: string | null;
|
|
3800
3803
|
logs?: Json | null;
|
|
@@ -11701,6 +11704,240 @@ declare const ProjectSchemas: {
|
|
|
11701
11704
|
NoteIdParams: z.ZodObject<{
|
|
11702
11705
|
id: z.ZodString;
|
|
11703
11706
|
}, z.core.$strip>;
|
|
11707
|
+
ProjectListResponse: z.ZodObject<{
|
|
11708
|
+
projects: z.ZodArray<z.ZodObject<{
|
|
11709
|
+
id: z.ZodString;
|
|
11710
|
+
organization_id: z.ZodString;
|
|
11711
|
+
name: z.ZodString;
|
|
11712
|
+
kind: z.ZodString;
|
|
11713
|
+
status: z.ZodString;
|
|
11714
|
+
description: z.ZodNullable<z.ZodString>;
|
|
11715
|
+
deal_id: z.ZodNullable<z.ZodString>;
|
|
11716
|
+
client_id: z.ZodNullable<z.ZodString>;
|
|
11717
|
+
client_company_id: z.ZodNullable<z.ZodString>;
|
|
11718
|
+
start_date: z.ZodNullable<z.ZodString>;
|
|
11719
|
+
target_end_date: z.ZodNullable<z.ZodString>;
|
|
11720
|
+
actual_end_date: z.ZodNullable<z.ZodString>;
|
|
11721
|
+
contract_value: z.ZodNullable<z.ZodNumber>;
|
|
11722
|
+
metadata: z.ZodNullable<z.ZodUnknown>;
|
|
11723
|
+
created_at: z.ZodString;
|
|
11724
|
+
updated_at: z.ZodString;
|
|
11725
|
+
milestoneCount: z.ZodNumber;
|
|
11726
|
+
taskCount: z.ZodNumber;
|
|
11727
|
+
completedMilestones: z.ZodOptional<z.ZodNumber>;
|
|
11728
|
+
completedTasks: z.ZodOptional<z.ZodNumber>;
|
|
11729
|
+
}, z.core.$strip>>;
|
|
11730
|
+
}, z.core.$strip>;
|
|
11731
|
+
ProjectDetailResponse: z.ZodObject<{
|
|
11732
|
+
project: z.ZodObject<{
|
|
11733
|
+
id: z.ZodString;
|
|
11734
|
+
organization_id: z.ZodString;
|
|
11735
|
+
name: z.ZodString;
|
|
11736
|
+
kind: z.ZodString;
|
|
11737
|
+
status: z.ZodString;
|
|
11738
|
+
description: z.ZodNullable<z.ZodString>;
|
|
11739
|
+
deal_id: z.ZodNullable<z.ZodString>;
|
|
11740
|
+
client_id: z.ZodNullable<z.ZodString>;
|
|
11741
|
+
client_company_id: z.ZodNullable<z.ZodString>;
|
|
11742
|
+
start_date: z.ZodNullable<z.ZodString>;
|
|
11743
|
+
target_end_date: z.ZodNullable<z.ZodString>;
|
|
11744
|
+
actual_end_date: z.ZodNullable<z.ZodString>;
|
|
11745
|
+
contract_value: z.ZodNullable<z.ZodNumber>;
|
|
11746
|
+
metadata: z.ZodNullable<z.ZodUnknown>;
|
|
11747
|
+
created_at: z.ZodString;
|
|
11748
|
+
updated_at: z.ZodString;
|
|
11749
|
+
milestones: z.ZodArray<z.ZodObject<{
|
|
11750
|
+
id: z.ZodString;
|
|
11751
|
+
organization_id: z.ZodString;
|
|
11752
|
+
project_id: z.ZodString;
|
|
11753
|
+
name: z.ZodString;
|
|
11754
|
+
status: z.ZodString;
|
|
11755
|
+
description: z.ZodNullable<z.ZodString>;
|
|
11756
|
+
due_date: z.ZodNullable<z.ZodString>;
|
|
11757
|
+
completed_at: z.ZodNullable<z.ZodString>;
|
|
11758
|
+
sequence: z.ZodNumber;
|
|
11759
|
+
checklist: z.ZodNullable<z.ZodUnknown>;
|
|
11760
|
+
metadata: z.ZodNullable<z.ZodUnknown>;
|
|
11761
|
+
created_at: z.ZodString;
|
|
11762
|
+
updated_at: z.ZodString;
|
|
11763
|
+
}, z.core.$strip>>;
|
|
11764
|
+
tasks: z.ZodArray<z.ZodObject<{
|
|
11765
|
+
id: z.ZodString;
|
|
11766
|
+
organization_id: z.ZodString;
|
|
11767
|
+
project_id: z.ZodString;
|
|
11768
|
+
name: z.ZodString;
|
|
11769
|
+
type: z.ZodString;
|
|
11770
|
+
status: z.ZodString;
|
|
11771
|
+
description: z.ZodNullable<z.ZodString>;
|
|
11772
|
+
milestone_id: z.ZodNullable<z.ZodString>;
|
|
11773
|
+
parent_task_id: z.ZodNullable<z.ZodString>;
|
|
11774
|
+
due_date: z.ZodNullable<z.ZodString>;
|
|
11775
|
+
completed_at: z.ZodNullable<z.ZodString>;
|
|
11776
|
+
file_url: z.ZodNullable<z.ZodString>;
|
|
11777
|
+
checklist: z.ZodUnknown;
|
|
11778
|
+
resume_context: z.ZodNullable<z.ZodUnknown>;
|
|
11779
|
+
metadata: z.ZodNullable<z.ZodUnknown>;
|
|
11780
|
+
created_at: z.ZodString;
|
|
11781
|
+
updated_at: z.ZodString;
|
|
11782
|
+
}, z.core.$strip>>;
|
|
11783
|
+
company: z.ZodNullable<z.ZodObject<{
|
|
11784
|
+
id: z.ZodString;
|
|
11785
|
+
name: z.ZodString;
|
|
11786
|
+
domain: z.ZodNullable<z.ZodString>;
|
|
11787
|
+
}, z.core.$strip>>;
|
|
11788
|
+
deal: z.ZodNullable<z.ZodObject<{
|
|
11789
|
+
id: z.ZodString;
|
|
11790
|
+
clientId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
11791
|
+
contactEmail: z.ZodString;
|
|
11792
|
+
stageKey: z.ZodNullable<z.ZodString>;
|
|
11793
|
+
stateKey: z.ZodNullable<z.ZodString>;
|
|
11794
|
+
sourceListId: z.ZodNullable<z.ZodString>;
|
|
11795
|
+
updatedAt: z.ZodString;
|
|
11796
|
+
}, z.core.$strip>>;
|
|
11797
|
+
client: z.ZodNullable<z.ZodObject<{
|
|
11798
|
+
id: z.ZodString;
|
|
11799
|
+
name: z.ZodString;
|
|
11800
|
+
status: z.ZodString;
|
|
11801
|
+
}, z.core.$strip>>;
|
|
11802
|
+
}, z.core.$strip>;
|
|
11803
|
+
}, z.core.$strip>;
|
|
11804
|
+
ProjectResponse: z.ZodObject<{
|
|
11805
|
+
project: z.ZodObject<{
|
|
11806
|
+
id: z.ZodString;
|
|
11807
|
+
organization_id: z.ZodString;
|
|
11808
|
+
name: z.ZodString;
|
|
11809
|
+
kind: z.ZodString;
|
|
11810
|
+
status: z.ZodString;
|
|
11811
|
+
description: z.ZodNullable<z.ZodString>;
|
|
11812
|
+
deal_id: z.ZodNullable<z.ZodString>;
|
|
11813
|
+
client_id: z.ZodNullable<z.ZodString>;
|
|
11814
|
+
client_company_id: z.ZodNullable<z.ZodString>;
|
|
11815
|
+
start_date: z.ZodNullable<z.ZodString>;
|
|
11816
|
+
target_end_date: z.ZodNullable<z.ZodString>;
|
|
11817
|
+
actual_end_date: z.ZodNullable<z.ZodString>;
|
|
11818
|
+
contract_value: z.ZodNullable<z.ZodNumber>;
|
|
11819
|
+
metadata: z.ZodNullable<z.ZodUnknown>;
|
|
11820
|
+
created_at: z.ZodString;
|
|
11821
|
+
updated_at: z.ZodString;
|
|
11822
|
+
}, z.core.$strip>;
|
|
11823
|
+
}, z.core.$strip>;
|
|
11824
|
+
MilestoneListResponse: z.ZodObject<{
|
|
11825
|
+
milestones: z.ZodArray<z.ZodObject<{
|
|
11826
|
+
id: z.ZodString;
|
|
11827
|
+
organization_id: z.ZodString;
|
|
11828
|
+
project_id: z.ZodString;
|
|
11829
|
+
name: z.ZodString;
|
|
11830
|
+
status: z.ZodString;
|
|
11831
|
+
description: z.ZodNullable<z.ZodString>;
|
|
11832
|
+
due_date: z.ZodNullable<z.ZodString>;
|
|
11833
|
+
completed_at: z.ZodNullable<z.ZodString>;
|
|
11834
|
+
sequence: z.ZodNumber;
|
|
11835
|
+
checklist: z.ZodNullable<z.ZodUnknown>;
|
|
11836
|
+
metadata: z.ZodNullable<z.ZodUnknown>;
|
|
11837
|
+
created_at: z.ZodString;
|
|
11838
|
+
updated_at: z.ZodString;
|
|
11839
|
+
}, z.core.$strip>>;
|
|
11840
|
+
}, z.core.$strip>;
|
|
11841
|
+
MilestoneResponse: z.ZodObject<{
|
|
11842
|
+
milestone: z.ZodObject<{
|
|
11843
|
+
id: z.ZodString;
|
|
11844
|
+
organization_id: z.ZodString;
|
|
11845
|
+
project_id: z.ZodString;
|
|
11846
|
+
name: z.ZodString;
|
|
11847
|
+
status: z.ZodString;
|
|
11848
|
+
description: z.ZodNullable<z.ZodString>;
|
|
11849
|
+
due_date: z.ZodNullable<z.ZodString>;
|
|
11850
|
+
completed_at: z.ZodNullable<z.ZodString>;
|
|
11851
|
+
sequence: z.ZodNumber;
|
|
11852
|
+
checklist: z.ZodNullable<z.ZodUnknown>;
|
|
11853
|
+
metadata: z.ZodNullable<z.ZodUnknown>;
|
|
11854
|
+
created_at: z.ZodString;
|
|
11855
|
+
updated_at: z.ZodString;
|
|
11856
|
+
}, z.core.$strip>;
|
|
11857
|
+
}, z.core.$strip>;
|
|
11858
|
+
TaskListResponse: z.ZodObject<{
|
|
11859
|
+
tasks: z.ZodArray<z.ZodObject<{
|
|
11860
|
+
id: z.ZodString;
|
|
11861
|
+
organization_id: z.ZodString;
|
|
11862
|
+
project_id: z.ZodString;
|
|
11863
|
+
name: z.ZodString;
|
|
11864
|
+
type: z.ZodString;
|
|
11865
|
+
status: z.ZodString;
|
|
11866
|
+
description: z.ZodNullable<z.ZodString>;
|
|
11867
|
+
milestone_id: z.ZodNullable<z.ZodString>;
|
|
11868
|
+
parent_task_id: z.ZodNullable<z.ZodString>;
|
|
11869
|
+
due_date: z.ZodNullable<z.ZodString>;
|
|
11870
|
+
completed_at: z.ZodNullable<z.ZodString>;
|
|
11871
|
+
file_url: z.ZodNullable<z.ZodString>;
|
|
11872
|
+
checklist: z.ZodUnknown;
|
|
11873
|
+
resume_context: z.ZodNullable<z.ZodUnknown>;
|
|
11874
|
+
metadata: z.ZodNullable<z.ZodUnknown>;
|
|
11875
|
+
created_at: z.ZodString;
|
|
11876
|
+
updated_at: z.ZodString;
|
|
11877
|
+
}, z.core.$strip>>;
|
|
11878
|
+
}, z.core.$strip>;
|
|
11879
|
+
TaskResponse: z.ZodObject<{
|
|
11880
|
+
task: z.ZodObject<{
|
|
11881
|
+
id: z.ZodString;
|
|
11882
|
+
organization_id: z.ZodString;
|
|
11883
|
+
project_id: z.ZodString;
|
|
11884
|
+
name: z.ZodString;
|
|
11885
|
+
type: z.ZodString;
|
|
11886
|
+
status: z.ZodString;
|
|
11887
|
+
description: z.ZodNullable<z.ZodString>;
|
|
11888
|
+
milestone_id: z.ZodNullable<z.ZodString>;
|
|
11889
|
+
parent_task_id: z.ZodNullable<z.ZodString>;
|
|
11890
|
+
due_date: z.ZodNullable<z.ZodString>;
|
|
11891
|
+
completed_at: z.ZodNullable<z.ZodString>;
|
|
11892
|
+
file_url: z.ZodNullable<z.ZodString>;
|
|
11893
|
+
checklist: z.ZodUnknown;
|
|
11894
|
+
resume_context: z.ZodNullable<z.ZodUnknown>;
|
|
11895
|
+
metadata: z.ZodNullable<z.ZodUnknown>;
|
|
11896
|
+
created_at: z.ZodString;
|
|
11897
|
+
updated_at: z.ZodString;
|
|
11898
|
+
}, z.core.$strip>;
|
|
11899
|
+
}, z.core.$strip>;
|
|
11900
|
+
TaskResumeContextResponse: z.ZodObject<{
|
|
11901
|
+
task: z.ZodObject<{
|
|
11902
|
+
id: z.ZodString;
|
|
11903
|
+
project_id: z.ZodString;
|
|
11904
|
+
resume_context: z.ZodNullable<z.ZodUnknown>;
|
|
11905
|
+
updated_at: z.ZodString;
|
|
11906
|
+
}, z.core.$strip>;
|
|
11907
|
+
}, z.core.$strip>;
|
|
11908
|
+
NoteListResponse: z.ZodObject<{
|
|
11909
|
+
notes: z.ZodArray<z.ZodObject<{
|
|
11910
|
+
id: z.ZodString;
|
|
11911
|
+
organization_id: z.ZodString;
|
|
11912
|
+
project_id: z.ZodString;
|
|
11913
|
+
content: z.ZodString;
|
|
11914
|
+
type: z.ZodString;
|
|
11915
|
+
summary: z.ZodNullable<z.ZodString>;
|
|
11916
|
+
task_id: z.ZodNullable<z.ZodString>;
|
|
11917
|
+
milestone_id: z.ZodNullable<z.ZodString>;
|
|
11918
|
+
occurred_at: z.ZodString;
|
|
11919
|
+
created_by: z.ZodNullable<z.ZodString>;
|
|
11920
|
+
created_at: z.ZodString;
|
|
11921
|
+
}, z.core.$strip>>;
|
|
11922
|
+
}, z.core.$strip>;
|
|
11923
|
+
NoteResponse: z.ZodObject<{
|
|
11924
|
+
note: z.ZodObject<{
|
|
11925
|
+
id: z.ZodString;
|
|
11926
|
+
organization_id: z.ZodString;
|
|
11927
|
+
project_id: z.ZodString;
|
|
11928
|
+
content: z.ZodString;
|
|
11929
|
+
type: z.ZodString;
|
|
11930
|
+
summary: z.ZodNullable<z.ZodString>;
|
|
11931
|
+
task_id: z.ZodNullable<z.ZodString>;
|
|
11932
|
+
milestone_id: z.ZodNullable<z.ZodString>;
|
|
11933
|
+
occurred_at: z.ZodString;
|
|
11934
|
+
created_by: z.ZodNullable<z.ZodString>;
|
|
11935
|
+
created_at: z.ZodString;
|
|
11936
|
+
}, z.core.$strip>;
|
|
11937
|
+
}, z.core.$strip>;
|
|
11938
|
+
DeleteSuccessResponse: z.ZodObject<{
|
|
11939
|
+
success: z.ZodBoolean;
|
|
11940
|
+
}, z.core.$strip>;
|
|
11704
11941
|
};
|
|
11705
11942
|
|
|
11706
11943
|
/**
|
|
@@ -12218,9 +12455,19 @@ type AttioToolMap = {
|
|
|
12218
12455
|
result: DeleteNoteResult;
|
|
12219
12456
|
};
|
|
12220
12457
|
};
|
|
12458
|
+
/**
|
|
12459
|
+
* What a tenant actually passes to `scheduler.createSchedule`.
|
|
12460
|
+
*
|
|
12461
|
+
* `organizationId` is omitted because the caller never supplies it and cannot: the dispatcher injects
|
|
12462
|
+
* the authenticated org via `scopedOrganizationParams` and overwrites whatever arrived on the wire.
|
|
12463
|
+
* Declaring it required made every call site cast the field away -- three verbatim copies of the same
|
|
12464
|
+
* `as` in `packages/elevasis/operations` alone -- to satisfy a type describing the server's shape rather
|
|
12465
|
+
* than the tenant's. `NotificationSDKInput` below has always had this right.
|
|
12466
|
+
*/
|
|
12467
|
+
type CreateScheduleSDKInput = Omit<CreateScheduleInput, 'organizationId'>;
|
|
12221
12468
|
type SchedulerToolMap = {
|
|
12222
12469
|
createSchedule: {
|
|
12223
|
-
params:
|
|
12470
|
+
params: CreateScheduleSDKInput;
|
|
12224
12471
|
result: TaskSchedule;
|
|
12225
12472
|
};
|
|
12226
12473
|
updateAnchor: {
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { ActivityEventSchema, BuildPlanSnapshotStepSchema, ProspectingBuildTemplateSchema as BuildTemplateSchema, ContractRefResolutionError, CrmStageKeySchema, CrmStateKeySchema, EmailSchema, ExecutionError, ListBuilderStageKeySchema, ProcessingStageStatusSchema, RegistryValidationError, ResourceRegistry, StepType, ToolingError, bindResourceDescriptor, compileBusinessOntologyValidationIndex, concurrentPool, createLeadGenStageValidators, defineContract, defineResource, defineResourceOntology, defineResources, defineStep, defineTopology, defineTopologyRelationship, defineWorkflow, defineWorkflowConfig, deriveActions, diagnosticOutput, integrationInput, isBuiltInReadinessProfile, isZodType, lookupReadinessProfile, parseTopologyNodeRef, registerReadinessProfile, resolveContractRef, runDiagnostic, splitName, topologyRef, topologyRelationship, validateDeclaredSystemInterfaceReadiness, validateResourceGovernance } from './chunk-
|
|
1
|
+
export { ActivityEventSchema, BuildPlanSnapshotStepSchema, ProspectingBuildTemplateSchema as BuildTemplateSchema, ContractRefResolutionError, CrmStageKeySchema, CrmStateKeySchema, EmailSchema, ExecutionError, ListBuilderStageKeySchema, ProcessingStageStatusSchema, RegistryValidationError, ResourceRegistry, StepType, ToolingError, bindResourceDescriptor, compileBusinessOntologyValidationIndex, concurrentPool, createLeadGenStageValidators, defineContract, defineResource, defineResourceOntology, defineResources, defineStep, defineTopology, defineTopologyRelationship, defineWorkflow, defineWorkflowConfig, deriveActions, diagnosticOutput, integrationInput, isBuiltInReadinessProfile, isZodType, lookupReadinessProfile, parseTopologyNodeRef, registerReadinessProfile, resolveContractRef, runDiagnostic, splitName, topologyRef, topologyRelationship, validateDeclaredSystemInterfaceReadiness, validateResourceGovernance } from './chunk-XC57JNMA.js';
|
|
2
2
|
export { projectDeploymentSpec, projectTopologyRelationships, toSdkResourceDescriptor, withPlatformAgentResourceDescriptor, withPlatformAgentResourceDescriptors, withPlatformIntegrationResourceDescriptor, withPlatformIntegrationResourceDescriptors, withPlatformResourceDescriptor, withPlatformResourceDescriptors } from './chunk-VYWGWJRW.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { WorkflowDefinition, DeploymentSpec, SDKLLMGenerateParams, LLMGenerateResponse, AnymailfinderToolMap, ApifyToolMap, AttioToolMap, DropboxToolMap, GmailToolMap, GoogleSheetsToolMap, InstantlyToolMap, MillionVerifierToolMap, ResendToolMap, SignatureApiToolMap, StripeToolMap, TombaToolMap, LeadToolMap, ApprovalToolMap, ArtifactsToolMap, ContentToolMap, CrmToolMap, EmailToolMap, ExecutionToolMap, ListToolMap, NotificationToolMap, PdfToolMap, ProjectsToolMap, SchedulerToolMap, StorageToolMap } from '@elevasis/sdk';
|
|
1
|
+
import { WorkflowDefinition, DeploymentSpec, SDKLLMGenerateParams, LLMGenerateResponse, AnymailfinderToolMap, ApifyToolMap, AttioToolMap, DropboxToolMap, GmailToolMap, GoogleSheetsToolMap, InstagramToolMap, InstantlyToolMap, MillionVerifierToolMap, ResendToolMap, SignatureApiToolMap, StripeToolMap, TombaToolMap, LeadToolMap, ApprovalToolMap, ArtifactsToolMap, ContentToolMap, CrmToolMap, EmailToolMap, ExecutionToolMap, ListToolMap, NotificationToolMap, PdfToolMap, ProjectsToolMap, SchedulerToolMap, StorageToolMap } from '@elevasis/sdk';
|
|
2
2
|
import { LogEntry, TypedAdapter } from '@elevasis/sdk/worker';
|
|
3
3
|
|
|
4
4
|
interface RunWorkflowContext {
|
|
@@ -81,6 +81,17 @@ declare const createMockApify: (_credential: string, overrides?: MockAdapterOver
|
|
|
81
81
|
declare const createMockDropbox: (_credential: string, overrides?: MockAdapterOverrides<DropboxToolMap>) => TypedAdapter<DropboxToolMap>;
|
|
82
82
|
declare const createMockGmail: (_credential: string, overrides?: MockAdapterOverrides<GmailToolMap>) => TypedAdapter<GmailToolMap>;
|
|
83
83
|
declare const createMockGoogleSheets: (_credential: string, overrides?: MockAdapterOverrides<GoogleSheetsToolMap>) => TypedAdapter<GoogleSheetsToolMap>;
|
|
84
|
+
/**
|
|
85
|
+
* Instagram is the one integration here whose workflow performs an action that cannot be undone --
|
|
86
|
+
* `publishContainer` puts a post on a real account. Test a composed publish pipeline against this
|
|
87
|
+
* mock rather than against the live adapter.
|
|
88
|
+
*
|
|
89
|
+
* Two methods are worth overriding deliberately rather than letting them return `undefined`:
|
|
90
|
+
* `getContainerStatus`, because a publish sequence polls it until the container reports `FINISHED`
|
|
91
|
+
* and an un-overridden mock never gets there, and `refreshToken`, whose `expiresIn` the adapter
|
|
92
|
+
* turns into the stored `expiresAt`.
|
|
93
|
+
*/
|
|
94
|
+
declare const createMockInstagram: (_credential: string, overrides?: MockAdapterOverrides<InstagramToolMap>) => TypedAdapter<InstagramToolMap>;
|
|
84
95
|
declare const createMockInstantly: (_credential: string, overrides?: MockAdapterOverrides<InstantlyToolMap>) => TypedAdapter<InstantlyToolMap>;
|
|
85
96
|
declare const createMockTomba: (_credential: string, overrides?: MockAdapterOverrides<TombaToolMap>) => TypedAdapter<TombaToolMap>;
|
|
86
97
|
declare const createMockResend: (_credential: string, overrides?: MockAdapterOverrides<ResendToolMap>) => TypedAdapter<ResendToolMap>;
|
|
@@ -89,5 +100,5 @@ declare const createMockStripe: (_credential: string, overrides?: MockAdapterOve
|
|
|
89
100
|
declare const createMockAnymailfinder: (_credential: string, overrides?: MockAdapterOverrides<AnymailfinderToolMap>) => TypedAdapter<AnymailfinderToolMap>;
|
|
90
101
|
declare const createMockMillionVerifier: (_credential: string, overrides?: MockAdapterOverrides<MillionVerifierToolMap>) => TypedAdapter<MillionVerifierToolMap>;
|
|
91
102
|
|
|
92
|
-
export { assertResourceRegistry, createMockAnymailfinder, createMockApify, createMockAttio, createMockDropbox, createMockGmail, createMockGoogleSheets, createMockInstantly, createMockMillionVerifier, createMockResend, createMockSignatureApi, createMockStripe, createMockTomba, mockAcqDb, mockApproval, mockArtifacts, mockContent, mockCrm, mockEmail, mockExecution, mockList, mockLlm, mockNotifications, mockPdf, mockProjects, mockScheduler, mockStorage, runLinearWorkflow, runWorkflow };
|
|
103
|
+
export { assertResourceRegistry, createMockAnymailfinder, createMockApify, createMockAttio, createMockDropbox, createMockGmail, createMockGoogleSheets, createMockInstagram, createMockInstantly, createMockMillionVerifier, createMockResend, createMockSignatureApi, createMockStripe, createMockTomba, mockAcqDb, mockApproval, mockArtifacts, mockContent, mockCrm, mockEmail, mockExecution, mockList, mockLlm, mockNotifications, mockPdf, mockProjects, mockScheduler, mockStorage, runLinearWorkflow, runWorkflow };
|
|
93
104
|
export type { AssertResourceRegistryOptions, LinearWorkflowStepEvent, MockAdapterOverrides, MockLlmAdapter, RunLinearWorkflowContext, RunLinearWorkflowOptions, RunLinearWorkflowResult, RunWorkflowContext, RunWorkflowOptions, RunWorkflowResult, WorkflowStepEvent };
|
package/dist/test-utils/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { executeWorkflow } from '../chunk-
|
|
2
|
-
import { validateDeploymentSpec, validateRelationships } from '../chunk-
|
|
1
|
+
import { executeWorkflow } from '../chunk-T6DTAP2U.js';
|
|
2
|
+
import { validateDeploymentSpec, validateRelationships } from '../chunk-XC57JNMA.js';
|
|
3
3
|
import '../chunk-VYWGWJRW.js';
|
|
4
4
|
import { vi } from 'vitest';
|
|
5
5
|
|
|
@@ -341,6 +341,19 @@ var createMockGoogleSheets = (_credential, overrides) => createMockAdapter(
|
|
|
341
341
|
],
|
|
342
342
|
overrides
|
|
343
343
|
);
|
|
344
|
+
var createMockInstagram = (_credential, overrides) => createMockAdapter(
|
|
345
|
+
[
|
|
346
|
+
"createMediaContainer",
|
|
347
|
+
"createCarouselContainer",
|
|
348
|
+
"publishContainer",
|
|
349
|
+
"getContainerStatus",
|
|
350
|
+
"getMediaPermalink",
|
|
351
|
+
"getPublishingLimit",
|
|
352
|
+
"getMediaInsights",
|
|
353
|
+
"refreshToken"
|
|
354
|
+
],
|
|
355
|
+
overrides
|
|
356
|
+
);
|
|
344
357
|
var createMockInstantly = (_credential, overrides) => createMockAdapter(
|
|
345
358
|
[
|
|
346
359
|
"sendReply",
|
|
@@ -390,4 +403,4 @@ var createMockAnymailfinder = (_credential, overrides) => createMockAdapter(
|
|
|
390
403
|
);
|
|
391
404
|
var createMockMillionVerifier = (_credential, overrides) => createMockAdapter(["verifyEmail", "checkCredits"], overrides);
|
|
392
405
|
|
|
393
|
-
export { assertResourceRegistry, createMockAnymailfinder, createMockApify, createMockAttio, createMockDropbox, createMockGmail, createMockGoogleSheets, createMockInstantly, createMockMillionVerifier, createMockResend, createMockSignatureApi, createMockStripe, createMockTomba, mockAcqDb, mockApproval, mockArtifacts, mockContent, mockCrm, mockEmail, mockExecution, mockList, mockLlm, mockNotifications, mockPdf, mockProjects, mockScheduler, mockStorage, runLinearWorkflow, runWorkflow };
|
|
406
|
+
export { assertResourceRegistry, createMockAnymailfinder, createMockApify, createMockAttio, createMockDropbox, createMockGmail, createMockGoogleSheets, createMockInstagram, createMockInstantly, createMockMillionVerifier, createMockResend, createMockSignatureApi, createMockStripe, createMockTomba, mockAcqDb, mockApproval, mockArtifacts, mockContent, mockCrm, mockEmail, mockExecution, mockList, mockLlm, mockNotifications, mockPdf, mockProjects, mockScheduler, mockStorage, runLinearWorkflow, runWorkflow };
|
package/dist/worker/index.d.ts
CHANGED
|
@@ -1164,7 +1164,7 @@ declare function toContentMetrics(insights: InstagramInsights): ContentMetrics;
|
|
|
1164
1164
|
* Parent -> Worker: { type: 'execute', resourceId, executionId, input, organizationId?, organizationName?,
|
|
1165
1165
|
* sessionId?, sessionTurnNumber?, sessionMemory?, conversationHistory?,
|
|
1166
1166
|
* parentExecutionId?, executionDepth }
|
|
1167
|
-
* Worker -> Parent: { type: 'result', status, output?, memorySnapshot?, error?, logs, metrics: { durationMs } }
|
|
1167
|
+
* Worker -> Parent: { type: 'result', status, output?, stopReason?, hasSpoken?, memorySnapshot?, error?, logs, metrics: { durationMs } }
|
|
1168
1168
|
*
|
|
1169
1169
|
* Parent -> Worker: { type: 'abort', reason? } (graceful abort before terminate;
|
|
1170
1170
|
* reason carries AbortSignal.reason
|
package/dist/worker/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { ListBuilderResultSchema, ListBuilderResultsSchema, PlatformToolError, acqDb, approval, artifacts, classifyPlatformToolError, content, createAdapter, createAnymailfinderAdapter, createApifyAdapter, createAttioAdapter, createCaptionGenerationWorkflow, createCaptureInstagramMetricsWorkflow, createClickUpAdapter, createDropboxAdapter, createGmailAdapter, createGoogleSheetsAdapter, createImageAnalysisWorkflow, createInstagramAdapter, createInstantlyAdapter, createMillionVerifierAdapter, createPublishInstagramWorkflow, createResendAdapter, createSignatureApiAdapter, createStripeAdapter, createTombaAdapter, crm, email, executeWorkflow, execution, generateHmacToken, list, listBuilderWorkflow, llm, notifications, pdf, platform, projects, scheduler, startWorker, storage, toContentMetrics } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { ListBuilderResultSchema, ListBuilderResultsSchema, PlatformToolError, acqDb, approval, artifacts, classifyPlatformToolError, content, createAdapter, createAnymailfinderAdapter, createApifyAdapter, createAttioAdapter, createCaptionGenerationWorkflow, createCaptureInstagramMetricsWorkflow, createClickUpAdapter, createDropboxAdapter, createGmailAdapter, createGoogleSheetsAdapter, createImageAnalysisWorkflow, createInstagramAdapter, createInstantlyAdapter, createMillionVerifierAdapter, createPublishInstagramWorkflow, createResendAdapter, createSignatureApiAdapter, createStripeAdapter, createTombaAdapter, crm, email, executeWorkflow, execution, generateHmacToken, list, listBuilderWorkflow, llm, notifications, pdf, platform, projects, scheduler, startWorker, storage, toContentMetrics } from '../chunk-T6DTAP2U.js';
|
|
2
|
+
import '../chunk-XC57JNMA.js';
|
|
3
3
|
import '../chunk-VYWGWJRW.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elevasis/sdk",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.52.1",
|
|
4
4
|
"description": "SDK for building Elevasis organization resources",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
"typescript": "5.9.2",
|
|
64
64
|
"vitest": "^3.2.4",
|
|
65
65
|
"zod": "^4.1.0",
|
|
66
|
-
"@repo/core": "0.
|
|
66
|
+
"@repo/core": "0.69.0",
|
|
67
67
|
"@repo/eslint-config": "0.0.0",
|
|
68
68
|
"@repo/typescript-config": "0.0.0"
|
|
69
69
|
},
|
package/reference/_navigation.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
Auto-generated from the package reference manifests.
|
|
6
6
|
|
|
7
|
-
Package entries indexed:
|
|
7
|
+
Package entries indexed: 63.
|
|
8
8
|
|
|
9
9
|
## @elevasis/core / Auth
|
|
10
10
|
|
|
@@ -138,7 +138,6 @@ Package entries indexed: 64.
|
|
|
138
138
|
| Hooks Access | `packages/ui/src/hooks/README.md` | Published Access Model hook surface for checking route, section, and action access. | (not specified) |
|
|
139
139
|
| Hooks Delivery | `packages/ui/src/hooks/README.md` | Published delivery hooks for projects, milestones, tasks, and notes. | (not specified) |
|
|
140
140
|
| Hooks User Notes | `packages/ui/src/hooks/README.md` | Published user-notes query and mutation hooks used by shared Notes surfaces. | (not specified) |
|
|
141
|
-
| Transform Command View Data | `packages/ui/src/hooks/README.md` | Utility that transforms backend CommandViewData arrays into a unified frontend CommandViewGraph with nodes and edges. | (not specified) |
|
|
142
141
|
|
|
143
142
|
## @elevasis/ui / Provider
|
|
144
143
|
|
|
@@ -296,9 +295,9 @@ Docs-site pages indexed: 38.
|
|
|
296
295
|
| Getting Started | `sdk/getting-started.mdx` | Set up your Elevasis SDK project and run your first deployment |
|
|
297
296
|
| Human-in-the-Loop (HITL) Workflows | `sdk/human-in-the-loop.mdx` | How a workflow step opens an approval task, how it reaches the command queue, and how selecting an action resumes work -- the story that connects the approval adapter, checkpoint metadata, and the queue CLI. |
|
|
298
297
|
| @elevasis/sdk | `sdk/index.mdx` | Build and deploy workflows, agents, and resources with the Elevasis SDK |
|
|
299
|
-
| Integration Adapters | `sdk/platform-tools/adapters-integration.mdx` | Auto-generated table of all
|
|
300
|
-
| Platform Adapters | `sdk/platform-tools/adapters-platform.mdx` | Auto-generated table of all 14 platform (singleton, no credential) adapters exported from @elevasis/sdk/worker
|
|
301
|
-
| Platform Tools | `sdk/platform-tools/index.mdx` | Access
|
|
298
|
+
| Integration Adapters | `sdk/platform-tools/adapters-integration.mdx` | Auto-generated table of all 14 integration (credential-bound) adapters exported from @elevasis/sdk/worker. Each row's methods are read from that adapter's METHODS array; the adapter set is the INTEGRATION_EXPORTS list in the generator, checked against the adapter directory on every run. |
|
|
299
|
+
| Platform Adapters | `sdk/platform-tools/adapters-platform.mdx` | Auto-generated table of all 14 platform (singleton, no credential) adapters exported from @elevasis/sdk/worker. Each row's methods are read from that adapter's METHODS array; the adapter set is the PLATFORM_EXPORTS list in the generator, checked against the adapter directory on every run. |
|
|
300
|
+
| Platform Tools | `sdk/platform-tools/index.mdx` | Access 28 adapters (14 integration + 14 platform) from your SDK workflows -- typed adapters, credential security model, and working code examples |
|
|
302
301
|
| Adapter Type Safety | `sdk/platform-tools/type-safety.mdx` | SDK worker adapter type safety patterns - required fields, discriminated unions, and intentionally loose types |
|
|
303
302
|
| The Deployment Spec Pattern | `sdk/project-deployment-spec.mdx` | How projectDeploymentSpec and defineWorkflowConfig assemble the DeploymentSpec a scaffolded project actually ships, using operations/src/index.ts as the reference. |
|
|
304
303
|
| Writing Resources | `sdk/resources/index.mdx` | Guide to creating descriptor-backed workflows and agents with the Elevasis SDK |
|
|
@@ -743,20 +743,6 @@
|
|
|
743
743
|
"referencePath": "packages/ui/src/hooks/README.md",
|
|
744
744
|
"publishedExportPath": "./dist/hooks/user-notes/index.js"
|
|
745
745
|
},
|
|
746
|
-
{
|
|
747
|
-
"packageName": "@elevasis/ui",
|
|
748
|
-
"packageDir": "packages/ui",
|
|
749
|
-
"subpath": "./hooks/operations/command-view/utils/transformCommandViewData",
|
|
750
|
-
"kind": "subpath",
|
|
751
|
-
"title": "Transform Command View Data",
|
|
752
|
-
"description": "Utility that transforms backend CommandViewData arrays into a unified frontend CommandViewGraph with nodes and edges.",
|
|
753
|
-
"group": "Hooks",
|
|
754
|
-
"order": 3,
|
|
755
|
-
"sourcePath": "packages/ui/src/hooks/operations/command-view/utils/transformCommandViewData.ts",
|
|
756
|
-
"docPath": "packages/ui/src/hooks/README.md",
|
|
757
|
-
"referencePath": "packages/ui/src/hooks/README.md",
|
|
758
|
-
"publishedExportPath": "./dist/hooks/operations/command-view/utils/transformCommandViewData.js"
|
|
759
|
-
},
|
|
760
746
|
{
|
|
761
747
|
"packageName": "@elevasis/ui",
|
|
762
748
|
"packageDir": "packages/ui",
|
|
@@ -1,23 +1,22 @@
|
|
|
1
|
-
# Hooks
|
|
2
|
-
|
|
3
|
-
The hooks barrel is the published headless hook surface for the UI package.
|
|
4
|
-
|
|
5
|
-
## Grouped Areas
|
|
6
|
-
|
|
7
|
-
- Execution and workflow hooks
|
|
8
|
-
- Scheduling hooks
|
|
9
|
-
- Monitoring, observability, and notification hooks
|
|
10
|
-
- Session and SSE hooks
|
|
11
|
-
- Operations hooks, including command-view helpers
|
|
12
|
-
- Feature access, table state, and service helpers
|
|
13
|
-
- Acquisition and delivery hooks
|
|
14
|
-
|
|
15
|
-
## Published Subpaths
|
|
16
|
-
|
|
17
|
-
- `./hooks`
|
|
18
|
-
- `./hooks/delivery`
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
- This barrel is intentionally headless. It should not pull in the visual component layer.
|
|
1
|
+
# Hooks
|
|
2
|
+
|
|
3
|
+
The hooks barrel is the published headless hook surface for the UI package.
|
|
4
|
+
|
|
5
|
+
## Grouped Areas
|
|
6
|
+
|
|
7
|
+
- Execution and workflow hooks
|
|
8
|
+
- Scheduling hooks
|
|
9
|
+
- Monitoring, observability, and notification hooks
|
|
10
|
+
- Session and SSE hooks
|
|
11
|
+
- Operations hooks, including command-view helpers
|
|
12
|
+
- Feature access, table state, and service helpers
|
|
13
|
+
- Acquisition and delivery hooks
|
|
14
|
+
|
|
15
|
+
## Published Subpaths
|
|
16
|
+
|
|
17
|
+
- `./hooks`
|
|
18
|
+
- `./hooks/delivery`
|
|
19
|
+
|
|
20
|
+
## Notes
|
|
21
|
+
|
|
22
|
+
- This barrel is intentionally headless. It should not pull in the visual component layer.
|
|
@@ -10,11 +10,14 @@ paths:
|
|
|
10
10
|
|
|
11
11
|
# Content
|
|
12
12
|
|
|
13
|
-
- **These routes render and do nothing until the System behind them is
|
|
13
|
+
- **These routes render and do nothing until the System behind them is adopted.** `content` **does** have an entry in `core/config/organization-model/systems.ts`, alongside CRM and lead-gen. Do not add a second one. The entry ships `enabled: true` with `lifecycle: 'draft'`, and that draft state is the deliberate opt-out, not a half-finished System: with no `apiInterface`, the shared Content pages have no API surface to call. Adoption means flipping `lifecycle` to `'active'` and adding an `apiInterface` once this project has real content workflows -- `defineContentSystem` throws on empty `resources`, which is exactly why the template does not call it.
|
|
14
14
|
- **One recipe covers this surface and no other rule names it.** `extend-content.md` covers the System, its pipeline/step/status/pillar/platform catalogs, and the `content` workflow adapter. Read it before authoring.
|
|
15
15
|
- **A pipeline is data, not code.** Pipelines and their ordered steps are catalog records (`content:catalog/pipeline`, `content:catalog/{pipelineId}-steps`); adding one is an org-model edit plus one workflow per step, never a shared-UI or route change.
|
|
16
16
|
- **Pipeline, step, status, and pillar vocabulary is model-owned, never a local constant.** Copying catalog entries into a `const` is architecturally excluded -- every project owns its own model, so the copy rots silently. Read catalog entries from the resolved model.
|
|
17
17
|
- **`apiInterface` is adopt-only here.** Content uses the flat `system.apiInterface` marker on the `content` System path; readiness is derived from scoped resources, ontology bindings, and required catalogs -- never invent a readiness profile.
|
|
18
|
+
- **Every step records an attempt when it advances -- human steps included.** `content_items.processing_state` is read-only and rebuilt from that item's attempts on every attempt write; there is no `updateProcessingState` anywhere in the stack, so **writing an attempt is the only way to move an item**. An agent or workflow step satisfies this for free, because the execution behind it writes `running` and patches the terminal status. A **human** step has no execution and therefore no producer, so the surface that advances it is the only thing that can write its attempt. A panel that moves the operator on with a bare client-side stepper call records nothing: the step never reaches `'success'`, and board placement pins the item to that column however far it actually goes. Nothing enforces this -- no gate, no type -- which is why it is stated here. It reached two tenants at once purely because the rule lived in the board-derivation implementation and nowhere a panel author would look.
|
|
19
|
+
- **Two shapes satisfy that contract.** **Inline** -- the step writes its own attempt as it advances; available to any human step reached with an item in hand, and the only shape most projects need. **Backfilled at creation** -- a pipeline that deliberately defers the first write (so an abandoned selection leaves no rows behind) runs its first human steps with no item to write against, so those attempts go in one pass right after the item is created, derived from wherever creation lands rather than listed per pipeline. Both write `payload: {}` and `sourceExecutionId: null` -- a person doing the step is the result, and there is no execution to name. Guard the write on an existing `'success'` entry so walking back and forward does not pile up rows, and never let a failed write block the operator: the step's work is genuinely done, and the next walk through repairs the projection.
|
|
20
|
+
- **A review is an attempt too.** A human clearing a gate writes an attempt on the step being cleared, via `content_items/:id/review` -- which resolves the exact step through the open-review-gate query rather than guessing. Do not widen `content_items` with per-gate columns. A review attempt legitimately has `sourceExecutionId: null` (a judgment call has no execution) and carries the reviewer's identity in `createdBy`. That route is only reachable for a step an execution actually produced: `getOpenContentReviewGates` resolves gates through `executionId`, so a human-actor step with no `action` and no `resource` structurally can never have an open gate to clear. For those steps the inline attempt above is not the preferred shape, it is the only one.
|
|
18
21
|
|
|
19
22
|
## Related Rules
|
|
20
23
|
|
|
@@ -16,7 +16,7 @@ paths:
|
|
|
16
16
|
- `routeTree.gen.ts` is auto-generated on `pnpm dev` -- never edit manually
|
|
17
17
|
- Auth protection: wrap page content with `ProtectedRoute` from `@elevasis/ui/features/auth`. Gate further with `AccessGuard accessKey={...}` nested inside `ProtectedRoute` -- a System path for system gating, or an `AccessKeys` constant (e.g. `AccessKeys.platformAdmin`) for permission-backed gating. `FeatureGuard`, `SystemGuard`, `SurfaceGuard`, and `AdminGuard` are retired -- do not reintroduce them
|
|
18
18
|
- **For a System's top-level route, use `ProtectedSystemRoute accessKey={...}` from `@elevasis/ui/features/auth` instead of writing that pairing by hand.** It expands to exactly the `ProtectedRoute` + `AccessGuard` nesting above and adds `SystemUnavailableState` as the guard's `fallback`, so a denied user sees the reason rather than `AccessGuard`'s blank `fallback = null` default. Every System route in the template ships this shape; see `ui.md` "System route guarding". Keep `createFileRoute` in the route file and keep bare `AccessGuard` for gating below the route level
|
|
19
|
-
- **Two `ProtectedRoute` components exist and the subpath you import from decides what the user sees while the app initializes.** `@elevasis/ui/features/auth` is the one route files want: it wraps the base guard with an animated full-screen loader and a default `
|
|
19
|
+
- **Two `ProtectedRoute` components exist and the subpath you import from decides what the user sees while the app initializes.** `@elevasis/ui/features/auth` is the one route files want: it wraps the base guard with an animated full-screen loader and a default `ServiceUnavailableScreen` error fallback, which classifies the initialization failure and retries on a backoff. `@elevasis/ui/auth` exports the headless base guard, whose `fallback` defaults to `null` -- importing it without passing a `fallback` renders a blank screen for the whole initialization window and swallows initialization errors. Reach for the headless one only when the surface renders its own loading state. `AccessKeys` is a plain constant table and stays on `@elevasis/ui/auth` (or `@elevasis/ui/hooks`) either way
|
|
20
20
|
- Never fork `@elevasis/ui` components -- if a published component needs a tweak, that missing capability is a bug in `@elevasis/ui`
|
|
21
21
|
|
|
22
22
|
## Silent-Break Gotchas
|
|
@@ -52,4 +52,4 @@ When building pages that display external data, use published `@elevasis/ui` com
|
|
|
52
52
|
- `operations/node_modules/@elevasis/sdk/reference/scaffold/ui/customization.md` -- sidebar composition via manifest overrides
|
|
53
53
|
- `operations/node_modules/@elevasis/sdk/reference/scaffold/reference/contracts.md` -- TypeScript shapes (`SystemModule`, `NavItem`, `OrganizationModel`)
|
|
54
54
|
- `ui/src/config/theme.ts` -- theme configuration and CSS variable definitions
|
|
55
|
-
- `ui/src/config/
|
|
55
|
+
- `ui/src/config/shell.tsx` -- the `SYSTEM_MANIFESTS` array of mounted System modules, and the seam for sidebar overrides
|
|
@@ -17,7 +17,7 @@ Organization OS is the semantic contract layer defining how organizations, Syste
|
|
|
17
17
|
- `core/config/extensions/` -- project-owned entity extension schemas
|
|
18
18
|
- `core/types/entities.ts` -- typed entity contracts (Project, Deal, etc.) extending `BaseProject` / `BaseDeal` from `@elevasis/core/entities`. Reference these from workflow input schemas -- do not redeclare them.
|
|
19
19
|
- `ui/src/routes/__root.tsx` -- wires `ElevasisSystemsProvider` with `canonicalOrganizationModel`
|
|
20
|
-
- `ui/src/app-config.ts` -- references the org model
|
|
20
|
+
- `ui/src/config/app-config.ts` -- references the org model
|
|
21
21
|
- `operations/src/index.ts` -- `DeploymentSpec` registry for workflows and agents
|
|
22
22
|
|
|
23
23
|
## Domain Overview
|