stagent 0.9.6 → 0.11.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/README.md +20 -44
- package/dist/cli.js +66 -18
- package/docs/.coverage-gaps.json +144 -56
- package/docs/.last-generated +1 -1
- package/docs/features/agent-intelligence.md +12 -2
- package/docs/features/chat.md +40 -5
- package/docs/features/cost-usage.md +1 -1
- package/docs/features/documents.md +5 -2
- package/docs/features/inbox-notifications.md +10 -2
- package/docs/features/keyboard-navigation.md +12 -3
- package/docs/features/provider-runtimes.md +20 -2
- package/docs/features/schedules.md +32 -4
- package/docs/features/settings.md +28 -5
- package/docs/features/shared-components.md +7 -3
- package/docs/features/tables.md +11 -2
- package/docs/features/tool-permissions.md +6 -2
- package/docs/features/workflows.md +14 -4
- package/docs/index.md +1 -1
- package/docs/journeys/developer.md +39 -2
- package/docs/journeys/personal-use.md +32 -8
- package/docs/journeys/power-user.md +45 -14
- package/docs/journeys/work-use.md +17 -8
- package/docs/manifest.json +15 -15
- package/docs/superpowers/plans/2026-04-07-instance-bootstrap.md +1691 -0
- package/docs/superpowers/plans/2026-04-08-schedule-orchestration.md +2983 -0
- package/docs/superpowers/plans/2026-04-11-schedule-maxturns-api-control.md +551 -0
- package/docs/superpowers/plans/2026-04-11-task-create-profile-validation.md +864 -0
- package/docs/superpowers/plans/2026-04-11-task-runtime-stagent-mcp-injection.md +739 -0
- package/docs/superpowers/plans/2026-04-14-chat-command-namespace-refactor.md +1390 -0
- package/docs/superpowers/plans/2026-04-14-chat-environment-integration.md +1561 -0
- package/docs/superpowers/plans/2026-04-14-chat-polish-bundle-v1.md +1219 -0
- package/docs/superpowers/plans/2026-04-14-chat-session-persistence-provider-closeout.md +399 -0
- package/docs/superpowers/specs/2026-04-08-chat-sse-resilience-hotfix-design.md +201 -0
- package/docs/superpowers/specs/2026-04-08-schedule-orchestration-design.md +371 -0
- package/docs/superpowers/specs/2026-04-08-swarm-visibility-design.md +213 -0
- package/next.config.mjs +1 -0
- package/package.json +3 -2
- package/src/__tests__/instrumentation-smoke.test.ts +15 -0
- package/src/app/analytics/page.tsx +1 -21
- package/src/app/api/chat/conversations/[id]/messages/route.ts +22 -1
- package/src/app/api/chat/conversations/[id]/skills/__tests__/activate.test.ts +141 -0
- package/src/app/api/chat/conversations/[id]/skills/activate/route.ts +74 -0
- package/src/app/api/chat/conversations/[id]/skills/deactivate/route.ts +33 -0
- package/src/app/api/chat/export/route.ts +52 -0
- package/src/app/api/chat/files/search/route.ts +50 -0
- package/src/app/api/diagnostics/chat-streams/route.ts +65 -0
- package/src/app/api/environment/rescan-if-stale/__tests__/route.test.ts +45 -0
- package/src/app/api/environment/rescan-if-stale/route.ts +23 -0
- package/src/app/api/environment/skills/route.ts +13 -0
- package/src/app/api/instance/config/route.ts +41 -0
- package/src/app/api/instance/init/route.ts +34 -0
- package/src/app/api/instance/upgrade/check/route.ts +26 -0
- package/src/app/api/instance/upgrade/route.ts +96 -0
- package/src/app/api/instance/upgrade/status/route.ts +35 -0
- package/src/app/api/memory/route.ts +0 -11
- package/src/app/api/notifications/route.ts +4 -2
- package/src/app/api/projects/[id]/route.ts +5 -155
- package/src/app/api/projects/__tests__/delete-project.test.ts +10 -19
- package/src/app/api/schedules/[id]/execute/route.ts +111 -0
- package/src/app/api/schedules/[id]/route.ts +9 -1
- package/src/app/api/schedules/__tests__/execute-route.test.ts +118 -0
- package/src/app/api/schedules/route.ts +3 -12
- package/src/app/api/settings/chat/pins/route.ts +94 -0
- package/src/app/api/settings/chat/saved-searches/__tests__/route.test.ts +119 -0
- package/src/app/api/settings/chat/saved-searches/route.ts +79 -0
- package/src/app/api/settings/environment/route.ts +26 -0
- package/src/app/api/settings/openai/login/route.ts +22 -0
- package/src/app/api/settings/openai/logout/route.ts +7 -0
- package/src/app/api/settings/openai/route.ts +21 -1
- package/src/app/api/settings/providers/route.ts +35 -8
- package/src/app/api/tables/[id]/enrich/__tests__/route.test.ts +153 -0
- package/src/app/api/tables/[id]/enrich/plan/route.ts +98 -0
- package/src/app/api/tables/[id]/enrich/route.ts +147 -0
- package/src/app/api/tables/[id]/enrich/runs/route.ts +25 -0
- package/src/app/api/tasks/[id]/execute/route.ts +52 -33
- package/src/app/api/tasks/[id]/respond/route.ts +31 -15
- package/src/app/api/tasks/[id]/resume/route.ts +24 -3
- package/src/app/api/workflows/[id]/resume/route.ts +59 -0
- package/src/app/api/workflows/[id]/status/route.ts +22 -8
- package/src/app/api/workspace/context/route.ts +2 -0
- package/src/app/api/workspace/fix-data-dir/route.ts +81 -0
- package/src/app/chat/page.tsx +11 -0
- package/src/app/documents/page.tsx +4 -1
- package/src/app/inbox/page.tsx +12 -5
- package/src/app/layout.tsx +42 -21
- package/src/app/page.tsx +0 -2
- package/src/app/settings/page.tsx +8 -9
- package/src/components/chat/__tests__/capability-banner.test.tsx +38 -0
- package/src/components/chat/__tests__/chat-session-provider.test.tsx +573 -0
- package/src/components/chat/__tests__/skill-row.test.tsx +91 -0
- package/src/components/chat/capability-banner.tsx +68 -0
- package/src/components/chat/chat-command-popover.tsx +670 -49
- package/src/components/chat/chat-input.tsx +104 -10
- package/src/components/chat/chat-message.tsx +12 -3
- package/src/components/chat/chat-session-provider.tsx +790 -0
- package/src/components/chat/chat-shell.tsx +151 -401
- package/src/components/chat/command-tab-bar.tsx +68 -0
- package/src/components/chat/conversation-template-picker.tsx +421 -0
- package/src/components/chat/help-dialog.tsx +39 -0
- package/src/components/chat/skill-composition-conflict-dialog.tsx +96 -0
- package/src/components/chat/skill-row.tsx +147 -0
- package/src/components/documents/document-browser.tsx +37 -19
- package/src/components/instance/__tests__/instance-section.test.tsx +125 -0
- package/src/components/instance/instance-section.tsx +382 -0
- package/src/components/instance/upgrade-badge.tsx +219 -0
- package/src/components/notifications/__tests__/batch-proposal-review.test.tsx +95 -0
- package/src/components/notifications/__tests__/notification-item.test.tsx +106 -0
- package/src/components/notifications/__tests__/permission-response-actions.test.tsx +70 -0
- package/src/components/notifications/batch-proposal-review.tsx +20 -5
- package/src/components/notifications/inbox-list.tsx +11 -2
- package/src/components/notifications/notification-item.tsx +56 -2
- package/src/components/notifications/pending-approval-host.tsx +56 -37
- package/src/components/notifications/permission-response-actions.tsx +155 -1
- package/src/components/schedules/schedule-create-sheet.tsx +19 -1
- package/src/components/schedules/schedule-edit-sheet.tsx +20 -1
- package/src/components/schedules/schedule-form.tsx +31 -0
- package/src/components/settings/__tests__/providers-runtimes-section.test.tsx +149 -0
- package/src/components/settings/auth-method-selector.tsx +19 -4
- package/src/components/settings/auth-status-badge.tsx +28 -3
- package/src/components/settings/environment-section.tsx +102 -0
- package/src/components/settings/openai-chatgpt-auth-control.tsx +278 -0
- package/src/components/settings/openai-runtime-section.tsx +7 -1
- package/src/components/settings/providers-runtimes-section.tsx +138 -19
- package/src/components/shared/__tests__/filter-hint.test.tsx +40 -0
- package/src/components/shared/__tests__/saved-searches-manager.test.tsx +147 -0
- package/src/components/shared/app-sidebar.tsx +4 -3
- package/src/components/shared/command-palette.tsx +266 -7
- package/src/components/shared/filter-hint.tsx +70 -0
- package/src/components/shared/filter-input.tsx +59 -0
- package/src/components/shared/saved-searches-manager.tsx +199 -0
- package/src/components/shared/theme-toggle.tsx +5 -24
- package/src/components/shared/workspace-indicator.tsx +61 -2
- package/src/components/tables/__tests__/table-enrichment-sheet.test.tsx +130 -0
- package/src/components/tables/table-create-sheet.tsx +4 -0
- package/src/components/tables/table-enrichment-runs.tsx +103 -0
- package/src/components/tables/table-enrichment-sheet.tsx +538 -0
- package/src/components/tables/table-spreadsheet.tsx +29 -5
- package/src/components/tables/table-toolbar.tsx +10 -1
- package/src/components/tasks/kanban-board.tsx +1 -0
- package/src/components/tasks/kanban-column.tsx +53 -14
- package/src/components/tasks/task-bento-grid.tsx +31 -2
- package/src/components/tasks/task-card.tsx +29 -3
- package/src/components/tasks/task-chip-bar.tsx +54 -1
- package/src/components/tasks/task-result-renderer.tsx +1 -1
- package/src/components/workflows/delay-step-body.tsx +109 -0
- package/src/components/workflows/hooks/use-workflow-status.ts +50 -0
- package/src/components/workflows/loop-status-view.tsx +1 -1
- package/src/components/workflows/shared/step-result.tsx +78 -0
- package/src/components/workflows/shared/workflow-header.tsx +141 -0
- package/src/components/workflows/shared/workflow-loading-skeleton.tsx +36 -0
- package/src/components/workflows/swarm-dashboard.tsx +2 -15
- package/src/components/workflows/views/loop-pattern-view.tsx +137 -0
- package/src/components/workflows/views/sequence-pattern-view.tsx +511 -0
- package/src/components/workflows/workflow-form-view.tsx +133 -16
- package/src/components/workflows/workflow-status-view.tsx +30 -740
- package/src/hooks/__tests__/use-chat-autocomplete-tabs.test.ts +47 -0
- package/src/hooks/__tests__/use-saved-searches.test.ts +70 -0
- package/src/hooks/use-active-skills.ts +110 -0
- package/src/hooks/use-chat-autocomplete.ts +120 -7
- package/src/hooks/use-enriched-skills.ts +19 -0
- package/src/hooks/use-pinned-entries.ts +104 -0
- package/src/hooks/use-recent-user-messages.ts +19 -0
- package/src/hooks/use-saved-searches.ts +142 -0
- package/src/instrumentation-node.ts +94 -0
- package/src/instrumentation.ts +4 -48
- package/src/lib/agents/__tests__/claude-agent-sdk-options.test.ts +56 -0
- package/src/lib/agents/__tests__/claude-agent.test.ts +212 -0
- package/src/lib/agents/__tests__/execution-manager.test.ts +1 -27
- package/src/lib/agents/__tests__/failure-reason.test.ts +68 -0
- package/src/lib/agents/__tests__/learned-context.test.ts +0 -11
- package/src/lib/agents/__tests__/learning-session.test.ts +158 -0
- package/src/lib/agents/__tests__/pattern-extractor.test.ts +48 -0
- package/src/lib/agents/__tests__/task-dispatch.test.ts +166 -0
- package/src/lib/agents/__tests__/tool-permissions.test.ts +60 -0
- package/src/lib/agents/claude-agent.ts +217 -21
- package/src/lib/agents/execution-manager.ts +0 -35
- package/src/lib/agents/handoff/bus.ts +2 -2
- package/src/lib/agents/learned-context.ts +0 -12
- package/src/lib/agents/learning-session.ts +18 -5
- package/src/lib/agents/profiles/__tests__/list-fused-profiles.test.ts +110 -0
- package/src/lib/agents/profiles/__tests__/registry.test.ts +53 -4
- package/src/lib/agents/profiles/builtins/upgrade-assistant/SKILL.md +97 -0
- package/src/lib/agents/profiles/builtins/upgrade-assistant/profile.yaml +36 -0
- package/src/lib/agents/profiles/list-fused-profiles.ts +104 -0
- package/src/lib/agents/profiles/registry.ts +18 -0
- package/src/lib/agents/profiles/types.ts +7 -1
- package/src/lib/agents/router.ts +3 -6
- package/src/lib/agents/runtime/__tests__/catalog.test.ts +130 -0
- package/src/lib/agents/runtime/__tests__/execution-target.test.ts +183 -0
- package/src/lib/agents/runtime/__tests__/openai-codex-auth.test.ts +118 -0
- package/src/lib/agents/runtime/anthropic-direct.ts +8 -0
- package/src/lib/agents/runtime/catalog.ts +121 -0
- package/src/lib/agents/runtime/claude-sdk.ts +32 -0
- package/src/lib/agents/runtime/codex-app-server-client.ts +11 -5
- package/src/lib/agents/runtime/execution-target.ts +456 -0
- package/src/lib/agents/runtime/index.ts +4 -0
- package/src/lib/agents/runtime/launch-failure.ts +101 -0
- package/src/lib/agents/runtime/openai-codex-auth.ts +389 -0
- package/src/lib/agents/runtime/openai-codex.ts +64 -60
- package/src/lib/agents/runtime/openai-direct.ts +8 -0
- package/src/lib/agents/runtime/types.ts +8 -0
- package/src/lib/agents/task-dispatch.ts +220 -0
- package/src/lib/agents/tool-permissions.ts +16 -1
- package/src/lib/book/chapter-mapping.ts +11 -0
- package/src/lib/book/content.ts +10 -0
- package/src/lib/chat/__tests__/active-skill-injection.test.ts +261 -0
- package/src/lib/chat/__tests__/active-streams.test.ts +49 -0
- package/src/lib/chat/__tests__/clean-filter-input.test.ts +68 -0
- package/src/lib/chat/__tests__/command-tabs.test.ts +68 -0
- package/src/lib/chat/__tests__/context-builder-files.test.ts +112 -0
- package/src/lib/chat/__tests__/dismissals.test.ts +65 -0
- package/src/lib/chat/__tests__/engine-sdk-options.test.ts +117 -0
- package/src/lib/chat/__tests__/finalize-safety-net.test.ts +139 -0
- package/src/lib/chat/__tests__/reconcile.test.ts +137 -0
- package/src/lib/chat/__tests__/skill-conflict.test.ts +35 -0
- package/src/lib/chat/__tests__/stream-telemetry.test.ts +151 -0
- package/src/lib/chat/__tests__/types.test.ts +28 -0
- package/src/lib/chat/active-skills.ts +31 -0
- package/src/lib/chat/active-streams.ts +27 -0
- package/src/lib/chat/clean-filter-input.ts +30 -0
- package/src/lib/chat/codex-engine.ts +46 -24
- package/src/lib/chat/command-tabs.ts +61 -0
- package/src/lib/chat/context-builder.ts +146 -4
- package/src/lib/chat/dismissals.ts +73 -0
- package/src/lib/chat/engine.ts +159 -18
- package/src/lib/chat/files/__tests__/search.test.ts +135 -0
- package/src/lib/chat/files/expand-mention.ts +76 -0
- package/src/lib/chat/files/search.ts +99 -0
- package/src/lib/chat/reconcile.ts +117 -0
- package/src/lib/chat/skill-composition.ts +210 -0
- package/src/lib/chat/skill-conflict.ts +105 -0
- package/src/lib/chat/stagent-tools.ts +7 -19
- package/src/lib/chat/stream-telemetry.ts +137 -0
- package/src/lib/chat/suggested-prompts.ts +28 -1
- package/src/lib/chat/system-prompt.ts +48 -1
- package/src/lib/chat/tool-catalog.ts +35 -4
- package/src/lib/chat/tools/__tests__/enrich-table-tool.test.ts +127 -0
- package/src/lib/chat/tools/__tests__/profile-tools.test.ts +51 -0
- package/src/lib/chat/tools/__tests__/schedule-tools.test.ts +261 -0
- package/src/lib/chat/tools/__tests__/settings-tools.test.ts +294 -0
- package/src/lib/chat/tools/__tests__/skill-tools.test.ts +474 -0
- package/src/lib/chat/tools/__tests__/task-tools.test.ts +399 -0
- package/src/lib/chat/tools/__tests__/workflow-tools-dedup.test.ts +351 -0
- package/src/lib/chat/tools/blueprint-tools.ts +190 -0
- package/src/lib/chat/tools/document-tools.ts +29 -13
- package/src/lib/chat/tools/helpers.ts +41 -0
- package/src/lib/chat/tools/notification-tools.ts +9 -5
- package/src/lib/chat/tools/profile-tools.ts +120 -23
- package/src/lib/chat/tools/project-tools.ts +33 -0
- package/src/lib/chat/tools/schedule-tools.ts +44 -11
- package/src/lib/chat/tools/skill-tools.ts +183 -0
- package/src/lib/chat/tools/table-tools.ts +71 -0
- package/src/lib/chat/tools/task-tools.ts +89 -21
- package/src/lib/chat/tools/workflow-tools.ts +275 -32
- package/src/lib/chat/types.ts +15 -0
- package/src/lib/constants/settings.ts +10 -18
- package/src/lib/data/__tests__/clear.test.ts +56 -2
- package/src/lib/data/clear.ts +17 -16
- package/src/lib/data/delete-project.ts +171 -0
- package/src/lib/db/__tests__/bootstrap.test.ts +1 -1
- package/src/lib/db/bootstrap.ts +62 -16
- package/src/lib/db/index.ts +5 -0
- package/src/lib/db/migrations/0009_add_app_instances.sql +25 -0
- package/src/lib/db/migrations/0024_add_workflow_resume_at.sql +10 -0
- package/src/lib/db/migrations/0025_drop_app_instances.sql +3 -0
- package/src/lib/db/migrations/0026_drop_license.sql +3 -0
- package/src/lib/db/migrations/meta/_journal.json +21 -0
- package/src/lib/db/schema.ts +94 -23
- package/src/lib/environment/__tests__/auto-promote.test.ts +132 -0
- package/src/lib/environment/__tests__/list-skills-enriched.test.ts +55 -0
- package/src/lib/environment/__tests__/skill-enrichment.test.ts +129 -0
- package/src/lib/environment/__tests__/skill-recommendations.test.ts +87 -0
- package/src/lib/environment/data.ts +9 -0
- package/src/lib/environment/list-skills.ts +176 -0
- package/src/lib/environment/parsers/__tests__/skill.test.ts +54 -0
- package/src/lib/environment/parsers/skill.ts +26 -5
- package/src/lib/environment/profile-generator.ts +54 -0
- package/src/lib/environment/skill-enrichment.ts +106 -0
- package/src/lib/environment/skill-recommendations.ts +66 -0
- package/src/lib/environment/workspace-context.ts +13 -1
- package/src/lib/filters/__tests__/parse.quoted.test.ts +40 -0
- package/src/lib/filters/__tests__/parse.test.ts +135 -0
- package/src/lib/filters/parse.ts +86 -0
- package/src/lib/import/dedup.ts +4 -54
- package/src/lib/instance/__tests__/bootstrap.test.ts +362 -0
- package/src/lib/instance/__tests__/detect.test.ts +115 -0
- package/src/lib/instance/__tests__/fingerprint.test.ts +48 -0
- package/src/lib/instance/__tests__/git-ops.test.ts +95 -0
- package/src/lib/instance/__tests__/settings.test.ts +83 -0
- package/src/lib/instance/__tests__/upgrade-poller.test.ts +181 -0
- package/src/lib/instance/bootstrap.ts +270 -0
- package/src/lib/instance/detect.ts +49 -0
- package/src/lib/instance/fingerprint.ts +76 -0
- package/src/lib/instance/git-ops.ts +95 -0
- package/src/lib/instance/settings.ts +61 -0
- package/src/lib/instance/types.ts +77 -0
- package/src/lib/instance/upgrade-poller.ts +205 -0
- package/src/lib/notifications/__tests__/visibility.test.ts +51 -0
- package/src/lib/notifications/visibility.ts +33 -0
- package/src/lib/schedules/__tests__/collision-check.test.ts +93 -0
- package/src/lib/schedules/__tests__/config.test.ts +62 -0
- package/src/lib/schedules/__tests__/firing-metrics.test.ts +99 -0
- package/src/lib/schedules/__tests__/integration.test.ts +82 -0
- package/src/lib/schedules/__tests__/slot-claim.test.ts +242 -0
- package/src/lib/schedules/__tests__/tick-scheduler.test.ts +102 -0
- package/src/lib/schedules/__tests__/turn-budget.test.ts +228 -0
- package/src/lib/schedules/collision-check.ts +105 -0
- package/src/lib/schedules/config.ts +53 -0
- package/src/lib/schedules/scheduler.ts +236 -17
- package/src/lib/schedules/slot-claim.ts +105 -0
- package/src/lib/settings/__tests__/openai-auth.test.ts +101 -0
- package/src/lib/settings/__tests__/openai-login-manager.test.ts +64 -0
- package/src/lib/settings/__tests__/runtime-setup.test.ts +33 -0
- package/src/lib/settings/openai-auth.ts +105 -10
- package/src/lib/settings/openai-login-manager.ts +260 -0
- package/src/lib/settings/runtime-setup.ts +14 -4
- package/src/lib/tables/__tests__/enrichment-planner.test.ts +124 -0
- package/src/lib/tables/__tests__/enrichment.test.ts +147 -0
- package/src/lib/tables/enrichment-planner.ts +454 -0
- package/src/lib/tables/enrichment.ts +328 -0
- package/src/lib/tables/query-builder.ts +5 -2
- package/src/lib/tables/trigger-evaluator.ts +3 -2
- package/src/lib/theme.ts +71 -0
- package/src/lib/usage/ledger.ts +2 -18
- package/src/lib/util/__tests__/similarity.test.ts +106 -0
- package/src/lib/util/similarity.ts +77 -0
- package/src/lib/utils/format-timestamp.ts +24 -0
- package/src/lib/utils/stagent-paths.ts +12 -0
- package/src/lib/validators/__tests__/blueprint.test.ts +172 -0
- package/src/lib/validators/__tests__/settings.test.ts +10 -0
- package/src/lib/validators/blueprint.ts +70 -9
- package/src/lib/validators/profile.ts +2 -2
- package/src/lib/validators/settings.ts +3 -1
- package/src/lib/workflows/__tests__/delay.test.ts +196 -0
- package/src/lib/workflows/__tests__/engine.test.ts +8 -0
- package/src/lib/workflows/__tests__/loop-executor.test.ts +54 -0
- package/src/lib/workflows/__tests__/post-action.test.ts +108 -0
- package/src/lib/workflows/blueprints/__tests__/render-prompt.test.ts +124 -0
- package/src/lib/workflows/blueprints/instantiator.ts +22 -1
- package/src/lib/workflows/blueprints/render-prompt.ts +71 -0
- package/src/lib/workflows/blueprints/types.ts +16 -2
- package/src/lib/workflows/delay.ts +106 -0
- package/src/lib/workflows/engine.ts +212 -7
- package/src/lib/workflows/loop-executor.ts +349 -24
- package/src/lib/workflows/post-action.ts +91 -0
- package/src/lib/workflows/types.ts +166 -1
- package/src/test/setup.ts +10 -0
- package/src/app/api/license/checkout/route.ts +0 -28
- package/src/app/api/license/portal/route.ts +0 -26
- package/src/app/api/license/route.ts +0 -89
- package/src/app/api/license/usage/route.ts +0 -63
- package/src/app/api/marketplace/browse/route.ts +0 -15
- package/src/app/api/marketplace/import/route.ts +0 -28
- package/src/app/api/marketplace/publish/route.ts +0 -40
- package/src/app/api/onboarding/email/route.ts +0 -53
- package/src/app/api/settings/telemetry/route.ts +0 -14
- package/src/app/api/sync/export/route.ts +0 -54
- package/src/app/api/sync/restore/route.ts +0 -37
- package/src/app/api/sync/sessions/route.ts +0 -24
- package/src/app/auth/callback/route.ts +0 -73
- package/src/app/marketplace/page.tsx +0 -19
- package/src/components/analytics/analytics-gate-card.tsx +0 -101
- package/src/components/marketplace/blueprint-card.tsx +0 -61
- package/src/components/marketplace/marketplace-browser.tsx +0 -131
- package/src/components/onboarding/email-capture-card.tsx +0 -104
- package/src/components/settings/activation-form.tsx +0 -95
- package/src/components/settings/cloud-account-section.tsx +0 -147
- package/src/components/settings/cloud-sync-section.tsx +0 -155
- package/src/components/settings/subscription-section.tsx +0 -410
- package/src/components/settings/telemetry-section.tsx +0 -80
- package/src/components/shared/premium-gate-overlay.tsx +0 -50
- package/src/components/shared/schedule-gate-dialog.tsx +0 -64
- package/src/components/shared/upgrade-banner.tsx +0 -112
- package/src/hooks/use-supabase-auth.ts +0 -79
- package/src/lib/billing/email.ts +0 -54
- package/src/lib/billing/products.ts +0 -80
- package/src/lib/billing/stripe.ts +0 -101
- package/src/lib/cloud/supabase-browser.ts +0 -32
- package/src/lib/cloud/supabase-client.ts +0 -56
- package/src/lib/license/__tests__/features.test.ts +0 -56
- package/src/lib/license/__tests__/key-format.test.ts +0 -88
- package/src/lib/license/__tests__/manager.test.ts +0 -64
- package/src/lib/license/__tests__/tier-limits.test.ts +0 -79
- package/src/lib/license/cloud-validation.ts +0 -60
- package/src/lib/license/features.ts +0 -44
- package/src/lib/license/key-format.ts +0 -101
- package/src/lib/license/limit-check.ts +0 -111
- package/src/lib/license/limit-queries.ts +0 -51
- package/src/lib/license/manager.ts +0 -345
- package/src/lib/license/notifications.ts +0 -59
- package/src/lib/license/tier-limits.ts +0 -71
- package/src/lib/marketplace/marketplace-client.ts +0 -107
- package/src/lib/sync/cloud-sync.ts +0 -235
- package/src/lib/telemetry/conversion-events.ts +0 -71
- package/src/lib/telemetry/queue.ts +0 -122
- package/src/lib/validators/license.ts +0 -33
|
@@ -6,7 +6,7 @@ difficulty: "advanced"
|
|
|
6
6
|
estimatedTime: "30 minutes"
|
|
7
7
|
sections: ["dashboard-kanban", "profiles", "chat", "workflows", "tables", "schedules", "monitoring", "settings"]
|
|
8
8
|
tags: ["advanced", "automation", "workflows", "profiles", "tables", "schedules", "monitoring", "bulk-operations", "ollama", "episodic-memory", "nlp-scheduling"]
|
|
9
|
-
lastUpdated: "2026-04-
|
|
9
|
+
lastUpdated: "2026-04-16"
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
# Power User Guide
|
|
@@ -88,14 +88,16 @@ Sam wants to run privacy-sensitive tasks on local models with zero API cost.
|
|
|
88
88
|
|
|
89
89
|
Sam creates schedules by describing them in plain English instead of writing cron expressions.
|
|
90
90
|
|
|
91
|
-

