@elevasis/sdk 1.8.0 → 1.8.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 CHANGED
@@ -40507,12 +40507,12 @@ function wrapAction(commandName, fn) {
40507
40507
  return async (...args) => {
40508
40508
  try {
40509
40509
  await fn(...args);
40510
- process.exit(0);
40510
+ process.exitCode = 0;
40511
40511
  } catch (error46) {
40512
40512
  const errorMessage = error46 instanceof Error ? error46.message : String(error46);
40513
40513
  console.error(source_default.red("\nError:"), errorMessage);
40514
40514
  console.error(source_default.gray(`Run "elevasis-sdk ${commandName} --help" for more information`));
40515
- process.exit(1);
40515
+ process.exitCode = 1;
40516
40516
  }
40517
40517
  };
40518
40518
  }
@@ -40520,7 +40520,7 @@ function wrapAction(commandName, fn) {
40520
40520
  // package.json
40521
40521
  var package_default = {
40522
40522
  name: "@elevasis/sdk",
40523
- version: "1.8.0",
40523
+ version: "1.8.2",
40524
40524
  description: "SDK for building Elevasis organization resources",
40525
40525
  type: "module",
40526
40526
  bin: {
@@ -40950,17 +40950,25 @@ var POLL_INTERVAL_MS = 3e3;
40950
40950
  async function pollForCompletion(resourceId, executionId, apiUrl) {
40951
40951
  const pollSpinner = ora("Waiting for completion...").start();
40952
40952
  const startTime = Date.now();
40953
+ let interrupted = false;
40953
40954
  const cleanup = () => {
40955
+ interrupted = true;
40956
+ process.removeListener("SIGINT", cleanup);
40954
40957
  pollSpinner.stop();
40955
40958
  console.log();
40956
40959
  console.log(source_default.yellow("Polling stopped. Execution continues on server."));
40957
40960
  console.log(source_default.gray(" Execution ID:"), source_default.cyan(executionId));
40958
40961
  console.log(source_default.dim(" Check status manually or re-run with --async"));
40959
- process.exit(0);
40960
40962
  };
40961
40963
  process.on("SIGINT", cleanup);
40962
40964
  while (true) {
40965
+ if (interrupted) {
40966
+ return;
40967
+ }
40963
40968
  await new Promise((resolve5) => setTimeout(resolve5, POLL_INTERVAL_MS));
40969
+ if (interrupted) {
40970
+ return;
40971
+ }
40964
40972
  const elapsed = Math.round((Date.now() - startTime) / 1e3);
40965
40973
  pollSpinner.text = `Waiting for completion... (${elapsed}s)`;
40966
40974
  try {
@@ -41078,7 +41086,7 @@ function registerExecCommand(program3) {
41078
41086
  console.log(source_default.yellow("Could not recover. The execution may still be running on the server."));
41079
41087
  console.log(source_default.dim(" Check status manually or re-run with --async"));
41080
41088
  }
41081
- process.exit(0);
41089
+ return;
41082
41090
  }
41083
41091
  spinner.fail(source_default.red("Execution failed"));
41084
41092
  throw error46;
@@ -42293,7 +42301,7 @@ function registerTaskGet(program3) {
42293
42301
  program3.command("project:task:get <id>").description("Get a task by ID\n Example: elevasis-sdk project:task:get <uuid>").option("--api-url <url>", "API base URL").option("--pretty", "Render human-readable output instead of raw JSON").action(
42294
42302
  wrapAction("project:task:get", async (id, options) => {
42295
42303
  const apiUrl = resolveApiUrl(options.apiUrl);
42296
- const result = await apiGet(`/api/external/tasks/${id}`, apiUrl);
42304
+ const result = await apiGet(`/api/external/project-tasks/${id}`, apiUrl);
42297
42305
  if (options.pretty) {
42298
42306
  const t = result.task;
42299
42307
  console.log(source_default.cyan(`
@@ -42423,7 +42431,7 @@ function registerTaskResume(program3) {
42423
42431
  ).option("--api-url <url>", "API base URL").option("--pretty", "Render a human-readable resume briefing instead of raw JSON").action(
42424
42432
  wrapAction("project:task:resume", async (id, options) => {
42425
42433
  const apiUrl = resolveApiUrl(options.apiUrl);
42426
- const result = await apiGet(`/api/external/tasks/${id}`, apiUrl);
42434
+ const result = await apiGet(`/api/external/project-tasks/${id}`, apiUrl);
42427
42435
  const task = result.task;
42428
42436
  const ctx = task.resume_context ?? {};
42429
42437
  if (options.pretty) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elevasis/sdk",
3
- "version": "1.8.0",
3
+ "version": "1.8.2",
4
4
  "description": "SDK for building Elevasis organization resources",
5
5
  "type": "module",
6
6
  "bin": {
@@ -44,7 +44,7 @@
44
44
  "tsup": "^8.0.0",
45
45
  "typescript": "5.9.2",
46
46
  "zod": "^4.1.0",
47
- "@repo/core": "0.7.0",
47
+ "@repo/core": "0.7.1",
48
48
  "@repo/typescript-config": "0.0.0"
49
49
  },
50
50
  "scripts": {
@@ -15,3 +15,21 @@
15
15
  [2026-04-21T02:40:59.696Z] SKIP — registry not found (pre-SDK-delivery)
16
16
  [2026-04-21T02:46:47.986Z] SKIP — registry not found (pre-SDK-delivery)
17
17
  [2026-04-21T02:46:54.532Z] SKIP — registry not found (pre-SDK-delivery)
18
+ [2026-04-21T07:44:32.528Z] SKIP — registry not found (pre-SDK-delivery)
19
+ [2026-04-21T07:52:53.483Z] SKIP — registry not found (pre-SDK-delivery)
20
+ [2026-04-21T07:54:29.656Z] SKIP — registry not found (pre-SDK-delivery)
21
+ [2026-04-21T07:54:33.615Z] SKIP — registry not found (pre-SDK-delivery)
22
+ [2026-04-21T07:57:28.696Z] SKIP — registry not found (pre-SDK-delivery)
23
+ [2026-04-21T08:00:48.300Z] SKIP — registry not found (pre-SDK-delivery)
24
+ [2026-04-21T08:00:49.082Z] SKIP — registry not found (pre-SDK-delivery)
25
+ [2026-04-21T08:00:50.494Z] SKIP — registry not found (pre-SDK-delivery)
26
+ [2026-04-21T08:00:56.735Z] SKIP — registry not found (pre-SDK-delivery)
27
+ [2026-04-21T08:00:58.798Z] SKIP — registry not found (pre-SDK-delivery)
28
+ [2026-04-21T08:01:07.662Z] SKIP — registry not found (pre-SDK-delivery)
29
+ [2026-04-21T08:01:19.062Z] SKIP — registry not found (pre-SDK-delivery)
30
+ [2026-04-21T08:01:24.353Z] SKIP — registry not found (pre-SDK-delivery)
31
+ [2026-04-21T08:01:42.662Z] SKIP — registry not found (pre-SDK-delivery)
32
+ [2026-04-21T08:12:30.121Z] SKIP — registry not found (pre-SDK-delivery)
33
+ [2026-04-21T08:14:55.475Z] SKIP — registry not found (pre-SDK-delivery)
34
+ [2026-04-21T08:17:01.426Z] SKIP — registry not found (pre-SDK-delivery)
35
+ [2026-04-21T08:36:02.820Z] SKIP — registry not found (pre-SDK-delivery)
@@ -11,10 +11,10 @@ This operation handles both toggling existing features and introducing custom fe
11
11
 
12
12
  ## Background: Level A vs Level B
13
13
 
14
- - **Level A (config-only edit):** The feature exists in the platform defaults
15
- (`packages/core/src/organization-model/defaults.ts`). The adapter in
16
- `foundations/config/organization-model.ts` overrides its `enabled` flag or adjusts metadata.
17
- No new TypeScript files needed.
14
+ - **Level A (config-only edit):** The feature exists in the platform defaults (see
15
+ `node_modules/@elevasis/sdk/reference/scaffold/reference/contracts.md` for the default feature
16
+ set). The adapter in `foundations/config/organization-model.ts` overrides its `enabled` flag or
17
+ adjusts metadata. No new TypeScript files needed.
18
18
 
19
19
  - **Level B (new extension file):** The feature does not exist in platform defaults. A new
20
20
  feature ID and manifest need to be declared. This requires a new TypeScript file under
@@ -23,7 +23,8 @@ This operation handles both toggling existing features and introducing custom fe
23
23
 
24
24
  ## Schema reference
25
25
 
26
- Source: `packages/core/src/organization-model/domains/features.ts`
26
+ Source: `node_modules/@elevasis/core/organization-model` (published types) or
27
+ `node_modules/@elevasis/sdk/reference/scaffold/reference/contracts.md` (auto-generated shapes)
27
28
 
28
29
  ```typescript
29
30
  FeatureSchema = z.object({
@@ -40,7 +41,7 @@ FeatureSchema = z.object({
40
41
  })
41
42
  ```
42
43
 
43
- Platform default feature IDs (from `packages/core/src/organization-model/contracts.ts`):
44
+ Platform default feature IDs (from `node_modules/@elevasis/sdk/reference/scaffold/reference/contracts.md`):
44
45
  `crm`, `lead-gen`, `projects`, `operations`, `monitoring`, `settings`, `seo`
45
46
 
46
47
  Where this lands in the adapter: `foundations/config/organization-model.ts` under the `features`
@@ -54,8 +55,8 @@ merge), so the adapter must redeclare all features it wants to override.
54
55
  ### Step 1: Read current state
55
56
 
56
57
  Read `foundations/config/organization-model.ts` and extract the current `features` array from the
57
- adapter. Also read `packages/core/src/organization-model/defaults.ts` to see what the platform
58
- defaults look like.
58
+ adapter. Also read `node_modules/@elevasis/sdk/reference/scaffold/reference/contracts.md` to see
59
+ what the platform defaults look like.
59
60
 
60
61
  Present a combined view:
61
62
 
@@ -132,7 +132,7 @@ After a successful push, mark any linked project task as `submitted`. This is a
132
132
  2. **Fire the transition** (only when a single confident task ID is resolved):
133
133
 
134
134
  ```bash
135
- pnpm -C operations exec elevasis-sdk project:task:update <task-id> --status submitted
135
+ pnpm elevasis-sdk project:task:update <task-id> --status submitted
136
136
  ```
137
137
 
138
138
  3. **Failure handling.** If the CLI call errors, no task ID can be resolved, or the user declines, emit a single warning line and continue:
@@ -40,7 +40,7 @@ For dev vs prod targeting:
40
40
  Validate all resource definitions (schemas, contracts, config):
41
41
 
42
42
  ```bash
43
- pnpm -C operations exec elevasis-sdk check
43
+ pnpm elevasis-sdk check
44
44
  ```
45
45
 
46
46
  Reports: resource count, validation errors, schema serialization warnings. Exit code 0 = pass.
@@ -50,7 +50,7 @@ Reports: resource count, validation errors, schema serialization warnings. Exit
50
50
  Bundle and deploy resources to the Elevasis platform.
51
51
 
52
52
  ```bash
53
- pnpm -C operations exec elevasis-sdk deploy [--prod]
53
+ pnpm elevasis-sdk deploy [--prod]
54
54
  ```
55
55
 
56
56
  Replace `[--prod]` with `--prod` when targeting production.
@@ -68,10 +68,10 @@ Deploy replaces the previous active deployment. Resources become executable imme
68
68
  **Always run before executing.** Shows resource metadata, input/output schemas, and step chain:
69
69
 
70
70
  ```bash
71
- pnpm -C operations exec elevasis-sdk describe <resourceId>
71
+ pnpm elevasis-sdk describe <resourceId>
72
72
 
73
73
  # JSON output for programmatic use
74
- pnpm -C operations exec elevasis-sdk describe <resourceId> --json
74
+ pnpm elevasis-sdk describe <resourceId> --json
75
75
  ```
76
76
 
77
77
  Output includes: type, name, version, status, domains, input schema (required/optional fields with types), output schema, step definitions with entry point and routing.
@@ -82,14 +82,14 @@ Run a deployed resource. **Always `describe` first to see the input schema.**
82
82
 
83
83
  ```bash
84
84
  # Simple input (inline JSON)
85
- pnpm -C operations exec elevasis-sdk exec <resourceId> -i '{"key": "value"}'
85
+ pnpm elevasis-sdk exec <resourceId> -i '{"key": "value"}'
86
86
 
87
87
  # Complex input (temp file -- PREFERRED for non-trivial payloads)
88
88
  # Write input to a temp file first, then reference it with -f
89
- pnpm -C operations exec elevasis-sdk exec <resourceId> -f .tmp-input.json
89
+ pnpm elevasis-sdk exec <resourceId> -f .tmp-input.json
90
90
 
91
91
  # Async execution (for long-running workflows -- polls until complete)
92
- pnpm -C operations exec elevasis-sdk exec <resourceId> -f .tmp-input.json --async
92
+ pnpm elevasis-sdk exec <resourceId> -f .tmp-input.json --async
93
93
  ```
94
94
 
95
95
  **When to use `-f` (file input):**
@@ -118,10 +118,10 @@ pnpm -C operations exec elevasis-sdk exec <resourceId> -f .tmp-input.json --asyn
118
118
  View all deployed resources:
119
119
 
120
120
  ```bash
121
- pnpm -C operations exec elevasis-sdk resources
121
+ pnpm elevasis-sdk resources
122
122
 
123
123
  # JSON output
124
- pnpm -C operations exec elevasis-sdk resources --json
124
+ pnpm elevasis-sdk resources --json
125
125
  ```
126
126
 
127
127
  Shows: resource ID, type (workflow/agent), name, description, status.
@@ -132,19 +132,19 @@ View past executions for a resource:
132
132
 
133
133
  ```bash
134
134
  # List recent executions (default: last 50)
135
- pnpm -C operations exec elevasis-sdk executions <resourceId>
135
+ pnpm elevasis-sdk executions <resourceId>
136
136
 
137
137
  # Filter by status
138
- pnpm -C operations exec elevasis-sdk executions <resourceId> --status failed --limit 10
138
+ pnpm elevasis-sdk executions <resourceId> --status failed --limit 10
139
139
 
140
140
  # View specific execution (full detail with logs)
141
- pnpm -C operations exec elevasis-sdk execution <resourceId> <executionId>
141
+ pnpm elevasis-sdk execution <resourceId> <executionId>
142
142
 
143
143
  # Logs only (skip metadata)
144
- pnpm -C operations exec elevasis-sdk execution <resourceId> <executionId> --logs-only
144
+ pnpm elevasis-sdk execution <resourceId> <executionId> --logs-only
145
145
 
146
146
  # Include input and result data
147
- pnpm -C operations exec elevasis-sdk execution <resourceId> <executionId> --input --result
147
+ pnpm elevasis-sdk execution <resourceId> <executionId> --input --result
148
148
  ```
149
149
 
150
150
  **`executions` flags:** `--limit <n>` (default 50), `--status running|completed|failed`, `--json`
@@ -158,7 +158,7 @@ Execution detail shows: status, start/end times, duration, input, result, error
158
158
  View deployment history:
159
159
 
160
160
  ```bash
161
- pnpm -C operations exec elevasis-sdk deployments
161
+ pnpm elevasis-sdk deployments
162
162
  ```
163
163
 
164
164
  Shows: deployment ID, SDK version, status (active/deploying/failed/stopped), created timestamp.
@@ -169,19 +169,19 @@ Manage integration credentials (API keys, webhook secrets):
169
169
 
170
170
  ```bash
171
171
  # List credentials (metadata only, secrets not exposed)
172
- pnpm -C operations exec elevasis-sdk creds list
172
+ pnpm elevasis-sdk creds list
173
173
 
174
174
  # Create a credential
175
- pnpm -C operations exec elevasis-sdk creds create --name my-api-key --type api-key --value '{"apiKey":"sk-..."}'
175
+ pnpm elevasis-sdk creds create --name my-api-key --type api-key --value '{"apiKey":"sk-..."}'
176
176
 
177
177
  # Update a credential value
178
- pnpm -C operations exec elevasis-sdk creds update my-api-key --value '{"apiKey":"new-key"}'
178
+ pnpm elevasis-sdk creds update my-api-key --value '{"apiKey":"new-key"}'
179
179
 
180
180
  # Rename a credential
181
- pnpm -C operations exec elevasis-sdk creds rename old-name --to new-name
181
+ pnpm elevasis-sdk creds rename old-name --to new-name
182
182
 
183
183
  # Delete a credential
184
- pnpm -C operations exec elevasis-sdk creds delete my-api-key --force
184
+ pnpm elevasis-sdk creds delete my-api-key --force
185
185
  ```
186
186
 
187
187
  Credential names: lowercase, digits, hyphens only (`^[a-z0-9]+(-[a-z0-9]+)*$`). Types: `api-key`, `webhook-secret`.
@@ -192,10 +192,10 @@ Rename a resource ID across all platform tables:
192
192
 
193
193
  ```bash
194
194
  # Dry run (preview only)
195
- pnpm -C operations exec elevasis-sdk rename old-id --to new-id
195
+ pnpm elevasis-sdk rename old-id --to new-id
196
196
 
197
197
  # Apply rename
198
- pnpm -C operations exec elevasis-sdk rename old-id --to new-id --execute
198
+ pnpm elevasis-sdk rename old-id --to new-id --execute
199
199
  ```
200
200
 
201
201
  Always dry-run first to see affected tables and row counts.
@@ -206,10 +206,10 @@ Mark execution errors as resolved:
206
206
 
207
207
  ```bash
208
208
  # Resolve a specific error
209
- pnpm -C operations exec elevasis-sdk error resolve <errorId>
209
+ pnpm elevasis-sdk error resolve <errorId>
210
210
 
211
211
  # Resolve all errors for an execution
212
- pnpm -C operations exec elevasis-sdk error resolve-execution <executionId>
212
+ pnpm elevasis-sdk error resolve-execution <executionId>
213
213
  ```
214
214
 
215
215
  ## Standard Workflow
@@ -35,6 +35,38 @@ allowed-tools: Bash, Read, Write, Edit, Glob, Grep
35
35
  - `/project checklist <client> "<milestone>"` — View checklist for a milestone.
36
36
  - `/project delete <client>` — Delete project (cascades milestones, tasks, notes).
37
37
 
38
+ ---
39
+
40
+ ## Ambient Vibe Integration
41
+
42
+ This skill is the landing point for three of the seven vibe intent types. Agents arriving from the ambient layer should behave identically to a direct invocation — vibe is a classifier, not a different code path.
43
+
44
+ | Vibe intent | What vibe detected | What to do here |
45
+ |---|---|---|
46
+ | **Capture** | "add a task", "remember to", "track this" | Draft the task/note, confirm with user, then `project:task:create` or `project:note:create` |
47
+ | **Transition** | "done", "stuck", "blocked", "finished" | Resolve current task from session context, confirm status, then `project:task:update --status <new>` |
48
+ | **Navigate** | "focus on", "switch to", "back to" | Resolve target via `project:resolve <query>` or `project:work <query>`, update scope, narrate new context |
49
+
50
+ **The full continuity loop** — how work flows across sessions:
51
+
52
+ ```
53
+ vibe (Capture) → /project task:create → task in DB
54
+
55
+ work happens
56
+
57
+ /save → project:task:save → prj_tasks.resume_context
58
+
59
+ next session: /project work <query>
60
+
61
+ project:work → resume brief (current state + next steps)
62
+
63
+ agent picks up exactly where it left off
64
+ ```
65
+
66
+ When a session begins with an ambiguous opening, check `project:work` before asking the user to re-explain. The resume brief is the canonical continuity payload — trust it.
67
+
68
+ ---
69
+
38
70
  ## Prerequisites
39
71
 
40
72
  **Run from the project root** (the directory containing `.elevasis`). Before issuing any other commands, run:
@@ -19,7 +19,7 @@ Auto-manage project documentation from conversation context, and fan out convers
19
19
 
20
20
  Before doing anything else, determine the active project / task:
21
21
 
22
- 1. Look for an active task-doc frontmatter in the current conversation or the most recently edited file under `docs/`. Expected frontmatter:
22
+ 1. Look for an active task-doc frontmatter in the current conversation or the most recently edited file. Expected frontmatter:
23
23
 
24
24
  ```yaml
25
25
  ---
@@ -56,7 +56,7 @@ Review the current conversation to identify:
56
56
 
57
57
  ### Step 3: Update Knowledge Docs
58
58
 
59
- Scan `docs/` for unindexed or stale knowledge docs and draft creates / updates / moves. All edits are on knowledge/architecture/feature docs -- NOT on task resume state (that flows to the DB in Step 4).
59
+ Scan for unindexed or stale knowledge docs and draft creates / updates / moves. This template does not have a `docs/` tree — look for any local knowledge files (`.claude/rules/`, `operations/src/README.md`, `foundations/`, or project-specific docs the user has created). All edits are on knowledge/architecture/feature docs -- NOT on task resume state (that flows to the DB in Step 4).
60
60
 
61
61
  Determine what needs to happen:
62
62
 
@@ -155,7 +155,7 @@ If no signal rises to note-worthy, skip this step entirely. Do not create filler
155
155
  Run this ONLY when Step 5 created a `blocker` note AND Step 1 resolved a task ID. It's the second half of the "I'm stuck" fanout: the note captures the why, this call flips the task's lifecycle state so it surfaces as blocked in portfolio views.
156
156
 
157
157
  ```bash
158
- pnpm -C operations exec elevasis-sdk project:task:update <task-uuid> --status blocked
158
+ pnpm elevasis-sdk project:task:update <task-uuid> --status blocked
159
159
  ```
160
160
 
161
161
  Rules:
@@ -148,16 +148,16 @@ Auto-submit (`--auto`) skips this confirmation entirely — use only when the ca
148
148
 
149
149
  ## Submit
150
150
 
151
- Once confirmed (or `--auto`), write the assembled JSON body to a temp file then submit via the SDK CLI:
151
+ Once confirmed (or `--auto`), write the assembled JSON body to a temp file under the project-root `tmp/` directory, then submit via the SDK CLI:
152
152
 
153
153
  ```bash
154
- # Write the report body to a temp file
155
- # (Use the Write tool to create request-report.json at the project root)
154
+ # Write the report body to tmp/request-report.json from the project root
155
+ # The template keeps tmp/ gitignored for transient CLI payloads
156
156
 
157
- pnpm elevasis-sdk request:submit --input-file ./request-report.json --pretty
157
+ pnpm elevasis-sdk request:submit -f tmp/request-report.json --cleanup-input --pretty
158
158
  ```
159
159
 
160
- Delete the temp file after submission succeeds or fails.
160
+ `--cleanup-input` removes the temp file automatically after a successful submission. If the command fails, leave the file in `tmp/` for inspection.
161
161
 
162
162
  ## Report Back
163
163
 
@@ -1,4 +1,4 @@
1
- <!-- Auto-generated on 2026-04-21T05:52:18.229Z by scripts/monorepo/generate-scaffold-contracts.js -->
1
+ <!-- Auto-generated on 2026-04-21 by scripts/monorepo/generate-scaffold-contracts.js -->
2
2
  ---
3
3
  title: Reference Contracts
4
4
  description: Auto-generated TypeScript contracts for SDK consumers. Do not edit manually.
@@ -363,6 +363,8 @@ export interface ElevasisFeaturesProviderProps {
363
363
  timeRange?: TimeRange
364
364
  operationsApiUrl?: string
365
365
  operationsSSEManager?: SSEConnectionManagerLike
366
+ deliveryApiUrl?: string
367
+ deliverySSEManager?: SSEConnectionManagerLike
366
368
  disabledSubsectionPaths?: string[]
367
369
  children: ReactNode
368
370
  }
@@ -381,6 +383,8 @@ export interface ElevasisFeaturesContextValue {
381
383
  timeRange?: TimeRange
382
384
  operationsApiUrl?: string
383
385
  operationsSSEManager?: SSEConnectionManagerLike
386
+ deliveryApiUrl?: string
387
+ deliverySSEManager?: SSEConnectionManagerLike
384
388
  disabledSubsectionPaths: string[]
385
389
  isFeatureEnabled: (key: string) => boolean
386
390
  getResolvedFeature: (key: string) => ResolvedFeatureModule | undefined
@@ -130,6 +130,7 @@ Consumer nav derivation runs locally from `shellModel.navItems`; the provider no
130
130
  - `enabledResolvedFeatures` -- filtered to `access.enabled === true`
131
131
  - `timeRange`
132
132
  - `operationsApiUrl`, `operationsSSEManager`
133
+ - `deliveryApiUrl`, `deliverySSEManager`
133
134
  - `organizationModel`
134
135
  - `organizationGraph` (resolved from `operations.organization-graph` surface; see [Organization Graph](../core/organization-graph.mdx))
135
136
  - `disabledSubsectionPaths` -- used by consumers like `_template` to hide specific subsections (e.g., `/settings/appearance`)