@elevasis/sdk 0.5.10 → 0.5.12
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 +249 -280
- package/dist/index.d.ts +3 -4
- package/dist/index.js +5 -29
- package/dist/templates.js +191 -187
- package/dist/worker/index.js +79 -22
- package/package.json +1 -3
- package/reference/_navigation.md +3 -3
- package/reference/cli/index.mdx +51 -45
- package/reference/concepts/index.mdx +2 -2
- package/reference/deployment/api.mdx +8 -8
- package/reference/deployment/command-center-ui.mdx +4 -4
- package/reference/deployment/command-view.mdx +3 -3
- package/reference/deployment/index.mdx +7 -7
- package/reference/framework/agent.mdx +4 -4
- package/reference/framework/documentation.mdx +7 -7
- package/reference/framework/index.mdx +2 -2
- package/reference/framework/memory.mdx +1 -1
- package/reference/framework/project-structure.mdx +20 -30
- package/reference/getting-started/index.mdx +20 -32
- package/reference/index.mdx +6 -5
- package/reference/platform-tools/index.mdx +4 -4
- package/reference/resources/index.mdx +3 -3
- package/reference/resources/patterns.mdx +3 -3
- package/reference/resources/types.mdx +2 -2
- package/reference/roadmap/index.mdx +1 -1
- package/reference/runtime/index.mdx +3 -3
- package/reference/security/credentials.mdx +3 -3
- package/reference/troubleshooting/common-errors.mdx +3 -3
package/dist/cli.cjs
CHANGED
|
@@ -40164,18 +40164,6 @@ var DOMAIN_MAP = {
|
|
|
40164
40164
|
[DOMAINS.DIAGNOSTIC]: DIAGNOSTIC_DOMAIN
|
|
40165
40165
|
};
|
|
40166
40166
|
|
|
40167
|
-
// ../core/src/execution/core/server/environment.ts
|
|
40168
|
-
function detectEnvironment() {
|
|
40169
|
-
const env2 = process.env.NODE_ENV || "development";
|
|
40170
|
-
if (env2 === "production") return "production";
|
|
40171
|
-
if (env2 === "staging") return "staging";
|
|
40172
|
-
return "development";
|
|
40173
|
-
}
|
|
40174
|
-
function canExecuteResource(resource, environment) {
|
|
40175
|
-
const env2 = environment || detectEnvironment();
|
|
40176
|
-
return env2 === "production" ? resource.status === "prod" : true;
|
|
40177
|
-
}
|
|
40178
|
-
|
|
40179
40167
|
// ../core/src/execution/engine/base/errors.ts
|
|
40180
40168
|
var ExecutionError = class extends Error {
|
|
40181
40169
|
/**
|
|
@@ -43293,9 +43281,8 @@ var ResourceRegistry = class {
|
|
|
43293
43281
|
* List all resources for an organization
|
|
43294
43282
|
* Returns ResourceDefinition metadata (not full definitions)
|
|
43295
43283
|
*
|
|
43296
|
-
*
|
|
43297
|
-
*
|
|
43298
|
-
* - Production: Returns only prod resources (filters out dev)
|
|
43284
|
+
* All resources are returned regardless of server environment.
|
|
43285
|
+
* Pass an explicit `environment` filter to get only 'dev' or 'prod' resources.
|
|
43299
43286
|
*/
|
|
43300
43287
|
listResourcesForOrganization(organizationName, environment) {
|
|
43301
43288
|
const orgResources = this.registry[organizationName];
|
|
@@ -43308,7 +43295,6 @@ var ResourceRegistry = class {
|
|
|
43308
43295
|
environment
|
|
43309
43296
|
};
|
|
43310
43297
|
}
|
|
43311
|
-
const currentEnv = detectEnvironment();
|
|
43312
43298
|
const workflows = (orgResources.workflows || []).map((def) => ({
|
|
43313
43299
|
resourceId: def.config.resourceId,
|
|
43314
43300
|
name: def.config.name,
|
|
@@ -43317,12 +43303,7 @@ var ResourceRegistry = class {
|
|
|
43317
43303
|
type: def.config.type,
|
|
43318
43304
|
status: def.config.status,
|
|
43319
43305
|
origin: this.remoteResources.has(`${organizationName}/${def.config.resourceId}`) ? "remote" : "local"
|
|
43320
|
-
})).filter((resource) =>
|
|
43321
|
-
if (environment) {
|
|
43322
|
-
return resource.status === environment;
|
|
43323
|
-
}
|
|
43324
|
-
return canExecuteResource(resource, currentEnv);
|
|
43325
|
-
});
|
|
43306
|
+
})).filter((resource) => !environment || resource.status === environment);
|
|
43326
43307
|
const agents = (orgResources.agents || []).map((def) => ({
|
|
43327
43308
|
resourceId: def.config.resourceId,
|
|
43328
43309
|
name: def.config.name,
|
|
@@ -43332,18 +43313,13 @@ var ResourceRegistry = class {
|
|
|
43332
43313
|
status: def.config.status,
|
|
43333
43314
|
sessionCapable: def.config.sessionCapable ?? false,
|
|
43334
43315
|
origin: this.remoteResources.has(`${organizationName}/${def.config.resourceId}`) ? "remote" : "local"
|
|
43335
|
-
})).filter((resource) =>
|
|
43336
|
-
if (environment) {
|
|
43337
|
-
return resource.status === environment;
|
|
43338
|
-
}
|
|
43339
|
-
return canExecuteResource(resource, currentEnv);
|
|
43340
|
-
});
|
|
43316
|
+
})).filter((resource) => !environment || resource.status === environment);
|
|
43341
43317
|
return {
|
|
43342
43318
|
workflows,
|
|
43343
43319
|
agents,
|
|
43344
43320
|
total: workflows.length + agents.length,
|
|
43345
43321
|
organizationName,
|
|
43346
|
-
environment
|
|
43322
|
+
environment
|
|
43347
43323
|
};
|
|
43348
43324
|
}
|
|
43349
43325
|
/**
|
|
@@ -43694,7 +43670,7 @@ function wrapAction(commandName, fn) {
|
|
|
43694
43670
|
} catch (error46) {
|
|
43695
43671
|
const errorMessage = error46 instanceof Error ? error46.message : String(error46);
|
|
43696
43672
|
console.error(source_default.red("\nError:"), errorMessage);
|
|
43697
|
-
console.error(source_default.gray(`Run "elevasis ${commandName} --help" for more information`));
|
|
43673
|
+
console.error(source_default.gray(`Run "elevasis-sdk ${commandName} --help" for more information`));
|
|
43698
43674
|
process.exit(1);
|
|
43699
43675
|
}
|
|
43700
43676
|
};
|
|
@@ -43811,12 +43787,10 @@ async function apiDelete(endpoint, apiUrl = resolveApiUrl()) {
|
|
|
43811
43787
|
// package.json
|
|
43812
43788
|
var package_default = {
|
|
43813
43789
|
name: "@elevasis/sdk",
|
|
43814
|
-
version: "0.5.
|
|
43790
|
+
version: "0.5.12",
|
|
43815
43791
|
description: "SDK for building Elevasis organization resources",
|
|
43816
|
-
"comment:bin": "IMPORTANT: This package shares the 'elevasis' binary name with @repo/cli. They never conflict because @elevasis/sdk must NEVER be added as a dependency of any workspace package (apps/*, packages/*, organizations/*). Workspace projects use @repo/cli for the 'elevasis' binary. External developers (outside the workspace) get this SDK's binary via npm install.",
|
|
43817
43792
|
type: "module",
|
|
43818
43793
|
bin: {
|
|
43819
|
-
elevasis: "./dist/cli.cjs",
|
|
43820
43794
|
"elevasis-sdk": "./dist/cli.cjs"
|
|
43821
43795
|
},
|
|
43822
43796
|
exports: {
|
|
@@ -43942,7 +43916,7 @@ async function generateResourceMap(org) {
|
|
|
43942
43916
|
"",
|
|
43943
43917
|
"# Resource Map",
|
|
43944
43918
|
"",
|
|
43945
|
-
"> Auto-generated by `elevasis deploy`. Do not edit manually.",
|
|
43919
|
+
"> Auto-generated by `elevasis-sdk deploy`. Do not edit manually.",
|
|
43946
43920
|
""
|
|
43947
43921
|
];
|
|
43948
43922
|
if (workflows.length > 0) {
|
|
@@ -43998,7 +43972,7 @@ async function generateProjectMap(org) {
|
|
|
43998
43972
|
"",
|
|
43999
43973
|
"# Project Map",
|
|
44000
43974
|
"",
|
|
44001
|
-
"> Auto-generated by `elevasis deploy` and `/meta fix`. Do not edit manually.",
|
|
43975
|
+
"> Auto-generated by `elevasis-sdk deploy` and `/meta fix`. Do not edit manually.",
|
|
44002
43976
|
"",
|
|
44003
43977
|
"## Project Overview",
|
|
44004
43978
|
"",
|
|
@@ -44330,7 +44304,7 @@ async function generateProjectMap(org) {
|
|
|
44330
44304
|
await (0, import_promises.writeFile)((0, import_path.resolve)("docs/project-map.mdx"), lines.join("\n"), "utf-8");
|
|
44331
44305
|
}
|
|
44332
44306
|
function registerDeployCommand(program3) {
|
|
44333
|
-
program3.command("deploy").description("Validate, bundle, upload, and deploy project resources\n Example: elevasis deploy --api-url http://localhost:5170").option("--api-url <url>", "API URL").option("--entry <path>", "Path to entry file (default: ./src/index.ts)").option("--prod", "Deploy to production (overrides NODE_ENV=development)").action(wrapAction("deploy", async (options2) => {
|
|
44307
|
+
program3.command("deploy").description("Validate, bundle, upload, and deploy project resources\n Example: elevasis-sdk deploy --api-url http://localhost:5170").option("--api-url <url>", "API URL").option("--entry <path>", "Path to entry file (default: ./src/index.ts)").option("--prod", "Deploy to production (overrides NODE_ENV=development)").action(wrapAction("deploy", async (options2) => {
|
|
44334
44308
|
const startTime = Date.now();
|
|
44335
44309
|
const apiUrl = resolveApiUrl(options2.apiUrl, options2.prod);
|
|
44336
44310
|
const env2 = resolveEnvironment(options2.prod);
|
|
@@ -44578,7 +44552,7 @@ startWorker(org)
|
|
|
44578
44552
|
// src/cli/commands/check.ts
|
|
44579
44553
|
var import_meta2 = {};
|
|
44580
44554
|
function registerCheckCommand(program3) {
|
|
44581
|
-
program3.command("check").description("Validate project resources against the ResourceRegistry\n Example: elevasis check --entry ./src/index.ts").option("--entry <path>", "Path to entry file (default: ./src/index.ts)").action(wrapAction("check", async (options2) => {
|
|
44555
|
+
program3.command("check").description("Validate project resources against the ResourceRegistry\n Example: elevasis-sdk check --entry ./src/index.ts").option("--entry <path>", "Path to entry file (default: ./src/index.ts)").action(wrapAction("check", async (options2) => {
|
|
44582
44556
|
const entryPath = options2.entry ?? "./src/index.ts";
|
|
44583
44557
|
const spinner = ora("Validating resources...").start();
|
|
44584
44558
|
try {
|
|
@@ -44732,7 +44706,7 @@ async function pollForCompletion(resourceId, executionId, apiUrl) {
|
|
|
44732
44706
|
}
|
|
44733
44707
|
function registerExecCommand(program3) {
|
|
44734
44708
|
program3.command("exec <resourceId>").description(`Execute a deployed resource
|
|
44735
|
-
Example: elevasis exec my-workflow -i '{"key":"value"}'`).option("-i, --input <json>", "Input data as JSON string").option("--async", "Execute asynchronously with polling").option("--api-url <url>", "API URL").action(wrapAction("exec", async (resourceId, options2) => {
|
|
44709
|
+
Example: elevasis-sdk exec my-workflow -i '{"key":"value"}'`).option("-i, --input <json>", "Input data as JSON string").option("--async", "Execute asynchronously with polling").option("--api-url <url>", "API URL").action(wrapAction("exec", async (resourceId, options2) => {
|
|
44736
44710
|
const input = options2.input ? JSON.parse(options2.input) : {};
|
|
44737
44711
|
const apiUrl = resolveApiUrl(options2.apiUrl);
|
|
44738
44712
|
if (options2.async) {
|
|
@@ -44814,7 +44788,7 @@ function registerResourcesCommand(program3) {
|
|
|
44814
44788
|
}
|
|
44815
44789
|
if (data.resources.length === 0) {
|
|
44816
44790
|
console.log(source_default.yellow("No deployed resources found."));
|
|
44817
|
-
console.log(source_default.gray("Deploy with: elevasis deploy"));
|
|
44791
|
+
console.log(source_default.gray("Deploy with: elevasis-sdk deploy"));
|
|
44818
44792
|
return;
|
|
44819
44793
|
}
|
|
44820
44794
|
const workflows = data.resources.filter((r) => r.resourceType === "workflow");
|
|
@@ -44845,7 +44819,7 @@ function registerResourcesCommand(program3) {
|
|
|
44845
44819
|
|
|
44846
44820
|
// src/cli/commands/executions.ts
|
|
44847
44821
|
function registerExecutionsCommand(program3) {
|
|
44848
|
-
program3.command("executions <resourceId>").description("List execution history for a resource\n Example: elevasis executions my-workflow --limit 10").option("--api-url <url>", "API URL").option("--json", "Output as JSON").option("--limit <number>", "Limit number of results (default: 50)").option("--status <status>", "Filter by status (running|completed|failed)").action(wrapAction("executions", async (resourceId, options2) => {
|
|
44822
|
+
program3.command("executions <resourceId>").description("List execution history for a resource\n Example: elevasis-sdk executions my-workflow --limit 10").option("--api-url <url>", "API URL").option("--json", "Output as JSON").option("--limit <number>", "Limit number of results (default: 50)").option("--status <status>", "Filter by status (running|completed|failed)").action(wrapAction("executions", async (resourceId, options2) => {
|
|
44849
44823
|
const apiUrl = resolveApiUrl(options2.apiUrl);
|
|
44850
44824
|
const spinner = ora(`Fetching executions for ${resourceId}...`).start();
|
|
44851
44825
|
const params = new URLSearchParams();
|
|
@@ -44895,7 +44869,7 @@ function registerExecutionsCommand(program3) {
|
|
|
44895
44869
|
console.log();
|
|
44896
44870
|
console.log(
|
|
44897
44871
|
source_default.dim("Use"),
|
|
44898
|
-
source_default.cyan(`elevasis execution ${resourceId} <execution-id>`),
|
|
44872
|
+
source_default.cyan(`elevasis-sdk execution ${resourceId} <execution-id>`),
|
|
44899
44873
|
source_default.dim("to view details")
|
|
44900
44874
|
);
|
|
44901
44875
|
}));
|
|
@@ -44903,7 +44877,7 @@ function registerExecutionsCommand(program3) {
|
|
|
44903
44877
|
|
|
44904
44878
|
// src/cli/commands/execution.ts
|
|
44905
44879
|
function registerExecutionCommand(program3) {
|
|
44906
|
-
program3.command("execution <resourceId> <executionId>").description("Get detailed information about a specific execution\n Example: elevasis execution my-workflow abc-123-uuid --logs-only").option("--api-url <url>", "API URL").option("--json", "Output raw JSON response").option("--logs-only", "Show only execution logs").option("--input", "Include input data in output").option("--result", "Include result data in output").action(wrapAction("execution", async (resourceId, executionId, options2) => {
|
|
44880
|
+
program3.command("execution <resourceId> <executionId>").description("Get detailed information about a specific execution\n Example: elevasis-sdk execution my-workflow abc-123-uuid --logs-only").option("--api-url <url>", "API URL").option("--json", "Output raw JSON response").option("--logs-only", "Show only execution logs").option("--input", "Include input data in output").option("--result", "Include result data in output").action(wrapAction("execution", async (resourceId, executionId, options2) => {
|
|
44907
44881
|
const apiUrl = resolveApiUrl(options2.apiUrl);
|
|
44908
44882
|
const spinner = ora("Fetching execution details...").start();
|
|
44909
44883
|
const execution = await apiGet(
|
|
@@ -45019,7 +44993,7 @@ function registerDeploymentsCommand(program3) {
|
|
|
45019
44993
|
}
|
|
45020
44994
|
if (data.deployments.length === 0) {
|
|
45021
44995
|
console.log(source_default.yellow("No deployments found."));
|
|
45022
|
-
console.log(source_default.gray("Deploy with: elevasis deploy"));
|
|
44996
|
+
console.log(source_default.gray("Deploy with: elevasis-sdk deploy"));
|
|
45023
44997
|
return;
|
|
45024
44998
|
}
|
|
45025
44999
|
for (const [index, dep] of data.deployments.entries()) {
|
|
@@ -45065,7 +45039,7 @@ function registerDeploymentsCommand(program3) {
|
|
|
45065
45039
|
|
|
45066
45040
|
// src/cli/commands/describe.ts
|
|
45067
45041
|
function registerDescribeCommand(program3) {
|
|
45068
|
-
program3.command("describe <resourceId>").description("Show resource definition (metadata + schemas)\n Example: elevasis describe my-workflow").option("--api-url <url>", "API URL").option("--json", "Output raw JSON response").action(wrapAction("describe", async (resourceId, options2) => {
|
|
45042
|
+
program3.command("describe <resourceId>").description("Show resource definition (metadata + schemas)\n Example: elevasis-sdk describe my-workflow").option("--api-url <url>", "API URL").option("--json", "Output raw JSON response").action(wrapAction("describe", async (resourceId, options2) => {
|
|
45069
45043
|
const apiUrl = resolveApiUrl(options2.apiUrl);
|
|
45070
45044
|
const spinner = ora("Fetching resource definition...").start();
|
|
45071
45045
|
const definition = await apiGet(
|
|
@@ -45105,13 +45079,13 @@ var import_path3 = require("path");
|
|
|
45105
45079
|
var import_promises2 = require("fs/promises");
|
|
45106
45080
|
|
|
45107
45081
|
// src/cli/commands/templates/core/workspace.ts
|
|
45108
|
-
var TEMPLATE_VERSION =
|
|
45082
|
+
var TEMPLATE_VERSION = 27;
|
|
45109
45083
|
function configTemplate() {
|
|
45110
45084
|
return `import type { ElevasConfig } from '@elevasis/sdk'
|
|
45111
45085
|
|
|
45112
45086
|
export default {
|
|
45113
45087
|
templateVersion: ${TEMPLATE_VERSION},
|
|
45114
|
-
// defaultStatus: 'dev', // Default status for new resources ('dev' | '
|
|
45088
|
+
// defaultStatus: 'dev', // Default status for new resources ('dev' | 'prod')
|
|
45115
45089
|
// dev: { port: 5170 }, // Local API port (internal development only)
|
|
45116
45090
|
} satisfies ElevasConfig
|
|
45117
45091
|
`;
|
|
@@ -45123,8 +45097,8 @@ function packageJsonTemplate(organization) {
|
|
|
45123
45097
|
type: "module",
|
|
45124
45098
|
scripts: {
|
|
45125
45099
|
"check-types": "tsc --noEmit",
|
|
45126
|
-
check: "elevasis check",
|
|
45127
|
-
deploy: "elevasis deploy"
|
|
45100
|
+
check: "elevasis-sdk check",
|
|
45101
|
+
deploy: "elevasis-sdk deploy"
|
|
45128
45102
|
},
|
|
45129
45103
|
dependencies: {
|
|
45130
45104
|
"@elevasis/sdk": `^${SDK_VERSION}`
|
|
@@ -45160,10 +45134,6 @@ function envTemplate() {
|
|
|
45160
45134
|
return `ELEVASIS_PLATFORM_KEY=
|
|
45161
45135
|
`;
|
|
45162
45136
|
}
|
|
45163
|
-
function envExampleTemplate() {
|
|
45164
|
-
return `ELEVASIS_PLATFORM_KEY=sk_your_key_here
|
|
45165
|
-
`;
|
|
45166
|
-
}
|
|
45167
45137
|
function npmrcTemplate() {
|
|
45168
45138
|
return `auto-install-peers = true
|
|
45169
45139
|
`;
|
|
@@ -45175,6 +45145,7 @@ dist/
|
|
|
45175
45145
|
__elevasis_worker.ts
|
|
45176
45146
|
.claude/settings.local.json
|
|
45177
45147
|
.claude/memory/
|
|
45148
|
+
package-lock.json
|
|
45178
45149
|
`;
|
|
45179
45150
|
if (ctx.hasUI) {
|
|
45180
45151
|
content += `ui/node_modules/
|
|
@@ -45200,7 +45171,7 @@ An [Elevasis](https://elevasis.io) workspace built with the \`@elevasis/sdk\`.
|
|
|
45200
45171
|
pnpm install
|
|
45201
45172
|
\`\`\`
|
|
45202
45173
|
|
|
45203
|
-
|
|
45174
|
+
Add your API key to \`.env\`:
|
|
45204
45175
|
|
|
45205
45176
|
\`\`\`
|
|
45206
45177
|
ELEVASIS_PLATFORM_KEY=sk_...
|
|
@@ -45209,12 +45180,12 @@ ELEVASIS_PLATFORM_KEY=sk_...
|
|
|
45209
45180
|
## Development
|
|
45210
45181
|
|
|
45211
45182
|
\`\`\`bash
|
|
45212
|
-
|
|
45213
|
-
|
|
45214
|
-
elevasis exec <resourceId> --input '...'
|
|
45215
|
-
elevasis resources
|
|
45216
|
-
elevasis describe <resourceId>
|
|
45217
|
-
elevasis executions <resourceId>
|
|
45183
|
+
pnpm run check # Validate resource definitions
|
|
45184
|
+
pnpm run deploy # Bundle and deploy to platform
|
|
45185
|
+
pnpm exec elevasis-sdk exec <resourceId> --input '...' # Execute a resource
|
|
45186
|
+
pnpm exec elevasis-sdk resources # List deployed resources
|
|
45187
|
+
pnpm exec elevasis-sdk describe <resourceId> # Show resource definition + schemas
|
|
45188
|
+
pnpm exec elevasis-sdk executions <resourceId> # View execution history
|
|
45218
45189
|
\`\`\`
|
|
45219
45190
|
|
|
45220
45191
|
## Project Structure
|
|
@@ -45235,7 +45206,7 @@ A multi-step workflow that queries platform status and compiles a natural langua
|
|
|
45235
45206
|
summary using an LLM. Demonstrates platform API usage with the \`llm\` typed adapter and \`platform.call()\`.
|
|
45236
45207
|
|
|
45237
45208
|
\`\`\`bash
|
|
45238
|
-
elevasis exec platform-status --input '{"timeRange": "24h"}'
|
|
45209
|
+
pnpm exec elevasis-sdk exec platform-status --input '{"timeRange": "24h"}'
|
|
45239
45210
|
\`\`\`
|
|
45240
45211
|
|
|
45241
45212
|
**Input:** \`{ "timeRange": "1h" | "24h" | "7d" }\`
|
|
@@ -45247,7 +45218,7 @@ A simple workflow that echoes the input message back. Use it as a starter patter
|
|
|
45247
45218
|
for new workflows:
|
|
45248
45219
|
|
|
45249
45220
|
\`\`\`bash
|
|
45250
|
-
elevasis exec echo --input '{"message": "hello"}'
|
|
45221
|
+
pnpm exec elevasis-sdk exec echo --input '{"message": "hello"}'
|
|
45251
45222
|
\`\`\`
|
|
45252
45223
|
|
|
45253
45224
|
**Input:** \`{ "message": string }\`
|
|
@@ -45500,13 +45471,18 @@ All \`reference/\` paths resolve to \`node_modules/@elevasis/sdk/reference/\`.
|
|
|
45500
45471
|
|
|
45501
45472
|
## Elevasis CLI
|
|
45502
45473
|
|
|
45503
|
-
**MANDATORY:** Use the \`elevasis\` CLI for all execution/platform operations -- never \`
|
|
45474
|
+
**MANDATORY:** Use the \`elevasis-sdk\` CLI for all execution/platform operations -- never \`curl\` or any other tool.
|
|
45475
|
+
|
|
45476
|
+
Use pnpm scripts for check and deploy (they resolve the local binary automatically):
|
|
45477
|
+
|
|
45478
|
+
- \`pnpm run check\` -- validate resource definitions without deploying
|
|
45479
|
+
- \`pnpm run deploy\` -- deploy to the platform
|
|
45504
45480
|
|
|
45505
|
-
|
|
45506
|
-
|
|
45507
|
-
- \`elevasis
|
|
45508
|
-
- \`elevasis
|
|
45509
|
-
- \`elevasis
|
|
45481
|
+
Use \`pnpm exec elevasis-sdk\` for runtime commands (resolves the locally installed binary):
|
|
45482
|
+
|
|
45483
|
+
- \`pnpm exec elevasis-sdk exec <resource-id> --input '{...}'\` -- run a resource synchronously
|
|
45484
|
+
- \`pnpm exec elevasis-sdk exec <resource-id> --input '{...}' --async\` -- run async, returns execution ID
|
|
45485
|
+
- \`pnpm exec elevasis-sdk execution <resource-id> <execution-id>\` -- inspect execution detail
|
|
45510
45486
|
|
|
45511
45487
|
Organization is derived from your API key -- no org prefix needed in the resource ID.
|
|
45512
45488
|
For full CLI reference: \`reference/cli/index.mdx\`
|
|
@@ -45658,32 +45634,34 @@ Example (first time, no progress):
|
|
|
45658
45634
|
Elevasis Tutorial
|
|
45659
45635
|
==================
|
|
45660
45636
|
|
|
45661
|
-
|
|
45662
|
-
1 Welcome & Orientation
|
|
45663
|
-
2
|
|
45664
|
-
3
|
|
45665
|
-
4
|
|
45666
|
-
|
|
45667
|
-
|
|
45668
|
-
|
|
45669
|
-
|
|
45670
|
-
|
|
45671
|
-
8
|
|
45672
|
-
9
|
|
45673
|
-
10
|
|
45674
|
-
|
|
45675
|
-
|
|
45676
|
-
|
|
45677
|
-
|
|
45678
|
-
|
|
45679
|
-
|
|
45680
|
-
|
|
45681
|
-
|
|
45682
|
-
17
|
|
45683
|
-
18
|
|
45684
|
-
19
|
|
45685
|
-
|
|
45686
|
-
|
|
45637
|
+
INTRODUCTION 0/4
|
|
45638
|
+
1 Welcome & Orientation [ ]
|
|
45639
|
+
2 How This Workspace Works [ ]
|
|
45640
|
+
3 The /meta Command [ ]
|
|
45641
|
+
4 /work and /docs [ ]
|
|
45642
|
+
|
|
45643
|
+
CORE CONCEPTS 0/6
|
|
45644
|
+
5 Your First Custom Workflow [ ]
|
|
45645
|
+
6 Understanding Data (Schemas) [ ]
|
|
45646
|
+
7 Using Platform Tools [ ]
|
|
45647
|
+
8 Multi-Step Workflows [ ]
|
|
45648
|
+
9 Decision Points [ ]
|
|
45649
|
+
10 Going to Production [ ]
|
|
45650
|
+
|
|
45651
|
+
ADVANCED MODULES 0/9
|
|
45652
|
+
11 Human-in-the-Loop [ ]
|
|
45653
|
+
12 Task Scheduling [ ]
|
|
45654
|
+
13 Notification System [ ]
|
|
45655
|
+
14 Real-World Integrations [ ]
|
|
45656
|
+
15 Error Handling Mastery [ ]
|
|
45657
|
+
16 Advanced Workflows [ ]
|
|
45658
|
+
17 Resource Composition [ ]
|
|
45659
|
+
18 LLM Integration [ ]
|
|
45660
|
+
19 AI Agents [ ]
|
|
45661
|
+
|
|
45662
|
+
ADVANCED WORKSPACE 0/2
|
|
45663
|
+
20 Rules, Memory, and Customization [ ]
|
|
45664
|
+
21 Template Lifecycle [ ]
|
|
45687
45665
|
|
|
45688
45666
|
Pick a number to start.
|
|
45689
45667
|
\`\`\`
|
|
@@ -45696,7 +45674,7 @@ indicators from completed/current state. \`"status"\` -> show the same table.
|
|
|
45696
45674
|
1. Read \`.claude/memory/tutorial-progress.md\`
|
|
45697
45675
|
2. Show the full menu table (## Menu) with progress filled in
|
|
45698
45676
|
3. User picks a number -> start or resume that lesson or module directly
|
|
45699
|
-
4. After
|
|
45677
|
+
4. After user confirms readiness: mark done in progress file, show updated menu table
|
|
45700
45678
|
5. All 21 items complete -> congratulate, suggest exploring docs/ or /work
|
|
45701
45679
|
|
|
45702
45680
|
## Lesson Flow
|
|
@@ -45706,18 +45684,18 @@ Each lesson follows this flow:
|
|
|
45706
45684
|
2. Explain the concept (read docs per skill level, adapt to user)
|
|
45707
45685
|
3. Guide user to build or modify something (agent writes all code for automation: none)
|
|
45708
45686
|
4. Verify it works (CLI primary for all levels; Command Center for visual review -- Command View, Execution Logs)
|
|
45709
|
-
5. Celebrate success,
|
|
45710
|
-
6.
|
|
45687
|
+
5. Celebrate success and ask: "Any questions, or ready to continue?"
|
|
45688
|
+
6. Once the user confirms, record observations in \`.claude/memory/tutorial-progress.md\`
|
|
45711
45689
|
|
|
45712
45690
|
## Lessons
|
|
45713
45691
|
|
|
45714
|
-
**
|
|
45692
|
+
**Item 1: Welcome & Orientation**
|
|
45715
45693
|
|
|
45716
45694
|
When automation is none:
|
|
45717
45695
|
Skip the file tour. Start with what Elevasis does for their business -- use analogies
|
|
45718
45696
|
from \`reference/developer/interaction-guidance.mdx\` (recipe, assembly line, kitchen
|
|
45719
45697
|
appliance). Explain deployment plainly: "You write the recipe here, then deploy it so
|
|
45720
|
-
it's live." Deploy the starter echo workflow (\`elevasis check\` + \`elevasis deploy\`),
|
|
45698
|
+
it's live." Deploy the starter echo workflow (\`elevasis-sdk check\` + \`elevasis-sdk deploy\`),
|
|
45721
45699
|
THEN tour the Command Center so the user sees populated pages, not empty ones. Tour:
|
|
45722
45700
|
Command View (echo node), Execution Logs (result).
|
|
45723
45701
|
Observation focus: automation value understanding, Command Center comfort.
|
|
@@ -45726,52 +45704,153 @@ When automation is low-code or custom:
|
|
|
45726
45704
|
Tour project files: src/index.ts (registry), src/example/echo.ts (starter
|
|
45727
45705
|
workflow), src/operations/platform-status.ts (platform API example),
|
|
45728
45706
|
elevasis.config.ts, .env, docs/. Explain the execution model.
|
|
45729
|
-
Verify: run \`elevasis resources\`. Then open the Command Center and tour the
|
|
45707
|
+
Verify: run \`elevasis-sdk resources\`. Then open the Command Center and tour the
|
|
45730
45708
|
main pages: Command View (resource graph), Execution Logs.
|
|
45731
45709
|
Point out the echo workflow node in Command View.
|
|
45732
45710
|
Observation focus: cloud deployment model, UI navigation comfort.
|
|
45733
45711
|
|
|
45734
|
-
**
|
|
45712
|
+
**Item 2: How This Workspace Works**
|
|
45713
|
+
|
|
45714
|
+
When automation is none:
|
|
45715
|
+
"This workspace comes with a built-in assistant that knows your project, your tools,
|
|
45716
|
+
and your goals. Let me show you how it's set up." Open CLAUDE.md and explain in
|
|
45717
|
+
plain terms: it's the agent's instruction sheet. Point out the commands in the
|
|
45718
|
+
Commands table. Show /meta, /tutorial, /work. Explain the creds skill as
|
|
45719
|
+
"the assistant automatically helps when you mention API keys." Tour the memory folder
|
|
45720
|
+
at a high level -- "this is where the agent stores what it learns about your project."
|
|
45721
|
+
Verify: Ask the user a question about their business goal and show how the agent
|
|
45722
|
+
references their profile in the answer.
|
|
45723
|
+
Observation focus: agent-as-assistant concept, CLAUDE.md as instruction sheet.
|
|
45724
|
+
|
|
45725
|
+
When automation is low-code:
|
|
45726
|
+
Read CLAUDE.md and walk through each section. Explain: what the agent reads on
|
|
45727
|
+
session start, how the navigation table works, what the Skills section means.
|
|
45728
|
+
Explain the four commands briefly. Show that the agent has memory: open
|
|
45729
|
+
\`.claude/memory/profile/skills.md\` and show their own profile -- "every session,
|
|
45730
|
+
the agent reads this and adapts." Explain the initialized flag.
|
|
45731
|
+
Verify: Run /meta to see project status.
|
|
45732
|
+
Observation focus: memory system concept, session initialization flow.
|
|
45733
|
+
|
|
45734
|
+
When automation is custom:
|
|
45735
|
+
Read CLAUDE.md in full. Explain the session initialization sequence: CLAUDE.md ->
|
|
45736
|
+
navigation table -> memory files -> context loading. Walk through: Commands section
|
|
45737
|
+
(4 commands + creds skill), Rules section (auto-loaded based on file paths), Skills
|
|
45738
|
+
section (auto-triggered by content patterns). Point out the initialized flag and
|
|
45739
|
+
explain how /meta init set it.
|
|
45740
|
+
Verify: Run /meta to see project status; observe which fields it reports.
|
|
45741
|
+
Observation focus: initialization model, command-vs-rule-vs-skill distinction.
|
|
45742
|
+
|
|
45743
|
+
**Item 3: The /meta Command**
|
|
45744
|
+
|
|
45745
|
+
When automation is none:
|
|
45746
|
+
"Think of /meta as your project dashboard -- it shows what's healthy and what needs
|
|
45747
|
+
attention." Run /meta (no arguments) and narrate the output in plain language: what
|
|
45748
|
+
each field means. Explain /meta fix as "the agent tidies up and applies updates."
|
|
45749
|
+
Explain /meta deploy as "the agent publishes your changes in one step." Briefly note
|
|
45750
|
+
/meta health shows what happened when something goes wrong.
|
|
45751
|
+
Verify: Run /meta (no arguments). Narrate the output together.
|
|
45752
|
+
Observation focus: project lifecycle concept, dashboard reading.
|
|
45753
|
+
|
|
45754
|
+
When automation is low-code:
|
|
45755
|
+
Show all /meta operations with their purpose. Map to familiar concepts: /meta fix is
|
|
45756
|
+
like "repair this Zap" in Zapier; /meta deploy is a one-command publish pipeline.
|
|
45757
|
+
Walk through the /meta (no-args) output: template version (SDK template your workspace
|
|
45758
|
+
uses), SDK version (installed package), profile summary, drift check.
|
|
45759
|
+
Verify: Run /meta and interpret each field together.
|
|
45760
|
+
Observation focus: deploy pipeline understanding, version tracking.
|
|
45761
|
+
|
|
45762
|
+
When automation is custom:
|
|
45763
|
+
Read \`.claude/commands/meta.md\`. Walk through each operation: init (first-run setup
|
|
45764
|
+
with assessment), (no-args) (status dashboard), fix (drift repair + SDK upgrade +
|
|
45765
|
+
rules health), deploy (7-step pipeline: check, typecheck, docs, git, deploy,
|
|
45766
|
+
project-map, verify), health (runtime diagnostics). Explain the merge strategy for
|
|
45767
|
+
CLAUDE.md and commands. Note the template access model: templates read from
|
|
45768
|
+
@elevasis/sdk/templates subpath.
|
|
45769
|
+
Verify: Run /meta to see project status. Identify what a version mismatch looks like.
|
|
45770
|
+
Observation focus: full lifecycle coverage, pipeline internals.
|
|
45771
|
+
|
|
45772
|
+
**Item 4: /work and /docs**
|
|
45773
|
+
|
|
45774
|
+
When automation is none:
|
|
45775
|
+
"You can ask the assistant to track work across conversations. When you start something
|
|
45776
|
+
complex, use /work create to save your place. Next session, /work resume picks up where
|
|
45777
|
+
you left off." Walk through the concept without deep command details. Then introduce /docs:
|
|
45778
|
+
"When a task is finished, /work complete moves it to docs/ permanently. After that, /docs
|
|
45779
|
+
helps you find and read what's there -- like a notebook for your project." Run /docs (no
|
|
45780
|
+
args) to show the docs/ overview together.
|
|
45781
|
+
Verify: Create a task with \`/work create "practice task"\`, then run /work to see it listed.
|
|
45782
|
+
Then run /docs to see the docs/ structure.
|
|
45783
|
+
Observation focus: persistence concept, cross-session continuity, docs as permanent notes.
|
|
45784
|
+
|
|
45785
|
+
When automation is low-code:
|
|
45786
|
+
Show /work operations: create (task doc with frontmatter + sections), save (updates
|
|
45787
|
+
Progress + Resume Context), resume (loads context for next session), complete (moves
|
|
45788
|
+
to permanent docs/).
|
|
45789
|
+
Then introduce /docs: "/docs is for permanent knowledge -- things that don't expire. Use
|
|
45790
|
+
/docs create to document a workflow or integration. Use /docs verify to check if your
|
|
45791
|
+
docs match the current code." Explain the boundary: /work manages in-progress/, /docs
|
|
45792
|
+
manages permanent docs/.
|
|
45793
|
+
Verify: Create a task with \`/work create "practice task"\`, run /work save, inspect the
|
|
45794
|
+
file. Then run /docs to browse docs/.
|
|
45795
|
+
Observation focus: task tracking workflow, /work vs /docs separation.
|
|
45796
|
+
|
|
45797
|
+
When automation is custom:
|
|
45798
|
+
Read \`.claude/commands/work.md\`. Full /work coverage:
|
|
45799
|
+
/work create (kebab-case filename, frontmatter with status, Objective/Plan/Progress/
|
|
45800
|
+
Resume Context sections), /work save (Progress + Resume Context update), /work resume
|
|
45801
|
+
(multiple-task disambiguation), /work complete (moves to final location).
|
|
45802
|
+
Then read \`.claude/commands/docs.md\`. Cover /docs operations:
|
|
45803
|
+
/docs (default): browse permanent docs/, categorized with read-only auto-generated files
|
|
45804
|
+
separate; /docs create: interview-driven, resource-aware doc creation from src/ code
|
|
45805
|
+
analysis; /docs verify: cross-references resource IDs, schema fields, platform tools in
|
|
45806
|
+
docs against src/ -- standalone analog of /meta fix step 5.
|
|
45807
|
+
Explain the relationship: /work owns docs/in-progress/ (task lifecycle), /work complete
|
|
45808
|
+
moves docs to permanent location, /docs browses and verifies what's there.
|
|
45809
|
+
Verify: Create a task doc, save progress, run /work complete to move it. Then run /docs
|
|
45810
|
+
to see it in the permanent docs/ listing.
|
|
45811
|
+
Observation focus: task doc anatomy, /work-to-/docs handoff, docs verification as standalone tool.
|
|
45812
|
+
|
|
45813
|
+
**Item 5: Your First Custom Workflow**
|
|
45735
45814
|
|
|
45736
45815
|
When automation is none:
|
|
45737
45816
|
Frame the workflow as "a recipe." Use plain language: "settings" not "config",
|
|
45738
45817
|
"what data it needs" not "contract", "instructions" not "steps", "where it starts"
|
|
45739
|
-
not "entryPoint." Agent writes all code changes. Agent runs \`elevasis exec\` to verify
|
|
45818
|
+
not "entryPoint." Agent writes all code changes. Agent runs \`elevasis-sdk exec\` to verify
|
|
45740
45819
|
and narrates the result in plain terms.
|
|
45741
45820
|
Observation focus: recipe-to-result connection.
|
|
45742
45821
|
|
|
45743
45822
|
When automation is low-code or custom:
|
|
45744
45823
|
Modify the echo workflow. Walk through each part: config, contract, steps,
|
|
45745
|
-
entryPoint. Deploy: \`elevasis check\` then \`elevasis deploy\`. Test with
|
|
45746
|
-
\`elevasis exec echo --input '{"message":"hello"}'\`. Then open the Execution
|
|
45824
|
+
entryPoint. Deploy: \`elevasis-sdk check\` then \`elevasis-sdk deploy\`. Test with
|
|
45825
|
+
\`elevasis-sdk exec echo --input '{"message":"hello"}'\`. Then open the Execution
|
|
45747
45826
|
Runner in the Command Center, find the echo workflow, fill out the form, and
|
|
45748
45827
|
run it from the UI. Compare the result to the CLI output.
|
|
45749
45828
|
Observation focus: deployment-to-execution loop, TypeScript syntax comfort.
|
|
45750
45829
|
|
|
45751
|
-
**
|
|
45830
|
+
**Item 6: Understanding Data (Schemas)**
|
|
45752
45831
|
|
|
45753
45832
|
When automation is none:
|
|
45754
45833
|
Frame as "What information does your automation need?" Describe types in plain English:
|
|
45755
45834
|
text, number, yes/no, a choice from a list. NO Zod, no z.string(), no z.infer(), no
|
|
45756
45835
|
code shown. Agent reads identity.md goals and writes the workflow schema. Agent runs
|
|
45757
|
-
\`elevasis exec\` with sample input and narrates the result.
|
|
45836
|
+
\`elevasis-sdk exec\` with sample input and narrates the result.
|
|
45758
45837
|
Observation focus: data-to-input connection, required vs optional understanding.
|
|
45759
45838
|
|
|
45760
45839
|
When automation is low-code:
|
|
45761
45840
|
"Field mapping like Zapier, but with validation." Show Zod types briefly. Demonstrate
|
|
45762
45841
|
how \`.describe()\` documents each field. Build schema based on identity.md goals.
|
|
45763
|
-
After deploy, run with \`elevasis exec --input '{...}'\` to verify each field.
|
|
45842
|
+
After deploy, run with \`elevasis-sdk exec --input '{...}'\` to verify each field.
|
|
45764
45843
|
Observation focus: schema-to-input mapping, optional fields, types.
|
|
45765
45844
|
|
|
45766
45845
|
When automation is custom:
|
|
45767
45846
|
Explain schemas in plain English (concepts page). Show common Zod types.
|
|
45768
45847
|
Explain \`z.infer\`. Build a new workflow with real-world input schema based
|
|
45769
45848
|
on the user's goals (read .claude/memory/profile/identity.md). After deploy,
|
|
45770
|
-
run with \`elevasis exec --input '{...}'\` to verify the schema and inspect
|
|
45849
|
+
run with \`elevasis-sdk exec --input '{...}'\` to verify the schema and inspect
|
|
45771
45850
|
the execution output.
|
|
45772
45851
|
Observation focus: schema-to-input mapping, optional fields, types.
|
|
45773
45852
|
|
|
45774
|
-
**
|
|
45853
|
+
**Item 7: Using Platform Tools**
|
|
45775
45854
|
|
|
45776
45855
|
When automation is none:
|
|
45777
45856
|
Frame as "Connecting your automation to a service you already use." Pick ONE
|
|
@@ -45793,12 +45872,12 @@ If using the approval tool, note that pending requests surface in Command Queue.
|
|
|
45793
45872
|
See reference/platform-tools/adapters.mdx for full API.
|
|
45794
45873
|
Observation focus: credential setup (CLI + UI), async/await.
|
|
45795
45874
|
|
|
45796
|
-
**
|
|
45875
|
+
**Item 8: Multi-Step Workflows**
|
|
45797
45876
|
|
|
45798
45877
|
When automation is none:
|
|
45799
45878
|
Frame as "Step 1 passes its result to Step 2, like a relay race." Command View is
|
|
45800
45879
|
PRIMARY teaching tool -- show the visual graph before explaining code. Agent builds
|
|
45801
|
-
the 2-step workflow. Agent runs \`elevasis exec\` to verify and shows output flow.
|
|
45880
|
+
the 2-step workflow. Agent runs \`elevasis-sdk exec\` to verify and shows output flow.
|
|
45802
45881
|
User opens Command View to see the two nodes + arrow. Code is secondary.
|
|
45803
45882
|
Observation focus: relay-race concept, visual graph comprehension.
|
|
45804
45883
|
|
|
@@ -45809,12 +45888,12 @@ relationship edges between resources. Explain how declared relationships map
|
|
|
45809
45888
|
to the visual graph.
|
|
45810
45889
|
Observation focus: data flow reasoning, relationship visualization.
|
|
45811
45890
|
|
|
45812
|
-
**
|
|
45891
|
+
**Item 9: Decision Points**
|
|
45813
45892
|
|
|
45814
45893
|
When automation is none:
|
|
45815
45894
|
Frame as "If the customer is VIP, do this -- otherwise, do that." No StepType.CONDITIONAL
|
|
45816
45895
|
jargon -- focus on the concept, not the implementation. Agent adds the condition.
|
|
45817
|
-
Agent runs \`elevasis exec\` for both paths. Open Execution Logs to see which
|
|
45896
|
+
Agent runs \`elevasis-sdk exec\` for both paths. Open Execution Logs to see which
|
|
45818
45897
|
path ran. Guide log navigation step-by-step.
|
|
45819
45898
|
Observation focus: branching concept understanding, log navigation.
|
|
45820
45899
|
|
|
@@ -45825,7 +45904,7 @@ Execution Logs in the Command Center, filter by the resource, and show how
|
|
|
45825
45904
|
each path appears in the log detail (step trace, input/output).
|
|
45826
45905
|
Observation focus: branching logic reasoning, execution log interpretation.
|
|
45827
45906
|
|
|
45828
|
-
**
|
|
45907
|
+
**Item 10: Going to Production**
|
|
45829
45908
|
|
|
45830
45909
|
When automation is none:
|
|
45831
45910
|
Frame as "draft vs live" not "dev vs production." Error handling: "when something
|
|
@@ -45839,12 +45918,12 @@ Change status from dev to production. Cover error handling: try/catch,
|
|
|
45839
45918
|
ExecutionError, PlatformToolError. Create a schedule in Task Scheduler (use
|
|
45840
45919
|
Recurring type for a cron schedule). If docs/ has pages, show Knowledge Base.
|
|
45841
45920
|
Open Deployments page to confirm the latest version is active. Show CLI
|
|
45842
|
-
monitoring: elevasis executions, elevasis execution. Suggest next steps.
|
|
45921
|
+
monitoring: elevasis-sdk executions, elevasis-sdk execution. Suggest next steps.
|
|
45843
45922
|
Observation focus: readiness for independent operation (CLI + UI).
|
|
45844
45923
|
|
|
45845
45924
|
## Module Menu
|
|
45846
45925
|
|
|
45847
|
-
Module order (items
|
|
45926
|
+
Module order (items 11-19 in the main menu): hitl, schedules, notifications,
|
|
45848
45927
|
integrations, error-handling, workflows, composition, llm, agents.
|
|
45849
45928
|
|
|
45850
45929
|
After completing a module, show the updated full menu table (## Menu).
|
|
@@ -45927,116 +46006,16 @@ Read: \`reference/framework/agent.mdx\`.
|
|
|
45927
46006
|
Build: Create an agent definition with tools. Configure LLM tool calling.
|
|
45928
46007
|
Compare agent vs workflow for a task.
|
|
45929
46008
|
Key concepts: agent definition, tool registration, LLM tool calling, execution trace.
|
|
45930
|
-
Verify: Run agent with \`elevasis exec\`, review tool call trace in Execution Logs.
|
|
45931
|
-
|
|
45932
|
-
## Meta-Framework Track
|
|
45933
|
-
|
|
45934
|
-
The Meta-Framework track teaches you how the Claude Code workspace works -- the commands,
|
|
45935
|
-
rules, memory system, and customization model. It is independent of the core path and
|
|
45936
|
-
can be taken in any order.
|
|
45937
|
-
|
|
45938
|
-
**MF1: The Agent Framework -- How This Workspace Works**
|
|
45939
|
-
|
|
45940
|
-
When automation is none:
|
|
45941
|
-
"This workspace comes with a built-in assistant that knows your project, your tools,
|
|
45942
|
-
and your goals. Let me show you how it's set up." Open CLAUDE.md and explain in
|
|
45943
|
-
plain terms: it's the agent's instruction sheet. Point out the commands in the
|
|
45944
|
-
Commands table. Show /meta, /tutorial, /work. Explain the creds skill as
|
|
45945
|
-
"the assistant automatically helps when you mention API keys." Tour the memory folder
|
|
45946
|
-
at a high level -- "this is where the agent stores what it learns about your project."
|
|
45947
|
-
Verify: Ask the user a question about their business goal and show how the agent
|
|
45948
|
-
references their profile in the answer.
|
|
45949
|
-
Observation focus: agent-as-assistant concept, CLAUDE.md as instruction sheet.
|
|
45950
|
-
|
|
45951
|
-
When automation is low-code:
|
|
45952
|
-
Read CLAUDE.md and walk through each section. Explain: what the agent reads on
|
|
45953
|
-
session start, how the navigation table works, what the Skills section means.
|
|
45954
|
-
Explain the four commands briefly. Show that the agent has memory: open
|
|
45955
|
-
\`.claude/memory/profile/skills.md\` and show their own profile -- "every session,
|
|
45956
|
-
the agent reads this and adapts." Explain the initialized flag.
|
|
45957
|
-
Verify: Run /meta to see project status.
|
|
45958
|
-
Observation focus: memory system concept, session initialization flow.
|
|
45959
|
-
|
|
45960
|
-
When automation is custom:
|
|
45961
|
-
Read CLAUDE.md in full. Explain the session initialization sequence: CLAUDE.md ->
|
|
45962
|
-
navigation table -> memory files -> context loading. Walk through: Commands section
|
|
45963
|
-
(4 commands + creds skill), Rules section (auto-loaded based on file paths), Skills
|
|
45964
|
-
section (auto-triggered by content patterns). Point out the initialized flag and
|
|
45965
|
-
explain how /meta init set it.
|
|
45966
|
-
Verify: Run /meta to see project status; observe which fields it reports.
|
|
45967
|
-
Observation focus: initialization model, command-vs-rule-vs-skill distinction.
|
|
45968
|
-
|
|
45969
|
-
**MF2: The /meta Command -- Project Lifecycle**
|
|
45970
|
-
|
|
45971
|
-
When automation is none:
|
|
45972
|
-
"Think of /meta as your project dashboard -- it shows what's healthy and what needs
|
|
45973
|
-
attention." Run /meta (no arguments) and narrate the output in plain language: what
|
|
45974
|
-
each field means. Explain /meta fix as "the agent tidies up and applies updates."
|
|
45975
|
-
Explain /meta deploy as "the agent publishes your changes in one step." Briefly note
|
|
45976
|
-
/meta health shows what happened when something goes wrong.
|
|
45977
|
-
Verify: Run /meta (no arguments). Narrate the output together.
|
|
45978
|
-
Observation focus: project lifecycle concept, dashboard reading.
|
|
45979
|
-
|
|
45980
|
-
When automation is low-code:
|
|
45981
|
-
Show all /meta operations with their purpose. Map to familiar concepts: /meta fix is
|
|
45982
|
-
like "repair this Zap" in Zapier; /meta deploy is a one-command publish pipeline.
|
|
45983
|
-
Walk through the /meta (no-args) output: template version (SDK template your workspace
|
|
45984
|
-
uses), SDK version (installed package), profile summary, drift check.
|
|
45985
|
-
Verify: Run /meta and interpret each field together.
|
|
45986
|
-
Observation focus: deploy pipeline understanding, version tracking.
|
|
46009
|
+
Verify: Run agent with \`elevasis-sdk exec\`, review tool call trace in Execution Logs.
|
|
45987
46010
|
|
|
45988
|
-
|
|
45989
|
-
Read \`.claude/commands/meta.md\`. Walk through each operation: init (first-run setup
|
|
45990
|
-
with assessment), (no-args) (status dashboard), fix (drift repair + SDK upgrade +
|
|
45991
|
-
rules health), deploy (7-step pipeline: check, typecheck, docs, git, deploy,
|
|
45992
|
-
project-map, verify), health (runtime diagnostics). Explain the merge strategy for
|
|
45993
|
-
CLAUDE.md and commands. Note the template access model: templates read from
|
|
45994
|
-
@elevasis/sdk/templates subpath.
|
|
45995
|
-
Verify: Run /meta to see project status. Identify what a version mismatch looks like.
|
|
45996
|
-
Observation focus: full lifecycle coverage, pipeline internals.
|
|
46011
|
+
## Advanced Workspace Track
|
|
45997
46012
|
|
|
45998
|
-
|
|
46013
|
+
The Advanced Workspace track teaches power-user workspace customization and maintenance --
|
|
46014
|
+
rules, memory, and the template lifecycle. Independent of the core path; can be taken at any time.
|
|
45999
46015
|
|
|
46000
|
-
|
|
46001
|
-
"You can ask the assistant to track work across conversations. When you start something
|
|
46002
|
-
complex, use /work create to save your place. Next session, /work resume picks up where
|
|
46003
|
-
you left off." Walk through the concept without deep command details. Then introduce /docs:
|
|
46004
|
-
"When a task is finished, /work complete moves it to docs/ permanently. After that, /docs
|
|
46005
|
-
helps you find and read what's there -- like a notebook for your project." Run /docs (no
|
|
46006
|
-
args) to show the docs/ overview together.
|
|
46007
|
-
Verify: Create a task with \`/work create "practice task"\`, then run /work to see it listed.
|
|
46008
|
-
Then run /docs to see the docs/ structure.
|
|
46009
|
-
Observation focus: persistence concept, cross-session continuity, docs as permanent notes.
|
|
46016
|
+
Each item follows the same flow as core lessons: announce, explain per skill level, verify, record observations.
|
|
46010
46017
|
|
|
46011
|
-
|
|
46012
|
-
Show /work operations: create (task doc with frontmatter + sections), save (updates
|
|
46013
|
-
Progress + Resume Context), resume (loads context for next session), complete (moves
|
|
46014
|
-
to permanent docs/).
|
|
46015
|
-
Then introduce /docs: "/docs is for permanent knowledge -- things that don't expire. Use
|
|
46016
|
-
/docs create to document a workflow or integration. Use /docs verify to check if your
|
|
46017
|
-
docs match the current code." Explain the boundary: /work manages in-progress/, /docs
|
|
46018
|
-
manages permanent docs/.
|
|
46019
|
-
Verify: Create a task with \`/work create "practice task"\`, run /work save, inspect the
|
|
46020
|
-
file. Then run /docs to browse docs/.
|
|
46021
|
-
Observation focus: task tracking workflow, /work vs /docs separation.
|
|
46022
|
-
|
|
46023
|
-
When automation is custom:
|
|
46024
|
-
Read \`.claude/commands/work.md\`. Full /work coverage:
|
|
46025
|
-
/work create (kebab-case filename, frontmatter with status, Objective/Plan/Progress/
|
|
46026
|
-
Resume Context sections), /work save (Progress + Resume Context update), /work resume
|
|
46027
|
-
(multiple-task disambiguation), /work complete (moves to final location).
|
|
46028
|
-
Then read \`.claude/commands/docs.md\`. Cover /docs operations:
|
|
46029
|
-
/docs (default): browse permanent docs/, categorized with read-only auto-generated files
|
|
46030
|
-
separate; /docs create: interview-driven, resource-aware doc creation from src/ code
|
|
46031
|
-
analysis; /docs verify: cross-references resource IDs, schema fields, platform tools in
|
|
46032
|
-
docs against src/ -- standalone analog of /meta fix step 5.
|
|
46033
|
-
Explain the relationship: /work owns docs/in-progress/ (task lifecycle), /work complete
|
|
46034
|
-
moves docs to permanent location, /docs browses and verifies what's there.
|
|
46035
|
-
Verify: Create a task doc, save progress, run /work complete to move it. Then run /docs
|
|
46036
|
-
to see it in the permanent docs/ listing.
|
|
46037
|
-
Observation focus: task doc anatomy, /work-to-/docs handoff, docs verification as standalone tool.
|
|
46038
|
-
|
|
46039
|
-
**MF4: Rules, Memory, and Customization**
|
|
46018
|
+
**Item 20: Rules, Memory, and Customization**
|
|
46040
46019
|
|
|
46041
46020
|
When automation is none:
|
|
46042
46021
|
"The assistant has a set of reminders specific to your project. Over time, when it
|
|
@@ -46050,7 +46029,7 @@ Observation focus: customization concept, owned vs managed files.
|
|
|
46050
46029
|
|
|
46051
46030
|
When automation is low-code:
|
|
46052
46031
|
Show the \`.claude/rules/\` directory. Explain the two types: sdk-patterns.md (MANAGED --
|
|
46053
|
-
updated by elevasis update) and workspace-patterns.md (INIT_ONLY -- yours to edit).
|
|
46032
|
+
updated by elevasis-sdk update) and workspace-patterns.md (INIT_ONLY -- yours to edit).
|
|
46054
46033
|
Explain path-scoping briefly: "These rules only activate when the agent is working on
|
|
46055
46034
|
certain file types." Show an example rule with WRONG/RIGHT pattern. Explain error
|
|
46056
46035
|
promotion: if something goes wrong 3+ times, add it here.
|
|
@@ -46067,7 +46046,7 @@ workspace-patterns.md. Walk through how to add a new rule.
|
|
|
46067
46046
|
Verify: Read \`.claude/rules/workspace-patterns.md\`. Add a sample rule entry together.
|
|
46068
46047
|
Observation focus: MANAGED vs INIT_ONLY lifecycle, rule authoring, memory layout.
|
|
46069
46048
|
|
|
46070
|
-
**
|
|
46049
|
+
**Item 21: Template Lifecycle**
|
|
46071
46050
|
|
|
46072
46051
|
When automation is none:
|
|
46073
46052
|
"When Elevasis SDK releases updates, the assistant can apply them to your workspace
|
|
@@ -46080,7 +46059,7 @@ Next steps: point to reference docs in docs/, encourage using /work for new task
|
|
|
46080
46059
|
Observation focus: update model concept, project map as navigation aid.
|
|
46081
46060
|
|
|
46082
46061
|
When automation is low-code:
|
|
46083
|
-
Explain MANAGED (auto-updated by elevasis update) vs INIT_ONLY (set once, yours).
|
|
46062
|
+
Explain MANAGED (auto-updated by elevasis-sdk update) vs INIT_ONLY (set once, yours).
|
|
46084
46063
|
Show how /meta fix applies SDK updates with conflict handling: "If a file changed,
|
|
46085
46064
|
it shows you both versions and lets you decide."
|
|
46086
46065
|
Show \`docs/project-map.mdx\` and explain what it contains: resources, commands,
|
|
@@ -46104,7 +46083,7 @@ Observation focus: full template lifecycle, conflict resolution pattern.
|
|
|
46104
46083
|
|
|
46105
46084
|
**automation: none**
|
|
46106
46085
|
Use the non-technical variant for each lesson. Agent writes all code -- user
|
|
46107
|
-
never types code. Agent runs \`elevasis exec\` for verification and narrates results.
|
|
46086
|
+
never types code. Agent runs \`elevasis-sdk exec\` for verification and narrates results.
|
|
46108
46087
|
Avoid all jargon; use analogies. CLI is the primary verification tool.
|
|
46109
46088
|
Always deploy before directing the user to the Command Center.
|
|
46110
46089
|
|
|
@@ -46118,7 +46097,7 @@ for intermediate/advanced users.
|
|
|
46118
46097
|
|
|
46119
46098
|
**General rules (all levels)**
|
|
46120
46099
|
- If user is fast, acknowledge and offer to skip ahead within a lesson
|
|
46121
|
-
- After
|
|
46100
|
+
- After the user confirms readiness at the end of a lesson, update \`.claude/memory/tutorial-progress.md\`
|
|
46122
46101
|
- If user demonstrates a level change, promote to skills.md Growth Log
|
|
46123
46102
|
- After completing a module, show the updated full menu table
|
|
46124
46103
|
- Adapt module depth to skill level as with lessons
|
|
@@ -46137,7 +46116,7 @@ Last Session: {today's date}
|
|
|
46137
46116
|
|
|
46138
46117
|
## Completed Lessons
|
|
46139
46118
|
|
|
46140
|
-
|
|
|
46119
|
+
| Item | Title | Completed | Duration |
|
|
46141
46120
|
| --- | --- | --- | --- |
|
|
46142
46121
|
|
|
46143
46122
|
## Completed Modules
|
|
@@ -46145,11 +46124,6 @@ Last Session: {today's date}
|
|
|
46145
46124
|
| Module | Title | Completed | Duration |
|
|
46146
46125
|
| --- | --- | --- | --- |
|
|
46147
46126
|
|
|
46148
|
-
## Completed MF Lessons
|
|
46149
|
-
|
|
46150
|
-
| Lesson | Title | Completed | Notes |
|
|
46151
|
-
| --- | --- | --- | --- |
|
|
46152
|
-
|
|
46153
46127
|
## Capability Observations
|
|
46154
46128
|
|
|
46155
46129
|
| Source | Observation |
|
|
@@ -46161,13 +46135,14 @@ Last Session: {today's date}
|
|
|
46161
46135
|
\`\`\`
|
|
46162
46136
|
|
|
46163
46137
|
Update rules:
|
|
46164
|
-
- \`Current\`: free-form, e.g. "
|
|
46138
|
+
- \`Current\`: free-form, e.g. "4: Using Platform Tools" or "M:integrations" or "20: Rules, Memory, and Customization"
|
|
46165
46139
|
- \`Last Session\`: update to today's date on each \`/tutorial\` invocation
|
|
46166
|
-
- Completed
|
|
46167
|
-
-
|
|
46140
|
+
- Completed Lessons: add a row when any numbered item (1-10, 20-21) finishes
|
|
46141
|
+
- Completed Modules: add a row when any module (items 11-19) finishes
|
|
46142
|
+
- Capability Observations: prefix source with item number for lessons (#), M:<id> for modules
|
|
46168
46143
|
- Assessment Notes: bullet points of general skill observations
|
|
46169
46144
|
|
|
46170
|
-
Backward-compatible: missing Completed Modules
|
|
46145
|
+
Backward-compatible: missing Completed Modules treated as empty. Old files with Completed MF Lessons: map entries to items 2-4 and 20-21 by lesson title match.
|
|
46171
46146
|
`;
|
|
46172
46147
|
}
|
|
46173
46148
|
function claudeMetaCommandTemplate() {
|
|
@@ -46200,7 +46175,7 @@ by the \`<!-- initialized: false -->\` flag in CLAUDE.md, or run manually.
|
|
|
46200
46175
|
\`\`\`
|
|
46201
46176
|
No other keys (no \`NODE_ENV\`, no extras). The \`.env\` file must contain
|
|
46202
46177
|
only \`ELEVASIS_PLATFORM_KEY\`.
|
|
46203
|
-
Validate the key works: run \`elevasis resources\` (should return an empty
|
|
46178
|
+
Validate the key works: run \`elevasis-sdk resources\` (should return an empty
|
|
46204
46179
|
list, not an auth error). If auth fails, tell the user their key appears
|
|
46205
46180
|
invalid and ask them to check it in the Elevasis dashboard.
|
|
46206
46181
|
|
|
@@ -46261,7 +46236,7 @@ by the \`<!-- initialized: false -->\` flag in CLAUDE.md, or run manually.
|
|
|
46261
46236
|
- If git remote exists: note remote URL in memory/profile/preferences.md
|
|
46262
46237
|
|
|
46263
46238
|
5. **Verify project**
|
|
46264
|
-
Run \`elevasis check\` to confirm the starter resource is valid.
|
|
46239
|
+
Run \`elevasis-sdk check\` to confirm the starter resource is valid.
|
|
46265
46240
|
Optionally deploy the echo workflow.
|
|
46266
46241
|
|
|
46267
46242
|
6. **Report**
|
|
@@ -46278,8 +46253,7 @@ by the \`<!-- initialized: false -->\` flag in CLAUDE.md, or run manually.
|
|
|
46278
46253
|
### \`/meta\` (no arguments) -- Project Status
|
|
46279
46254
|
|
|
46280
46255
|
Display a project health summary:
|
|
46281
|
-
1.
|
|
46282
|
-
2. SDK package version from package.json
|
|
46256
|
+
1. Template version (from elevasis.config.ts) and installed SDK version (from package.json). Suggest \`elevasis-sdk update\` to check for updates
|
|
46283
46257
|
3. Profile summary (from memory/profile/skills.md)
|
|
46284
46258
|
4. Quick drift check: count of missing managed files, missing gitignore entries
|
|
46285
46259
|
5. Last deployment status (from memory/deployment-state.md if it exists)
|
|
@@ -46290,7 +46264,7 @@ Detect and repair all drift. Optionally upgrades the SDK first.
|
|
|
46290
46264
|
|
|
46291
46265
|
0. **SDK version check** -- Compare installed \`@elevasis/sdk\` against the latest
|
|
46292
46266
|
available. If behind, offer to run \`pnpm update @elevasis/sdk\` before
|
|
46293
|
-
continuing. If the user accepts, run it, then run \`elevasis update\` to add
|
|
46267
|
+
continuing. If the user accepts, run it, then run \`elevasis-sdk update\` to add
|
|
46294
46268
|
any new managed files and flag conflicts. For each flagged file:
|
|
46295
46269
|
- Read the current project file and the new template from \`@elevasis/sdk/templates\`
|
|
46296
46270
|
- Add new sections that don't exist; preserve user customizations
|
|
@@ -46319,7 +46293,7 @@ Detect and repair all drift. Optionally upgrades the SDK first.
|
|
|
46319
46293
|
suggest adding patterns. Surface suggestions only -- do not auto-generate.
|
|
46320
46294
|
8. **Project map freshness:** Check whether \`docs/project-map.mdx\` reflects the
|
|
46321
46295
|
current project state (resources, commands, rules, skills, memory files).
|
|
46322
|
-
Compare filesystem state against the map. If stale, run \`elevasis deploy\`
|
|
46296
|
+
Compare filesystem state against the map. If stale, run \`elevasis-sdk deploy\`
|
|
46323
46297
|
to regenerate, or patch inline for minor drift.
|
|
46324
46298
|
|
|
46325
46299
|
Each step reports its result. Steps 1-8 run even if step 0 is skipped.
|
|
@@ -46329,11 +46303,11 @@ Each step reports its result. Steps 1-8 run even if step 0 is skipped.
|
|
|
46329
46303
|
0. Read \`reference/deployment/command-view.mdx\` -- understand the Command View
|
|
46330
46304
|
model, relationship declarations, and what deploy-time validation checks.
|
|
46331
46305
|
This context is essential for diagnosing validation failures in steps 1-2.
|
|
46332
|
-
1. Run \`elevasis check\` (validation)
|
|
46306
|
+
1. Run \`elevasis-sdk check\` (validation)
|
|
46333
46307
|
2. Type check if \`tsconfig.json\` exists
|
|
46334
46308
|
3. Verify docs reflect current resources
|
|
46335
46309
|
4. If git configured: stage changes, commit with deploy message
|
|
46336
|
-
5. Run \`elevasis deploy\`
|
|
46310
|
+
5. Run \`elevasis-sdk deploy\`
|
|
46337
46311
|
6. \`docs/project-map.mdx\` is auto-regenerated by deploy (no manual bump needed)
|
|
46338
46312
|
7. Verify deployment via platform
|
|
46339
46313
|
8. Update \`memory/deployment-state.md\` with count, timestamp, inventory
|
|
@@ -46846,7 +46820,7 @@ occurred multiple times or represent a deliberate convention -- not speculative
|
|
|
46846
46820
|
## Rule File Ownership
|
|
46847
46821
|
|
|
46848
46822
|
This file is yours. The other \`.claude/rules/\` files are SDK-owned and updated by
|
|
46849
|
-
\`elevasis update\` -- do not add project-specific notes to them, add them here instead:
|
|
46823
|
+
\`elevasis-sdk update\` -- do not add project-specific notes to them, add them here instead:
|
|
46850
46824
|
|
|
46851
46825
|
- \`sdk-patterns.md\` -- SDK imports, source structure, runtime, adapter patterns
|
|
46852
46826
|
- \`docs-authoring.md\` -- MDX escaping, frontmatter, docs conventions
|
|
@@ -46931,10 +46905,10 @@ description: Project map conventions -- auto-generated, do not edit, maintained
|
|
|
46931
46905
|
|
|
46932
46906
|
# Project Map
|
|
46933
46907
|
|
|
46934
|
-
- \`docs/project-map.mdx\` and \`docs/resource-map.mdx\` are fully auto-generated by \`elevasis deploy\`
|
|
46908
|
+
- \`docs/project-map.mdx\` and \`docs/resource-map.mdx\` are fully auto-generated by \`elevasis-sdk deploy\`
|
|
46935
46909
|
- Do not edit either file manually -- changes are overwritten on next deploy
|
|
46936
46910
|
- \`/meta fix\` step 8 checks for drift and patches the map
|
|
46937
|
-
- If a new command, rule, skill, or memory file is added, run \`/meta fix\` or \`elevasis deploy\` to update
|
|
46911
|
+
- If a new command, rule, skill, or memory file is added, run \`/meta fix\` or \`elevasis-sdk deploy\` to update
|
|
46938
46912
|
`;
|
|
46939
46913
|
}
|
|
46940
46914
|
function claudeTaskTrackingRuleTemplate() {
|
|
@@ -47180,8 +47154,7 @@ function getUIFiles(orgSlug) {
|
|
|
47180
47154
|
"ui/src/App.tsx": uiAppTsxTemplate(),
|
|
47181
47155
|
"ui/src/AuthRedirect.tsx": uiAuthRedirectTemplate(),
|
|
47182
47156
|
"ui/src/vite-env.d.ts": uiViteEnvDtsTemplate(),
|
|
47183
|
-
"ui/.env": uiEnvTemplate()
|
|
47184
|
-
"ui/.env.example": uiEnvExampleTemplate()
|
|
47157
|
+
"ui/.env": uiEnvTemplate()
|
|
47185
47158
|
};
|
|
47186
47159
|
}
|
|
47187
47160
|
function uiPackageJsonTemplate(orgSlug) {
|
|
@@ -47320,10 +47293,6 @@ function uiEnvTemplate() {
|
|
|
47320
47293
|
return `VITE_WORKOS_CLIENT_ID=
|
|
47321
47294
|
`;
|
|
47322
47295
|
}
|
|
47323
|
-
function uiEnvExampleTemplate() {
|
|
47324
|
-
return `VITE_WORKOS_CLIENT_ID=your_workos_client_id
|
|
47325
|
-
`;
|
|
47326
|
-
}
|
|
47327
47296
|
|
|
47328
47297
|
// src/cli/commands/templates/ui/index.ts
|
|
47329
47298
|
var UI_INIT_FILES = [
|
|
@@ -47335,8 +47304,7 @@ var UI_INIT_FILES = [
|
|
|
47335
47304
|
"ui/src/App.tsx",
|
|
47336
47305
|
"ui/src/AuthRedirect.tsx",
|
|
47337
47306
|
"ui/src/vite-env.d.ts",
|
|
47338
|
-
"ui/.env"
|
|
47339
|
-
"ui/.env.example"
|
|
47307
|
+
"ui/.env"
|
|
47340
47308
|
];
|
|
47341
47309
|
|
|
47342
47310
|
// src/cli/commands/init.ts
|
|
@@ -47345,7 +47313,6 @@ var INIT_ONLY_FILES = [
|
|
|
47345
47313
|
"pnpm-workspace.yaml",
|
|
47346
47314
|
"tsconfig.json",
|
|
47347
47315
|
".env",
|
|
47348
|
-
".env.example",
|
|
47349
47316
|
".npmrc",
|
|
47350
47317
|
"src/index.ts",
|
|
47351
47318
|
"src/operations/platform-status.ts",
|
|
@@ -47372,11 +47339,12 @@ var MANAGED_FILES = [
|
|
|
47372
47339
|
".claude/rules/docs-authoring.md",
|
|
47373
47340
|
".claude/rules/memory-conventions.md",
|
|
47374
47341
|
".claude/rules/project-map.md",
|
|
47375
|
-
".claude/rules/task-tracking.md"
|
|
47342
|
+
".claude/rules/task-tracking.md",
|
|
47343
|
+
".claude/scripts/statusline-command.js"
|
|
47376
47344
|
];
|
|
47377
47345
|
var SCAFFOLD_FILES = [...INIT_ONLY_FILES, ...MANAGED_FILES];
|
|
47378
47346
|
function registerInitCommand(program3) {
|
|
47379
|
-
program3.command("init [directory]").description("Scaffold a new Elevasis workspace\n Example: elevasis init my-workspace").option("--force", "Overwrite existing files").option("--ui", "Include a Vite + React UI app in ui/").action(wrapAction("init", async (directory, options2) => {
|
|
47347
|
+
program3.command("init [directory]").description("Scaffold a new Elevasis workspace\n Example: elevasis-sdk init my-workspace").option("--force", "Overwrite existing files").option("--ui", "Include a Vite + React UI app in ui/").action(wrapAction("init", async (directory, options2) => {
|
|
47380
47348
|
const targetDir = directory ? (0, import_path3.resolve)(directory) : process.cwd();
|
|
47381
47349
|
const orgSlug = toSlug((0, import_path3.basename)(targetDir));
|
|
47382
47350
|
if (!options2.force) {
|
|
@@ -47403,6 +47371,7 @@ function registerInitCommand(program3) {
|
|
|
47403
47371
|
await (0, import_promises2.mkdir)((0, import_path3.resolve)(targetDir, "src/shared"), { recursive: true });
|
|
47404
47372
|
await (0, import_promises2.mkdir)((0, import_path3.resolve)(targetDir, "docs/in-progress"), { recursive: true });
|
|
47405
47373
|
await (0, import_promises2.mkdir)((0, import_path3.resolve)(targetDir, ".claude/hooks"), { recursive: true });
|
|
47374
|
+
await (0, import_promises2.mkdir)((0, import_path3.resolve)(targetDir, ".claude/scripts"), { recursive: true });
|
|
47406
47375
|
await (0, import_promises2.mkdir)((0, import_path3.resolve)(targetDir, ".claude/commands"), { recursive: true });
|
|
47407
47376
|
await (0, import_promises2.mkdir)((0, import_path3.resolve)(targetDir, ".claude/skills/creds"), { recursive: true });
|
|
47408
47377
|
await (0, import_promises2.mkdir)((0, import_path3.resolve)(targetDir, ".claude/rules"), { recursive: true });
|
|
@@ -47415,7 +47384,6 @@ function registerInitCommand(program3) {
|
|
|
47415
47384
|
"pnpm-workspace.yaml": pnpmWorkspaceTemplate(),
|
|
47416
47385
|
"tsconfig.json": tsconfigTemplate(),
|
|
47417
47386
|
".env": envTemplate(),
|
|
47418
|
-
".env.example": envExampleTemplate(),
|
|
47419
47387
|
".npmrc": npmrcTemplate(),
|
|
47420
47388
|
".gitignore": gitignoreTemplate({ hasUI: options2.ui }),
|
|
47421
47389
|
"src/index.ts": starterTemplate(),
|
|
@@ -47439,7 +47407,8 @@ function registerInitCommand(program3) {
|
|
|
47439
47407
|
".claude/rules/docs-authoring.md": claudeDocsAuthoringRuleTemplate(),
|
|
47440
47408
|
".claude/rules/memory-conventions.md": claudeMemoryConventionsRuleTemplate(),
|
|
47441
47409
|
".claude/rules/project-map.md": claudeProjectMapRuleTemplate(),
|
|
47442
|
-
".claude/rules/task-tracking.md": claudeTaskTrackingRuleTemplate()
|
|
47410
|
+
".claude/rules/task-tracking.md": claudeTaskTrackingRuleTemplate(),
|
|
47411
|
+
".claude/scripts/statusline-command.js": claudeStatuslineScriptTemplate()
|
|
47443
47412
|
};
|
|
47444
47413
|
if (options2.ui) {
|
|
47445
47414
|
Object.assign(files, getUIFiles(orgSlug));
|
|
@@ -47454,9 +47423,9 @@ function registerInitCommand(program3) {
|
|
|
47454
47423
|
console.log(source_default.gray(` cd ${directory}`));
|
|
47455
47424
|
}
|
|
47456
47425
|
console.log(source_default.gray(" pnpm install"));
|
|
47457
|
-
console.log(source_default.gray(" #
|
|
47458
|
-
console.log(source_default.gray(" elevasis check"));
|
|
47459
|
-
console.log(source_default.gray(" elevasis deploy"));
|
|
47426
|
+
console.log(source_default.gray(" # Add your API key to .env"));
|
|
47427
|
+
console.log(source_default.gray(" elevasis-sdk check"));
|
|
47428
|
+
console.log(source_default.gray(" elevasis-sdk deploy"));
|
|
47460
47429
|
if (options2.ui) {
|
|
47461
47430
|
console.log("");
|
|
47462
47431
|
console.log(source_default.gray(" UI app:"));
|
|
@@ -47769,7 +47738,7 @@ async function listCreds(apiUrl, json2) {
|
|
|
47769
47738
|
}
|
|
47770
47739
|
if (data.credentials.length === 0) {
|
|
47771
47740
|
console.log(source_default.yellow("No credentials found."));
|
|
47772
|
-
console.log(source_default.gray("Create one with: elevasis creds create --name my-key --type api-key"));
|
|
47741
|
+
console.log(source_default.gray("Create one with: elevasis-sdk creds create --name my-key --type api-key"));
|
|
47773
47742
|
return;
|
|
47774
47743
|
}
|
|
47775
47744
|
console.log(source_default.cyan(`
|
|
@@ -47861,7 +47830,7 @@ Example: --value '{"apiKey":"sk-new-key"}'`
|
|
|
47861
47830
|
spinner.stop();
|
|
47862
47831
|
throw new Error(
|
|
47863
47832
|
`Credential '${name}' not found.
|
|
47864
|
-
Run "elevasis creds list" to see available credentials.`
|
|
47833
|
+
Run "elevasis-sdk creds list" to see available credentials.`
|
|
47865
47834
|
);
|
|
47866
47835
|
}
|
|
47867
47836
|
await apiPatch(`/api/external/credentials/${credential.id}`, { value }, apiUrl);
|
|
@@ -47888,7 +47857,7 @@ async function renameCreds(apiUrl, name, newName) {
|
|
|
47888
47857
|
spinner.stop();
|
|
47889
47858
|
throw new Error(
|
|
47890
47859
|
`Credential '${name}' not found.
|
|
47891
|
-
Run "elevasis creds list" to see available credentials.`
|
|
47860
|
+
Run "elevasis-sdk creds list" to see available credentials.`
|
|
47892
47861
|
);
|
|
47893
47862
|
}
|
|
47894
47863
|
const conflict = data.credentials.find((c) => c.name === newName);
|
|
@@ -47922,7 +47891,7 @@ async function deleteCreds(apiUrl, name, force) {
|
|
|
47922
47891
|
spinner.stop();
|
|
47923
47892
|
throw new Error(
|
|
47924
47893
|
`Credential '${name}' not found.
|
|
47925
|
-
Run "elevasis creds list" to see available credentials.`
|
|
47894
|
+
Run "elevasis-sdk creds list" to see available credentials.`
|
|
47926
47895
|
);
|
|
47927
47896
|
}
|
|
47928
47897
|
spinner.stop();
|
|
@@ -47971,22 +47940,22 @@ function registerCredsCommand(program3) {
|
|
|
47971
47940
|
// src/cli/index.ts
|
|
47972
47941
|
(0, import_dotenv.config)({ path: (0, import_path5.resolve)(process.cwd(), ".env"), override: true });
|
|
47973
47942
|
var program2 = new Command();
|
|
47974
|
-
program2.name("elevasis").description(
|
|
47943
|
+
program2.name("elevasis-sdk").description(
|
|
47975
47944
|
source_default.cyan("Elevasis SDK CLI") + `
|
|
47976
47945
|
|
|
47977
47946
|
Commands:
|
|
47978
|
-
elevasis check Validate project resources
|
|
47979
|
-
elevasis deploy Bundle and deploy to platform
|
|
47980
|
-
elevasis resources List deployed resources
|
|
47981
|
-
elevasis describe <resourceId> Describe a resource
|
|
47982
|
-
elevasis exec <resourceId> -i '{}' Execute a resource
|
|
47983
|
-
elevasis executions <resourceId> List execution history
|
|
47984
|
-
elevasis execution <resourceId> <id> Get execution details
|
|
47985
|
-
elevasis deployments List deployments
|
|
47986
|
-
elevasis update Update workspace scaffold to latest template
|
|
47987
|
-
elevasis init [directory] Scaffold a new workspace
|
|
47988
|
-
|
|
47989
|
-
Use "elevasis <command> --help" for more information about a command.`
|
|
47947
|
+
elevasis-sdk check Validate project resources
|
|
47948
|
+
elevasis-sdk deploy Bundle and deploy to platform
|
|
47949
|
+
elevasis-sdk resources List deployed resources
|
|
47950
|
+
elevasis-sdk describe <resourceId> Describe a resource
|
|
47951
|
+
elevasis-sdk exec <resourceId> -i '{}' Execute a resource
|
|
47952
|
+
elevasis-sdk executions <resourceId> List execution history
|
|
47953
|
+
elevasis-sdk execution <resourceId> <id> Get execution details
|
|
47954
|
+
elevasis-sdk deployments List deployments
|
|
47955
|
+
elevasis-sdk update Update workspace scaffold to latest template
|
|
47956
|
+
elevasis-sdk init [directory] Scaffold a new workspace
|
|
47957
|
+
|
|
47958
|
+
Use "elevasis-sdk <command> --help" for more information about a command.`
|
|
47990
47959
|
).version(SDK_VERSION);
|
|
47991
47960
|
registerCheckCommand(program2);
|
|
47992
47961
|
registerDeployCommand(program2);
|