|
|
92
92
|
|
|
93
93
|
1. Navigate to **Schedules** and click **Create Schedule**
|
|
94
94
|
2. In the interval field, type natural language: "every weekday at 10pm," "every 6 hours during business hours," or "twice daily at 9am and 5pm"
|
|
95
95
|
3. A **preview** appears showing exactly how the system parsed the input
|
|
96
96
|
4. Select **Heartbeat** type to add intelligence -- the agent evaluates a checklist before acting
|
|
97
97
|
5. Add checklist items specific to your automation needs
|
|
98
|
-
6. Save the schedule
|
|
98
|
+
6. Save the schedule and click on it to open the **detail sheet** -- review firing history, next run time, and pause/resume controls
|
|
99
|
+
|
|
100
|
+

|
|
99
101
|
|
|
100
102
|
> **Tip:** NLP scheduling removes the friction of cron syntax. If the preview does not match your intent, rephrase and it re-parses instantly.
|
|
101
103
|
|
|
@@ -103,10 +105,10 @@ Sam creates schedules by describing them in plain English instead of writing cro
|
|
|
103
105
|
|
|
104
106
|
Sam customizes a workflow for a "Deploy & Verify" pipeline with specialized profiles at each step.
|
|
105
107
|
|
|
106
|
-

|
|
107
109
|
|
|
108
110
|
1. From the Workflows page, click **Create Workflow** (or customize a blueprint)
|
|
109
|
-
2.
|
|
111
|
+
2. Add steps with different agent profiles at each stage -- notice the **delay step** option for inserting timed pauses between steps (e.g., a 2-hour cooldown between deploy and verification)
|
|
110
112
|
3. Use the business-function profiles for non-technical steps (e.g., Content Creator for documentation, Operations Coordinator for runbook updates)
|
|
111
113
|
4. Save the workflow
|
|
112
114
|
|
|
@@ -146,7 +148,27 @@ Sam connects a table to the workflow engine so that row changes automatically ki
|
|
|
146
148
|
|
|
147
149
|
> **Tip:** Table triggers turn spreadsheets into event-driven automation surfaces. Sam uses them to auto-run incident postmortems whenever an incident row status changes to "Resolved."
|
|
148
150
|
|
|
149
|
-
### Step 11:
|
|
151
|
+
### Step 11: Create Tasks with AI Assist
|
|
152
|
+
|
|
153
|
+
Sam uses AI Assist to turn a rough task idea into a fully specified, workflow-ready plan.
|
|
154
|
+
|
|
155
|
+

