@elevasis/sdk 1.26.0 → 1.26.2
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/cli.cjs +70 -5
- package/dist/index.d.ts +56 -3
- package/dist/node/index.d.ts +10 -2
- package/dist/test-utils/index.d.ts +57 -4
- package/dist/test-utils/index.js +6 -5
- package/dist/types/worker/index.d.ts +2 -2
- package/dist/worker/index.js +1 -0
- package/package.json +2 -2
- package/reference/claude-config/skills/setup/SKILL.md +2 -2
- package/reference/claude-config/sync-notes/2026-05-23-branding-names-to-identity.md +49 -0
- package/reference/claude-config/sync-notes/2026-05-23-lead-gen-manage-access.md +31 -0
- package/reference/claude-config/sync-notes/2026-05-23-om-deployment-drift-detection.md +42 -0
- package/reference/claude-config/sync-notes/2026-05-23-ui-sdk-package-fixes.md +37 -0
- package/reference/cli-management.mdx +10 -8
- package/reference/deployment/{ui-execution.mdx → execution-reference.mdx} +297 -24
- package/reference/deployment/index.mdx +101 -6
- package/reference/examples/organization-model.ts +14 -4
- package/reference/index.mdx +2 -4
- package/reference/resources/patterns.mdx +1 -1
- package/reference/rules/ui.md +8 -1
- package/reference/deployment/api.mdx +0 -296
- package/reference/deployment/provided-features.mdx +0 -110
package/dist/cli.cjs
CHANGED
|
@@ -37181,15 +37181,55 @@ var ResourceMappingSchema = DisplayMetadataSchema.extend({
|
|
|
37181
37181
|
|
|
37182
37182
|
// ../core/src/organization-model/domains/branding.ts
|
|
37183
37183
|
var OrganizationModelBrandingSchema = external_exports.object({
|
|
37184
|
+
/**
|
|
37185
|
+
* @deprecated Prefer `identity.organizationName`; branding retains it for back-compat.
|
|
37186
|
+
* Legacy tenants that have not set `identity.organizationName` fall back to this field.
|
|
37187
|
+
*/
|
|
37184
37188
|
organizationName: LabelSchema,
|
|
37189
|
+
/**
|
|
37190
|
+
* @deprecated Prefer `identity.productName`; branding retains it for back-compat.
|
|
37191
|
+
* Legacy tenants that have not set `identity.productName` fall back to this field.
|
|
37192
|
+
*/
|
|
37185
37193
|
productName: LabelSchema,
|
|
37194
|
+
/**
|
|
37195
|
+
* @deprecated Prefer `identity.shortName`; branding retains it for back-compat.
|
|
37196
|
+
* Legacy tenants that have not set `identity.shortName` fall back to this field.
|
|
37197
|
+
*/
|
|
37186
37198
|
shortName: external_exports.string().trim().min(1).max(40),
|
|
37199
|
+
/**
|
|
37200
|
+
* @deprecated Prefer `identity.description`; branding retains it for back-compat.
|
|
37201
|
+
* Legacy tenants that have not set `identity.description` fall back to this field.
|
|
37202
|
+
*/
|
|
37187
37203
|
description: DescriptionSchema.optional(),
|
|
37188
37204
|
logos: external_exports.object({
|
|
37189
37205
|
light: external_exports.string().trim().min(1).max(2048).optional(),
|
|
37190
37206
|
dark: external_exports.string().trim().min(1).max(2048).optional()
|
|
37191
|
-
}).default({})
|
|
37192
|
-
|
|
37207
|
+
}).default({}),
|
|
37208
|
+
/**
|
|
37209
|
+
* Brand voice — how the organization communicates. Plain-language description
|
|
37210
|
+
* of tone, register, and personality (e.g. "Direct and human — no jargon").
|
|
37211
|
+
* Max 280 characters.
|
|
37212
|
+
*/
|
|
37213
|
+
voice: external_exports.string().trim().max(280).optional(),
|
|
37214
|
+
/**
|
|
37215
|
+
* Brand tagline or positioning statement — the memorable one-liner that
|
|
37216
|
+
* captures the brand's promise or differentiator. Max 200 characters.
|
|
37217
|
+
*/
|
|
37218
|
+
tagline: external_exports.string().trim().max(200).optional(),
|
|
37219
|
+
/**
|
|
37220
|
+
* Core brand values — an ordered list of principles the organization stands
|
|
37221
|
+
* for (e.g. ["Transparency", "Craftsmanship", "Velocity"]). Each entry must
|
|
37222
|
+
* be a non-empty trimmed string.
|
|
37223
|
+
*/
|
|
37224
|
+
values: external_exports.array(external_exports.string().trim().min(1)).optional(),
|
|
37225
|
+
/**
|
|
37226
|
+
* ID of the active UI theme preset from the UI theme-presets registry.
|
|
37227
|
+
* The UI layer resolves this to colors and typography via `usePresetsContext()`.
|
|
37228
|
+
* Free-form string — validation and fallback state are handled at the UI layer.
|
|
37229
|
+
* Min 1, max 64 characters.
|
|
37230
|
+
*/
|
|
37231
|
+
themePresetId: external_exports.string().trim().min(1).max(64).optional()
|
|
37232
|
+
}).passthrough();
|
|
37193
37233
|
var DEFAULT_ORGANIZATION_MODEL_BRANDING = {
|
|
37194
37234
|
organizationName: "Default Organization",
|
|
37195
37235
|
productName: "Organization OS",
|
|
@@ -37312,8 +37352,33 @@ var IdentityDomainSchema = external_exports.object({
|
|
|
37312
37352
|
* background. Populated by /setup; surfaced to agents as organizational context.
|
|
37313
37353
|
* Optional — many projects have no external client.
|
|
37314
37354
|
*/
|
|
37315
|
-
clientBrief: external_exports.string().trim().default("")
|
|
37316
|
-
|
|
37355
|
+
clientBrief: external_exports.string().trim().default(""),
|
|
37356
|
+
/**
|
|
37357
|
+
* Display name of the organization as shown to end users.
|
|
37358
|
+
* Recommended placement for display naming — prefer this over the deprecated
|
|
37359
|
+
* `branding.organizationName`. Falls back to `branding.organizationName` for
|
|
37360
|
+
* legacy tenants that have not yet migrated.
|
|
37361
|
+
*/
|
|
37362
|
+
organizationName: LabelSchema.optional(),
|
|
37363
|
+
/**
|
|
37364
|
+
* Display name of the primary product or platform.
|
|
37365
|
+
* Recommended placement for display naming — prefer this over the deprecated
|
|
37366
|
+
* `branding.productName`. Falls back to `branding.productName` for legacy tenants.
|
|
37367
|
+
*/
|
|
37368
|
+
productName: LabelSchema.optional(),
|
|
37369
|
+
/**
|
|
37370
|
+
* Short abbreviated name used in space-constrained UI surfaces (max 40 chars).
|
|
37371
|
+
* Recommended placement for display naming — prefer this over the deprecated
|
|
37372
|
+
* `branding.shortName`. Falls back to `branding.shortName` for legacy tenants.
|
|
37373
|
+
*/
|
|
37374
|
+
shortName: external_exports.string().trim().min(1).max(40).optional(),
|
|
37375
|
+
/**
|
|
37376
|
+
* Plain-language description of the organization for display and discovery.
|
|
37377
|
+
* Recommended placement for display naming — prefer this over the deprecated
|
|
37378
|
+
* `branding.description`. Falls back to `branding.description` for legacy tenants.
|
|
37379
|
+
*/
|
|
37380
|
+
description: DescriptionSchema.optional()
|
|
37381
|
+
}).passthrough();
|
|
37317
37382
|
var DEFAULT_ORGANIZATION_MODEL_IDENTITY = {
|
|
37318
37383
|
mission: "",
|
|
37319
37384
|
vision: "",
|
|
@@ -44059,7 +44124,7 @@ function wrapAction(commandName, fn) {
|
|
|
44059
44124
|
// package.json
|
|
44060
44125
|
var package_default = {
|
|
44061
44126
|
name: "@elevasis/sdk",
|
|
44062
|
-
version: "1.26.
|
|
44127
|
+
version: "1.26.2",
|
|
44063
44128
|
description: "SDK for building Elevasis organization resources",
|
|
44064
44129
|
type: "module",
|
|
44065
44130
|
bin: {
|
package/dist/index.d.ts
CHANGED
|
@@ -2884,6 +2884,51 @@ type Database = {
|
|
|
2884
2884
|
}
|
|
2885
2885
|
];
|
|
2886
2886
|
};
|
|
2887
|
+
deployment_organization_models: {
|
|
2888
|
+
Row: {
|
|
2889
|
+
created_at: string;
|
|
2890
|
+
deployment_id: string;
|
|
2891
|
+
model_hash: string | null;
|
|
2892
|
+
organization_id: string;
|
|
2893
|
+
organization_model: Json;
|
|
2894
|
+
schema_version: string;
|
|
2895
|
+
updated_at: string;
|
|
2896
|
+
};
|
|
2897
|
+
Insert: {
|
|
2898
|
+
created_at?: string;
|
|
2899
|
+
deployment_id: string;
|
|
2900
|
+
model_hash?: string | null;
|
|
2901
|
+
organization_id: string;
|
|
2902
|
+
organization_model: Json;
|
|
2903
|
+
schema_version?: string;
|
|
2904
|
+
updated_at?: string;
|
|
2905
|
+
};
|
|
2906
|
+
Update: {
|
|
2907
|
+
created_at?: string;
|
|
2908
|
+
deployment_id?: string;
|
|
2909
|
+
model_hash?: string | null;
|
|
2910
|
+
organization_id?: string;
|
|
2911
|
+
organization_model?: Json;
|
|
2912
|
+
schema_version?: string;
|
|
2913
|
+
updated_at?: string;
|
|
2914
|
+
};
|
|
2915
|
+
Relationships: [
|
|
2916
|
+
{
|
|
2917
|
+
foreignKeyName: "deployment_organization_models_deployment_id_fkey";
|
|
2918
|
+
columns: ["deployment_id"];
|
|
2919
|
+
isOneToOne: true;
|
|
2920
|
+
referencedRelation: "deployments";
|
|
2921
|
+
referencedColumns: ["id"];
|
|
2922
|
+
},
|
|
2923
|
+
{
|
|
2924
|
+
foreignKeyName: "deployment_organization_models_organization_id_fkey";
|
|
2925
|
+
columns: ["organization_id"];
|
|
2926
|
+
isOneToOne: false;
|
|
2927
|
+
referencedRelation: "organizations";
|
|
2928
|
+
referencedColumns: ["id"];
|
|
2929
|
+
}
|
|
2930
|
+
];
|
|
2931
|
+
};
|
|
2887
2932
|
deployments: {
|
|
2888
2933
|
Row: {
|
|
2889
2934
|
created_at: string;
|
|
@@ -6897,7 +6942,11 @@ declare const OrganizationModelSchema$1: z.ZodObject<{
|
|
|
6897
6942
|
light: z.ZodOptional<z.ZodString>;
|
|
6898
6943
|
dark: z.ZodOptional<z.ZodString>;
|
|
6899
6944
|
}, z.core.$strip>>;
|
|
6900
|
-
|
|
6945
|
+
voice: z.ZodOptional<z.ZodString>;
|
|
6946
|
+
tagline: z.ZodOptional<z.ZodString>;
|
|
6947
|
+
values: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
6948
|
+
themePresetId: z.ZodOptional<z.ZodString>;
|
|
6949
|
+
}, z.core.$loose>>;
|
|
6901
6950
|
navigation: z.ZodDefault<z.ZodObject<{
|
|
6902
6951
|
sidebar: z.ZodDefault<z.ZodObject<{
|
|
6903
6952
|
primary: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodType<SidebarNode, unknown, z.core.$ZodTypeInternals<SidebarNode, unknown>>>>;
|
|
@@ -6944,7 +6993,11 @@ declare const OrganizationModelSchema$1: z.ZodObject<{
|
|
|
6944
6993
|
}, z.core.$strip>>;
|
|
6945
6994
|
}, z.core.$strip>>;
|
|
6946
6995
|
clientBrief: z.ZodDefault<z.ZodString>;
|
|
6947
|
-
|
|
6996
|
+
organizationName: z.ZodOptional<z.ZodString>;
|
|
6997
|
+
productName: z.ZodOptional<z.ZodString>;
|
|
6998
|
+
shortName: z.ZodOptional<z.ZodString>;
|
|
6999
|
+
description: z.ZodOptional<z.ZodString>;
|
|
7000
|
+
}, z.core.$loose>>;
|
|
6948
7001
|
customers: z.ZodDefault<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
6949
7002
|
id: z.ZodString;
|
|
6950
7003
|
order: z.ZodNumber;
|
|
@@ -7641,7 +7694,7 @@ declare function compileBusinessOntologyValidationIndex(model: OrganizationModel
|
|
|
7641
7694
|
* organization model's `sales.lead-gen` stage records). Hosts that own a
|
|
7642
7695
|
* populated tenant model (e.g. `apps/api` with the Elevasis canonical model)
|
|
7643
7696
|
* MUST build their own index via `compileBusinessOntologyValidationIndex(model)`
|
|
7644
|
-
* and call `createLeadGenStageValidators(index)`.
|
|
7697
|
+
* and call `createLeadGenStageValidators(index)`. The core package stays generic;
|
|
7645
7698
|
* it must never import a tenant model.
|
|
7646
7699
|
*/
|
|
7647
7700
|
type LeadGenStageValidators = {
|
package/dist/node/index.d.ts
CHANGED
|
@@ -1674,7 +1674,11 @@ declare const OrganizationModelSchema$1: z.ZodObject<{
|
|
|
1674
1674
|
light: z.ZodOptional<z.ZodString>;
|
|
1675
1675
|
dark: z.ZodOptional<z.ZodString>;
|
|
1676
1676
|
}, z.core.$strip>>;
|
|
1677
|
-
|
|
1677
|
+
voice: z.ZodOptional<z.ZodString>;
|
|
1678
|
+
tagline: z.ZodOptional<z.ZodString>;
|
|
1679
|
+
values: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1680
|
+
themePresetId: z.ZodOptional<z.ZodString>;
|
|
1681
|
+
}, z.core.$loose>>;
|
|
1678
1682
|
navigation: z.ZodDefault<z.ZodObject<{
|
|
1679
1683
|
sidebar: z.ZodDefault<z.ZodObject<{
|
|
1680
1684
|
primary: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodType<SidebarNode, unknown, z.core.$ZodTypeInternals<SidebarNode, unknown>>>>;
|
|
@@ -1721,7 +1725,11 @@ declare const OrganizationModelSchema$1: z.ZodObject<{
|
|
|
1721
1725
|
}, z.core.$strip>>;
|
|
1722
1726
|
}, z.core.$strip>>;
|
|
1723
1727
|
clientBrief: z.ZodDefault<z.ZodString>;
|
|
1724
|
-
|
|
1728
|
+
organizationName: z.ZodOptional<z.ZodString>;
|
|
1729
|
+
productName: z.ZodOptional<z.ZodString>;
|
|
1730
|
+
shortName: z.ZodOptional<z.ZodString>;
|
|
1731
|
+
description: z.ZodOptional<z.ZodString>;
|
|
1732
|
+
}, z.core.$loose>>;
|
|
1725
1733
|
customers: z.ZodDefault<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
1726
1734
|
id: z.ZodString;
|
|
1727
1735
|
order: z.ZodNumber;
|
|
@@ -2717,6 +2717,51 @@ type Database = {
|
|
|
2717
2717
|
}
|
|
2718
2718
|
];
|
|
2719
2719
|
};
|
|
2720
|
+
deployment_organization_models: {
|
|
2721
|
+
Row: {
|
|
2722
|
+
created_at: string;
|
|
2723
|
+
deployment_id: string;
|
|
2724
|
+
model_hash: string | null;
|
|
2725
|
+
organization_id: string;
|
|
2726
|
+
organization_model: Json;
|
|
2727
|
+
schema_version: string;
|
|
2728
|
+
updated_at: string;
|
|
2729
|
+
};
|
|
2730
|
+
Insert: {
|
|
2731
|
+
created_at?: string;
|
|
2732
|
+
deployment_id: string;
|
|
2733
|
+
model_hash?: string | null;
|
|
2734
|
+
organization_id: string;
|
|
2735
|
+
organization_model: Json;
|
|
2736
|
+
schema_version?: string;
|
|
2737
|
+
updated_at?: string;
|
|
2738
|
+
};
|
|
2739
|
+
Update: {
|
|
2740
|
+
created_at?: string;
|
|
2741
|
+
deployment_id?: string;
|
|
2742
|
+
model_hash?: string | null;
|
|
2743
|
+
organization_id?: string;
|
|
2744
|
+
organization_model?: Json;
|
|
2745
|
+
schema_version?: string;
|
|
2746
|
+
updated_at?: string;
|
|
2747
|
+
};
|
|
2748
|
+
Relationships: [
|
|
2749
|
+
{
|
|
2750
|
+
foreignKeyName: "deployment_organization_models_deployment_id_fkey";
|
|
2751
|
+
columns: ["deployment_id"];
|
|
2752
|
+
isOneToOne: true;
|
|
2753
|
+
referencedRelation: "deployments";
|
|
2754
|
+
referencedColumns: ["id"];
|
|
2755
|
+
},
|
|
2756
|
+
{
|
|
2757
|
+
foreignKeyName: "deployment_organization_models_organization_id_fkey";
|
|
2758
|
+
columns: ["organization_id"];
|
|
2759
|
+
isOneToOne: false;
|
|
2760
|
+
referencedRelation: "organizations";
|
|
2761
|
+
referencedColumns: ["id"];
|
|
2762
|
+
}
|
|
2763
|
+
];
|
|
2764
|
+
};
|
|
2720
2765
|
deployments: {
|
|
2721
2766
|
Row: {
|
|
2722
2767
|
created_at: string;
|
|
@@ -6095,7 +6140,11 @@ declare const OrganizationModelSchema: z.ZodObject<{
|
|
|
6095
6140
|
light: z.ZodOptional<z.ZodString>;
|
|
6096
6141
|
dark: z.ZodOptional<z.ZodString>;
|
|
6097
6142
|
}, z.core.$strip>>;
|
|
6098
|
-
|
|
6143
|
+
voice: z.ZodOptional<z.ZodString>;
|
|
6144
|
+
tagline: z.ZodOptional<z.ZodString>;
|
|
6145
|
+
values: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
6146
|
+
themePresetId: z.ZodOptional<z.ZodString>;
|
|
6147
|
+
}, z.core.$loose>>;
|
|
6099
6148
|
navigation: z.ZodDefault<z.ZodObject<{
|
|
6100
6149
|
sidebar: z.ZodDefault<z.ZodObject<{
|
|
6101
6150
|
primary: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodType<SidebarNode, unknown, z.core.$ZodTypeInternals<SidebarNode, unknown>>>>;
|
|
@@ -6142,7 +6191,11 @@ declare const OrganizationModelSchema: z.ZodObject<{
|
|
|
6142
6191
|
}, z.core.$strip>>;
|
|
6143
6192
|
}, z.core.$strip>>;
|
|
6144
6193
|
clientBrief: z.ZodDefault<z.ZodString>;
|
|
6145
|
-
|
|
6194
|
+
organizationName: z.ZodOptional<z.ZodString>;
|
|
6195
|
+
productName: z.ZodOptional<z.ZodString>;
|
|
6196
|
+
shortName: z.ZodOptional<z.ZodString>;
|
|
6197
|
+
description: z.ZodOptional<z.ZodString>;
|
|
6198
|
+
}, z.core.$loose>>;
|
|
6146
6199
|
customers: z.ZodDefault<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
6147
6200
|
id: z.ZodString;
|
|
6148
6201
|
order: z.ZodNumber;
|
|
@@ -10494,8 +10547,8 @@ type TypedAdapter<TMap extends ToolMethodMap$1> = {
|
|
|
10494
10547
|
* Message protocol:
|
|
10495
10548
|
* Parent -> Worker: { type: 'manifest' }
|
|
10496
10549
|
* Worker -> Parent: { type: 'manifest', workflows: [...], agents: [...],
|
|
10497
|
-
*
|
|
10498
|
-
* relationships?: {...} }
|
|
10550
|
+
* organizationModel?: {...}, triggers?: [...], integrations?: [...],
|
|
10551
|
+
* humanCheckpoints?: [...], relationships?: {...} }
|
|
10499
10552
|
*
|
|
10500
10553
|
* Parent -> Worker: { type: 'execute', resourceId, executionId, input, organizationId?, organizationName?,
|
|
10501
10554
|
* sessionId?, sessionTurnNumber?, parentExecutionId?, executionDepth }
|
package/dist/test-utils/index.js
CHANGED
|
@@ -9284,6 +9284,7 @@ function startWorker(org) {
|
|
|
9284
9284
|
if (msg.type === "manifest") {
|
|
9285
9285
|
parentPort.postMessage({
|
|
9286
9286
|
type: "manifest",
|
|
9287
|
+
organizationModel: org.organizationModel,
|
|
9287
9288
|
workflows: (org.workflows ?? []).map((w2) => ({
|
|
9288
9289
|
resourceId: w2.config.resourceId,
|
|
9289
9290
|
name: w2.config.name,
|
|
@@ -21298,7 +21299,7 @@ function recordAsyncAnnotation(test5, promise) {
|
|
|
21298
21299
|
return promise;
|
|
21299
21300
|
}
|
|
21300
21301
|
|
|
21301
|
-
// ../../node_modules/.pnpm/vitest@3.2.4_@edge-runtime+
|
|
21302
|
+
// ../../node_modules/.pnpm/vitest@3.2.4_@edge-runtime+_d1cccf33043c821cd797d4ac11d33b3e/node_modules/vitest/dist/chunks/utils.XdZDrNZV.js
|
|
21302
21303
|
var NAME_WORKER_STATE = "__vitest_worker__";
|
|
21303
21304
|
function getWorkerState() {
|
|
21304
21305
|
const workerState = globalThis[NAME_WORKER_STATE];
|
|
@@ -21346,7 +21347,7 @@ async function waitForImportsToResolve() {
|
|
|
21346
21347
|
await waitForImportsToResolve();
|
|
21347
21348
|
}
|
|
21348
21349
|
|
|
21349
|
-
// ../../node_modules/.pnpm/vitest@3.2.4_@edge-runtime+
|
|
21350
|
+
// ../../node_modules/.pnpm/vitest@3.2.4_@edge-runtime+_d1cccf33043c821cd797d4ac11d33b3e/node_modules/vitest/dist/chunks/_commonjsHelpers.BFTU3MAI.js
|
|
21350
21351
|
var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
|
|
21351
21352
|
function getDefaultExportFromCjs3(x2) {
|
|
21352
21353
|
return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, "default") ? x2["default"] : x2;
|
|
@@ -23379,7 +23380,7 @@ var SnapshotClient = class {
|
|
|
23379
23380
|
}
|
|
23380
23381
|
};
|
|
23381
23382
|
|
|
23382
|
-
// ../../node_modules/.pnpm/vitest@3.2.4_@edge-runtime+
|
|
23383
|
+
// ../../node_modules/.pnpm/vitest@3.2.4_@edge-runtime+_d1cccf33043c821cd797d4ac11d33b3e/node_modules/vitest/dist/chunks/date.Bq6ZW5rf.js
|
|
23383
23384
|
var RealDate = Date;
|
|
23384
23385
|
var now2 = null;
|
|
23385
23386
|
var MockDate = class _MockDate extends RealDate {
|
|
@@ -23427,7 +23428,7 @@ function resetDate() {
|
|
|
23427
23428
|
globalThis.Date = RealDate;
|
|
23428
23429
|
}
|
|
23429
23430
|
|
|
23430
|
-
// ../../node_modules/.pnpm/vitest@3.2.4_@edge-runtime+
|
|
23431
|
+
// ../../node_modules/.pnpm/vitest@3.2.4_@edge-runtime+_d1cccf33043c821cd797d4ac11d33b3e/node_modules/vitest/dist/chunks/vi.bdSIJ99Y.js
|
|
23431
23432
|
var unsupported = [
|
|
23432
23433
|
"matchSnapshot",
|
|
23433
23434
|
"toMatchSnapshot",
|
|
@@ -26108,7 +26109,7 @@ function getImporter(name) {
|
|
|
26108
26109
|
return stack?.file || "";
|
|
26109
26110
|
}
|
|
26110
26111
|
|
|
26111
|
-
// ../../node_modules/.pnpm/vitest@3.2.4_@edge-runtime+
|
|
26112
|
+
// ../../node_modules/.pnpm/vitest@3.2.4_@edge-runtime+_d1cccf33043c821cd797d4ac11d33b3e/node_modules/vitest/dist/index.js
|
|
26112
26113
|
__toESM(require_dist());
|
|
26113
26114
|
|
|
26114
26115
|
// src/test-utils/mock-adapters.ts
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
* Message protocol:
|
|
8
8
|
* Parent -> Worker: { type: 'manifest' }
|
|
9
9
|
* Worker -> Parent: { type: 'manifest', workflows: [...], agents: [...],
|
|
10
|
-
*
|
|
11
|
-
* relationships?: {...} }
|
|
10
|
+
* organizationModel?: {...}, triggers?: [...], integrations?: [...],
|
|
11
|
+
* humanCheckpoints?: [...], relationships?: {...} }
|
|
12
12
|
*
|
|
13
13
|
* Parent -> Worker: { type: 'execute', resourceId, executionId, input, organizationId?, organizationName?,
|
|
14
14
|
* sessionId?, sessionTurnNumber?, parentExecutionId?, executionDepth }
|
package/dist/worker/index.js
CHANGED
|
@@ -6801,6 +6801,7 @@ function startWorker(org) {
|
|
|
6801
6801
|
if (msg.type === "manifest") {
|
|
6802
6802
|
parentPort.postMessage({
|
|
6803
6803
|
type: "manifest",
|
|
6804
|
+
organizationModel: org.organizationModel,
|
|
6804
6805
|
workflows: (org.workflows ?? []).map((w) => ({
|
|
6805
6806
|
resourceId: w.config.resourceId,
|
|
6806
6807
|
name: w.config.name,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elevasis/sdk",
|
|
3
|
-
"version": "1.26.
|
|
3
|
+
"version": "1.26.2",
|
|
4
4
|
"description": "SDK for building Elevasis organization resources",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"tsup": "^8.0.0",
|
|
59
59
|
"typescript": "5.9.2",
|
|
60
60
|
"zod": "^4.1.0",
|
|
61
|
-
"@repo/core": "0.
|
|
61
|
+
"@repo/core": "0.33.0",
|
|
62
62
|
"@repo/eslint-config": "0.0.0",
|
|
63
63
|
"@repo/typescript-config": "0.0.0"
|
|
64
64
|
},
|
|
@@ -23,7 +23,7 @@ Before collecting any information or running any steps, determine which state th
|
|
|
23
23
|
|
|
24
24
|
**State A — Virgin (placeholders present):** One or more of the above placeholder strings is found. Run the full bootstrap flow (Steps 1–7 below), then hand off to `/om`.
|
|
25
25
|
|
|
26
|
-
**State B — Already bootstrapped, org-model at defaults:** No placeholders found, but `core/config/organization-model.ts` contains only the default
|
|
26
|
+
**State B — Already bootstrapped, org-model at defaults:** No placeholders found, but `core/config/organization-model.ts` contains only the default display naming override (just `identity.organizationName`, `identity.productName`, `identity.shortName`, with legacy `branding.*` fallback values — no customers, offerings, roles, goals, or techStack overrides). Print:
|
|
27
27
|
|
|
28
28
|
```
|
|
29
29
|
This project is already set up. The organization model has not been configured yet.
|
|
@@ -32,7 +32,7 @@ Running /om to set up your organization profile...
|
|
|
32
32
|
|
|
33
33
|
Then execute `/om` (the full layered flow) and stop.
|
|
34
34
|
|
|
35
|
-
**State C — Fully configured:** No placeholders found AND `core/config/organization-model.ts` has at least one non-
|
|
35
|
+
**State C — Fully configured:** No placeholders found AND `core/config/organization-model.ts` has at least one non-default business domain populated (customers, offerings, roles, goals, techStack, or identity fields beyond display naming/client brief). Print:
|
|
36
36
|
|
|
37
37
|
```
|
|
38
38
|
This project is already configured. To update your organization profile, run /om.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Branding Names to Identity
|
|
2
|
+
|
|
3
|
+
## Why this note exists
|
|
4
|
+
|
|
5
|
+
The Organization Model now treats `identity.organizationName`, `identity.productName`,
|
|
6
|
+
and `identity.shortName` as the preferred source for display naming. The older
|
|
7
|
+
`branding.*` name fields remain valid for backward compatibility, but new template code
|
|
8
|
+
reads identity first and falls back to branding only for legacy projects.
|
|
9
|
+
|
|
10
|
+
Branding also now supports first-class expression fields such as `voice`, `tagline`,
|
|
11
|
+
`values`, and `themePresetId`, while still accepting tenant-specific passthrough fields.
|
|
12
|
+
|
|
13
|
+
## Applies to
|
|
14
|
+
|
|
15
|
+
Template-derived projects that customize Organization Model branding or read
|
|
16
|
+
`organizationModel.branding.organizationName`, `productName`, or `shortName` directly in
|
|
17
|
+
UI or setup code.
|
|
18
|
+
|
|
19
|
+
## Required actions
|
|
20
|
+
|
|
21
|
+
1. Keep existing `branding.organizationName`, `branding.productName`, and
|
|
22
|
+
`branding.shortName` values in place for compatibility.
|
|
23
|
+
2. Add matching values under `identity.organizationName`, `identity.productName`, and
|
|
24
|
+
`identity.shortName`.
|
|
25
|
+
3. Update project UI code to read `identity.* ?? branding.*` for display naming.
|
|
26
|
+
4. Move brand expression into the broadened `branding` fields: `voice`, `tagline`,
|
|
27
|
+
`values`, `themePresetId`, and project-owned passthrough fields as needed.
|
|
28
|
+
|
|
29
|
+
## Verification
|
|
30
|
+
|
|
31
|
+
Run the normal template-derived project gates after syncing:
|
|
32
|
+
|
|
33
|
+
```powershell
|
|
34
|
+
pnpm -C core test
|
|
35
|
+
pnpm -C ui check-types
|
|
36
|
+
pnpm -C ui build
|
|
37
|
+
pnpm -C operations check-types
|
|
38
|
+
pnpm -C operations check
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Also open the app shell and Knowledge Base identity/branding views. Confirm display names
|
|
42
|
+
render from identity and branding expression fields render under Branding.
|
|
43
|
+
|
|
44
|
+
## Not handled by /git-sync
|
|
45
|
+
|
|
46
|
+
`/git-sync` cannot choose real brand voice, tagline, values, logo assets, or custom
|
|
47
|
+
passthrough fields for an individual tenant. It also cannot remove legacy
|
|
48
|
+
`branding.*` name fields from project-specific code until maintainers confirm every
|
|
49
|
+
consumer has migrated to the identity-first fallback.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Lead Gen Manage Access Package Baseline
|
|
2
|
+
|
|
3
|
+
## Why this note exists
|
|
4
|
+
|
|
5
|
+
This train adds `sales.lead-gen.manage` as the OM-aligned runtime permission for operating Lead Gen list-builder mutations. The implementation ships through `@elevasis/core` and `@elevasis/ui`; template projects need the package baseline update so derived apps receive the new access key and shared Lead Gen UI guards.
|
|
6
|
+
|
|
7
|
+
## Applies to
|
|
8
|
+
|
|
9
|
+
- Template UI package baseline: `external/_template/ui/package.json`
|
|
10
|
+
- Template core package baseline: `external/_template/core/package.json`
|
|
11
|
+
- Template operations package baseline: `external/_template/operations/package.json`
|
|
12
|
+
- Derived projects that expose the shared Lead Gen list-builder UI
|
|
13
|
+
|
|
14
|
+
## Required actions
|
|
15
|
+
|
|
16
|
+
1. Publish the prepared `@elevasis/core` release containing `sales.lead-gen.manage` and `AccessKeys.leadGenManage`.
|
|
17
|
+
2. Publish the prepared `@elevasis/ui` release containing the shared Lead Gen mutation affordance guards.
|
|
18
|
+
3. Run the prepared external sync manifest so derived projects receive the updated package baselines.
|
|
19
|
+
4. For client launches, verify Operator users receive `sales.lead-gen.manage` through platform role grants before list-builder smoke.
|
|
20
|
+
|
|
21
|
+
## Verification
|
|
22
|
+
|
|
23
|
+
- `pnpm -C packages/core build:publish`
|
|
24
|
+
- `pnpm -C packages/ui build:publish`
|
|
25
|
+
- `pnpm -C external/_template/ui check-types`
|
|
26
|
+
- `pnpm -C external/_template/ui build`
|
|
27
|
+
- `pnpm sync:verify` after the manifest-scoped external sync stage
|
|
28
|
+
|
|
29
|
+
## Not handled by /git-sync
|
|
30
|
+
|
|
31
|
+
Database permission rows and system role grants are environment state, not template files. Apply the SQL migration or equivalent environment change separately before inviting Operator users.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# OM Deployment Drift Detection
|
|
2
|
+
|
|
3
|
+
## Why this note exists
|
|
4
|
+
|
|
5
|
+
The platform API now persists deployed Organization Model snapshots and validates tenant
|
|
6
|
+
lead-gen and CRM catalogs against the requesting tenant's active deployed model. The
|
|
7
|
+
template does not need source changes for this server-side fix, but template-derived
|
|
8
|
+
projects should accept the `@elevasis/core` package baseline when this release train
|
|
9
|
+
publishes it so generated database and shared type surfaces stay aligned.
|
|
10
|
+
|
|
11
|
+
## Applies to
|
|
12
|
+
|
|
13
|
+
Template-derived projects that use SDK deployments, lead-gen list creation, CRM stages,
|
|
14
|
+
or CRM actions through the hosted Elevasis API.
|
|
15
|
+
|
|
16
|
+
## Required actions
|
|
17
|
+
|
|
18
|
+
1. Pull the package baseline update produced by this ship train.
|
|
19
|
+
2. Redeploy or verify tenant operations resources if the project has recently changed its
|
|
20
|
+
Organization Model catalogs.
|
|
21
|
+
3. After the API deployment stage completes, smoke lead-gen list creation with a
|
|
22
|
+
project-owned build template ID.
|
|
23
|
+
|
|
24
|
+
## Verification
|
|
25
|
+
|
|
26
|
+
Run the normal template-derived project gates after syncing:
|
|
27
|
+
|
|
28
|
+
```powershell
|
|
29
|
+
pnpm -C core test
|
|
30
|
+
pnpm -C operations check-types
|
|
31
|
+
pnpm -C operations check
|
|
32
|
+
pnpm -C ui check-types
|
|
33
|
+
pnpm -C ui build
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
For projects using lead-gen, also verify list creation against the hosted API with a
|
|
37
|
+
tenant-owned build template ID.
|
|
38
|
+
|
|
39
|
+
## Not handled by /git-sync
|
|
40
|
+
|
|
41
|
+
`/git-sync` cannot apply the production database change or deploy the hosted API. It also
|
|
42
|
+
does not create project-specific Organization Model catalogs or workflow resources.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# UI + SDK package fixes (lastVisitedOrg, worker-manifest organizationModel)
|
|
2
|
+
|
|
3
|
+
## Why this note exists
|
|
4
|
+
|
|
5
|
+
`@elevasis/ui` and `@elevasis/sdk` were republished with two backward-compatible fixes:
|
|
6
|
+
|
|
7
|
+
- `@elevasis/ui`: `OrganizationProvider` now persists org preference as `lastVisitedOrg` (matching the `/api/users/me` schema), removing the noisy 400 on organization switching.
|
|
8
|
+
- `@elevasis/sdk`: the worker manifest now includes `organizationModel`, so platform deployment persistence receives your tenant Organization Model snapshot.
|
|
9
|
+
|
|
10
|
+
The SDK change requires a deploy, not just an install, to take effect on your active platform deployment.
|
|
11
|
+
|
|
12
|
+
## Applies to
|
|
13
|
+
|
|
14
|
+
All template-derived projects that consume `@elevasis/ui` and `@elevasis/sdk` and run an `operations/` resources bundle on the Elevasis platform.
|
|
15
|
+
|
|
16
|
+
## Required actions
|
|
17
|
+
|
|
18
|
+
1. Pull and install so the new baselines land:
|
|
19
|
+
- `@elevasis/ui` baseline bump in `ui/package.json`
|
|
20
|
+
- `@elevasis/sdk` baseline bump in `operations/package.json`
|
|
21
|
+
2. `pnpm -C ui install && pnpm -C operations install` (or a project-root install) to update lockfiles.
|
|
22
|
+
3. Redeploy your operations bundle so the worker manifest publishes your Organization Model to the active deployment:
|
|
23
|
+
- dev: `pnpm -C operations deploy`
|
|
24
|
+
- prod: `pnpm -C operations deploy:prod`
|
|
25
|
+
4. Redeploy the UI (your host, e.g. Vercel) so the `lastVisitedOrg` fix ships to the browser.
|
|
26
|
+
|
|
27
|
+
No source merges are required; both changes are internal to the published packages.
|
|
28
|
+
|
|
29
|
+
## Verification
|
|
30
|
+
|
|
31
|
+
- `pnpm -C ui check-types && pnpm -C ui build`
|
|
32
|
+
- `pnpm -C operations check && pnpm -C operations check-types`
|
|
33
|
+
- After deploy, confirm the active deployment persists an Organization Model snapshot (Lead Gen / list surfaces resolve the tenant model rather than erroring), and that organization switching no longer emits a 400 against `/api/users/me`.
|
|
34
|
+
|
|
35
|
+
## Not handled by /git-sync
|
|
36
|
+
|
|
37
|
+
`/git-sync` pulls the new baselines and surfaces this note, but it does NOT install dependencies, deploy your operations bundle, or redeploy your UI. Run the install + deploy steps above yourself; the worker-manifest fix only takes effect on your active deployment after an operations redeploy.
|
|
@@ -149,9 +149,9 @@ For exact required flags and accepted enum values, see the command source under
|
|
|
149
149
|
|
|
150
150
|
## elevasis-sdk note:\*
|
|
151
151
|
|
|
152
|
-
`elevasis-sdk note:*` is the agent-facing surface for pushing and reading
|
|
152
|
+
`elevasis-sdk note:*` is the agent-facing surface for pushing and reading user notes. Workflows and agents use it to surface information -- such as "deal X stalled" or "review run completed" -- directly into a user's Notes panel in the Command Center, without sending an email or notification.
|
|
153
153
|
|
|
154
|
-
|
|
154
|
+
Agent-written notes are private to the target user and scoped to the calling organization. The authenticated Notes panel can also create and edit org-shared notes (`visibility: 'org'`), which are visible to active members of the same organization and show creator attribution. The external SDK CLI surface exposes `GET + POST` only; `note:update` and `note:delete` are not yet available via SDK CLI. Users edit, delete, and change visibility through the right-panel view.
|
|
155
155
|
|
|
156
156
|
### note:create
|
|
157
157
|
|
|
@@ -187,6 +187,7 @@ elevasis-sdk note:create --content <text>
|
|
|
187
187
|
- Posts to `POST /api/external/user-notes`
|
|
188
188
|
- When `--user` is omitted the note is created for the identity bound to the API key (the caller)
|
|
189
189
|
- When `--user` is provided the platform resolves the email to a Supabase user UUID and verifies the resolved user is an active member of the calling organization before writing
|
|
190
|
+
- External agent-created notes are always private; org-shared visibility is a signed-in UI capability, not a broadcast CLI mode
|
|
190
191
|
- The `--source` flag is recorded as the `source` column in `user_notes`; agent runtimes should pass their resource ID here so users can see which workflow created the note
|
|
191
192
|
- Priority `normal` produces no badge in the UI; `high` renders orange, `urgent` renders red, `low` renders dimmed gray
|
|
192
193
|
|
|
@@ -279,9 +280,9 @@ elevasis-sdk note:list --user ops@acme.com --priority high --pinned --pretty
|
|
|
279
280
|
|
|
280
281
|
### Command Boundary
|
|
281
282
|
|
|
282
|
-
- `note:create` and `note:list` operate on the **
|
|
283
|
+
- `note:create` and `note:list` operate on the **user notes** surface -- not project notes. For project-scoped notes use `project:note:*`.
|
|
283
284
|
- `note:update` and `note:delete` are not yet available via SDK CLI. Edit and delete notes using the Notes panel in the Command Center.
|
|
284
|
-
- The Notes panel view (`NotesPanelView`) is registered in the right-panel registry alongside Overview, Recent Executions, and Notifications.
|
|
285
|
+
- The shared Notes panel view (`NotesPanelView`) is exported from `@elevasis/ui/features/notes` and registered in the right-panel registry alongside Overview, Recent Executions, and Notifications.
|
|
285
286
|
|
|
286
287
|
**Implementation:** `packages/sdk/src/cli/commands/notes.ts` -- delegates to `POST /api/external/user-notes` and `GET /api/external/user-notes`
|
|
287
288
|
|
|
@@ -289,7 +290,8 @@ elevasis-sdk note:list --user ops@acme.com --priority high --pinned --pretty
|
|
|
289
290
|
|
|
290
291
|
The following invariants govern the Notes feature and are relevant when building agents or workflows that write notes:
|
|
291
292
|
|
|
292
|
-
- **Scope:** Notes are user-scoped and organization-scoped by default. A user can
|
|
293
|
+
- **Scope:** Notes are user-scoped and organization-scoped by default. A signed-in user can mark a note as org-shared; agent-created notes stay private to the target user.
|
|
294
|
+
- **Org-shared visibility:** `visibility: 'org'` lets active org members see and edit the note. Only the creator can change the visibility value.
|
|
293
295
|
- **Sort order:** Pinned first, then by priority (`urgent` > `high` > `normal` > `low`), then by most recently updated.
|
|
294
296
|
- **Broadcast:** Out of scope. Agents create notes for one resolved user at a time. Broadcast is a notifications concern, not a notes concern.
|
|
295
297
|
- **Retention:** Notes persist until the user explicitly deletes them. There is no TTL and no dismissed state.
|
|
@@ -426,7 +428,7 @@ elevasis-sdk session:end <id>
|
|
|
426
428
|
|
|
427
429
|
## elevasis-sdk queue:\*
|
|
428
430
|
|
|
429
|
-
Manage HITL command queue tasks. See the [Command Queue CLI Guide](/technical/development/agent-driven-development/
|
|
431
|
+
Manage HITL command queue tasks. See the [Command Queue CLI Guide](/technical/development/agent-driven-development/cli-operations) for the full command reference.
|
|
430
432
|
|
|
431
433
|
**Quick reference:**
|
|
432
434
|
|
|
@@ -444,7 +446,7 @@ elevasis-sdk queue:status --pretty
|
|
|
444
446
|
|
|
445
447
|
## elevasis-sdk schedule:\*
|
|
446
448
|
|
|
447
|
-
Manage recurring, relative, and absolute task schedules. See the [Schedule CLI Guide](/technical/development/agent-driven-development/
|
|
449
|
+
Manage recurring, relative, and absolute task schedules. See the [Schedule CLI Guide](/technical/development/agent-driven-development/cli-operations) for the full command reference including schedule config JSON shapes.
|
|
448
450
|
|
|
449
451
|
**Quick reference:**
|
|
450
452
|
|
|
@@ -466,7 +468,7 @@ elevasis-sdk schedule:cancel <id> --pretty
|
|
|
466
468
|
|
|
467
469
|
Knowledge map inspection. The `om:*` (Organization Model) commands expose knowledge graph traversal via the CLI.
|
|
468
470
|
|
|
469
|
-
For the full command reference, flag details, and graph architecture, see the [knowledge:\* CLI documentation](/technical/features/knowledge/
|
|
471
|
+
For the full command reference, flag details, and graph architecture, see the [knowledge:\* CLI documentation](/technical/features/knowledge/cli-and-skill).
|
|
470
472
|
|
|
471
473
|
**Quick reference:**
|
|
472
474
|
|