@elevasis/sdk 1.44.2 → 1.45.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.cjs +1001 -652
- package/dist/index.d.ts +1045 -509
- package/dist/index.js +748 -690
- package/dist/node/index.d.ts +105 -97
- package/dist/test-utils/index.d.ts +42 -28
- package/dist/test-utils/index.js +549 -732
- package/dist/worker/index.d.ts +12112 -0
- package/dist/worker/index.js +211 -186
- package/package.json +6 -9
- package/reference/_navigation.md +151 -21
- package/reference/_reference-manifest.json +186 -4
- package/reference/claude-config.md +8 -0
- package/reference/core/index.mdx +3 -3
- package/reference/examples/organization-model.ts +117 -111
- package/reference/index.mdx +4 -4
- package/reference/rules/active-change-index.md +40 -54
- package/reference/rules/agent-runtime.md +81 -0
- package/reference/rules/agent-start-here.md +71 -163
- package/reference/rules/deployment.md +33 -10
- package/reference/rules/error-handling.md +26 -0
- package/reference/rules/execution.md +13 -0
- package/reference/rules/frontend.md +10 -3
- package/reference/rules/observability.md +9 -1
- package/reference/rules/operations.md +26 -17
- package/reference/rules/organization-model.md +74 -88
- package/reference/rules/organization-os.md +71 -88
- package/reference/rules/package-taxonomy.md +11 -2
- package/reference/rules/platform.md +13 -7
- package/reference/rules/shared-types.md +15 -0
- package/reference/rules/task-tracking.md +30 -5
- package/reference/rules/ui.md +145 -3
- package/reference/rules/vibe-intents.md +271 -0
- package/reference/rules/vibe.md +17 -243
- package/reference/scaffold/core/organization-graph.mdx +111 -97
- package/reference/scaffold/core/organization-model.mdx +234 -214
- package/reference/scaffold/operations/propagation-pipeline.md +1 -1
- package/reference/scaffold/operations/scaffold-maintenance.md +19 -18
- package/reference/scaffold/operations/workflow-recipes.md +71 -19
- package/reference/scaffold/recipes/add-a-feature.md +156 -146
- package/reference/scaffold/recipes/add-a-resource.md +123 -117
- package/reference/scaffold/recipes/customize-crm-actions.md +25 -10
- package/reference/scaffold/recipes/customize-knowledge-browser.md +52 -117
- package/reference/scaffold/recipes/customize-organization-model.md +161 -149
- package/reference/scaffold/recipes/extend-a-base-entity.md +156 -140
- package/reference/scaffold/recipes/extend-crm.md +16 -11
- package/reference/scaffold/recipes/extend-lead-gen.md +25 -7
- package/reference/scaffold/recipes/gate-by-feature-or-admin.md +160 -118
- package/reference/scaffold/recipes/index.md +2 -2
- package/reference/scaffold/recipes/query-the-knowledge-graph.md +23 -23
- package/reference/scaffold/reference/contracts.md +12 -1
- package/reference/scaffold/reference/glossary.md +3 -3
- package/reference/scaffold/reference/system-interface-capabilities.md +5 -4
- package/reference/scaffold/ui/composition-extensibility.mdx +271 -232
- package/reference/scaffold/ui/feature-flags-and-gating.md +14 -6
- package/reference/scaffold/ui/feature-shell.mdx +279 -62
- package/reference/scaffold/ui/recipes.md +229 -197
- package/reference/sdk/cli-management.mdx +77 -29
- package/reference/sdk/concepts.mdx +2 -0
- package/reference/sdk/define-builders.mdx +76 -0
- package/reference/sdk/deployment/command-center.mdx +6 -2
- package/reference/sdk/deployment/execution-reference.mdx +64 -186
- package/reference/sdk/deployment/index.mdx +2 -0
- package/reference/sdk/exports.mdx +4 -4
- package/reference/sdk/framework/agent.mdx +49 -119
- package/reference/sdk/framework/index.mdx +46 -65
- package/reference/sdk/framework/project-structure.mdx +150 -205
- package/reference/sdk/framework/tutorial-system.mdx +2 -2
- package/reference/sdk/human-in-the-loop.mdx +152 -0
- package/reference/sdk/index.mdx +6 -7
- package/reference/sdk/platform-tools/index.mdx +12 -0
- package/reference/sdk/platform-tools/type-safety.mdx +4 -0
- package/reference/sdk/project-deployment-spec.mdx +131 -0
- package/reference/sdk/resources/index.mdx +23 -7
- package/reference/sdk/resources/patterns.mdx +54 -24
- package/reference/sdk/resources/types.mdx +7 -4
- package/reference/sdk/templates/data-enrichment.mdx +7 -3
- package/reference/sdk/templates/email-sender.mdx +139 -135
- package/reference/sdk/templates/lead-scorer.mdx +5 -1
- package/reference/sdk/templates/pdf-generator.mdx +155 -151
- package/reference/sdk/templates/recurring-job.mdx +195 -189
- package/reference/sdk/templates/text-classifier.mdx +4 -0
- package/reference/sdk/templates/web-scraper.mdx +139 -135
- package/reference/spine/spine-primer.md +135 -96
- package/reference/ui/index.mdx +14 -7
- package/dist/types/worker/adapters/anymailfinder.d.ts +0 -14
- package/dist/types/worker/adapters/apify.d.ts +0 -14
- package/dist/types/worker/adapters/approval.d.ts +0 -23
- package/dist/types/worker/adapters/attio.d.ts +0 -22
- package/dist/types/worker/adapters/clickup.d.ts +0 -22
- package/dist/types/worker/adapters/create-adapter.d.ts +0 -41
- package/dist/types/worker/adapters/crm.d.ts +0 -20
- package/dist/types/worker/adapters/dropbox.d.ts +0 -14
- package/dist/types/worker/adapters/email.d.ts +0 -25
- package/dist/types/worker/adapters/execution.d.ts +0 -22
- package/dist/types/worker/adapters/gmail.d.ts +0 -14
- package/dist/types/worker/adapters/google-sheets.d.ts +0 -14
- package/dist/types/worker/adapters/index.d.ts +0 -33
- package/dist/types/worker/adapters/instantly.d.ts +0 -14
- package/dist/types/worker/adapters/lead.d.ts +0 -28
- package/dist/types/worker/adapters/list.d.ts +0 -9
- package/dist/types/worker/adapters/llm.d.ts +0 -45
- package/dist/types/worker/adapters/millionverifier.d.ts +0 -14
- package/dist/types/worker/adapters/notification.d.ts +0 -28
- package/dist/types/worker/adapters/pdf.d.ts +0 -22
- package/dist/types/worker/adapters/projects.d.ts +0 -20
- package/dist/types/worker/adapters/resend.d.ts +0 -14
- package/dist/types/worker/adapters/scheduler.d.ts +0 -25
- package/dist/types/worker/adapters/signature-api.d.ts +0 -14
- package/dist/types/worker/adapters/storage.d.ts +0 -33
- package/dist/types/worker/adapters/stripe.d.ts +0 -14
- package/dist/types/worker/adapters/tomba.d.ts +0 -14
- package/dist/types/worker/index.d.ts +0 -60
- package/dist/types/worker/platform.d.ts +0 -90
- package/dist/types/worker/utils.d.ts +0 -9
- package/reference/claude-config/Overview.md +0 -230
- package/reference/claude-config/hooks/post-edit-validate.mjs +0 -98
- package/reference/claude-config/hooks/scaffold-registry-reminder.mjs +0 -187
- package/reference/claude-config/hooks/tool-failure-recovery.mjs +0 -73
- package/reference/claude-config/registries/graph-skills.json +0 -4
- package/reference/claude-config/registries/knowledge-flags.json +0 -154
- package/reference/claude-config/registries/skill-coverage.json +0 -20
- package/reference/claude-config/rules/active-change-index.md +0 -22
- package/reference/claude-config/rules/agent-start-here.md +0 -22
- package/reference/claude-config/rules/deployment.md +0 -22
- package/reference/claude-config/rules/error-handling.md +0 -22
- package/reference/claude-config/rules/execution.md +0 -22
- package/reference/claude-config/rules/frontend.md +0 -22
- package/reference/claude-config/rules/observability.md +0 -22
- package/reference/claude-config/rules/operations.md +0 -22
- package/reference/claude-config/rules/organization-model.md +0 -22
- package/reference/claude-config/rules/organization-os.md +0 -22
- package/reference/claude-config/rules/package-taxonomy.md +0 -22
- package/reference/claude-config/rules/platform.md +0 -22
- package/reference/claude-config/rules/shared-types.md +0 -22
- package/reference/claude-config/rules/task-tracking.md +0 -22
- package/reference/claude-config/rules/topbar-actions.md +0 -70
- package/reference/claude-config/rules/ui.md +0 -22
- package/reference/claude-config/rules/vibe.md +0 -22
- package/reference/claude-config/scripts/statusline-command.js +0 -18
- package/reference/claude-config/settings.json +0 -30
- package/reference/claude-config/skills/client/SKILL.md +0 -201
- package/reference/claude-config/skills/deploy/SKILL.md +0 -159
- package/reference/claude-config/skills/dsp/SKILL.md +0 -66
- package/reference/claude-config/skills/elevasis/SKILL.md +0 -251
- package/reference/claude-config/skills/explore/SKILL.md +0 -78
- package/reference/claude-config/skills/git-sync/SKILL.md +0 -166
- package/reference/claude-config/skills/om/SKILL.md +0 -475
- package/reference/claude-config/skills/om/operations/build.md +0 -237
- package/reference/claude-config/skills/om/operations/codify-level-a.md +0 -109
- package/reference/claude-config/skills/om/operations/codify-level-b.md +0 -159
- package/reference/claude-config/skills/om/operations/customers.md +0 -114
- package/reference/claude-config/skills/om/operations/features.md +0 -88
- package/reference/claude-config/skills/om/operations/goals.md +0 -123
- package/reference/claude-config/skills/om/operations/identity.md +0 -97
- package/reference/claude-config/skills/om/operations/labels.md +0 -110
- package/reference/claude-config/skills/om/operations/offerings.md +0 -114
- package/reference/claude-config/skills/om/operations/roles.md +0 -104
- package/reference/claude-config/skills/om/operations/scaffold.md +0 -163
- package/reference/claude-config/skills/om/operations/techStack.md +0 -38
- package/reference/claude-config/skills/project/SKILL.md +0 -1114
- package/reference/claude-config/skills/run-ui/SKILL.md +0 -73
- package/reference/claude-config/skills/save/SKILL.md +0 -183
- package/reference/claude-config/skills/setup/SKILL.md +0 -290
- package/reference/claude-config/skills/status/SKILL.md +0 -59
- package/reference/claude-config/skills/submit-request/SKILL.md +0 -180
- package/reference/claude-config/skills/sync/SKILL.md +0 -47
- package/reference/claude-config/skills/tutorial/SKILL.md +0 -259
- package/reference/claude-config/skills/tutorial/progress-template.md +0 -74
- package/reference/claude-config/skills/tutorial/technical.md +0 -1303
- package/reference/claude-config/skills/tutorial/vibe-coder.md +0 -890
- package/reference/claude-config/sync-notes/2026-04-22-git-sync-and-sync-notes.md +0 -27
- package/reference/claude-config/sync-notes/2026-04-22-lead-gen-deliverability-removal.md +0 -30
- package/reference/claude-config/sync-notes/2026-04-24-test-utils-and-template-tests.md +0 -73
- package/reference/claude-config/sync-notes/2026-04-24-ui-consolidation-and-sdk-cli-train.md +0 -86
- package/reference/claude-config/sync-notes/2026-04-25-auth-role-system-and-settings-roles.md +0 -55
- package/reference/claude-config/sync-notes/2026-04-27-crm-hitl-action-layer-cutover.md +0 -97
- package/reference/claude-config/sync-notes/2026-04-27-lead-gen-substrate-train.md +0 -112
- package/reference/claude-config/sync-notes/2026-04-29-crm-state-and-lead-gen-processing-status.md +0 -93
- package/reference/claude-config/sync-notes/2026-05-02-crm-ownership-next-action.md +0 -58
- package/reference/claude-config/sync-notes/2026-05-02-template-hardcode-workos-config.md +0 -56
- package/reference/claude-config/sync-notes/2026-05-04-elevasis-workspace.md +0 -71
- package/reference/claude-config/sync-notes/2026-05-04-knowledge-bundle.md +0 -83
- package/reference/claude-config/sync-notes/2026-05-04-template-skills-run-ui-and-tutorial.md +0 -59
- package/reference/claude-config/sync-notes/2026-05-05-list-builder.md +0 -42
- package/reference/claude-config/sync-notes/2026-05-06-crm-spine.md +0 -60
- package/reference/claude-config/sync-notes/2026-05-06-sdk-changes-release-train.md +0 -37
- package/reference/claude-config/sync-notes/2026-05-07-sdk-changes-release-train.md +0 -34
- package/reference/claude-config/sync-notes/2026-05-08-resource-governance-scaffold-guidance.md +0 -38
- package/reference/claude-config/sync-notes/2026-05-09-clients-domain.md +0 -32
- package/reference/claude-config/sync-notes/2026-05-09-command-system.md +0 -33
- package/reference/claude-config/sync-notes/2026-05-09-resource-governance-and-misc.md +0 -69
- package/reference/claude-config/sync-notes/2026-05-12-sdk-ready-release-train.md +0 -30
- package/reference/claude-config/sync-notes/2026-05-14-organization-model-ontology-refactor.md +0 -45
- package/reference/claude-config/sync-notes/2026-05-15-om-skill-rename-and-write-family.md +0 -52
- package/reference/claude-config/sync-notes/2026-05-17-sdk-boundary-consolidation.md +0 -33
- package/reference/claude-config/sync-notes/2026-05-20-om-define-helpers.md +0 -32
- package/reference/claude-config/sync-notes/2026-05-22-access-model-and-right-panel.md +0 -43
- package/reference/claude-config/sync-notes/2026-05-22-lead-gen-tenant-config.md +0 -40
- package/reference/claude-config/sync-notes/2026-05-22-org-model-multi-file-split.md +0 -61
- package/reference/claude-config/sync-notes/2026-05-23-branding-names-to-identity.md +0 -49
- package/reference/claude-config/sync-notes/2026-05-23-lead-gen-manage-access.md +0 -31
- package/reference/claude-config/sync-notes/2026-05-23-om-deployment-drift-detection.md +0 -42
- package/reference/claude-config/sync-notes/2026-05-23-om-full-model-deploy-contract.md +0 -33
- package/reference/claude-config/sync-notes/2026-05-23-ui-sdk-package-fixes.md +0 -37
- package/reference/claude-config/sync-notes/2026-05-24-platform-invite-router-core-baseline.md +0 -28
- package/reference/claude-config/sync-notes/2026-05-24-system-interface-readiness.md +0 -43
- package/reference/claude-config/sync-notes/2026-05-25-invitation-login-loader.md +0 -26
- package/reference/claude-config/sync-notes/2026-05-25-om-topbar-requests.md +0 -33
- package/reference/claude-config/sync-notes/2026-05-25-system-interface-profile-registry-and-substrate.md +0 -35
- package/reference/claude-config/sync-notes/2026-05-25-tenant-om-scaffold-cli.md +0 -49
- package/reference/claude-config/sync-notes/2026-05-25-vibe-operate-intent.md +0 -47
- package/reference/claude-config/sync-notes/2026-05-28-om-snapshot-sdk-workflow-config.md +0 -33
- package/reference/claude-config/sync-notes/2026-05-30-client-source-and-om-profiles.md +0 -39
- package/reference/claude-config/sync-notes/2026-06-02-knowledge-nested-group-routing.md +0 -27
- package/reference/claude-config/sync-notes/2026-06-02-nest-projects-under-platform.md +0 -45
- package/reference/claude-config/sync-notes/2026-06-03-skill-autogen-and-client-skill.md +0 -34
- package/reference/claude-config/sync-notes/2026-06-04-scaffold-registry-lane-severity.md +0 -34
- package/reference/claude-config/sync-notes/2026-06-05-appearance-app-mode-decouple.md +0 -29
- package/reference/claude-config/sync-notes/2026-06-05-ontology-endpoint-rename-and-knowledge-browser-ui.md +0 -86
- package/reference/claude-config/sync-notes/2026-06-06-om-build-systems-scaffold.md +0 -47
- package/reference/claude-config/sync-notes/2026-06-06-om-item-copy-references.md +0 -50
- package/reference/claude-config/sync-notes/2026-06-08-knowledge-base-page-not-found-fix.md +0 -76
- package/reference/claude-config/sync-notes/2026-06-09-agent-sessions-public-agent-chat-route.md +0 -75
- package/reference/claude-config/sync-notes/2026-06-09-sdk-cli-load-org-model-resolution.md +0 -42
- package/reference/claude-config/sync-notes/2026-06-12-agent-grants-visualizer-operations.md +0 -30
- package/reference/claude-config/sync-notes/2026-06-14-session-ux-and-project-cli-json.md +0 -33
- package/reference/claude-config/sync-notes/2026-06-14-shared-session-conversation-view.md +0 -26
- package/reference/claude-config/sync-notes/2026-06-15-session-chat-zero-wiring.md +0 -46
- package/reference/claude-config/sync-notes/2026-06-17-agent-session-ux-features.md +0 -34
- package/reference/claude-config/sync-notes/2026-06-25-shared-page-scroll-contract-guard.md +0 -52
- package/reference/claude-config/sync-notes/2026-06-26-leadgen-overview-om-telemetry.md +0 -47
- package/reference/claude-config/sync-notes/2026-07-21-agent-scaffold-hardening.md +0 -75
- package/reference/claude-config/sync-notes/2026-07-23-agent-session-memory.md +0 -49
- package/reference/claude-config/sync-notes/2026-07-23-workos-org-marker.md +0 -50
- package/reference/claude-config/sync-notes/2026-07-24-claude-5-models-and-session-surface-fixes.md +0 -116
- package/reference/claude-config/sync-notes/2026-07-27-agent-strict-output-and-turn-drift.md +0 -73
- package/reference/claude-config/sync-notes/2026-07-28-agent-reply-is-its-own-field.md +0 -84
- package/reference/claude-config/sync-notes/2026-07-30-login-screen-and-member-provisioning-state.md +0 -114
- package/reference/claude-config/sync-notes/2026-08-02-auth-guard-defaults-and-truncation-fix.md +0 -122
- package/reference/claude-config/sync-notes/2026-08-03-cli-gateway-errors-and-request-timeout.md +0 -120
- package/reference/claude-config/sync-notes/README.md +0 -43
- package/reference/sdk/framework/interaction-guidance.mdx +0 -182
- package/reference/sdk/framework/memory.mdx +0 -326
- package/reference/sdk/framework/resource-documentation.mdx +0 -90
- package/reference/sdk/roadmap.mdx +0 -164
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
# /om build system scaffold added to tenant template
|
|
2
|
-
|
|
3
|
-
## Why this note exists
|
|
4
|
-
|
|
5
|
-
The monorepo added a guided `/om build` operation (Steps 2-3 of the Building-Systems Scaffold
|
|
6
|
-
task) that sequences the full platform runbook for authoring an Organization Model System end
|
|
7
|
-
to end. This train mirrors a thinner, Codify-ceremony-framed variant of that operation into the
|
|
8
|
-
tenant template. Tenant projects author OM via the Codify ceremony (not the platform PR-review
|
|
9
|
-
runbook), so the tenant variant is scoped accordingly.
|
|
10
|
-
|
|
11
|
-
Changes in this train:
|
|
12
|
-
|
|
13
|
-
- New operation file `.claude/skills/om/operations/build.md` (Codify-framed, 8 phases).
|
|
14
|
-
- `metadata.promptSignals` in `.claude/skills/om/SKILL.md` extended with four build-intent
|
|
15
|
-
phrases: `build a system`, `design a system`, `create a system that`, `system architecture`.
|
|
16
|
-
- `## Operations` table added to `.claude/skills/om/SKILL.md` with the `build` EXECUTE row.
|
|
17
|
-
- Build-intent routing branch added to the Decision Tree section of `SKILL.md` so free-text
|
|
18
|
-
build intent routes to `/om build` before the 5-bucket read/write buckets.
|
|
19
|
-
|
|
20
|
-
## Applies to
|
|
21
|
-
|
|
22
|
-
- All template-derived projects that ship the `om` skill (`.claude/skills/om/SKILL.md`).
|
|
23
|
-
- Any project where an agent might express intent to build or design a new System.
|
|
24
|
-
|
|
25
|
-
## Required actions
|
|
26
|
-
|
|
27
|
-
1. Pull template changes so the new `build.md` operation file and the updated `SKILL.md` are
|
|
28
|
-
present in `.claude/skills/om/`.
|
|
29
|
-
2. No package baseline bumps required -- this is a pure agent-scaffold change (no published
|
|
30
|
-
package version involved).
|
|
31
|
-
3. No `pnpm install` needed unless the `/git-sync` pull also brings unrelated baseline changes.
|
|
32
|
-
|
|
33
|
-
## Verification
|
|
34
|
-
|
|
35
|
-
- `.claude/skills/om/operations/build.md` is present.
|
|
36
|
-
- `.claude/skills/om/SKILL.md` contains the `build` row in the `## Operations` table.
|
|
37
|
-
- `.claude/skills/om/SKILL.md` `metadata.promptSignals.phrases` includes `build a system`,
|
|
38
|
-
`design a system`, `create a system that`, and `system architecture`.
|
|
39
|
-
- Saying "build a system for lead gen" in chat triggers `/om` and routes to `/om build` without
|
|
40
|
-
requiring the explicit `/om build` subcommand.
|
|
41
|
-
|
|
42
|
-
## Not handled by /git-sync
|
|
43
|
-
|
|
44
|
-
- No dependency bumps or `pnpm install` required for this change alone.
|
|
45
|
-
- Any project-local documentation that references how to add a new System should be updated by
|
|
46
|
-
the maintainer to point at `/om build` as the guided entry point rather than manual Codify
|
|
47
|
-
Level-A alone.
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
# Knowledge Browser item copy-references now resolve via `om:describe item:<domain>:<id>`
|
|
2
|
-
|
|
3
|
-
## Why this note exists
|
|
4
|
-
|
|
5
|
-
The Knowledge Browser used to copy an unresolvable `graph:<kind>:<uuid>` shorthand for
|
|
6
|
-
domain items (clients, roles, policies, customers, offerings, goals). Pasting that to an
|
|
7
|
-
agent led to dead ends — the OM resolver had no mount for it and `om:describe` rejected the
|
|
8
|
-
id. This train (published `@elevasis/core`, `@elevasis/sdk`, `@elevasis/ui` + the bundled
|
|
9
|
-
`om` skill) standardizes domain-item copy references on `item:<domain>:<id>`, which resolves
|
|
10
|
-
to the rich profile plus its location and governing knowledge. The `om` skill's read-folder
|
|
11
|
-
table and CLI invocation guidance changed, so derived projects must pick up the new skill
|
|
12
|
-
text and package baselines.
|
|
13
|
-
|
|
14
|
-
## Applies to
|
|
15
|
-
|
|
16
|
-
- All template-derived projects that ship the `om` skill (`.claude/skills/om/SKILL.md`).
|
|
17
|
-
- Any project whose Knowledge Browser surfaces domain items (clients, roles, policies,
|
|
18
|
-
customers, offerings, goals).
|
|
19
|
-
- Agents that consume copied Knowledge Browser references.
|
|
20
|
-
|
|
21
|
-
## Required actions
|
|
22
|
-
|
|
23
|
-
1. Pull template changes and bump the published package baselines to the versions shipped by
|
|
24
|
-
this train: `@elevasis/core`, `@elevasis/sdk`, `@elevasis/ui` (run `pnpm install` after the
|
|
25
|
-
baseline bump so the new SDK CLI and UI copy behavior are present).
|
|
26
|
-
2. Adopt the refreshed `.claude/skills/om/SKILL.md` read-folder table. It now documents
|
|
27
|
-
`item:<domain>:<id>` (resolves via `om:describe item:<domain>:<id>`), the `/by-domain/<domain>`
|
|
28
|
-
and `/by-item/<domain>/<id>` `om:ls` mounts, `group:` / `domain:` / `folder:` as
|
|
29
|
-
browser-overview references, and a legacy `graph:client:<uuid>` bridge note pointing to
|
|
30
|
-
`om:describe item:clients:<uuid>`.
|
|
31
|
-
3. Use the corrected SDK CLI invocation at a project root: `pnpm elevasis-sdk om:describe …`
|
|
32
|
-
(root script alias) or `pnpm -C operations exec elevasis-sdk om:describe …`. The old
|
|
33
|
-
`pnpm exec elevasis-sdk …` at the project root fails in a multi-package tenant — replace it.
|
|
34
|
-
|
|
35
|
-
## Verification
|
|
36
|
-
|
|
37
|
-
- `pnpm elevasis-sdk om:describe item:clients:<id>` returns the client profile, its location
|
|
38
|
-
(domain + graph id + `contains` parentage), and any governing knowledge — no dead ends.
|
|
39
|
-
- A bare/legacy `om:describe client:<uuid>` still resolves (back-compat for already-copied
|
|
40
|
-
references).
|
|
41
|
-
- `pnpm sync:verify -- <project>` shows the `.claude/skills/om/SKILL.md` write applied and no
|
|
42
|
-
remaining `om`-skill drift.
|
|
43
|
-
|
|
44
|
-
## Not handled by /git-sync
|
|
45
|
-
|
|
46
|
-
- The published-package baseline bumps (`@elevasis/core` / `@elevasis/sdk` / `@elevasis/ui`)
|
|
47
|
-
and the subsequent `pnpm install` are manual — `/git-sync` does not bump dependencies.
|
|
48
|
-
- Any project-local documentation that hand-copied the old `pnpm exec elevasis-sdk` root
|
|
49
|
-
invocation or the old `graph:<kind>:<uuid>` copy vocabulary must be corrected by the
|
|
50
|
-
maintainer; `/git-sync` stops before touching project-owned surfaces.
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
# Knowledge Base "Page Not Found" hardening (KB `$nodeId` route)
|
|
2
|
-
|
|
3
|
-
## Why this note exists
|
|
4
|
-
|
|
5
|
-
The Knowledge Base detail route (`ui/src/routes/knowledge/$nodeId.tsx`) could render a
|
|
6
|
-
terminal full-pane **"Page Not Found"** screen for node ids it could not resolve. Two
|
|
7
|
-
distinct gaps caused it:
|
|
8
|
-
|
|
9
|
-
1. **No `folder:` branch.** Selecting a KB **folder** node (e.g. the `KNOWLEDGE > All`
|
|
10
|
-
folder) navigates to `/knowledge/folder:knowledge:all`. The route matched none of the
|
|
11
|
-
`domain:` / `group:` / `item:` prefixes, resolved to no graph node, and fell through to
|
|
12
|
-
a bare `<PageNotFound />`. The folder routing (`folder:` → `FolderDetailView`) was
|
|
13
|
-
missing from the template route entirely.
|
|
14
|
-
2. **Two hard-404 landmines.** The `!group` and `!node` fall-through branches returned
|
|
15
|
-
`<PageNotFound />`, so any stale bookmark, renamed ontology id, or snapshot drift
|
|
16
|
-
dead-ended the whole content pane.
|
|
17
|
-
|
|
18
|
-
This train delivers the hardened route that **always renders browsable content** for any
|
|
19
|
-
node id. There is **no package bump** — the fix consumes only `@elevasis/ui` exports your
|
|
20
|
-
project already has at `@2.49.0+` (`KnowledgeBrowser`, `buildKnowledgeOmTreeData`,
|
|
21
|
-
`findKnowledgeTreeNodeByValue`, `KnowledgeTreeNodeData`).
|
|
22
|
-
|
|
23
|
-
## Applies to
|
|
24
|
-
|
|
25
|
-
- Every template-derived project whose `ui/src/routes/knowledge/$nodeId.tsx` is still the
|
|
26
|
-
pre-fix version (no `folder:` branch, bare `PageNotFound` returns). If your KB renders
|
|
27
|
-
"Page Not Found" when the `All` (or any) folder node is selected, you are affected.
|
|
28
|
-
- No action is required for projects that have already customized this route to handle
|
|
29
|
-
folders and avoid hard 404s — the sync is a `merge-baseline` that **preserves your local
|
|
30
|
-
route edits** (`external-sync-feature-route-baseline`, `sync_lane_severity:
|
|
31
|
-
optional-feature-selection`).
|
|
32
|
-
|
|
33
|
-
## Required actions
|
|
34
|
-
|
|
35
|
-
`/git-sync` / `/external sync` delivers the hardened route as a baseline merge and surfaces
|
|
36
|
-
this note. The route is project-owned baseline content under the route-preservation lane,
|
|
37
|
-
so it is **merged, not force-overwritten** — review the merge if you carry local
|
|
38
|
-
customizations.
|
|
39
|
-
|
|
40
|
-
1. **Pull and review.** Run `/git-sync` (or `/external sync`) and review the merge into
|
|
41
|
-
`ui/src/routes/knowledge/$nodeId.tsx`. Accept the two changes: the new `folder:` →
|
|
42
|
-
`FolderDetailView` branch, and the replacement of both `<PageNotFound />` returns with a
|
|
43
|
-
`KnowledgeNodeFallback` (a subtle "not available" `Alert` plus the full
|
|
44
|
-
`KnowledgeBrowser`).
|
|
45
|
-
2. **No dependency change.** `@elevasis/ui` does **not** need bumping for this fix; the
|
|
46
|
-
required exports are already published. Do not add a package bump to this sync.
|
|
47
|
-
3. **Type-check, then boot.** Run `pnpm -C ui lint` (`tsc --noEmit`), then start the UI.
|
|
48
|
-
|
|
49
|
-
## Verification
|
|
50
|
-
|
|
51
|
-
```bash
|
|
52
|
-
# 1. The route must no longer return a bare PageNotFound
|
|
53
|
-
grep -n "PageNotFound" ui/src/routes/knowledge/$nodeId.tsx
|
|
54
|
-
# Expect: no terminal `return <PageNotFound />` in the content branches
|
|
55
|
-
# (a folder: branch + KnowledgeNodeFallback should be present instead)
|
|
56
|
-
|
|
57
|
-
# 2. Required @elevasis/ui exports are present at your installed version
|
|
58
|
-
grep -n "KnowledgeBrowser\|buildKnowledgeOmTreeData\|findKnowledgeTreeNodeByValue" \
|
|
59
|
-
ui/src/routes/knowledge/$nodeId.tsx
|
|
60
|
-
|
|
61
|
-
# 3. Template-family coherence
|
|
62
|
-
pnpm -C ui lint
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
In the running app, select the `KNOWLEDGE > All` folder node (and any other folder/group
|
|
66
|
-
node): the content pane must render browsable Knowledge content, never a full-pane
|
|
67
|
-
"Page Not Found".
|
|
68
|
-
|
|
69
|
-
## Not handled by /git-sync
|
|
70
|
-
|
|
71
|
-
- `/git-sync` / `/external sync` deliver and merge the route baseline plus this note, but
|
|
72
|
-
they do **not** redeploy your UI. Reaching your live app requires your own UI **redeploy**
|
|
73
|
-
after the sync merge is accepted.
|
|
74
|
-
- Local customizations to `ui/src/routes/knowledge/$nodeId.tsx` are preserved by the
|
|
75
|
-
`merge-baseline` lane — if you maintain a forked KB route, reconcile the `folder:` branch
|
|
76
|
-
and the `KnowledgeNodeFallback` into your version by hand rather than discarding your edits.
|
package/reference/claude-config/sync-notes/2026-06-09-agent-sessions-public-agent-chat-route.md
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
# Agent Sessions and public agent chat route
|
|
2
|
-
|
|
3
|
-
## Why this note exists
|
|
4
|
-
|
|
5
|
-
This train makes `Agent Sessions` the canonical internal full-page chat surface and
|
|
6
|
-
introduces the browser-safe public agent chat substrate. Public browser clients use
|
|
7
|
-
platform-issued access grants and short-lived capability tokens; they must not call
|
|
8
|
-
server-to-server session APIs with platform API keys.
|
|
9
|
-
|
|
10
|
-
The shared public chat UI is published from `@elevasis/ui/features/public-agent-chat`.
|
|
11
|
-
The tenant route is authored after the UI package publish, then propagated through the
|
|
12
|
-
strict manifest sync.
|
|
13
|
-
|
|
14
|
-
The template Organization Model now also declares the `operations-sessions` navigation
|
|
15
|
-
surface (`/operations/sessions`). That lets template-derived tenants inherit the
|
|
16
|
-
standard Agent Sessions page or opt into the same surface from their own OM navigation
|
|
17
|
-
without hand-authoring a route.
|
|
18
|
-
|
|
19
|
-
## Applies to
|
|
20
|
-
|
|
21
|
-
- Template-derived projects that want public or code-gated agent chat links.
|
|
22
|
-
- Projects syncing the template route baseline after the `@elevasis/ui` package baseline
|
|
23
|
-
is bumped.
|
|
24
|
-
- Projects that want the internal Agent Sessions page exposed through OM-authored
|
|
25
|
-
navigation.
|
|
26
|
-
|
|
27
|
-
## Required actions
|
|
28
|
-
|
|
29
|
-
1. Accept the package baseline updates for `@elevasis/core` and `@elevasis/ui`.
|
|
30
|
-
2. Accept the new public chat route baseline once it appears in
|
|
31
|
-
`ui/src/routes/chat.$slug.tsx` and any root-shell adjustment needed to keep that route
|
|
32
|
-
outside the authenticated app shell.
|
|
33
|
-
3. If your project customizes `core/config/organization-model/navigation.ts`, merge the
|
|
34
|
-
`operations-sessions` surface into the Operations group:
|
|
35
|
-
|
|
36
|
-
```ts
|
|
37
|
-
'operations-sessions': {
|
|
38
|
-
type: 'surface',
|
|
39
|
-
label: 'Agent Sessions',
|
|
40
|
-
path: '/operations/sessions',
|
|
41
|
-
surfaceType: 'list',
|
|
42
|
-
order: 30
|
|
43
|
-
}
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
4. Run the project UI install and typecheck/build after sync:
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
pnpm -C ui install
|
|
50
|
-
pnpm -C ui check-types
|
|
51
|
-
pnpm -C ui build
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
5. Configure platform-side public agent access grants before sharing a public chat URL.
|
|
55
|
-
|
|
56
|
-
## Verification
|
|
57
|
-
|
|
58
|
-
After sync, verify the OM exposes the Agent Sessions navigation surface:
|
|
59
|
-
|
|
60
|
-
```bash
|
|
61
|
-
grep -n "operations-sessions\\|Agent Sessions\\|/operations/sessions" core/config/organization-model/navigation.ts
|
|
62
|
-
pnpm -C core test
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
## Security notes
|
|
66
|
-
|
|
67
|
-
- Browser code must use the public grant/capability-token flow.
|
|
68
|
-
- Do not expose `ELEVASIS_PLATFORM_KEY` or operations API keys in browser code.
|
|
69
|
-
- Public turns use the public WebSocket route backed by a capability token.
|
|
70
|
-
|
|
71
|
-
## Not handled by /git-sync
|
|
72
|
-
|
|
73
|
-
`/git-sync` does not create production access grants, choose which agents are public,
|
|
74
|
-
merge project-owned OM customizations automatically, or redeploy tenant UIs. Those are
|
|
75
|
-
project/operator decisions after the code and package baselines are accepted.
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# SDK CLI `om:*` tenant Organization Model loader fix
|
|
2
|
-
|
|
3
|
-
## Why this note exists
|
|
4
|
-
|
|
5
|
-
The `@elevasis/sdk` CLI `om:*` read commands could return an empty model in standard
|
|
6
|
-
template-derived pnpm-workspace projects even when `core/config/organization-model.ts`
|
|
7
|
-
contained real systems and resources. The loader resolved `esbuild` and external
|
|
8
|
-
package imports from the project root, but template projects install SDK runtime
|
|
9
|
-
dependencies under `operations/`.
|
|
10
|
-
|
|
11
|
-
This train publishes an SDK loader fix. Tenant source does not need to change, but
|
|
12
|
-
`operations/package.json` must pick up the new `@elevasis/sdk` baseline.
|
|
13
|
-
|
|
14
|
-
## Applies to
|
|
15
|
-
|
|
16
|
-
- Template-derived projects that run `elevasis-sdk om:ls`, `om:search`, `om:describe`,
|
|
17
|
-
`om:cat`, `om:graph`, or `om:skills` from `operations/`.
|
|
18
|
-
- Projects whose `om:*` output is unexpectedly empty despite a valid
|
|
19
|
-
`core/config/organization-model.ts`.
|
|
20
|
-
|
|
21
|
-
## Required actions
|
|
22
|
-
|
|
23
|
-
1. Accept the `operations/package.json` `@elevasis/sdk` baseline bump delivered by
|
|
24
|
-
`/external sync`.
|
|
25
|
-
2. Run the operations install after the sync so the published CLI binary is updated.
|
|
26
|
-
|
|
27
|
-
## Verification
|
|
28
|
-
|
|
29
|
-
Verify the tenant model loads from the published CLI:
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
pnpm -C operations exec elevasis-sdk om:ls /all-systems
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
The command should list the tenant's authored systems instead of returning an empty
|
|
36
|
-
result.
|
|
37
|
-
|
|
38
|
-
## Not handled by /git-sync
|
|
39
|
-
|
|
40
|
-
`/git-sync` pulls template guidance into a derived project. It does not publish the SDK,
|
|
41
|
-
install dependencies inside every standalone project, or redeploy any project. Run the
|
|
42
|
-
project-local install and deployment steps after accepting the sync.
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
# Agent grants, execution visualizer, and Operations sidebar release train
|
|
2
|
-
|
|
3
|
-
This train publishes coordinated platform updates across `@elevasis/core`, `@elevasis/ui`,
|
|
4
|
-
and `@elevasis/sdk`, then syncs the external template baseline.
|
|
5
|
-
|
|
6
|
-
## What changes for tenant projects
|
|
7
|
-
|
|
8
|
-
1. `@elevasis/sdk` adds `grant:list`, `grant:create`, and `grant:disable` for
|
|
9
|
-
managing public/code-gated agent access grants through the platform API.
|
|
10
|
-
2. `@elevasis/ui` adds shared agent public/private controls and improves the
|
|
11
|
-
agent execution visualizer with per-iteration tool activity.
|
|
12
|
-
3. `@elevasis/core` adds the grant audit activity contract used by platform
|
|
13
|
-
activity feeds.
|
|
14
|
-
4. The template `.claude/registries/skill-coverage.json` now explicitly waives
|
|
15
|
-
the `grant` CLI domain as operator-facing access-management tooling.
|
|
16
|
-
|
|
17
|
-
## Operator action
|
|
18
|
-
|
|
19
|
-
- Run the prepared external sync manifest from the SDK ship artifact.
|
|
20
|
-
- Verify each derived project updates `.claude/registries/skill-coverage.json`.
|
|
21
|
-
- After package baselines are bumped, verify derived package manifests point at
|
|
22
|
-
the newly published `@elevasis/core`, `@elevasis/ui`, and `@elevasis/sdk`
|
|
23
|
-
versions selected by the release steps.
|
|
24
|
-
|
|
25
|
-
## Manual-review exclusions
|
|
26
|
-
|
|
27
|
-
Operations sidebar root-route parity for `external/nirvana-marketing` and
|
|
28
|
-
`external/ZentaraHQ` is intentionally excluded from this ship train. Their
|
|
29
|
-
root routes are project-specific merge-managed surfaces and should be reviewed
|
|
30
|
-
manually before adopting the template Operations manifest mount.
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# Session UX fixes + project CLI `--json`
|
|
2
|
-
|
|
3
|
-
## Why this note exists
|
|
4
|
-
|
|
5
|
-
This train bumps both `@elevasis/ui` and `@elevasis/sdk` with several tenant-facing changes beyond the shared `SessionConversationView` adoption (see the companion `2026-06-14-shared-session-conversation-view.md` note):
|
|
6
|
-
|
|
7
|
-
- **Lazy agent-session creation** (`@elevasis/ui`) — the Agent Sessions surface and the public agent-chat surface no longer create a `sessions` row on open/mount. The row is created on the first message-send ("create-on-first-turn"), so opened-then-abandoned chats no longer leave phantom "0 turns" rows.
|
|
8
|
-
- **Agent Sessions list refresh-after-delete fix** (`@elevasis/ui`) — a query-key factory bug (`sessionsKeys.sessions` appended a literal `undefined`) broke partial-match invalidation, so delete/create/archive left the list stale until a manual reload. Fixed; the list now refreshes automatically.
|
|
9
|
-
- **Project milestone progress badge fix** (`@elevasis/ui`) — the `/projects` milestone header badge counted the milestone's own (empty) checklist, showing `0/0 COMPLETE`. It now counts completed child tasks, with a checklist fallback for task-free milestones.
|
|
10
|
-
- **`project:*` CLI `--json` flag** (`@elevasis/sdk`) — every `project:*` command (project/task/milestone/note) now accepts `--json` for clean machine-parseable output, matching `grant:*`/`session:*`. The `/project` skill SKILL.md gains an Output Flags reference and the canonical `pnpm -s elevasis-sdk … --json` parse recipe (auto-propagated as a managed `.claude` write).
|
|
11
|
-
|
|
12
|
-
## Applies to
|
|
13
|
-
|
|
14
|
-
- All template-derived projects that expose the agent-sessions page (`ui/src/features/operations/sessions/`) or the public agent-chat surface.
|
|
15
|
-
- All projects that drive work via the `elevasis-sdk project:*` CLI or surface the `/projects` delivery page.
|
|
16
|
-
|
|
17
|
-
## Required actions
|
|
18
|
-
|
|
19
|
-
- Bump `@elevasis/ui` to `^2.55.0` and `@elevasis/sdk` to `^1.36.5` (or later) and install. The ship train's `external-sync` stage does this automatically via the package-cascade baselines — manual `pnpm update` is not required.
|
|
20
|
-
- No source changes are required to receive the lazy-session, delete-refresh, or milestone-badge fixes — they ship inside `@elevasis/ui`.
|
|
21
|
-
- Agents may now invoke `pnpm -s elevasis-sdk project:<cmd> … --json` for clean JSON; the propagated `/project` SKILL.md Output Flags table documents the parse recipe.
|
|
22
|
-
|
|
23
|
-
## Verification
|
|
24
|
-
|
|
25
|
-
- `pnpm -C ui check-types` passes against `@elevasis/ui@^2.55.0`.
|
|
26
|
-
- Open an agent-session chat without sending → no new `sessions` row appears in the list; send one message → exactly one row with `1 turn`.
|
|
27
|
-
- Delete a session → the list refreshes without a manual reload.
|
|
28
|
-
- `pnpm -s elevasis-sdk project:task:list --project <id> --json` exits 0 with parseable JSON and no `unknown option` error.
|
|
29
|
-
|
|
30
|
-
## Not handled by /git-sync
|
|
31
|
-
|
|
32
|
-
- `/git-sync` surfaces this note and pulls the propagated `/project` SKILL.md baseline, but it does not run the `@elevasis/ui` / `@elevasis/sdk` install for you when reconciling manually outside the ship train.
|
|
33
|
-
- The lazy-session change does NOT retroactively clean up pre-existing "0 turns" rows; those are left in place by design.
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
# Shared Session ConversationView
|
|
2
|
-
|
|
3
|
-
## Why this note exists
|
|
4
|
-
|
|
5
|
-
`@elevasis/ui` now ships a shared `SessionConversationView` component (WebSocket-backed session-detail chat body). The template's session-detail page previously filled the `renderConversationView` slot with a local stub (`ui/src/features/assistant/components/ConversationView.tsx`) that returned `null`, so the agent-sessions chat page (`/operations/sessions/$sessionId`) rendered blank and the `DISCONNECTED` badge never cleared. The template `SessionChatPage` now renders the shared component directly, so derived projects get a working session chat with no local implementation.
|
|
6
|
-
|
|
7
|
-
## Applies to
|
|
8
|
-
|
|
9
|
-
- All template-derived projects that expose the agent-sessions page (`ui/src/features/operations/sessions/SessionChatPage.tsx`).
|
|
10
|
-
- Any project still carrying the `null`-returning `ConversationView` stub in `ui/src/features/assistant/components/`.
|
|
11
|
-
|
|
12
|
-
## Required actions
|
|
13
|
-
|
|
14
|
-
- Bump `@elevasis/ui` to `^2.55.0` (or later) in `ui/package.json` and install. (The ship train's `external-sync` stage does this automatically via the package-cascade baseline; manual `pnpm update` is not required.)
|
|
15
|
-
- Adopt the new `SessionChatPage` slot wiring: render `<SessionConversationView apiUrl={API_URL} sessionId={...} ... />` from `@elevasis/ui/features/operations`, reading `API_URL` from `@/lib/constants/api`, instead of the local `ConversationView` stub.
|
|
16
|
-
- The local `ConversationView` stub is now unused by the session page. It remains a generic placeholder for an AI-assistant feature; keep it only if you are building such a feature, otherwise it can be removed.
|
|
17
|
-
|
|
18
|
-
## Verification
|
|
19
|
-
|
|
20
|
-
- `pnpm -C ui check-types` passes against `@elevasis/ui@^2.55.0`.
|
|
21
|
-
- The session-detail chat page renders history + live messages and the `DISCONNECTED` badge clears (connects) once `apiUrl` is wired.
|
|
22
|
-
|
|
23
|
-
## Not handled by /git-sync
|
|
24
|
-
|
|
25
|
-
- `/git-sync` surfaces this note and pulls the template `SessionChatPage` baseline, but it does not delete the now-unused local `ConversationView` stub. Remove it manually if you do not intend to build an assistant feature.
|
|
26
|
-
- `/git-sync` does not run the `@elevasis/ui` install for you; run the install after the baseline bump if you are reconciling manually outside the ship train.
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
# Session Chat Zero-Wiring Default Slot
|
|
2
|
-
|
|
3
|
-
## Why this note exists
|
|
4
|
-
|
|
5
|
-
`@elevasis/ui` (>= 2.56.0) makes `SessionChatPage`'s `renderConversationView` slot
|
|
6
|
-
optional and self-defaulting: when omitted, the page renders the shared
|
|
7
|
-
`SessionConversationView` itself, resolving `apiUrl` from the service context
|
|
8
|
-
(now exposed on `ElevasisServiceContextValue`). The template `SessionChatPage`
|
|
9
|
-
now mounts the shared page with NO slot, and the orphan null-stub
|
|
10
|
-
`ui/src/features/assistant/components/ConversationView.tsx` is deleted. Projects
|
|
11
|
-
that omit the slot get a working session chat out of the box; customization stays
|
|
12
|
-
opt-in via the same prop. Backward-compatible: hosts that still pass the slot are
|
|
13
|
-
unaffected.
|
|
14
|
-
|
|
15
|
-
## Applies to
|
|
16
|
-
|
|
17
|
-
- All template-derived projects with the agent-sessions page
|
|
18
|
-
(`ui/src/features/operations/sessions/SessionChatPage.tsx`).
|
|
19
|
-
- Any project still wiring a local `ConversationView` stub
|
|
20
|
-
(`ui/src/features/assistant/components/ConversationView.tsx`) -> these render
|
|
21
|
-
a blank chat with a stuck `DISCONNECTED` badge until reconciled.
|
|
22
|
-
|
|
23
|
-
## Required actions
|
|
24
|
-
|
|
25
|
-
- Bump `@elevasis/ui` to `^2.56.0` (or later) and install. (The ship train's
|
|
26
|
-
`external-sync` stage does this automatically via the package-cascade baseline;
|
|
27
|
-
manual `pnpm update` is not required.)
|
|
28
|
-
- Drop the explicit `renderConversationView={...}` slot from your
|
|
29
|
-
`SessionChatPage.tsx` and remove the local stub import, relying on the new
|
|
30
|
-
default. (To keep a custom body, keep passing the slot.)
|
|
31
|
-
- Delete the now-unused local null-stub
|
|
32
|
-
`ui/src/features/assistant/components/ConversationView.tsx`.
|
|
33
|
-
|
|
34
|
-
## Verification
|
|
35
|
-
|
|
36
|
-
- `pnpm -C ui check-types` passes against `@elevasis/ui@^2.56.0`.
|
|
37
|
-
- The session-detail chat page (`/operations/sessions/$sessionId`) renders
|
|
38
|
-
history + live messages and the `DISCONNECTED` badge clears, with NO slot wired.
|
|
39
|
-
|
|
40
|
-
## Not handled by /git-sync
|
|
41
|
-
|
|
42
|
-
- `/git-sync` surfaces this note and pulls the template `SessionChatPage`
|
|
43
|
-
baseline, but the diverged tenant copy is preserved (merge-managed) -- you must
|
|
44
|
-
manually drop the explicit slot.
|
|
45
|
-
- `/git-sync` does NOT delete the local `ConversationView` stub
|
|
46
|
-
(`delete_policy: none`); remove it manually.
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
# Agent session UX features (End Conversation, intake form, session naming)
|
|
2
|
-
|
|
3
|
-
## Why this note exists
|
|
4
|
-
|
|
5
|
-
This train bumps `@elevasis/core` and `@elevasis/ui` with three tenant-facing agent-session features that ship entirely inside the published packages (no template source edit, package-cascade-only):
|
|
6
|
-
|
|
7
|
-
- **End Conversation** (`@elevasis/ui`) — both the internal Agent Sessions surface (`features/operations/sessions/SessionDetailsPanel`) and the public agent-chat surface (`features/public-agent-chat/PublicAgentChat`) now render an "End conversation" control. Ending preserves history and blocks new turns (distinct from Delete, which removes). The public composer locks out after end with a "This conversation has ended" placeholder.
|
|
8
|
-
- **Welcome intake form** (`@elevasis/ui` + `@elevasis/core`) — the public chat intro screen renders an optional intake form driven by the grant's `capture_fields` column (now typed as `CaptureField[]` in `@elevasis/core`'s public-agent-chat schema). Collected values flow into `session.metadata`. All fields are optional.
|
|
9
|
-
- **Session naming from intake** (`@elevasis/ui` + platform API) — sessions are titled from the collected `name` (server-side, with a first-user-message fallback), and the Agent Sessions list now renders `session.title` as the row label.
|
|
10
|
-
|
|
11
|
-
The session `session:end` / `session:ended` WebSocket messages, the internal `POST /sessions/:id/end` route, and server-side title derivation live in the Elevasis-deployed platform API — tenants receive that behavior automatically; the package bump only delivers the frontend.
|
|
12
|
-
|
|
13
|
-
## Applies to
|
|
14
|
-
|
|
15
|
-
- All template-derived projects that expose the Agent Sessions page (`ui/src/features/operations/sessions/`) or the public agent-chat surface (`ui/src/features/public-agent-chat/`).
|
|
16
|
-
- Projects that configure public agent grants and want to collect intake fields (Name plus arbitrary configurable fields) on the public intro screen.
|
|
17
|
-
|
|
18
|
-
## Required actions
|
|
19
|
-
|
|
20
|
-
- Bump `@elevasis/core` to `^0.52.0` and `@elevasis/ui` to `^2.59.0` (or later) and install. The ship train's `external-sync` stage does this automatically via the package-cascade baselines — manual `pnpm update` is not required.
|
|
21
|
-
- No source changes are required to receive End Conversation, the intake form, or title-in-list — they ship inside `@elevasis/ui` / `@elevasis/core`.
|
|
22
|
-
- To enable an intake form on a public agent, populate the grant's `capture_fields` (array of `{ key, label, type?, required? }`). There is no Command Center editor for `capture_fields` yet — configure it via a grant write. Leaving `capture_fields` empty renders the intro exactly as before (no form).
|
|
23
|
-
|
|
24
|
-
## Verification
|
|
25
|
-
|
|
26
|
-
- `pnpm -C ui check-types` passes against `@elevasis/ui@^2.59.0`.
|
|
27
|
-
- Open the public agent chat for a grant with `capture_fields` set → the intro renders the configured fields; entering a name and starting the session titles the session by that name in the Agent Sessions list.
|
|
28
|
-
- With no `capture_fields` → the intro renders unchanged; the session is titled from the first user message.
|
|
29
|
-
- Click "End conversation" on either the public header or the internal session detail panel → the session ends, history is preserved, and a new turn is rejected ("Session has ended").
|
|
30
|
-
|
|
31
|
-
## Not handled by /git-sync
|
|
32
|
-
|
|
33
|
-
- `/git-sync` surfaces this note and pulls the propagated package baselines, but it does not run the `@elevasis/core` / `@elevasis/ui` install for you when reconciling manually outside the ship train.
|
|
34
|
-
- The intake/title and End features depend on the Elevasis-deployed platform API (`session:end` handling, `/sessions/:id/end`, server-side title derivation). They are not part of a tenant's own backend and require no tenant action — but they only work once the platform API carrying them is deployed.
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
# Shared Full-Height Page Scroll Contract + Canonical headerActions Pattern
|
|
2
|
-
|
|
3
|
-
## Why this note exists
|
|
4
|
-
|
|
5
|
-
`@elevasis/ui` (>= 2.61.2) hardens the shared full-height page scroll contract and
|
|
6
|
-
the template now demonstrates the safe customization pattern for it.
|
|
7
|
-
|
|
8
|
-
- `SubshellContentContainer` (the root of the lead-gen list-detail, CRM/delivery/
|
|
9
|
-
clients detail pages, etc.) is a `flex:1 / overflowY:auto / minHeight:0` scroll
|
|
10
|
-
container that only bounds correctly as a **direct flex child** of the shell's
|
|
11
|
-
height-bounded region. Wrapping a shared page in a layout element (e.g. a Mantine
|
|
12
|
-
`<Stack>`, which is `flex:0 1 auto` with no `min-height:0`) breaks the height
|
|
13
|
-
chain: the page balloons to content height and its internal scroll never engages.
|
|
14
|
-
- The package now ships a **dev-only runtime guard** that logs a console warning when
|
|
15
|
-
it detects an unbounded `SubshellContentContainer`, so this mistake is caught while
|
|
16
|
-
authoring a route instead of shipping a silently broken page. No-op in production.
|
|
17
|
-
- The template `lead-gen/lists.$listId.tsx` now injects a `ListExportButton` through
|
|
18
|
-
the page's **`headerActions` slot** (not a wrapper) as the canonical reference for
|
|
19
|
-
customizing a shared full-height page.
|
|
20
|
-
|
|
21
|
-
## Applies to
|
|
22
|
-
|
|
23
|
-
- All template-derived projects that render shared full-height pages
|
|
24
|
-
(`LeadGenListDetailPage`, CRM/delivery/clients detail pages).
|
|
25
|
-
- Any project that wrapped a shared page in a `<Stack>` (or similar) to bolt on
|
|
26
|
-
extra UI -> that page's scroll is broken; switch to the page's slot props.
|
|
27
|
-
|
|
28
|
-
## Required actions
|
|
29
|
-
|
|
30
|
-
- Bump `@elevasis/ui` to `^2.61.2` (or later) and install. (The ship train's
|
|
31
|
-
`external-sync` stage does this automatically via the package-cascade baseline;
|
|
32
|
-
manual `pnpm update` is not required.)
|
|
33
|
-
- If any route wraps a shared full-height page, remove the wrapper and pass the
|
|
34
|
-
extra UI through the page's slot props (`headerActions` / `tabs` / `footer`). The
|
|
35
|
-
template `lead-gen/lists.$listId.tsx` is the canonical reference.
|
|
36
|
-
- Heed the new dev console warning if it appears; do not silence it.
|
|
37
|
-
|
|
38
|
-
## Verification
|
|
39
|
-
|
|
40
|
-
- `pnpm -C ui check-types` passes against `@elevasis/ui@^2.61.2`.
|
|
41
|
-
- Open a shared detail page (e.g. `/lead-gen/lists/:listId`): the page scrolls
|
|
42
|
-
internally, the bottom is reachable, and no scroll-contract console warning fires.
|
|
43
|
-
- Wrapping the page in a `<Stack>` produces the dev warning (negative check).
|
|
44
|
-
|
|
45
|
-
## Not handled by /git-sync
|
|
46
|
-
|
|
47
|
-
- `/git-sync` surfaces this note and pulls the template `lists.$listId.tsx` +
|
|
48
|
-
`ListExportButton` baseline, but a diverged tenant copy is preserved
|
|
49
|
-
(merge-managed) -- you must manually remove any page wrapper and adopt the slot
|
|
50
|
-
pattern.
|
|
51
|
-
- The dev guard ships inside `@elevasis/ui`; no tenant source change is required to
|
|
52
|
-
receive it beyond the dependency-baseline bump.
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
# Lead Gen Overview — OM-derived telemetry (NaN fix)
|
|
2
|
-
|
|
3
|
-
## Why this note exists
|
|
4
|
-
|
|
5
|
-
The published `@elevasis/ui` Lead Gen **Overview** page previously hardcoded the
|
|
6
|
-
pre-migration canonical pipeline stage keys (`populated, extracted, qualified,
|
|
7
|
-
discovered, verified, personalized, uploaded`) in its telemetry reducer. Any tenant
|
|
8
|
-
whose Organization Model declares a different stage set got `undefined` stage reads
|
|
9
|
-
and rendered `NaN` in the header and the **Ready Contacts** stat card.
|
|
10
|
-
|
|
11
|
-
`@elevasis/ui@2.62.0` (paired with `@elevasis/core@0.54.0`) makes the Overview render
|
|
12
|
-
generically over the OM-declared stage catalog. Telemetry now derives entirely from
|
|
13
|
-
`getLeadGenStageCatalog()` + `ListTelemetry.stageCounts`; an absent stage contributes
|
|
14
|
-
`0`, never `NaN`. The "ready / next focus" backlog moved from hardcoded
|
|
15
|
-
`personalized − uploaded` to a declared OM descriptor.
|
|
16
|
-
|
|
17
|
-
## Applies to
|
|
18
|
-
|
|
19
|
-
- Every template-derived project that consumes `@elevasis/ui` for the Lead Gen
|
|
20
|
-
Overview surface and whose pipeline diverges from the old canonical stage set.
|
|
21
|
-
- This is a **package-cascade-only** change: no template SOURCE edits are required.
|
|
22
|
-
The fix is bundled in the published packages; tenants only need the new baselines.
|
|
23
|
-
|
|
24
|
-
## Required actions
|
|
25
|
-
|
|
26
|
-
- Take the dependency baseline bump propagated by this train:
|
|
27
|
-
- `@elevasis/core` → `0.54.0`
|
|
28
|
-
- `@elevasis/ui` → `2.62.0`
|
|
29
|
-
- Reinstall so the new bundles are live (`pnpm install` in the project's `ui/`
|
|
30
|
-
workspace) and clear any stale Vite optimize cache
|
|
31
|
-
(`node_modules/.vite`) before restarting a running dev server.
|
|
32
|
-
|
|
33
|
-
## Verification
|
|
34
|
-
|
|
35
|
-
- After the baseline bump + install, open the Lead Gen Overview for a list on a
|
|
36
|
-
divergent pipeline: the header summary and the three stat cards render finite
|
|
37
|
-
numbers, with no `NaN` and no reference to retired stages.
|
|
38
|
-
- `pnpm sync:verify -- <project>` confirms the project is on the new baselines.
|
|
39
|
-
|
|
40
|
-
## Not handled by /git-sync
|
|
41
|
-
|
|
42
|
-
- **Optional OM authoring (tenant-owned, NOT shipped here):** a tenant MAY declare
|
|
43
|
-
`readinessTarget: true` on one stage in its `core/config/organization-model.ts`
|
|
44
|
-
stage catalog to restore a semantic "Ready: \<stage\>" stat. Until declared, the UI
|
|
45
|
-
correctly falls back to a generic last-incomplete-stage backlog. This is an
|
|
46
|
-
enhancement done via a separate `/om` cycle, never auto-propagated.
|
|
47
|
-
- The visual confirmation that `NaN` is gone on a running tenant page (a human check).
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
# Agent Scaffold Hardening — deploy default, rule paths, ownership split
|
|
2
|
-
|
|
3
|
-
## Why this note exists
|
|
4
|
-
|
|
5
|
-
Three corrections in this train change guidance agents were previously following
|
|
6
|
-
incorrectly. The first is safety-relevant and is the reason this note exists.
|
|
7
|
-
|
|
8
|
-
**1. Plain `deploy` targets PRODUCTION, not dev.** `resolveApiUrl` in the SDK CLI
|
|
9
|
-
falls through to `https://api.elevasis.io` unless `NODE_ENV === 'development'` is
|
|
10
|
-
set. The template `CLAUDE.md` Commands table and the bundled `deployment.md` both
|
|
11
|
-
stated that plain `deploy` targeted dev. Both were wrong, and every derived project
|
|
12
|
-
inherited the wrong statement. The full resolution order is now documented:
|
|
13
|
-
`--api-url` > `--prod` > `ELEVASIS_API_URL` > `NODE_ENV === 'development'` >
|
|
14
|
-
production fallthrough. `resolveApiKey` follows a separate rule and is documented
|
|
15
|
-
alongside it.
|
|
16
|
-
|
|
17
|
-
If your project has no `NODE_ENV=development` in its environment, it has **no
|
|
18
|
-
working dev target** — `deploy` and `deploy:prod` resolve to the same production
|
|
19
|
-
API. Verify before your next deploy rather than assuming.
|
|
20
|
-
|
|
21
|
-
**2. Bundled rule paths were wrong fleet-wide.** Every drill-down pointer said
|
|
22
|
-
`node_modules/@elevasis/sdk/reference/...`. The SDK actually installs at
|
|
23
|
-
`operations/node_modules/@elevasis/sdk/reference/...`; the project root has no
|
|
24
|
-
`@elevasis` packages at all.
|
|
25
|
-
|
|
26
|
-
**3. `ui.md` documented three import surfaces that do not exist.**
|
|
27
|
-
|
|
28
|
-
| Was documented | Actual |
|
|
29
|
-
| ------------------------------------------------------------ | --------------------------------------------------------- |
|
|
30
|
-
| `useApiClient` from `@/lib/hooks/useApiClient` | `@elevasis/ui/api`, and it takes `API_URL` as an argument |
|
|
31
|
-
| `ProtectedRoute` from `ui/src/features/auth/` | `@elevasis/ui/auth` — that directory does not exist |
|
|
32
|
-
| `sseConnectionManager` from `@/lib/sse/SSEConnectionManager` | `@/lib/sse` (`ui/src/lib/sse.ts`) |
|
|
33
|
-
|
|
34
|
-
## Applies to
|
|
35
|
-
|
|
36
|
-
- Every template-derived project. All three corrections ship inside the
|
|
37
|
-
`@elevasis/sdk` reference bundle, so they arrive with the dependency baseline —
|
|
38
|
-
no source edits required to receive them.
|
|
39
|
-
- `CLAUDE.md` also changed shape this train. Template-structural guidance (project
|
|
40
|
-
structure, stack, commands, slash-command surface) moved into
|
|
41
|
-
`.claude/Overview.md`, which is replace-managed and propagates by sync.
|
|
42
|
-
`CLAUDE.md` is now project-owned identity only and remains never-touch.
|
|
43
|
-
|
|
44
|
-
## Required actions
|
|
45
|
-
|
|
46
|
-
- Take the `@elevasis/sdk` dependency baseline bump propagated by this train, then
|
|
47
|
-
reinstall in `operations/` so `reference/rules/` carries the corrected canon.
|
|
48
|
-
- Read the new `OPERATIONS.md` at your project root. It is tenant-owned, never
|
|
49
|
-
synced, and is the sanctioned home for operational facts that contradict generic
|
|
50
|
-
guidance — starting with your real deploy target.
|
|
51
|
-
- Once this train's `.claude/Overview.md` has landed, remove template-structural
|
|
52
|
-
prose from your project's `CLAUDE.md`. Keep your identity sections verbatim.
|
|
53
|
-
|
|
54
|
-
## Verification
|
|
55
|
-
|
|
56
|
-
- `grep -n "elevasis/ui/api" operations/node_modules/@elevasis/sdk/reference/rules/ui.md`
|
|
57
|
-
returns a match, and `@/lib/hooks/useApiClient` returns none.
|
|
58
|
-
- The bundled `deployment.md` leads with a Dev vs Prod section stating the
|
|
59
|
-
production default.
|
|
60
|
-
- `.claude/Overview.md` contains Project Structure, Stack, and Commands sections.
|
|
61
|
-
- `pnpm sync:verify -- <project>` confirms the project is on the new baseline.
|
|
62
|
-
|
|
63
|
-
## Not handled by /git-sync
|
|
64
|
-
|
|
65
|
-
- **The `CLAUDE.md` migration is manual and tenant-specific.** The file is
|
|
66
|
-
never-touch by design, so nothing overwrites it. Lifting stale template prose out
|
|
67
|
-
while preserving your identity sections is a per-project edit.
|
|
68
|
-
- **Literal `{CLIENT_CONTEXT}` / `{USER_PREFERENCES}` placeholders must stay
|
|
69
|
-
literal** if setup has not run for your project. Setup only fills them while they
|
|
70
|
-
are still literal; replacing them with stub prose permanently marks an
|
|
71
|
-
unconfigured project as configured.
|
|
72
|
-
- **One-time EOL renormalization.** This train adds `.gitattributes` (LF in-repo).
|
|
73
|
-
After it lands, run `git add --renormalize .` once in your project repo. Until
|
|
74
|
-
then the CRLF/LF false-drift persists in existing checkouts — it accounted for
|
|
75
|
-
roughly 95% of apparent `.claude/` drift before this change.
|