|
|
156
|
+
|
|
157
|
+
1. From the Dashboard, click **Create Task**
|
|
158
|
+
2. Enter a rough title and description -- for example, "API Security Audit" with a one-line description
|
|
159
|
+
3. Click **AI Assist** -- the system analyzes the task and returns an improved description, complexity rating, recommended execution pattern (e.g., Swarm), and a checkpoint flag
|
|
160
|
+
4. Review the **breakdown** -- for complex tasks, AI Assist generates a multi-step workflow with per-step descriptions
|
|
161
|
+
|
|
162
|
+

|
|
163
|
+
|
|
164
|
+
5. Click **Apply** to replace the original description with the AI-improved version, or **Convert to Workflow** to generate a full workflow from the breakdown
|
|
165
|
+
6. The resulting workflow lands on the confirmation page, ready for review and customization
|
|
166
|
+
|
|
167
|
+

|
|
168
|
+
|
|
169
|
+
> **Tip:** AI Assist is the bridge between "I have a vague idea" and "I have a production-ready plan." For complex tasks, it recommends the Swarm pattern where multiple agents tackle sub-steps in parallel -- this is how multi-agent swarm execution works in practice.
|
|
170
|
+
|
|
171
|
+
### Step 12: Batch-Manage Tasks on the Kanban
|
|
150
172
|
|
|
151
173
|
Sam cleans up the task board using bulk select mode.
|
|
152
174
|
|
|
@@ -160,7 +182,7 @@ Sam cleans up the task board using bulk select mode.
|
|
|
160
182
|
|
|
161
183
|
> **Tip:** After a weekend of autonomous heartbeat runs, Sam's first Monday task is always a bulk cleanup.
|
|
162
184
|
|
|
163
|
-
### Step
|
|
185
|
+
### Step 13: Schedule Automated Prompt Loops
|
|
164
186
|
|
|
165
187
|

