@elevasis/sdk 1.20.2 → 1.22.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/cli.cjs +4220 -1583
- package/dist/index.d.ts +1035 -481
- package/dist/index.js +7381 -4187
- package/dist/node/index.d.ts +1 -3
- package/dist/node/index.js +40 -49
- package/dist/test-utils/index.d.ts +699 -123
- package/dist/test-utils/index.js +3826 -630
- package/dist/worker/index.js +3616 -442
- package/package.json +3 -3
- package/reference/_navigation.md +9 -7
- package/reference/_reference-manifest.json +1 -1
- package/reference/claude-config/hooks/post-edit-validate.mjs +98 -98
- package/reference/claude-config/hooks/scaffold-registry-reminder.mjs +188 -188
- package/reference/claude-config/hooks/tool-failure-recovery.mjs +73 -73
- package/reference/claude-config/registries/graph-skills.json +4 -4
- package/reference/claude-config/registries/knowledge-flags.json +0 -2
- package/reference/claude-config/rules/active-change-index.md +80 -80
- package/reference/claude-config/rules/agent-start-here.md +277 -273
- package/reference/claude-config/rules/deployment.md +57 -57
- package/reference/claude-config/rules/error-handling.md +56 -56
- package/reference/claude-config/rules/execution.md +40 -40
- package/reference/claude-config/rules/frontend.md +4 -4
- package/reference/claude-config/rules/observability.md +31 -31
- package/reference/claude-config/rules/operations.md +29 -17
- package/reference/claude-config/rules/organization-model.md +108 -40
- package/reference/claude-config/rules/organization-os.md +115 -113
- package/reference/claude-config/rules/package-taxonomy.md +33 -33
- package/reference/claude-config/rules/platform.md +42 -42
- package/reference/claude-config/rules/shared-types.md +49 -46
- package/reference/claude-config/rules/task-tracking.md +47 -47
- package/reference/claude-config/rules/ui.md +200 -200
- package/reference/claude-config/rules/vibe.md +235 -231
- package/reference/claude-config/scripts/statusline-command.js +18 -18
- package/reference/claude-config/settings.json +34 -34
- package/reference/claude-config/skills/deploy/{SKILL.md → skill.md} +156 -156
- package/reference/claude-config/skills/dsp/SKILL.md +66 -66
- package/reference/claude-config/skills/elevasis/SKILL.md +235 -235
- package/reference/claude-config/skills/explore/SKILL.md +6 -6
- package/reference/claude-config/skills/git-sync/SKILL.md +126 -126
- package/reference/claude-config/skills/knowledge/SKILL.md +330 -271
- package/reference/claude-config/skills/knowledge/operations/codify-level-a.md +100 -100
- package/reference/claude-config/skills/knowledge/operations/codify-level-b.md +159 -158
- package/reference/claude-config/skills/knowledge/operations/customers.md +109 -109
- package/reference/claude-config/skills/knowledge/operations/features.md +76 -113
- package/reference/claude-config/skills/knowledge/operations/goals.md +118 -118
- package/reference/claude-config/skills/knowledge/operations/identity.md +93 -93
- package/reference/claude-config/skills/knowledge/operations/labels.md +94 -89
- package/reference/claude-config/skills/knowledge/operations/offerings.md +109 -109
- package/reference/claude-config/skills/knowledge/operations/roles.md +99 -99
- package/reference/claude-config/skills/knowledge/operations/techStack.md +30 -30
- package/reference/claude-config/skills/project/SKILL.md +1088 -1088
- package/reference/claude-config/skills/run-ui/SKILL.md +73 -73
- package/reference/claude-config/skills/save/SKILL.md +3 -3
- package/reference/claude-config/skills/setup/SKILL.md +275 -275
- package/reference/claude-config/skills/status/SKILL.md +59 -59
- package/reference/claude-config/skills/submit-request/SKILL.md +180 -180
- package/reference/claude-config/skills/sync/SKILL.md +47 -47
- package/reference/claude-config/skills/tutorial/SKILL.md +259 -259
- package/reference/claude-config/skills/tutorial/progress-template.md +74 -74
- package/reference/claude-config/skills/tutorial/technical.md +1303 -1306
- package/reference/claude-config/skills/tutorial/vibe-coder.md +890 -890
- package/reference/claude-config/sync-notes/2026-04-22-git-sync-and-sync-notes.md +27 -27
- package/reference/claude-config/sync-notes/2026-04-22-lead-gen-deliverability-removal.md +30 -30
- package/reference/claude-config/sync-notes/2026-04-24-test-utils-and-template-tests.md +73 -73
- package/reference/claude-config/sync-notes/2026-04-24-ui-consolidation-and-sdk-cli-train.md +86 -86
- package/reference/claude-config/sync-notes/2026-04-25-auth-role-system-and-settings-roles.md +55 -55
- package/reference/claude-config/sync-notes/2026-04-27-crm-hitl-action-layer-cutover.md +97 -97
- package/reference/claude-config/sync-notes/2026-04-27-lead-gen-substrate-train.md +112 -112
- package/reference/claude-config/sync-notes/2026-04-29-crm-state-and-lead-gen-processing-status.md +93 -93
- package/reference/claude-config/sync-notes/2026-05-02-crm-ownership-next-action.md +58 -58
- package/reference/claude-config/sync-notes/2026-05-02-template-hardcode-workos-config.md +56 -56
- package/reference/claude-config/sync-notes/2026-05-04-elevasis-workspace.md +71 -71
- package/reference/claude-config/sync-notes/2026-05-04-knowledge-bundle.md +83 -83
- package/reference/claude-config/sync-notes/2026-05-04-template-skills-run-ui-and-tutorial.md +59 -59
- package/reference/claude-config/sync-notes/2026-05-05-list-builder.md +42 -42
- package/reference/claude-config/sync-notes/2026-05-06-crm-spine.md +60 -60
- package/reference/claude-config/sync-notes/2026-05-06-sdk-changes-release-train.md +37 -37
- package/reference/claude-config/sync-notes/2026-05-07-sdk-changes-release-train.md +34 -34
- package/reference/claude-config/sync-notes/2026-05-08-resource-governance-scaffold-guidance.md +38 -38
- package/reference/claude-config/sync-notes/2026-05-09-clients-domain.md +32 -32
- package/reference/claude-config/sync-notes/2026-05-09-command-system.md +33 -33
- package/reference/claude-config/sync-notes/2026-05-09-resource-governance-and-misc.md +69 -69
- package/reference/claude-config/sync-notes/2026-05-12-sdk-ready-release-train.md +30 -0
- package/reference/claude-config/sync-notes/2026-05-14-organization-model-ontology-refactor.md +42 -0
- package/reference/claude-config/sync-notes/README.md +43 -43
- package/reference/cli.mdx +808 -668
- package/reference/concepts.mdx +146 -146
- package/reference/deployment/api.mdx +297 -297
- package/reference/deployment/command-center.mdx +209 -209
- package/reference/deployment/index.mdx +195 -195
- package/reference/deployment/provided-features.mdx +107 -93
- package/reference/deployment/ui-execution.mdx +250 -250
- package/reference/examples/organization-model.ts +147 -84
- package/reference/framework/agent.mdx +156 -156
- package/reference/framework/index.mdx +195 -195
- package/reference/framework/interaction-guidance.mdx +182 -182
- package/reference/framework/memory.mdx +326 -326
- package/reference/framework/project-structure.mdx +282 -282
- package/reference/framework/tutorial-system.mdx +135 -135
- package/reference/getting-started.mdx +142 -142
- package/reference/index.mdx +106 -106
- package/reference/packages/core/src/README.md +14 -14
- package/reference/packages/core/src/business/README.md +2 -2
- package/reference/packages/core/src/knowledge/README.md +33 -32
- package/reference/packages/core/src/organization-model/README.md +149 -109
- package/reference/packages/core/src/test-utils/README.md +37 -37
- package/reference/packages/ui/src/api/README.md +18 -18
- package/reference/packages/ui/src/app/README.md +24 -24
- package/reference/packages/ui/src/auth/README.md +18 -18
- package/reference/packages/ui/src/components/README.md +24 -24
- package/reference/packages/ui/src/execution/README.md +16 -16
- package/reference/packages/ui/src/features/README.md +28 -28
- package/reference/packages/ui/src/graph/README.md +16 -16
- package/reference/packages/ui/src/hooks/README.md +23 -23
- package/reference/packages/ui/src/initialization/README.md +19 -19
- package/reference/packages/ui/src/knowledge/README.md +31 -31
- package/reference/packages/ui/src/organization/README.md +18 -18
- package/reference/packages/ui/src/profile/README.md +19 -19
- package/reference/packages/ui/src/provider/README.md +32 -32
- package/reference/packages/ui/src/router/README.md +18 -18
- package/reference/packages/ui/src/sse/README.md +13 -13
- package/reference/packages/ui/src/test-utils/README.md +7 -7
- package/reference/packages/ui/src/theme/README.md +23 -23
- package/reference/packages/ui/src/theme/presets/README.md +19 -19
- package/reference/packages/ui/src/types/README.md +16 -16
- package/reference/packages/ui/src/utils/README.md +18 -18
- package/reference/packages/ui/src/zustand/README.md +18 -18
- package/reference/platform-tools/adapters-integration.mdx +301 -301
- package/reference/platform-tools/adapters-platform.mdx +553 -553
- package/reference/platform-tools/index.mdx +217 -217
- package/reference/platform-tools/type-safety.mdx +82 -82
- package/reference/resources/index.mdx +349 -349
- package/reference/resources/patterns.mdx +449 -449
- package/reference/resources/types.mdx +116 -116
- package/reference/roadmap.mdx +165 -165
- package/reference/runtime.mdx +173 -173
- package/reference/scaffold/core/organization-graph.mdx +110 -89
- package/reference/scaffold/core/organization-model.mdx +226 -171
- package/reference/scaffold/index.mdx +67 -67
- package/reference/scaffold/operations/propagation-pipeline.md +77 -77
- package/reference/scaffold/operations/scaffold-maintenance.md +10 -10
- package/reference/scaffold/operations/workflow-recipes.md +138 -138
- package/reference/scaffold/recipes/add-a-feature.md +310 -88
- package/reference/scaffold/recipes/add-a-resource.md +137 -117
- package/reference/scaffold/recipes/customize-crm-actions.md +439 -439
- package/reference/scaffold/recipes/customize-knowledge-browser.md +384 -0
- package/reference/scaffold/recipes/customize-organization-model.md +281 -118
- package/reference/scaffold/recipes/extend-a-base-entity.md +8 -8
- package/reference/scaffold/recipes/extend-crm.md +40 -39
- package/reference/scaffold/recipes/extend-lead-gen.md +400 -401
- package/reference/scaffold/recipes/gate-by-feature-or-admin.md +118 -114
- package/reference/scaffold/recipes/index.md +47 -46
- package/reference/scaffold/recipes/query-the-knowledge-graph.md +227 -0
- package/reference/scaffold/reference/contracts.md +2389 -2121
- package/reference/scaffold/reference/feature-registry.md +9 -20
- package/reference/scaffold/reference/glossary.md +76 -76
- package/reference/scaffold/ui/composition-extensibility.mdx +233 -233
- package/reference/scaffold/ui/customization.md +243 -243
- package/reference/scaffold/ui/feature-flags-and-gating.md +46 -46
- package/reference/scaffold/ui/feature-shell.mdx +72 -72
- package/reference/scaffold/ui/recipes.md +221 -213
- package/reference/spine/spine-primer.md +96 -96
- package/reference/templates/index.mdx +47 -47
- package/reference/troubleshooting.mdx +223 -223
package/dist/node/index.d.ts
CHANGED
|
@@ -5,19 +5,17 @@ interface KnowledgeCodegenNode {
|
|
|
5
5
|
title: string;
|
|
6
6
|
summary: string;
|
|
7
7
|
icon?: string;
|
|
8
|
+
sourceFilePath?: string;
|
|
8
9
|
body: string;
|
|
9
10
|
links: {
|
|
10
11
|
nodeId: string;
|
|
11
12
|
}[];
|
|
12
|
-
skills: string[];
|
|
13
|
-
domain?: string;
|
|
14
13
|
ownerIds: string[];
|
|
15
14
|
updatedAt: string;
|
|
16
15
|
}
|
|
17
16
|
interface GenerateKnowledgeNodesOptions {
|
|
18
17
|
sourceDir: string;
|
|
19
18
|
outputPath: string;
|
|
20
|
-
graphSkillsOutputPath?: string;
|
|
21
19
|
knowledgeFlagsOutputPath?: string;
|
|
22
20
|
knowledgeFlagsCliCommand?: string;
|
|
23
21
|
typeImportPath?: string;
|
package/dist/node/index.js
CHANGED
|
@@ -4,6 +4,22 @@ import { compile } from '@mdx-js/mdx';
|
|
|
4
4
|
import remarkGfm from 'remark-gfm';
|
|
5
5
|
|
|
6
6
|
// src/knowledge-codegen.ts
|
|
7
|
+
function targetFromNodeId(nodeId) {
|
|
8
|
+
const [kind, ...idParts] = nodeId.split(":");
|
|
9
|
+
return {
|
|
10
|
+
kind,
|
|
11
|
+
id: idParts.join(":")
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
function canonicalizeKnowledgeNodeLinks(node) {
|
|
15
|
+
return {
|
|
16
|
+
...node,
|
|
17
|
+
links: node.links.map((link) => ({
|
|
18
|
+
target: targetFromNodeId(link.nodeId),
|
|
19
|
+
nodeId: link.nodeId
|
|
20
|
+
}))
|
|
21
|
+
};
|
|
22
|
+
}
|
|
7
23
|
function listMdxFiles(directory) {
|
|
8
24
|
return readdirSync(directory, { withFileTypes: true }).flatMap((entry) => {
|
|
9
25
|
const path = join(directory, entry.name);
|
|
@@ -128,6 +144,18 @@ var ROUTING_STOPWORDS = /* @__PURE__ */ new Set([
|
|
|
128
144
|
function toRegistryPath(path) {
|
|
129
145
|
return path.replace(/\\/g, "/");
|
|
130
146
|
}
|
|
147
|
+
function sourceBaseFromLabel(sourceLabel) {
|
|
148
|
+
if (!sourceLabel) return void 0;
|
|
149
|
+
const normalized = toRegistryPath(sourceLabel).replace(/\/+$/, "");
|
|
150
|
+
const globIndex = normalized.indexOf("*");
|
|
151
|
+
if (globIndex === -1) return normalized;
|
|
152
|
+
return normalized.slice(0, globIndex).replace(/\/+$/, "");
|
|
153
|
+
}
|
|
154
|
+
function toSourceFilePath(sourceLabel, relativePath) {
|
|
155
|
+
const normalizedRelativePath = toRegistryPath(relativePath);
|
|
156
|
+
const sourceBase = sourceBaseFromLabel(sourceLabel);
|
|
157
|
+
return sourceBase ? `${sourceBase}/${normalizedRelativePath}` : normalizedRelativePath;
|
|
158
|
+
}
|
|
131
159
|
function slugify(value) {
|
|
132
160
|
return value.trim().toLowerCase().replace(/['"]/g, "").replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
|
|
133
161
|
}
|
|
@@ -161,24 +189,20 @@ function nodeRoutingTerms(node, sourcePath, limit) {
|
|
|
161
189
|
node.title,
|
|
162
190
|
node.summary,
|
|
163
191
|
node.body,
|
|
164
|
-
node.domain ?? "",
|
|
165
192
|
sourcePath,
|
|
166
|
-
...node.links.map((link) => link.nodeId)
|
|
167
|
-
...node.skills
|
|
193
|
+
...node.links.map((link) => link.nodeId)
|
|
168
194
|
),
|
|
169
195
|
limit
|
|
170
196
|
);
|
|
171
197
|
}
|
|
172
198
|
function nodeTags(node, sourcePath) {
|
|
173
199
|
return uniqueSorted([
|
|
174
|
-
...node.domain ? [node.domain] : [],
|
|
175
200
|
node.kind,
|
|
176
201
|
...tokenizeRoutingText(
|
|
177
202
|
node.title,
|
|
178
203
|
node.summary,
|
|
179
204
|
sourcePath,
|
|
180
|
-
...node.links.map((link) => link.nodeId)
|
|
181
|
-
...node.skills
|
|
205
|
+
...node.links.map((link) => link.nodeId)
|
|
182
206
|
).map(slugify).filter((term) => term && !ROUTING_STOPWORDS.has(term) && (term.length >= 3 || term === "ai")).slice(0, 20)
|
|
183
207
|
]);
|
|
184
208
|
}
|
|
@@ -205,58 +229,30 @@ function readKnowledgeNodeMdx(filePath) {
|
|
|
205
229
|
icon: optionalString(frontmatter, "icon", filePath),
|
|
206
230
|
body,
|
|
207
231
|
links: optionalStringArray(frontmatter, "links", filePath).map((nodeId) => ({ nodeId })),
|
|
208
|
-
skills: optionalStringArray(frontmatter, "skills", filePath),
|
|
209
|
-
domain: optionalString(frontmatter, "domain", filePath),
|
|
210
232
|
ownerIds: optionalStringArray(frontmatter, "ownerIds", filePath),
|
|
211
233
|
updatedAt: assertString(frontmatter, "updatedAt", filePath)
|
|
212
234
|
};
|
|
213
235
|
}
|
|
214
|
-
function generateGraphSkillsRegistry(nodes) {
|
|
215
|
-
const domains = {};
|
|
216
|
-
for (const node of nodes) {
|
|
217
|
-
if (!node.domain) continue;
|
|
218
|
-
const domain = domains[node.domain] ?? { skills: [], nodes: [] };
|
|
219
|
-
const skills = [...new Set(node.skills)].sort((a, b) => a.localeCompare(b));
|
|
220
|
-
domain.nodes.push({
|
|
221
|
-
id: node.id,
|
|
222
|
-
title: node.title,
|
|
223
|
-
kind: node.kind,
|
|
224
|
-
skills
|
|
225
|
-
});
|
|
226
|
-
domain.skills = [.../* @__PURE__ */ new Set([...domain.skills, ...skills])].sort((a, b) => a.localeCompare(b));
|
|
227
|
-
domains[node.domain] = domain;
|
|
228
|
-
}
|
|
229
|
-
for (const domain of Object.values(domains)) {
|
|
230
|
-
domain.nodes.sort((a, b) => a.id.localeCompare(b.id));
|
|
231
|
-
}
|
|
232
|
-
return {
|
|
233
|
-
generatedBy: "generate-knowledge-nodes",
|
|
234
|
-
domains: Object.fromEntries(Object.entries(domains).sort(([a], [b]) => a.localeCompare(b)))
|
|
235
|
-
};
|
|
236
|
-
}
|
|
237
236
|
function generateKnowledgeFlagRegistry(nodes, sourcePaths = {}, options = {}) {
|
|
238
237
|
const routes = /* @__PURE__ */ new Map();
|
|
239
238
|
for (const node of nodes) {
|
|
240
|
-
const routeKey =
|
|
239
|
+
const routeKey = `kind-${node.kind}`;
|
|
241
240
|
const flag = `--${slugify(routeKey)}`;
|
|
242
241
|
const sourcePath = toRegistryPath(sourcePaths[node.id] ?? "");
|
|
243
242
|
const routingTerms = nodeRoutingTerms(node, sourcePath, 24);
|
|
244
243
|
const tags = nodeTags(node, sourcePath);
|
|
245
|
-
const skills = uniqueSorted(node.skills);
|
|
246
244
|
const cliBindings = readCommandForNode(node, options.cliCommand);
|
|
247
245
|
const route = routes.get(flag) ?? {
|
|
248
246
|
flag,
|
|
249
247
|
label: toTitle(routeKey),
|
|
250
|
-
|
|
248
|
+
kind: node.kind,
|
|
251
249
|
tags: [],
|
|
252
250
|
queryTerms: [],
|
|
253
|
-
skills: [],
|
|
254
251
|
cliBindings: [],
|
|
255
252
|
nodes: []
|
|
256
253
|
};
|
|
257
254
|
route.tags = uniqueSorted([...route.tags, ...tags]);
|
|
258
255
|
route.queryTerms = rankedTerms([...route.queryTerms, ...routingTerms], 40);
|
|
259
|
-
route.skills = uniqueSorted([...route.skills, ...skills]);
|
|
260
256
|
route.cliBindings = [...route.cliBindings, ...cliBindings].filter(
|
|
261
257
|
(binding, index, bindings) => bindings.findIndex((candidate) => candidate.command === binding.command) === index
|
|
262
258
|
);
|
|
@@ -264,12 +260,10 @@ function generateKnowledgeFlagRegistry(nodes, sourcePaths = {}, options = {}) {
|
|
|
264
260
|
id: node.id,
|
|
265
261
|
title: node.title,
|
|
266
262
|
kind: node.kind,
|
|
267
|
-
...node.domain ? { domain: node.domain } : {},
|
|
268
263
|
sourcePath,
|
|
269
264
|
tags,
|
|
270
265
|
routingTerms,
|
|
271
266
|
links: node.links.map((link) => link.nodeId),
|
|
272
|
-
skills,
|
|
273
267
|
cliBindings
|
|
274
268
|
});
|
|
275
269
|
routes.set(flag, route);
|
|
@@ -317,7 +311,7 @@ function generateKnowledgeNodesTs(options) {
|
|
|
317
311
|
`// Source: ${options.sourceLabel ?? "knowledge/nodes/**/*.mdx"}`,
|
|
318
312
|
"",
|
|
319
313
|
...typeImport,
|
|
320
|
-
`export const ${exportedName} = ${JSON.stringify(options.nodes, null, 2)}${typeSatisfies}`,
|
|
314
|
+
`export const ${exportedName} = ${JSON.stringify(options.nodes.map(canonicalizeKnowledgeNodeLinks), null, 2)}${typeSatisfies}`,
|
|
321
315
|
""
|
|
322
316
|
].join("\n");
|
|
323
317
|
}
|
|
@@ -325,7 +319,13 @@ function generateKnowledgeNodes(options) {
|
|
|
325
319
|
const files = listMdxFiles(options.sourceDir).sort(
|
|
326
320
|
(a, b) => relative(options.sourceDir, a).localeCompare(relative(options.sourceDir, b))
|
|
327
321
|
);
|
|
328
|
-
const nodes = files.map(
|
|
322
|
+
const nodes = files.map((file) => {
|
|
323
|
+
const relativePath = relative(options.sourceDir, file);
|
|
324
|
+
return {
|
|
325
|
+
...readKnowledgeNodeMdx(file),
|
|
326
|
+
sourceFilePath: toSourceFilePath(options.sourceLabel, relativePath)
|
|
327
|
+
};
|
|
328
|
+
});
|
|
329
329
|
const sourcePaths = Object.fromEntries(
|
|
330
330
|
files.map((file, index) => [nodes[index].id, toRegistryPath(relative(options.sourceDir, file))])
|
|
331
331
|
);
|
|
@@ -345,15 +345,6 @@ function generateKnowledgeNodes(options) {
|
|
|
345
345
|
}),
|
|
346
346
|
"utf8"
|
|
347
347
|
);
|
|
348
|
-
if (options.graphSkillsOutputPath) {
|
|
349
|
-
mkdirSync(dirname(options.graphSkillsOutputPath), { recursive: true });
|
|
350
|
-
writeFileSync(
|
|
351
|
-
options.graphSkillsOutputPath,
|
|
352
|
-
`${JSON.stringify(generateGraphSkillsRegistry(nodes), null, 2)}
|
|
353
|
-
`,
|
|
354
|
-
"utf8"
|
|
355
|
-
);
|
|
356
|
-
}
|
|
357
348
|
if (options.knowledgeFlagsOutputPath) {
|
|
358
349
|
mkdirSync(dirname(options.knowledgeFlagsOutputPath), { recursive: true });
|
|
359
350
|
writeFileSync(
|