|
|
166
188
|
|
|
@@ -170,7 +192,7 @@ Sam cleans up the task board using bulk select mode.
|
|
|
170
192
|
4. Verify stop conditions and delivery channels
|
|
171
193
|
5. Toggle **Pause/Resume** as needed
|
|
172
194
|
|
|
173
|
-
### Step
|
|
195
|
+
### Step 14: Leverage Episodic Memory
|
|
174
196
|
|
|
175
197
|
Sam notices agents are re-researching the same topics. Episodic memory lets agents retain factual knowledge across executions.
|
|
176
198
|
|
|
@@ -184,7 +206,7 @@ Sam notices agents are re-researching the same topics. Episodic memory lets agen
|
|
|
184
206
|
|
|
185
207
|
> **Tip:** Episodic memory means a Financial Analyst profile that researches a company once can recall that research in future tasks without re-doing the work. It builds institutional knowledge automatically.
|
|
186
208
|
|
|
187
|
-
### Step
|
|
209
|
+
### Step 15: Watch Agent Execution in Real-Time
|
|
188
210
|
|
|
189
211
|

|
|
190
212
|
|
|
@@ -196,16 +218,25 @@ Sam notices agents are re-researching the same topics. Episodic memory lets agen
|
|
|
196
218
|
|
|
197
219
|
> **Tip:** The Monitor is Sam's operational dashboard. When something goes wrong in an autonomous loop at 3am, the execution traces are the fastest path to diagnosis.
|
|
198
220
|
|
|
199
|
-
### Step
|
|
221
|
+
### Step 16: Use Chat Suggested Prompts and Skill Composition
|
|
200
222
|
|
|
201
|
-

|
|
202
224
|
|
|
203
225
|
1. Navigate to **Chat** and notice the **suggested prompt tabs** (Explore, Create, Debug, Automate)
|
|
204
226
|
2. Click the **Create** tab to see prompts for creating tasks, workflows, and schedules
|
|
205
227
|
3. Click a suggested prompt to populate the input
|
|
206
|
-
4.
|
|
228
|
+
4. Type **/** to open the slash popover -- browse four tabs: **Actions**, **Skills**, **Tools**, and **Entities**
|
|
229
|
+
|
|
230
|
+

|
|
231
|
+
|
|
232
|
+
5. Switch to the **Skills** tab — click **+ Add** to stack a second skill onto the conversation (e.g., a research skill plus a code-review skill running concurrently)
|
|
233
|
+
6. If the new skill clashes with an active one, review the **conflict dialog** and decide which to keep — the engine's heuristic surfaces overlapping tools or contradictory instructions
|
|
234
|
+
7. Watch the "N of M active" indicator; once you approach the runtime's `maxActiveSkills` cap, prompt-budget eviction automatically trims the oldest low-priority skill
|
|
235
|
+
8. For a faster start, try **Start from template** or `/new-from-template` to open a conversation pre-primed from a workflow blueprint — the blueprint's optional `chatPrompt` provides the opening context
|
|
236
|
+
|
|
237
|
+
> **Tip:** Skill composition only engages on runtimes where `supportsSkillComposition` is true. On other runtimes the Skills tab stays read-only with a hint, and the chat behaves as a single-skill session.
|
|
207
238
|
|
|
208
|
-
### Step
|
|
239
|
+
### Step 17: Chain Everything Together
|
|
209
240
|
|
|
210
241
|
Sam connects the dots: profiles define *how*, workflows define *what*, schedules define *when*, Ollama handles the *cheap stuff*, episodic memory provides the *knowledge*, and delivery channels deliver the *results*.
|
|
211
242
|
|
|
@@ -221,7 +252,7 @@ Sam connects the dots: profiles define *how*, workflows define *what*, schedules
|
|
|
221
252
|
|
|
222
253
|
> **Tip:** Sam's automation philosophy: start small, observe, then expand. Run a workflow manually three times before scheduling it. Trust builds incrementally -- and so should autonomy.
|
|
223
254
|
|
|
224
|
-
### Step
|
|
255
|
+
### Step 18: What's Next
|
|
225
256
|
|
|
226
257
|
Sam's workspace is a fully autonomous operations engine. The next step is going deeper into the platform layer.
|
|
227
258
|
|
|
@@ -6,7 +6,7 @@ difficulty: "intermediate"
|
|
|
6
6
|
estimatedTime: "30 minutes"
|
|
7
7
|
sections: ["projects", "chat", "documents", "tables", "workflows", "schedules", "cost-usage", "inbox-notifications", "delivery-channels"]
|
|
8
8
|
tags: ["intermediate", "team", "documents", "tables", "workflows", "schedules", "costs", "inbox", "channels", "handoffs"]
|
|
9
|
-
lastUpdated: "2026-04-
|
|
9
|
+
lastUpdated: "2026-04-16"
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
# Work Use Guide
|
|
@@ -56,6 +56,9 @@ Rather than clicking through every page, Jordan asks Chat for a quick status upd
|
|
|
56
56
|
2. Type a question such as "What is the status of the Q2 planning project?"
|
|
57
57
|
3. Review the response -- notice **Quick Access pills** linking to specific items
|
|
58
58
|
4. Click a pill to jump directly to the referenced entity
|
|
59
|
+
5. Use **@** mentions to pull specific entities into the conversation -- type `@` to browse tasks, projects, documents, and workflows without leaving the composer
|
|
60
|
+
|
|
61
|
+

|
|
59
62
|
|
|
60
63
|
> **Tip:** Chat is the fastest way to get a cross-cutting status overview. Ask one question and follow the entity links.
|
|
61
64
|
|
|
@@ -107,6 +110,9 @@ Jordan has a CSV export from the previous quarter's performance review. Importin
|
|
|
107
110
|
3. Review the column mapping -- Stagent auto-detects column types from the data
|
|
108
111
|
4. Assign the table to the relevant project
|
|
109
112
|
5. Click **Create** to import the data into a fully editable spreadsheet view
|
|
113
|
+
6. Click into the table to open the **Data tab** with a spreadsheet-style editor -- edit cells inline, add rows, and review content
|
|
114
|
+
|
|
115
|
+

|
|
110
116
|
|
|
111
117
|
> **Tip:** Imported tables retain all their data as editable rows. You can add formula columns, charts, and workflow triggers on top of imported data.
|
|
112
118
|
|
|
@@ -150,7 +156,7 @@ Jordan schedules a weekly status summary using plain English instead of cron syn
|
|
|
150
156
|
|
|
151
157
|
### Step 11: Monitor Spending and Budgets
|
|
152
158
|
|
|
153
|
-

|
|
154
160
|
|
|
155
161
|
1. Click **Cost & Usage** in the sidebar
|
|
156
162
|
2. Review **total spend** for the current billing period
|
|
@@ -188,12 +194,14 @@ Jordan's agents have been running in the background. Some have generated handoff
|
|
|
188
194
|
2. For permission requests, review the tool name, arguments, and reason
|
|
189
195
|
3. Choose **Approve**, **Deny**, or **Always Allow**
|
|
190
196
|
4. For handoffs, approve to let the receiving agent begin work
|
|
197
|
+
5. If an agent sends an **AskUserQuestion** notification, type your answer in the inline reply field — there is no approve/deny, just a short response that lets the agent resume
|
|
198
|
+
6. Watch for **upgrade available** notifications and the occasional upgrade-failure alert (raised only after three consecutive poller failures, so these should be rare)
|
|
191
199
|
|
|
192
200
|
### Step 15: Configure Multi-Channel Notifications
|
|
193
201
|
|
|
194
202
|
Jordan sets up Slack so the entire team receives schedule results and important alerts.
|
|
195
203
|
|
|
196
|
-

|
|
197
205
|
|
|
198
206
|
1. Open **Settings** and scroll to **Delivery Channels**
|
|
199
207
|
2. Click **+ Add Channel** and select **Slack**
|
|
@@ -205,13 +213,14 @@ Jordan sets up Slack so the entire team receives schedule results and important
|
|
|
205
213
|
|
|
206
214
|
### Step 16: Manage Schedules
|
|
207
215
|
|
|
208
|
-

|
|
209
217
|
|
|
210
218
|
1. Return to **Schedules**
|
|
211
|
-
2. Locate the "Weekly Status Report" schedule
|
|
212
|
-
3.
|
|
213
|
-
4.
|
|
214
|
-
5.
|
|
219
|
+
2. Locate the "Weekly Status Report" schedule and click to open its **detail sheet**
|
|
220
|
+
3. Review the **firing history** with timestamps and outcomes -- suppressed heartbeat runs appear dimmed
|
|
221
|
+
4. Check **Next Run** to confirm the cadence
|
|
222
|
+
5. Use the **Pause/Resume** toggle when you need to temporarily silence a schedule during quiet periods
|
|
223
|
+
6. Edit or delete as needed
|
|
215
224
|
|
|
216
225
|
### Step 17: What's Next
|
|
217
226
|
|
package/docs/manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"generated": "2026-04-
|
|
3
|
-
"version":
|
|
2
|
+
"generated": "2026-04-15T15:30:00Z",
|
|
3
|
+
"version": 4,
|
|
4
4
|
"sections": [
|
|
5
5
|
{
|
|
6
6
|
"slug": "home-workspace",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"path": "features/inbox-notifications.md",
|
|
30
30
|
"route": "/inbox",
|
|
31
31
|
"tags": ["inbox", "approvals", "notifications", "human-in-the-loop", "handoffs"],
|
|
32
|
-
"features": ["inbox-notifications", "ambient-approval-toast", "agent-async-handoffs"],
|
|
32
|
+
"features": ["inbox-notifications", "ambient-approval-toast", "agent-async-handoffs", "upgrade-detection", "upgrade-session"],
|
|
33
33
|
"screengrabCount": 2
|
|
34
34
|
},
|
|
35
35
|
{
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
"category": "feature-reference",
|
|
39
39
|
"path": "features/chat.md",
|
|
40
40
|
"route": "/chat",
|
|
41
|
-
"tags": ["chat", "conversations", "ai", "tool-catalog", "mentions", "model-selection", "channels"],
|
|
42
|
-
"features": ["chat-data-layer", "chat-engine", "chat-api-routes", "chat-ui-shell", "chat-message-rendering", "chat-input-composer", "bidirectional-channel-chat"],
|
|
41
|
+
"tags": ["chat", "conversations", "ai", "tool-catalog", "mentions", "model-selection", "channels", "skills", "templates", "filters", "saved-searches"],
|
|
42
|
+
"features": ["chat-data-layer", "chat-engine", "chat-api-routes", "chat-ui-shell", "chat-message-rendering", "chat-input-composer", "bidirectional-channel-chat", "chat-skill-composition", "chat-composition-ui-v1", "chat-conversation-templates", "chat-filter-namespace", "chat-pinned-saved-searches", "saved-search-polish-v1"],
|
|
43
43
|
"screengrabCount": 4
|
|
44
44
|
},
|
|
45
45
|
{
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"path": "features/workflows.md",
|
|
60
60
|
"route": "/workflows",
|
|
61
61
|
"tags": ["workflows", "orchestration", "blueprints", "parallel", "swarm", "step-builder", "business-blueprints"],
|
|
62
|
-
"features": ["workflow-engine", "workflow-blueprints", "parallel-research-fork-join", "multi-agent-swarm", "autonomous-loop-execution", "workflow-ux-overhaul", "business-function-profiles"],
|
|
62
|
+
"features": ["workflow-engine", "workflow-blueprints", "parallel-research-fork-join", "multi-agent-swarm", "autonomous-loop-execution", "workflow-ux-overhaul", "business-function-profiles", "chat-conversation-templates", "workflow-run-history"],
|
|
63
63
|
"screengrabCount": 3
|
|
64
64
|
},
|
|
65
65
|
{
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"path": "features/documents.md",
|
|
70
70
|
"route": "/documents",
|
|
71
71
|
"tags": ["documents", "upload", "preprocessing", "agent-context", "extraction"],
|
|
72
|
-
"features": ["document-manager", "file-attachment-data-layer", "document-preprocessing", "agent-document-context", "document-output-generation"],
|
|
72
|
+
"features": ["document-manager", "file-attachment-data-layer", "document-preprocessing", "agent-document-context", "document-output-generation", "chat-filter-namespace", "chat-pinned-saved-searches"],
|
|
73
73
|
"screengrabCount": 2
|
|
74
74
|
},
|
|
75
75
|
{
|
|
@@ -129,7 +129,7 @@
|
|
|
129
129
|
"path": "features/settings.md",
|
|
130
130
|
"route": "/settings",
|
|
131
131
|
"tags": ["settings", "authentication", "permissions", "presets", "budgets", "browser-tools", "ollama", "channels", "snapshots"],
|
|
132
|
-
"features": ["session-management", "tool-permission-persistence", "tool-permission-presets", "browser-use", "spend-budget-guardrails", "ollama-runtime-provider", "multi-channel-delivery", "bidirectional-channel-chat", "database-snapshot-backup"],
|
|
132
|
+
"features": ["session-management", "tool-permission-persistence", "tool-permission-presets", "browser-use", "spend-budget-guardrails", "ollama-runtime-provider", "multi-channel-delivery", "bidirectional-channel-chat", "database-snapshot-backup", "upgrade-detection", "upgrade-session"],
|
|
133
133
|
"screengrabCount": 9
|
|
134
134
|
},
|
|
135
135
|
{
|
|
@@ -159,7 +159,7 @@
|
|
|
159
159
|
"path": "features/provider-runtimes.md",
|
|
160
160
|
"route": "cross-cutting",
|
|
161
161
|
"tags": ["runtimes", "claude", "openai", "codex", "ollama", "providers", "architecture", "smart-router"],
|
|
162
|
-
"features": ["provider-runtime-abstraction", "openai-codex-app-server", "agent-integration", "ollama-runtime-provider", "anthropic-direct-runtime", "openai-direct-runtime", "smart-runtime-router"],
|
|
162
|
+
"features": ["provider-runtime-abstraction", "openai-codex-app-server", "agent-integration", "ollama-runtime-provider", "anthropic-direct-runtime", "openai-direct-runtime", "smart-runtime-router", "runtime-validation-hardening", "runtime-capability-matrix"],
|
|
163
163
|
"screengrabCount": 2
|
|
164
164
|
},
|
|
165
165
|
{
|
|
@@ -169,7 +169,7 @@
|
|
|
169
169
|
"path": "features/agent-intelligence.md",
|
|
170
170
|
"route": "cross-cutting",
|
|
171
171
|
"tags": ["ai", "routing", "loops", "swarm", "self-improvement", "ai-assist", "episodic-memory", "handoffs"],
|
|
172
|
-
"features": ["multi-agent-routing", "autonomous-loop-execution", "multi-agent-swarm", "agent-self-improvement", "workflow-context-batching", "ai-assist-workflow-creation", "agent-episodic-memory", "agent-async-handoffs"],
|
|
172
|
+
"features": ["multi-agent-routing", "autonomous-loop-execution", "multi-agent-swarm", "agent-self-improvement", "workflow-context-batching", "ai-assist-workflow-creation", "agent-episodic-memory", "agent-async-handoffs", "chat-skill-composition"],
|
|
173
173
|
"screengrabCount": 0
|
|
174
174
|
},
|
|
175
175
|
{
|
|
@@ -179,7 +179,7 @@
|
|
|
179
179
|
"path": "features/tool-permissions.md",
|
|
180
180
|
"route": "cross-cutting",
|
|
181
181
|
"tags": ["permissions", "approvals", "presets", "governance", "trust-tiers"],
|
|
182
|
-
"features": ["tool-permission-persistence", "tool-permission-presets", "ambient-approval-toast"],
|
|
182
|
+
"features": ["tool-permission-persistence", "tool-permission-presets", "ambient-approval-toast", "upgrade-session"],
|
|
183
183
|
"screengrabCount": 1
|
|
184
184
|
},
|
|
185
185
|
{
|
|
@@ -199,7 +199,7 @@
|
|
|
199
199
|
"path": "features/keyboard-navigation.md",
|
|
200
200
|
"route": "cross-cutting",
|
|
201
201
|
"tags": ["keyboard", "navigation", "command-palette", "accessibility", "shortcuts"],
|
|
202
|
-
"features": ["command-palette", "keyboard-shortcuts", "focus-management"],
|
|
202
|
+
"features": ["command-palette", "keyboard-shortcuts", "focus-management", "chat-conversation-templates", "chat-pinned-saved-searches", "saved-search-polish-v1"],
|
|
203
203
|
"screengrabCount": 2
|
|
204
204
|
},
|
|
205
205
|
{
|
|
@@ -209,7 +209,7 @@
|
|
|
209
209
|
"path": "features/shared-components.md",
|
|
210
210
|
"route": "cross-cutting",
|
|
211
211
|
"tags": ["components", "reusable", "page-shell", "detail-pane", "status-chip", "data-table"],
|
|
212
|
-
"features": ["page-shell", "detail-pane", "status-chip", "data-table", "empty-state", "error-state"],
|
|
212
|
+
"features": ["page-shell", "detail-pane", "status-chip", "data-table", "empty-state", "error-state", "filter-input", "chat-filter-namespace"],
|
|
213
213
|
"screengrabCount": 0
|
|
214
214
|
}
|
|
215
215
|
],
|
|
@@ -275,8 +275,8 @@
|
|
|
275
275
|
],
|
|
276
276
|
"metadata": {
|
|
277
277
|
"totalDocs": 30,
|
|
278
|
-
"totalScreengrabs":
|
|
279
|
-
"featuresCovered":
|
|
278
|
+
"totalScreengrabs": 42,
|
|
279
|
+
"featuresCovered": 95,
|
|
280
280
|
"appSections": 16
|
|
281
281
|
}
|
|
282
282
|
}
|