@pellux/goodvibes-agent 1.4.4 → 1.5.1
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/CHANGELOG.md +22 -0
- package/README.md +52 -7
- package/dist/package/main.js +7491 -12253
- package/docs/README.md +2 -2
- package/docs/channels-remote-and-api.md +1 -1
- package/docs/getting-started.md +2 -2
- package/docs/release-and-publishing.md +1 -1
- package/docs/tools-and-commands.md +5 -5
- package/package.json +4 -2
- package/release/live-verification/live-verification.json +13 -13
- package/release/live-verification/live-verification.md +15 -15
- package/release/performance-snapshot.json +2 -2
- package/release/release-notes.md +5 -7
- package/release/release-readiness.json +6 -6
- package/src/agent/behavior-discovery-summary.ts +4 -18
- package/src/agent/calendar-registry.ts +322 -0
- package/src/agent/competitive-feature-inventory.ts +268 -130
- package/src/agent/document-registry.ts +5 -1
- package/src/agent/email/email-service.ts +350 -0
- package/src/agent/email/imap-client.ts +596 -0
- package/src/agent/email/smtp-client.ts +453 -0
- package/src/agent/ics-calendar.ts +662 -0
- package/src/agent/ics-timezone.ts +172 -0
- package/src/agent/markdown-frontmatter.ts +31 -0
- package/src/agent/memory-safety.ts +1 -1
- package/src/agent/note-registry.ts +3 -9
- package/src/agent/persona-discovery.ts +3 -15
- package/src/agent/persona-registry.ts +1 -10
- package/src/agent/research-source-registry.ts +5 -1
- package/src/agent/routine-discovery.ts +3 -15
- package/src/agent/runtime-profile.ts +3 -0
- package/src/agent/skill-discovery.ts +3 -15
- package/src/agent/skill-draft-proposer.ts +203 -0
- package/src/agent/skill-draft-runner.ts +201 -0
- package/src/agent/skill-registry.ts +36 -1
- package/src/agent/skill-standard.ts +99 -0
- package/src/agent/vibe-file.ts +7 -22
- package/src/cli/completion.ts +1 -1
- package/src/cli/config-overrides.ts +10 -1
- package/src/cli/redaction.ts +17 -5
- package/src/config/provider-model.ts +2 -1
- package/src/config/secret-config.ts +13 -6
- package/src/core/activity-feed.ts +97 -0
- package/src/core/away-digest.ts +161 -0
- package/src/core/conversation-rendering.ts +7 -3
- package/src/core/conversation.ts +22 -15
- package/src/core/hardware-profile.ts +362 -0
- package/src/core/last-seen-store.ts +78 -0
- package/src/core/plain-language.ts +52 -0
- package/src/core/setup-incomplete-hint.ts +90 -0
- package/src/core/system-message-router.ts +38 -87
- package/src/input/agent-workspace-basic-command-editor-submission.ts +60 -220
- package/src/input/agent-workspace-basic-command-editors.ts +39 -141
- package/src/input/agent-workspace-categories.ts +40 -125
- package/src/input/agent-workspace-command-editor.ts +4 -0
- package/src/input/agent-workspace-host-category.ts +0 -5
- package/src/input/agent-workspace-local-editor-submission.ts +3 -1
- package/src/input/agent-workspace-navigation.ts +10 -3
- package/src/input/agent-workspace-onboarding-actions.ts +132 -0
- package/src/input/agent-workspace-onboarding-categories.ts +29 -26
- package/src/input/agent-workspace-onboarding-finish.ts +11 -4
- package/src/input/agent-workspace-onboarding-state.ts +111 -0
- package/src/input/agent-workspace-profile-editor-submission.ts +260 -0
- package/src/input/agent-workspace-profile-editors.ts +155 -0
- package/src/input/agent-workspace-subscription-editor.ts +7 -0
- package/src/input/agent-workspace-types.ts +5 -1
- package/src/input/agent-workspace.ts +65 -39
- package/src/input/command-registry.ts +18 -5
- package/src/input/commands/agent-runtime-profile-runtime.ts +2 -1
- package/src/input/commands/agent-skills-runtime.ts +60 -3
- package/src/input/commands/calendar-runtime.ts +209 -0
- package/src/input/commands/channels-runtime.ts +1 -0
- package/src/input/commands/command-error.ts +9 -0
- package/src/input/commands/compat-runtime.ts +1 -0
- package/src/input/commands/config.ts +1 -0
- package/src/input/commands/conversation-runtime.ts +1 -1
- package/src/input/commands/delegation-runtime.ts +5 -6
- package/src/input/commands/email-runtime.ts +387 -0
- package/src/input/commands/experience-runtime.ts +17 -4
- package/src/input/commands/guidance-runtime.ts +1 -1
- package/src/input/commands/health-runtime.ts +6 -1
- package/src/input/commands/knowledge-format.ts +73 -0
- package/src/input/commands/knowledge.ts +9 -74
- package/src/input/commands/local-provider-runtime.ts +2 -1
- package/src/input/commands/local-runtime.ts +10 -4
- package/src/input/commands/mcp-runtime.ts +7 -0
- package/src/input/commands/notify-runtime.ts +17 -1
- package/src/input/commands/onboarding-runtime.ts +1 -0
- package/src/input/commands/operator-actions-runtime.ts +1 -0
- package/src/input/commands/operator-runtime.ts +3 -0
- package/src/input/commands/personas-runtime.ts +1 -0
- package/src/input/commands/platform-access-runtime.ts +40 -17
- package/src/input/commands/product-runtime.ts +6 -1
- package/src/input/commands/provider-accounts-runtime.ts +3 -2
- package/src/input/commands/qrcode-runtime.ts +1 -0
- package/src/input/commands/routines-runtime.ts +1 -0
- package/src/input/commands/runtime-services.ts +0 -13
- package/src/input/commands/security-runtime.ts +1 -0
- package/src/input/commands/session-content.ts +1 -0
- package/src/input/commands/shell-core.ts +5 -2
- package/src/input/commands/subscription-runtime.ts +33 -9
- package/src/input/commands/support-bundle-runtime.ts +8 -1
- package/src/input/commands/tasks-runtime.ts +1 -0
- package/src/input/commands/tts-runtime.ts +1 -0
- package/src/input/commands/vibe-runtime.ts +1 -0
- package/src/input/commands.ts +4 -0
- package/src/input/feed-context-factory.ts +3 -12
- package/src/input/handler-command-route.ts +7 -60
- package/src/input/handler-feed-routes.ts +0 -194
- package/src/input/handler-feed.ts +2 -54
- package/src/input/handler-interactions.ts +0 -2
- package/src/input/handler-modal-stack.ts +0 -9
- package/src/input/handler-picker-routes.ts +24 -1
- package/src/input/handler-shortcuts.ts +11 -40
- package/src/input/handler-ui-state.ts +13 -0
- package/src/input/handler.ts +8 -35
- package/src/input/keybindings.ts +40 -17
- package/src/input/model-picker-local-fit.ts +130 -0
- package/src/input/shell-passthrough.ts +58 -0
- package/src/input/submission-router.ts +0 -5
- package/src/main.ts +129 -90
- package/src/renderer/activity-sidebar.ts +186 -0
- package/src/renderer/agent-workspace-context-lines.ts +5 -48
- package/src/renderer/agent-workspace-style.ts +1 -1
- package/src/renderer/agent-workspace.ts +14 -2
- package/src/renderer/compositor.ts +37 -125
- package/src/renderer/conversation-overlays.ts +3 -3
- package/src/renderer/help-overlay.ts +7 -5
- package/src/renderer/model-workspace.ts +101 -86
- package/src/{panels → renderer}/polish.ts +3 -3
- package/src/renderer/shell-surface.ts +4 -5
- package/src/renderer/status-token.ts +31 -11
- package/src/renderer/tab-strip.ts +1 -1
- package/src/renderer/tool-call.ts +7 -8
- package/src/renderer/tool-labels.ts +92 -0
- package/src/renderer/ui-factory.ts +48 -96
- package/src/runtime/bootstrap-command-context.ts +0 -5
- package/src/runtime/bootstrap-command-parts.ts +6 -15
- package/src/runtime/bootstrap-core.ts +34 -13
- package/src/runtime/bootstrap-hook-bridge.ts +3 -1
- package/src/runtime/bootstrap-shell.ts +3 -50
- package/src/runtime/bootstrap.ts +3 -4
- package/src/runtime/context.ts +1 -1
- package/src/runtime/diagnostics/panels/index.ts +0 -1
- package/src/runtime/diagnostics/panels/policy.ts +1 -1
- package/src/runtime/execution-ledger.ts +16 -1
- package/src/runtime/index.ts +6 -1
- package/src/runtime/onboarding/index.ts +1 -0
- package/src/runtime/onboarding/onboarding-state.ts +200 -0
- package/src/{panels → runtime}/provider-account-snapshot.ts +5 -2
- package/src/runtime/services.ts +16 -4
- package/src/runtime/terminal-output-guard.ts +7 -0
- package/src/runtime/tool-permission-safety.ts +1 -1
- package/src/runtime/ui/model-picker/data-provider.ts +1 -1
- package/src/runtime/ui/model-picker/health-enrichment.ts +2 -2
- package/src/runtime/ui/model-picker/types.ts +2 -2
- package/src/runtime/ui/provider-health/data-provider.ts +3 -3
- package/src/runtime/ui/provider-health/types.ts +2 -2
- package/src/runtime/ui-services.ts +0 -2
- package/src/shell/agent-workspace-fullscreen.ts +0 -1
- package/src/shell/autonomy-surfacing.ts +272 -0
- package/src/shell/session-continuity-hints.ts +0 -6
- package/src/shell/startup-wiring.ts +221 -0
- package/src/shell/ui-openers.ts +18 -29
- package/src/tools/agent-context-policy.ts +1 -1
- package/src/tools/agent-harness-background-processes.ts +4 -4
- package/src/tools/agent-harness-browser-cockpit-route.ts +3 -3
- package/src/tools/agent-harness-command-runner.ts +6 -1
- package/src/tools/agent-harness-document-ops.ts +26 -53
- package/src/tools/agent-harness-execution-history.ts +1 -13
- package/src/tools/agent-harness-execution-posture.ts +0 -15
- package/src/tools/agent-harness-keybinding-metadata.ts +28 -29
- package/src/tools/agent-harness-local-model-cookbook.ts +24 -1
- package/src/tools/agent-harness-metadata.ts +16 -0
- package/src/tools/agent-harness-mode-catalog.ts +2 -9
- package/src/tools/agent-harness-provider-account-metadata.ts +2 -2
- package/src/tools/agent-harness-setup-posture-utils.ts +1 -1
- package/src/tools/agent-harness-tool-schema.ts +13 -14
- package/src/tools/agent-harness-tool.ts +27 -23
- package/src/tools/agent-harness-ui-surface-metadata.ts +10 -20
- package/src/tools/agent-harness-workspace-action-runner.ts +3 -4
- package/src/tools/agent-workspace-tool.ts +2 -33
- package/src/utils/terminal-width.ts +9 -3
- package/src/version.ts +1 -1
- package/src/input/agent-workspace-panel-route.ts +0 -44
- package/src/input/panel-integration-actions.ts +0 -26
- package/src/panels/approval-panel.ts +0 -149
- package/src/panels/automation-control-panel.ts +0 -212
- package/src/panels/base-panel.ts +0 -254
- package/src/panels/builtin/agent.ts +0 -58
- package/src/panels/builtin/knowledge.ts +0 -26
- package/src/panels/builtin/operations.ts +0 -121
- package/src/panels/builtin/session.ts +0 -138
- package/src/panels/builtin/shared.ts +0 -275
- package/src/panels/builtin/usage.ts +0 -21
- package/src/panels/builtin-panels.ts +0 -23
- package/src/panels/confirm-state.ts +0 -61
- package/src/panels/context-visualizer-panel.ts +0 -204
- package/src/panels/cost-tracker-panel.ts +0 -444
- package/src/panels/docs-panel.ts +0 -285
- package/src/panels/index.ts +0 -25
- package/src/panels/knowledge-panel.ts +0 -417
- package/src/panels/memory-panel.ts +0 -226
- package/src/panels/panel-list-panel.ts +0 -464
- package/src/panels/panel-manager.ts +0 -570
- package/src/panels/provider-accounts-panel.ts +0 -233
- package/src/panels/provider-health-domains.ts +0 -208
- package/src/panels/provider-health-panel.ts +0 -720
- package/src/panels/provider-health-tracker.ts +0 -115
- package/src/panels/provider-stats-panel.ts +0 -366
- package/src/panels/qr-panel.ts +0 -207
- package/src/panels/schedule-panel.ts +0 -321
- package/src/panels/scrollable-list-panel.ts +0 -491
- package/src/panels/search-focus.ts +0 -32
- package/src/panels/security-panel.ts +0 -295
- package/src/panels/session-browser-panel.ts +0 -395
- package/src/panels/session-maintenance.ts +0 -125
- package/src/panels/subscription-panel.ts +0 -263
- package/src/panels/system-messages-panel.ts +0 -230
- package/src/panels/tasks-panel.ts +0 -344
- package/src/panels/thinking-panel.ts +0 -304
- package/src/panels/token-budget-panel.ts +0 -475
- package/src/panels/tool-inspector-panel.ts +0 -436
- package/src/panels/types.ts +0 -54
- package/src/renderer/panel-composite.ts +0 -158
- package/src/renderer/panel-tab-bar.ts +0 -69
- package/src/renderer/panel-workspace-bar.ts +0 -42
- package/src/runtime/diagnostics/panels/panel-resources.ts +0 -118
- package/src/tools/agent-harness-panel-metadata.ts +0 -211
- /package/src/runtime/perf/{panel-health-monitor.ts → component-health.ts} +0 -0
|
@@ -22,113 +22,163 @@ export interface CompetitiveFeatureInventoryItem {
|
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
export const COMPETITIVE_FEATURE_INVENTORY: readonly CompetitiveFeatureInventoryItem[] = [
|
|
25
|
+
// ─── LEADING ──────────────────────────────────────────────────────────────
|
|
26
|
+
// These items represent verifiable differentiators where GoodVibes does
|
|
27
|
+
// something the three tracked competitors do not, or does it materially better.
|
|
25
28
|
{
|
|
26
|
-
id: '
|
|
27
|
-
userOutcome: '
|
|
29
|
+
id: 'review-first-safety-model',
|
|
30
|
+
userOutcome: 'Every high-impact action requires a typed confirmation, has a visible queue, produces audit evidence, and can be cancelled or rolled back without killing capability.',
|
|
28
31
|
targetStandard: 'better',
|
|
29
|
-
bestInClassRequirement: '
|
|
32
|
+
bestInClassRequirement: 'All risky effects are confirmation-gated with visible scope, durable receipts, and plain-language rollback routes before any effect fires.',
|
|
30
33
|
goodVibesStatus: 'leading',
|
|
31
|
-
owners: ['agent', '
|
|
32
|
-
goodVibesNow: '
|
|
34
|
+
owners: ['agent', 'release'],
|
|
35
|
+
goodVibesNow: 'GoodVibes ships a deliberate review-first autonomy posture: every confirmed action produces a typed receipt, visible work queues show pending and completed effects, the permission policy is inspectable via `security action:"status|finding|explain"`, and the release gate bans superlatives and requires plain-language evidence before any capability claim. No silent side effects are permitted — even background processes, channel sends, and connector reads have explicit confirmation boundaries. This is a product stance, not a gap: competitors offer faster autonomy by removing review steps; GoodVibes keeps review as a first-class surface so users can trust what the assistant did.',
|
|
33
36
|
nextMoves: [
|
|
34
|
-
'
|
|
35
|
-
'
|
|
37
|
+
'Reduce unnecessary friction for already-approved low-risk workflows while keeping the confirmation boundary for irreversible effects.',
|
|
38
|
+
'Attach every autonomous task to audit logs, artifact receipts, and cancel/rollback affordances as new daemon-backed work surfaces ship.',
|
|
39
|
+
'Keep the plain-language release gate and superlative ban enforced on every new docs or release-notes contribution.',
|
|
36
40
|
],
|
|
37
41
|
competitorSignals: [
|
|
38
|
-
{ competitor: 'openclaw', evidence: '
|
|
39
|
-
{ competitor: 'hermes', evidence: '
|
|
40
|
-
{ competitor: 'odysseus', evidence: '
|
|
42
|
+
{ competitor: 'openclaw', evidence: 'OpenClaw emphasizes sandboxed or full shell access as a user choice; no mandatory review-first posture for high-impact actions.' },
|
|
43
|
+
{ competitor: 'hermes', evidence: 'Hermes autonomous skill creation and self-improvement run without user review; agent writes skills during use without a staged confirmation boundary.' },
|
|
44
|
+
{ competitor: 'odysseus', evidence: 'Odysseus agents run bash/files/web/memory tools without a visible confirmation queue or typed receipt model.' },
|
|
41
45
|
],
|
|
42
46
|
},
|
|
43
47
|
{
|
|
44
|
-
id: '
|
|
45
|
-
userOutcome: '
|
|
48
|
+
id: 'blind-model-comparison',
|
|
49
|
+
userOutcome: 'The user can run the same prompt against multiple models without knowing which is which, then reveal results, record a judgment, and apply a confirmed route change — all from one workflow with durable artifacts.',
|
|
46
50
|
targetStandard: 'better',
|
|
47
|
-
bestInClassRequirement: '
|
|
51
|
+
bestInClassRequirement: 'Blind comparison produces a durable JSON artifact, a reviewer-ready side-by-side view, a confirmed winner apply route, and a leave-unchanged receipt — so every route decision has an evidence trail.',
|
|
48
52
|
goodVibesStatus: 'leading',
|
|
49
|
-
owners: ['agent'
|
|
50
|
-
goodVibesNow: 'Agent
|
|
53
|
+
owners: ['agent'],
|
|
54
|
+
goodVibesNow: 'Agent ships a confirmed blind comparison runner with delayed reveal, durable JSON comparison artifacts, saved review boards, split-pane reviewer handoff diffs with section-jump focus, saved judgment artifacts, task/document/benchmark-filtered preference analytics and cross-session synthesis, confirmed apply-winner route-decision receipts, confirmed leave-unchanged route-decision receipts, and one-click reviewer handoff ZIP archives that bundle comparison evidence, matching route-decision receipt bytes, README, and manifest ids. The review packet wizard surfaces these artifacts in a chronological timeline with preflight badges that flag unrevealed comparisons or hidden judgments before export or archive.',
|
|
51
55
|
nextMoves: [
|
|
52
|
-
'
|
|
53
|
-
'
|
|
56
|
+
'Extend blind compare to cover vision and multimodal prompts once the artifact store can hold image payloads without leaking model identity metadata.',
|
|
57
|
+
'Surface per-route benchmark latency from saved local cookbook artifacts directly in the compare side-by-side so cost/latency tradeoffs are visible at judgment time.',
|
|
58
|
+
'Keep the delayed-reveal gate enforced in any future browser/PWA surface that renders comparison artifacts.',
|
|
54
59
|
],
|
|
55
60
|
competitorSignals: [
|
|
56
|
-
{ competitor: 'openclaw', evidence: '
|
|
57
|
-
{ competitor: 'hermes', evidence: '
|
|
58
|
-
{ competitor: 'odysseus', evidence: '
|
|
61
|
+
{ competitor: 'openclaw', evidence: 'OpenClaw supports multiple model providers and failover but does not ship a blind comparison runner with delayed reveal or judgment artifact workflow.' },
|
|
62
|
+
{ competitor: 'hermes', evidence: 'Hermes supports multi-model and OpenRouter routing but does not expose a blind comparison runner or durable judgment artifacts for route decisions.' },
|
|
63
|
+
{ competitor: 'odysseus', evidence: 'Odysseus ships a Compare workspace but does not enforce delayed reveal or produce signed route-decision receipt artifacts with rollback evidence.' },
|
|
59
64
|
],
|
|
60
65
|
},
|
|
61
66
|
{
|
|
62
|
-
id: '
|
|
63
|
-
userOutcome: 'The
|
|
67
|
+
id: 'isolated-knowledge-with-provenance',
|
|
68
|
+
userOutcome: 'The assistant answers from a knowledge space the user controls, every source has a provenance chain, and segments that fail provenance checks are closed off rather than silently falling back to the base model.',
|
|
64
69
|
targetStandard: 'better',
|
|
65
|
-
bestInClassRequirement: '
|
|
70
|
+
bestInClassRequirement: 'Agent Knowledge is isolated per workspace, every ingested source carries certified provenance, and the system fails closed when provenance is missing rather than silently falling back.',
|
|
66
71
|
goodVibesStatus: 'leading',
|
|
67
|
-
owners: ['agent'
|
|
68
|
-
goodVibesNow: '
|
|
72
|
+
owners: ['agent'],
|
|
73
|
+
goodVibesNow: 'Agent Knowledge lives exclusively at `/api/goodvibes-agent/knowledge/*` with no default knowledge fallback; every ingest operation produces a certified provenance record; segments that cannot be certified are blocked, not silently served. The `agent_knowledge` and `agent_knowledge_ingest` tools expose isolated per-workspace RAG with provenance inspection and confirmed promotion routes. The knowledge semantic self-improvement ledger (`memory action:"refinement|run_refinement"`) runs bounded refinement against explicit source and gap ids without exposing raw source text or silently promoting local memory.',
|
|
69
74
|
nextMoves: [
|
|
70
|
-
'
|
|
71
|
-
'
|
|
75
|
+
'Add provenance gap surfacing to the Knowledge workspace so users can see which segments are blocked and why before they affect an answer.',
|
|
76
|
+
'Expose per-segment provenance status in the research-to-Knowledge promotion workflow so users can review source quality before ingest completes.',
|
|
77
|
+
'Keep fail-closed behavior as new knowledge connectors ship; certify each connector provenance contract before enabling automatic ingest.',
|
|
72
78
|
],
|
|
73
79
|
competitorSignals: [
|
|
74
|
-
{ competitor: 'openclaw', evidence: '
|
|
75
|
-
{ competitor: 'hermes', evidence: '
|
|
76
|
-
{ competitor: 'odysseus', evidence: '
|
|
80
|
+
{ competitor: 'openclaw', evidence: 'OpenClaw knowledge surfaces are community and user-owned but do not document fail-closed provenance enforcement or per-segment certification.' },
|
|
81
|
+
{ competitor: 'hermes', evidence: 'Hermes uses FTS5 cross-session recall and vector search but does not enforce certified provenance or fail-closed segment blocking.' },
|
|
82
|
+
{ competitor: 'odysseus', evidence: 'Odysseus ships persistent user-controlled memory but does not certify source provenance or enforce fail-closed segment behavior.' },
|
|
77
83
|
],
|
|
78
84
|
},
|
|
79
85
|
{
|
|
80
|
-
id: '
|
|
81
|
-
userOutcome: 'The
|
|
86
|
+
id: 'document-review-packets',
|
|
87
|
+
userOutcome: 'The user can produce a document, attach AI suggestions and model comparison results, package everything into a reviewer-ready artifact, and hand it off to a human reviewer with a single confirmed action.',
|
|
82
88
|
targetStandard: 'better',
|
|
83
|
-
bestInClassRequirement: '
|
|
84
|
-
goodVibesStatus: '
|
|
85
|
-
owners: ['agent'
|
|
86
|
-
goodVibesNow: '
|
|
89
|
+
bestInClassRequirement: 'Document review packets include versioned drafts, AI suggestions with accept/reject review, comparison evidence, route-decision receipts, a preflight readiness badge, and a one-click ZIP archive with README and manifest.',
|
|
90
|
+
goodVibesStatus: 'leading',
|
|
91
|
+
owners: ['agent'],
|
|
92
|
+
goodVibesNow: 'Agent ships project-scoped versioned markdown drafts with browse/show/create/revise/review/comment/suggest/accept-suggestion/reject-suggestion/artifact-attach/artifact-insert/export, a chronological review packet timeline across documents/comments/AI suggestions/attachments/exports/comparisons/judgments/route-decision receipts/handoffs/archives, a guided review packet wizard with progress/backtracking/preflight badges/refreshed-preset lineage, confirmed reviewer handoff artifacts bundling comparison evidence with related document exports and matching route-decision receipt bytes, one-click reviewer handoff ZIP archives, and confirmed `agent_review_packet_share` delivery through configured channel targets after explicit confirmation.',
|
|
87
93
|
nextMoves: [
|
|
88
|
-
'
|
|
89
|
-
'
|
|
90
|
-
'
|
|
94
|
+
'Certify real reviewer packet delivery outcomes across configured channel targets before claiming release-depth external delivery.',
|
|
95
|
+
'Carry the packet wizard, lineage, and archive-share workflow into future browser/PWA surfaces without weakening confirmation or ZIP-byte boundaries.',
|
|
96
|
+
'Add structured diff views for accept/reject suggestion batches so reviewers can see document state before and after a full suggestion pass.',
|
|
91
97
|
],
|
|
92
98
|
competitorSignals: [
|
|
93
|
-
{ competitor: 'openclaw', evidence: '
|
|
94
|
-
{ competitor: 'hermes', evidence: '
|
|
95
|
-
{ competitor: 'odysseus', evidence: '
|
|
99
|
+
{ competitor: 'openclaw', evidence: 'OpenClaw canvas provides visual interaction but does not ship a structured document review packet workflow with preflight badges or ZIP handoff artifacts.' },
|
|
100
|
+
{ competitor: 'hermes', evidence: 'Hermes supports conversation and session artifacts but does not ship a reviewer handoff packet workflow with versioned drafts, AI suggestion review, and route-decision receipt artifacts.' },
|
|
101
|
+
{ competitor: 'odysseus', evidence: 'Odysseus ships a Documents workspace but does not produce reviewer handoff packets, preflight readiness badges, or one-click ZIP archives with manifests.' },
|
|
96
102
|
],
|
|
97
103
|
},
|
|
98
104
|
{
|
|
99
|
-
id: '
|
|
100
|
-
userOutcome: 'The
|
|
105
|
+
id: 'profiles-as-starter-templates',
|
|
106
|
+
userOutcome: 'The user can set up an isolated assistant home with a personality file, pre-loaded skills, and a channel configuration in one step by applying a starter template — without needing to understand underlying registry plumbing.',
|
|
101
107
|
targetStandard: 'better',
|
|
102
|
-
bestInClassRequirement: '
|
|
108
|
+
bestInClassRequirement: 'Profiles are isolated agent homes that can be exported, imported, shared as templates, and applied without ceremony or hidden side effects.',
|
|
103
109
|
goodVibesStatus: 'leading',
|
|
104
|
-
owners: ['agent'
|
|
105
|
-
goodVibesNow: '
|
|
110
|
+
owners: ['agent'],
|
|
111
|
+
goodVibesNow: 'GoodVibes ships Profiles as isolated Agent homes with starter templates. The VIBE.md opt-in import/export lets users start with a friendly personality file without persona-registry ceremony. Setup wizard history records stable timestamped entries per profile. Profile starter export/import/application is confirmed and preview-gated. This pattern — isolated homes with shareable starter bundles — is not present in any of the three tracked competitors at the agent-home isolation level.',
|
|
106
112
|
nextMoves: [
|
|
107
|
-
'
|
|
108
|
-
'
|
|
113
|
+
'Add a profile gallery or catalog so users can discover and apply community starter templates from within the setup wizard.',
|
|
114
|
+
'Extend profile export to include the full channel configuration and permission posture so a shared profile is fully reproducible.',
|
|
115
|
+
'Surface profile isolation boundaries in the onboarding flow so users understand what is shared across profiles and what is not.',
|
|
109
116
|
],
|
|
110
117
|
competitorSignals: [
|
|
111
|
-
{ competitor: 'openclaw', evidence: '
|
|
112
|
-
{ competitor: 'hermes', evidence: '
|
|
113
|
-
{ competitor: 'odysseus', evidence: '
|
|
118
|
+
{ competitor: 'openclaw', evidence: 'OpenClaw has per-account agent isolation via the Gateway but does not expose shareable starter templates for isolated agent homes.' },
|
|
119
|
+
{ competitor: 'hermes', evidence: 'Hermes exposes skill and memory customization but does not ship isolated agent homes with starter template export/import.' },
|
|
120
|
+
{ competitor: 'odysseus', evidence: 'Odysseus has a single workspace per install; no isolated profile homes or starter template workflow.' },
|
|
114
121
|
],
|
|
115
122
|
},
|
|
116
123
|
{
|
|
117
|
-
id: '
|
|
118
|
-
userOutcome: 'The
|
|
124
|
+
id: 'honest-release-gates',
|
|
125
|
+
userOutcome: 'The user can inspect exactly what was verified before a release shipped, see which checks passed or failed, and trust that no superlative or unverified claim was allowed through.',
|
|
119
126
|
targetStandard: 'better',
|
|
120
|
-
bestInClassRequirement: '
|
|
127
|
+
bestInClassRequirement: 'Every release carries a signed readiness inventory, a live verification ledger with pass/fail counts, a performance snapshot, and a plain-language gate that bans superlatives and requires evidence-backed claims.',
|
|
121
128
|
goodVibesStatus: 'leading',
|
|
122
|
-
owners: ['
|
|
123
|
-
goodVibesNow: '
|
|
129
|
+
owners: ['release'],
|
|
130
|
+
goodVibesNow: 'GoodVibes ships a release readiness inventory (`release/release-readiness.json`) with schema-versioned items, a live verification JSON+Markdown report pair (`release/live-verification/`), a performance snapshot (`release/performance-snapshot.json`), and a plain-language gate that rejects superlatives, over-budget catalog summaries, and unverified harness mode references before release. The package-verification tooling enforces all of these at CI time. The release gate is itself versioned and can be audited. No tracked competitor publishes a comparable structured release evidence contract.',
|
|
124
131
|
nextMoves: [
|
|
125
|
-
'Keep
|
|
126
|
-
'Add
|
|
132
|
+
'Keep live verification counts and performance snapshot budgets current as new runtime surfaces ship to prevent silent budget drift.',
|
|
133
|
+
'Add a release gate check for docs files that reference stale or unregistered slash commands to catch command-name drift before it reaches users.',
|
|
134
|
+
'Publish the release readiness schema publicly so downstream integrators can verify agent package releases programmatically.',
|
|
127
135
|
],
|
|
128
136
|
competitorSignals: [
|
|
129
|
-
{ competitor: 'openclaw', evidence: '
|
|
130
|
-
{ competitor: 'hermes', evidence: '
|
|
131
|
-
{ competitor: 'odysseus', evidence: '
|
|
137
|
+
{ competitor: 'openclaw', evidence: 'OpenClaw publishes GitHub releases and changelogs but does not ship a structured release readiness inventory or live verification ledger with the package.' },
|
|
138
|
+
{ competitor: 'hermes', evidence: 'Hermes ships a one-line installer but does not publish a structured release evidence contract or live verification pass/fail ledger.' },
|
|
139
|
+
{ competitor: 'odysseus', evidence: 'Odysseus ships with a no-telemetry pledge but does not include a machine-readable release readiness inventory or plain-language gate artifact.' },
|
|
140
|
+
],
|
|
141
|
+
},
|
|
142
|
+
|
|
143
|
+
// ─── PARITY ───────────────────────────────────────────────────────────────
|
|
144
|
+
// GoodVibes ships these capabilities at a level comparable to the tracked
|
|
145
|
+
// competitors. No verifiable lead; no significant gap.
|
|
146
|
+
{
|
|
147
|
+
id: 'one-assistant-mental-model',
|
|
148
|
+
userOutcome: 'The user asks one assistant for help and does not need to understand package, host, daemon, or execution-boundary ownership.',
|
|
149
|
+
targetStandard: 'better',
|
|
150
|
+
bestInClassRequirement: 'Every setup, chat, automation, channel, and execution route is presented as one assistant with visible safety and recovery state.',
|
|
151
|
+
goodVibesStatus: 'parity',
|
|
152
|
+
owners: ['agent', 'connected-host', 'companion'],
|
|
153
|
+
goodVibesNow: 'Agent has a strong operator workspace with assistant-first lanes (setup, chat/model, project work, Personal Ops, research/docs, background work, safety/recovery), a route planner that accepts plain user tasks and returns preferred routes without exposing package-ownership language, and first-class adapters for host/daemon health, settings, models, Personal Ops, schedules, execution, memory, research, channels, security, support, sessions, and audit that all share one assistant surface. All three tracked competitors also present a unified assistant model to the user.',
|
|
154
|
+
nextMoves: [
|
|
155
|
+
'Keep adding plain-language route fixtures for any user task that still surfaces technical ownership language in the planner output.',
|
|
156
|
+
'Promote new daemon and SDK contracts into first-class Agent routes only after they have visible status, confirmation, and recovery semantics.',
|
|
157
|
+
'Audit new workspace lanes at each release to ensure no lane requires the user to understand GoodVibes package topology.',
|
|
158
|
+
],
|
|
159
|
+
competitorSignals: [
|
|
160
|
+
{ competitor: 'openclaw', evidence: 'OpenClaw presents Gateway as a control plane; the assistant product is the user-facing surface, not the topology.' },
|
|
161
|
+
{ competitor: 'hermes', evidence: 'Hermes exposes one assistant conversation model across CLI, gateway, and messaging surfaces.' },
|
|
162
|
+
{ competitor: 'odysseus', evidence: 'Odysseus bundles chat, agents, email, calendar, and documents into one web workspace with a single assistant entry point.' },
|
|
163
|
+
],
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
id: 'first-run-and-always-on-setup',
|
|
167
|
+
userOutcome: 'A fresh user can install, configure models, start the always-on runtime, and reach the assistant without manual topology work.',
|
|
168
|
+
targetStandard: 'better',
|
|
169
|
+
bestInClassRequirement: 'One guided flow verifies dependencies, installs or starts the host, configures auth, pairs channels, and leaves a working assistant.',
|
|
170
|
+
goodVibesStatus: 'parity',
|
|
171
|
+
owners: ['agent', 'connected-host', 'release'],
|
|
172
|
+
goodVibesNow: 'Agent ships a setup wizard that orders connected-host readiness, auth, provider/model access, install smoke, local model readiness, Agent Knowledge, behavior, channels, Browser/PWA readiness, automation review, browser/desktop control, delegation, and finish state — with progress, current-step route hints, backtracking, and saved checkpoints that resume across restarts. Setup receipt artifacts auto-advance matching rows. All three tracked competitors also ship guided first-run flows that handle runtime dependencies and assistant configuration.',
|
|
173
|
+
nextMoves: [
|
|
174
|
+
'Keep per-step setup receipt schemas aligned with any new SDK/daemon first-run receipt versions before release evidence accepts them.',
|
|
175
|
+
'Add real connected-host CI fixtures for ordered setup receipt event streams once the daemon publishes stable stream snapshots outside unit tests.',
|
|
176
|
+
'Verify that the setup wizard correctly handles every new channel adapter as it ships to prevent silent channel-pairing gaps at first run.',
|
|
177
|
+
],
|
|
178
|
+
competitorSignals: [
|
|
179
|
+
{ competitor: 'openclaw', evidence: 'OpenClaw onboarding installs the Gateway daemon so it stays running and walks through model and channel configuration.' },
|
|
180
|
+
{ competitor: 'hermes', evidence: 'Hermes ships a one-line installer that handles runtime dependencies, a setup wizard, and gateway configuration.' },
|
|
181
|
+
{ competitor: 'odysseus', evidence: 'Odysseus Docker and native setup generate an admin account and open a local web UI ready for first use.' },
|
|
132
182
|
],
|
|
133
183
|
},
|
|
134
184
|
{
|
|
@@ -136,17 +186,18 @@ export const COMPETITIVE_FEATURE_INVENTORY: readonly CompetitiveFeatureInventory
|
|
|
136
186
|
userOutcome: 'The user can ask for ongoing work in natural language and then supervise, pause, resume, or cancel it from a clear queue.',
|
|
137
187
|
targetStandard: 'better',
|
|
138
188
|
bestInClassRequirement: 'Schedules, cron jobs, recurring routines, and long-running tasks are autonomous but never hidden.',
|
|
139
|
-
goodVibesStatus: '
|
|
189
|
+
goodVibesStatus: 'parity',
|
|
140
190
|
owners: ['agent', 'connected-host'],
|
|
141
|
-
goodVibesNow: 'Agent has a first-class `schedule` adapter for
|
|
191
|
+
goodVibesNow: 'Agent has a first-class `schedule` adapter for list/create/remind/edit/run/pause/resume/delete, confirmed schedule creation, routine promotion, connected schedule editing with before/after diffs, and allowlisted lifecycle controls. The read-only autonomy queue maps visible owners, status, inspect routes, live research runs, connected-host task records, approval records, automation run records, schedule records, and delegated subagent orchestration routes with exact confirmed controls. All three tracked competitors also offer background task scheduling and autonomous background work.',
|
|
142
192
|
nextMoves: [
|
|
143
193
|
'Add live connected-host verification artifacts from real daemon watcher source streams as soon as CI can publish a stable GoodVibes daemon fixture.',
|
|
144
194
|
'Broaden provider-specific watcher source fixtures beyond Gmail/email as the SDK and daemon publish additional source-owned watcher families.',
|
|
195
|
+
'Surface active and completed schedule run history in the Home cockpit so users can see what the assistant did while they were away without drilling into the queue.',
|
|
145
196
|
],
|
|
146
197
|
competitorSignals: [
|
|
147
|
-
{ competitor: 'openclaw', evidence: '
|
|
148
|
-
{ competitor: 'hermes', evidence: '
|
|
149
|
-
{ competitor: 'odysseus', evidence: '
|
|
198
|
+
{ competitor: 'openclaw', evidence: 'OpenClaw supports cron, wakeups, webhooks, Gmail triggers, and always-on gateway workflows.' },
|
|
199
|
+
{ competitor: 'hermes', evidence: 'Hermes has a built-in cron scheduler for daily reports, backups, audits, and unattended work.' },
|
|
200
|
+
{ competitor: 'odysseus', evidence: 'Odysseus notes, tasks, reminders, and cron-style scheduled tasks can be acted on autonomously by the agent.' },
|
|
150
201
|
],
|
|
151
202
|
},
|
|
152
203
|
{
|
|
@@ -154,92 +205,136 @@ export const COMPETITIVE_FEATURE_INVENTORY: readonly CompetitiveFeatureInventory
|
|
|
154
205
|
userOutcome: 'The assistant can browse, use the computer, run shell commands, edit files, and recover from mistakes with understandable approvals.',
|
|
155
206
|
targetStandard: 'better',
|
|
156
207
|
bestInClassRequirement: 'Computer use includes browser control, shell, files, code edits, desktop/device actions, sandboxing, undo, and live tool cards.',
|
|
157
|
-
goodVibesStatus: '
|
|
208
|
+
goodVibesStatus: 'parity',
|
|
158
209
|
owners: ['agent', 'connected-host', 'companion'],
|
|
159
|
-
goodVibesNow: 'Agent exposes local-first execution posture for read/search/analyze, file edit/write, bounded foreground shell commands,
|
|
210
|
+
goodVibesNow: 'Agent exposes local-first execution posture for read/search/analyze, file edit/write, bounded foreground shell commands, Work workspace process supervision with stdin/PTY/sudo parity, visible process monitor/live tail/tool inspector supervision routes, first-class `execution`, `computer`, `terminal`, and `process` adapters, certified SDK/daemon interactive runtime read models, and confirmed file recovery. All three tracked competitors also ship browser control, shell access, and file tools.',
|
|
160
211
|
nextMoves: [
|
|
161
212
|
'Keep certified interactive runtime schema fixtures current as SDK/daemon process, PTY, sudo, and browser-control contracts add fields.',
|
|
162
213
|
'Add connected-host CI coverage for real daemon interactive runtime streams and browser/desktop command receipts when stable fixtures are available.',
|
|
163
|
-
'Keep delegation for isolation, parallelism, or remote execution, not
|
|
214
|
+
'Keep delegation for isolation, parallelism, or remote execution positioned as a tool choice, not the default answer to any computer-use ask.',
|
|
164
215
|
],
|
|
165
216
|
competitorSignals: [
|
|
166
|
-
{ competitor: 'openclaw', evidence: '
|
|
167
|
-
{ competitor: 'hermes', evidence: '
|
|
168
|
-
{ competitor: 'odysseus', evidence: '
|
|
217
|
+
{ competitor: 'openclaw', evidence: 'OpenClaw provides browser control, canvas, nodes, system.run, camera, screen recording, and session tools.' },
|
|
218
|
+
{ competitor: 'hermes', evidence: 'Hermes includes six terminal backends (local, Docker, SSH, Daytona, Singularity, Modal), browser tools, code execution, and isolated subagents.' },
|
|
219
|
+
{ competitor: 'odysseus', evidence: 'Odysseus agents use web, files, shell, MCP, skills, and memory tools via the opencode integration.' },
|
|
169
220
|
],
|
|
170
221
|
},
|
|
171
222
|
{
|
|
172
|
-
id: '
|
|
173
|
-
userOutcome: '
|
|
223
|
+
id: 'deep-research-and-knowledge-reports',
|
|
224
|
+
userOutcome: 'The user can ask for deep research and receive a sourced, inspectable report that can be saved to knowledge.',
|
|
174
225
|
targetStandard: 'better',
|
|
175
|
-
bestInClassRequirement: '
|
|
176
|
-
goodVibesStatus: '
|
|
226
|
+
bestInClassRequirement: 'Research plans, source quality, citations, synthesis, visual report output, and knowledge ingest are one coherent workflow.',
|
|
227
|
+
goodVibesStatus: 'parity',
|
|
177
228
|
owners: ['agent', 'connected-host'],
|
|
178
|
-
goodVibesNow: '
|
|
229
|
+
goodVibesNow: 'Agent has a Research workspace with browser-runner readiness, a project-local visible run ledger with checkpoint/pause/resume/cancel, bounded public source-candidate search, confirmed source collection with queue records, a reviewed-source bundle handoff, sourced report artifacts with citation coverage repair hints, and visual report packets with evidence matrix, findings board, and dated source/comparison views. Odysseus ships a comparable Deep Research workflow, and all three competitors have web tools, session search, and research-ready batch capabilities.',
|
|
179
230
|
nextMoves: [
|
|
180
|
-
'Keep
|
|
181
|
-
'Add connected-host CI coverage for real
|
|
182
|
-
'
|
|
231
|
+
'Keep live research runner and visual report renderer certification fixtures current as SDK/daemon read models add fields.',
|
|
232
|
+
'Add connected-host CI coverage for real browser-backed research runs, page/source receipts, rendered report routes, and failure states when stable daemon fixtures publish them.',
|
|
233
|
+
'Add a research source credibility scoring display to the source review queue so users can see provenance quality before adding a source to a report.',
|
|
183
234
|
],
|
|
184
235
|
competitorSignals: [
|
|
185
|
-
{ competitor: 'openclaw', evidence: '
|
|
186
|
-
{ competitor: 'hermes', evidence: '
|
|
187
|
-
{ competitor: 'odysseus', evidence: '
|
|
236
|
+
{ competitor: 'openclaw', evidence: 'OpenClaw showcases web research, bookmarks, project research, and personal knowledge workflows.' },
|
|
237
|
+
{ competitor: 'hermes', evidence: 'Hermes has web tools, session search, trajectory tooling, and research-ready batch workflows.' },
|
|
238
|
+
{ competitor: 'odysseus', evidence: 'Odysseus ships Deep Research that gathers, reads, and synthesizes sources into a visual report — functionally comparable to GoodVibes research workflow.' },
|
|
188
239
|
],
|
|
189
240
|
},
|
|
241
|
+
|
|
242
|
+
// ─── PARTIAL ──────────────────────────────────────────────────────────────
|
|
243
|
+
// GoodVibes ships meaningful capability here but has a documented gap
|
|
244
|
+
// relative to one or more competitors. Each item has a concrete nextMove.
|
|
190
245
|
{
|
|
191
|
-
id: '
|
|
192
|
-
userOutcome: 'The user can
|
|
246
|
+
id: 'models-and-local-model-cookbook',
|
|
247
|
+
userOutcome: 'The user can choose cloud, subscription, or local models without knowing provider-specific setup details, and the assistant recommends the best local model for their hardware.',
|
|
193
248
|
targetStandard: 'better',
|
|
194
|
-
bestInClassRequirement: '
|
|
195
|
-
goodVibesStatus: '
|
|
249
|
+
bestInClassRequirement: 'Model setup recommends the best available route, detects local servers, benchmarks fit, detects hardware, and can help download or serve local models from a hardware-aware catalog.',
|
|
250
|
+
goodVibesStatus: 'partial',
|
|
196
251
|
owners: ['agent', 'connected-host'],
|
|
197
|
-
goodVibesNow: '
|
|
252
|
+
goodVibesNow: 'GoodVibes ships first-class `models action:"status|route|local|providers|provider|smoke"` UX with hardware-scored local model cookbook for Ollama, llama.cpp, vLLM, and local OpenAI-compatible servers; CPU/RAM/platform scanning; safe accelerator hints; ranked fit; setup plans with download/start guidance; confirmed local smoke checks; saved benchmark-evidence review; and revealed winner judgments. The cookbook scans local platform and applies fit scores but does not auto-detect GPU model, VRAM, and supported quantization levels to recommend from a 270+ model catalog the way Odysseus does.',
|
|
198
253
|
nextMoves: [
|
|
199
|
-
'
|
|
200
|
-
'
|
|
254
|
+
'Add GPU/VRAM detection to the local cookbook hardware scan so quantization tier recommendations are accurate without user research.',
|
|
255
|
+
'Expand the local model catalog beyond Ollama/llama.cpp/vLLM to cover additional serving backends that the daemon can manage.',
|
|
256
|
+
'Publish hardware sizing guidelines in the cookbook output so users on constrained hardware get explicit guidance before a slow download.',
|
|
201
257
|
],
|
|
202
258
|
competitorSignals: [
|
|
203
|
-
{ competitor: 'openclaw', evidence: '
|
|
204
|
-
{ competitor: 'hermes', evidence: '
|
|
205
|
-
{ competitor: 'odysseus', evidence: '
|
|
259
|
+
{ competitor: 'openclaw', evidence: 'OpenClaw supports multiple model providers plus subscription auth and model failover, but does not ship a hardware-aware local cookbook.' },
|
|
260
|
+
{ competitor: 'hermes', evidence: 'Hermes supports many providers, OpenRouter, local endpoints, and a managed tool gateway subscription, but does not ship a hardware-scanning cookbook.' },
|
|
261
|
+
{ competitor: 'odysseus', evidence: 'Odysseus scans hardware for GPU/VRAM and recommends or serves models through Ollama, llama.cpp, and vLLM from a 270+ model catalog with one-click serving.' },
|
|
206
262
|
],
|
|
207
263
|
},
|
|
208
264
|
{
|
|
209
|
-
id: '
|
|
210
|
-
userOutcome: 'The
|
|
211
|
-
targetStandard: '
|
|
212
|
-
bestInClassRequirement: '
|
|
213
|
-
goodVibesStatus: '
|
|
265
|
+
id: 'omnichannel-inbox-and-delivery',
|
|
266
|
+
userOutcome: 'The assistant is reachable where the user already communicates and can reply safely on those channels.',
|
|
267
|
+
targetStandard: 'better',
|
|
268
|
+
bestInClassRequirement: 'Channel setup is guided, inbound trust is default-safe, delivery is reliable, inbound messages route to isolated agent profiles, and the user can inspect every route from one place.',
|
|
269
|
+
goodVibesStatus: 'partial',
|
|
270
|
+
owners: ['agent', 'connected-host', 'companion'],
|
|
271
|
+
goodVibesNow: 'GoodVibes ships approximately 11 channel adapters (ntfy, Slack, Discord, webhook, Telegram, Google Chat, home automation, Signal, WhatsApp, iMessage + telephony/Twilio), guided setup, readiness inspection, policy, confirmed send routes, and first-class `channels action:"status|channel|setup|triage|deliveries"` UX. Channel breadth (11) is materially narrower than OpenClaw (24+ channels) and Hermes (7 channels plus email). GoodVibes does not ship channel-to-isolated-profile routing: OpenClaw routes inbound channels to isolated agents with own workspaces via the local Gateway control plane.',
|
|
272
|
+
nextMoves: [
|
|
273
|
+
'Promote provider-specific unread channel inbox polling only when the connected-host contract publishes a general safe message feed.',
|
|
274
|
+
'Certify real delivery outcomes per channel before claiming release readiness for any new adapter.',
|
|
275
|
+
'Design a channel-to-profile routing contract so inbound messages can be directed to a specific isolated agent home without requiring manual session switching.',
|
|
276
|
+
],
|
|
277
|
+
competitorSignals: [
|
|
278
|
+
{ competitor: 'openclaw', evidence: 'OpenClaw ships 24+ channels (WhatsApp, Telegram, Slack, Discord, Google Chat, Signal, iMessage, IRC, Teams, Matrix, Feishu, LINE, Mattermost, Nextcloud Talk, Nostr, Synology Chat, Tlon, Twitch, Zalo, WeChat, QQ, WebChat, macOS, iOS, Android) plus channel-to-isolated-agent routing via the Gateway control plane.' },
|
|
279
|
+
{ competitor: 'hermes', evidence: 'Hermes supports Telegram, Discord, Slack, WhatsApp, Signal, CLI, and email from one gateway; no isolated-profile routing documented.' },
|
|
280
|
+
{ competitor: 'odysseus', evidence: 'Odysseus uses browser, email, ntfy, and mobile/PWA surfaces; narrower channel breadth than OpenClaw.' },
|
|
281
|
+
],
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
id: 'closed-learning-loop',
|
|
285
|
+
userOutcome: 'The assistant gets better over time by saving useful memories, skills, and routines only when they are useful and reviewable.',
|
|
286
|
+
targetStandard: 'better',
|
|
287
|
+
bestInClassRequirement: 'Learning is automatic enough to be useful, but every durable behavior has provenance, review, rollback, and quality scoring.',
|
|
288
|
+
goodVibesStatus: 'partial',
|
|
289
|
+
owners: ['agent'],
|
|
290
|
+
goodVibesNow: 'Agent ships local memory, notes, personas, skills, routines, learned-behavior capture, safe VIBE.md personality discovery, project context injection with secret-content scanning, a learning curator with score-driven prompt plans, ranked review/stale/consolidation candidates, confirmed duplicate-consolidation phases, and formal promotion gating at or above the durable confidence threshold. Learning is review-first by design: behaviors do not become durable without user confirmation. Hermes and OpenClaw ship fully autonomous skill creation — agents write reusable skills during use without a staged confirmation boundary, and Hermes also ships skill self-improvement and the agentskills.io open standard for cross-agent skill sharing. GoodVibes is deliberately divergent here, but the divergence does cost autonomy speed.',
|
|
291
|
+
nextMoves: [
|
|
292
|
+
'Ship skill-standard import/export (agentskills.io-compatible) so review-first skills can still be shared and discovered across agents — see skill-standard-interop item.',
|
|
293
|
+
'Add a fast-path confirmation mode for low-risk skill additions that have already been reviewed in a prior session to reduce ceremony without removing review.',
|
|
294
|
+
'Keep Honcho, Mem0, Supermemory, and similar provider schema fixtures current as SDK/daemon contracts add provider-owned receipt fields.',
|
|
295
|
+
],
|
|
296
|
+
competitorSignals: [
|
|
297
|
+
{ competitor: 'openclaw', evidence: 'OpenClaw ships a community skills marketplace and agents can write their own skills; skill creation does not require a staged user review boundary.' },
|
|
298
|
+
{ competitor: 'hermes', evidence: 'Hermes markets autonomous skill creation (agent writes reusable skill docs when it solves hard problems), skill self-improvement during use, and agentskills.io open standard compatibility for cross-agent skill sharing.' },
|
|
299
|
+
{ competitor: 'odysseus', evidence: 'Odysseus ships persistent memory and skills backed by vector and keyword retrieval; no autonomous skill creation described.' },
|
|
300
|
+
],
|
|
301
|
+
},
|
|
302
|
+
{
|
|
303
|
+
id: 'multi-agent-and-remote-execution',
|
|
304
|
+
userOutcome: 'Large tasks can be split safely across isolated agents or remote runners while the user sees progress and can intervene.',
|
|
305
|
+
targetStandard: 'better',
|
|
306
|
+
bestInClassRequirement: 'Parallelism is available when it improves time-to-result, with per-task workspaces, logs, artifacts, and review gates.',
|
|
307
|
+
goodVibesStatus: 'partial',
|
|
214
308
|
owners: ['agent', 'connected-host'],
|
|
215
|
-
goodVibesNow: '
|
|
309
|
+
goodVibesNow: 'GoodVibes ships `agent_orchestration` and `agent_orchestration_agent` for visible subagent records, serial-by-default policy, managed milestones, per-agent plan cards with cancel/message/wait routes, remote-runner contract/artifact evidence, and durable remote closeout receipt evidence. Execution backends are local and connected-host only. Hermes ships six terminal backends (local, Docker, SSH, Daytona, Singularity, Modal) plus isolated subagents with own conversation and terminal; GoodVibes currently has no Docker/SSH/cloud terminal backend.',
|
|
216
310
|
nextMoves: [
|
|
217
|
-
'
|
|
218
|
-
'
|
|
311
|
+
'Keep remote-runtime outcome and workspace certification fixtures current as SDK/daemon read models add fields.',
|
|
312
|
+
'Add connected-host CI coverage for real remote capture/export/closeout streams and workspace lifecycle controls when stable daemon fixtures publish them.',
|
|
313
|
+
'Design the remote execution backend contract so Docker and SSH backends can be added through the connected-host operator method surface.',
|
|
219
314
|
],
|
|
220
315
|
competitorSignals: [
|
|
221
|
-
{ competitor: 'openclaw', evidence: '
|
|
222
|
-
{ competitor: 'hermes', evidence: '
|
|
223
|
-
{ competitor: 'odysseus', evidence: '
|
|
316
|
+
{ competitor: 'openclaw', evidence: 'OpenClaw supports multi-agent routing and session tools for agent-to-agent coordination.' },
|
|
317
|
+
{ competitor: 'hermes', evidence: 'Hermes spawns isolated subagents with own conversation and terminal, and supports six terminal backends: local, Docker, SSH, Daytona, Singularity, and Modal.' },
|
|
318
|
+
{ competitor: 'odysseus', evidence: 'Odysseus lets users hand tools to an agent and have it run whole tasks; any MCP server can be attached as a tool backend.' },
|
|
224
319
|
],
|
|
225
320
|
},
|
|
226
321
|
{
|
|
227
322
|
id: 'mobile-voice-and-device-nodes',
|
|
228
323
|
userOutcome: 'The user can talk to the assistant and use phone or desktop device capabilities without returning to the terminal.',
|
|
229
324
|
targetStandard: 'better',
|
|
230
|
-
bestInClassRequirement: 'Voice, mobile, notifications, camera, screen, location, and device commands are paired, permission-aware, and reliable.',
|
|
231
|
-
goodVibesStatus: '
|
|
325
|
+
bestInClassRequirement: 'Voice, mobile, notifications, wake word, talk mode, camera, screen, location, and device commands are paired, permission-aware, and reliable.',
|
|
326
|
+
goodVibesStatus: 'partial',
|
|
232
327
|
owners: ['agent', 'connected-host', 'companion'],
|
|
233
|
-
goodVibesNow: 'Agent
|
|
328
|
+
goodVibesNow: 'Agent ships `device action:"status|capability|voice|provider|open_tts_provider|open_tts_voice"` UX over companion pairing, mobile/PWA compatibility, voice/TTS, notifications, TTS provider/voice picker, and `computer action:"status|plan|control|browser|setup"` for browser/PWA readiness and desktop-control workflow planning. TTS, image input, and media generation are shipped. Wake-word readiness is inspectable but no wake word is actually shipped; no Talk Mode (continuous conversation) is available. OpenClaw ships voice wake words on macOS/iOS and a continuous Talk Mode on Android via ElevenLabs and system TTS.',
|
|
234
329
|
nextMoves: [
|
|
330
|
+
'Ship wake-word capture on at least one platform (macOS companion or Android companion) before claiming voice wake-word parity.',
|
|
331
|
+
'Design a continuous Talk Mode that integrates TTS output with push-to-talk input into a single conversation loop with latency-aware turn detection.',
|
|
235
332
|
'Keep companion device capability certification fixtures current as SDK/daemon records add camera, screen, location, notification, wake, and device-command fields.',
|
|
236
|
-
'Add connected-host/companion CI coverage for real permission prompts, capture receipts, route failures, and mobile foreground/background transitions when stable fixtures publish them.',
|
|
237
|
-
'Keep all device capture, permission repair, notification send, and local command effects behind exact confirmed routes.',
|
|
238
333
|
],
|
|
239
334
|
competitorSignals: [
|
|
240
|
-
{ competitor: 'openclaw', evidence: 'macOS
|
|
241
|
-
{ competitor: 'hermes', evidence: '
|
|
242
|
-
{ competitor: 'odysseus', evidence: '
|
|
335
|
+
{ competitor: 'openclaw', evidence: 'OpenClaw ships wake words on macOS/iOS and a continuous Talk Mode on Android with ElevenLabs and system TTS integration.' },
|
|
336
|
+
{ competitor: 'hermes', evidence: 'Hermes runs in Termux and supports voice memo transcription and messaging continuity; no wake word or talk mode documented.' },
|
|
337
|
+
{ competitor: 'odysseus', evidence: 'Odysseus ships a responsive PWA with mobile support and browser notifications; no voice wake word or talk mode documented.' },
|
|
243
338
|
],
|
|
244
339
|
},
|
|
245
340
|
{
|
|
@@ -247,36 +342,79 @@ export const COMPETITIVE_FEATURE_INVENTORY: readonly CompetitiveFeatureInventory
|
|
|
247
342
|
userOutcome: 'The assistant is usable from a browser with clear status, settings, sessions, tools, and mobile-friendly controls.',
|
|
248
343
|
targetStandard: 'better',
|
|
249
344
|
bestInClassRequirement: 'The browser surface is not a secondary admin panel; it is a full user-grade assistant cockpit.',
|
|
250
|
-
goodVibesStatus: '
|
|
345
|
+
goodVibesStatus: 'partial',
|
|
251
346
|
owners: ['connected-host', 'agent'],
|
|
252
|
-
goodVibesNow: 'GoodVibes
|
|
347
|
+
goodVibesNow: 'GoodVibes ships a TUI as the primary interface and a browser cockpit/PWA route accessible through `computer action:"browser|open_browser"` once connected-host publishes certified browser-native category routes and first-run receipts. Agent reports workspace-category coverage and mobile/PWA controls when the SDK/daemon certifies the route. The PWA surface is partial: Odysseus primary experience is a self-hosted responsive web workspace; OpenClaw serves a Control UI, WebChat, and companion apps from the Gateway. GoodVibes does not yet have a standalone desktop or web app shell.',
|
|
253
348
|
nextMoves: [
|
|
254
349
|
'Keep certified browser/PWA category-route and first-run receipt schemas in lockstep with SDK/daemon contract versions.',
|
|
255
350
|
'Add live connected-host browser/PWA acceptance artifacts to every stable-release verification run.',
|
|
256
|
-
'
|
|
351
|
+
'Clarify the roadmap for a standalone desktop app so users who cannot use the TUI have a documented path to first-class access.',
|
|
257
352
|
],
|
|
258
353
|
competitorSignals: [
|
|
259
|
-
{ competitor: 'openclaw', evidence: 'Gateway serves Control UI
|
|
260
|
-
{ competitor: 'hermes', evidence: '
|
|
261
|
-
{ competitor: 'odysseus', evidence: '
|
|
354
|
+
{ competitor: 'openclaw', evidence: 'OpenClaw Gateway serves a Control UI, WebChat surface, and companion apps for macOS, iOS, and Android.' },
|
|
355
|
+
{ competitor: 'hermes', evidence: 'Hermes provides a local web dashboard surface in addition to TUI; it left the terminal-only era with an official desktop app.' },
|
|
356
|
+
{ competitor: 'odysseus', evidence: 'Odysseus primary experience is a self-hosted responsive web workspace/PWA with no mandatory TUI dependency.' },
|
|
262
357
|
],
|
|
263
358
|
},
|
|
264
359
|
{
|
|
265
|
-
id: '
|
|
266
|
-
userOutcome: '
|
|
360
|
+
id: 'skill-standard-interop',
|
|
361
|
+
userOutcome: 'Skills created in GoodVibes can be shared with other agents, and skills created by the community or other agents can be imported into GoodVibes.',
|
|
362
|
+
targetStandard: 'parity',
|
|
363
|
+
bestInClassRequirement: 'Skills follow an open standard format so they are portable across agents and discoverable from a community index.',
|
|
364
|
+
goodVibesStatus: 'partial',
|
|
365
|
+
owners: ['agent'],
|
|
366
|
+
goodVibesNow: 'GoodVibes ships Agent-local skills with provenance, review gating, and confirmed promotion. Skill import/export in the agentskills.io open standard format is being built (active development as of this inventory). Hermes ships agentskills.io-compatible skill creation and sharing. OpenClaw has a community skills marketplace. GoodVibes does not yet have a community skill catalog or cross-agent import/export path.',
|
|
367
|
+
nextMoves: [
|
|
368
|
+
'Ship skill-standard import/export so GoodVibes skills can be shared with agentskills.io-compatible agents and imported from the community index.',
|
|
369
|
+
'Add a skill discovery surface in the Agent workspace that shows community skills alongside local skills with provenance and review status.',
|
|
370
|
+
'Design the review-first import gate for community skills: imported skills must go through the same confirmation boundary as locally created ones.',
|
|
371
|
+
],
|
|
372
|
+
competitorSignals: [
|
|
373
|
+
{ competitor: 'openclaw', evidence: 'OpenClaw ships a community skills marketplace and agents can write and publish their own skills.' },
|
|
374
|
+
{ competitor: 'hermes', evidence: 'Hermes ships agentskills.io open standard compatibility for cross-agent skill sharing and discovery.' },
|
|
375
|
+
{ competitor: 'odysseus', evidence: 'Odysseus does not document a skill marketplace or open skill standard; skills are built-in tool integrations.' },
|
|
376
|
+
],
|
|
377
|
+
},
|
|
378
|
+
|
|
379
|
+
// ─── GAP ──────────────────────────────────────────────────────────────────
|
|
380
|
+
// GoodVibes does not ship the capability described here.
|
|
381
|
+
// Each gap has concrete nextMoves that represent the build path to parity.
|
|
382
|
+
{
|
|
383
|
+
id: 'email-calendar-direct-access',
|
|
384
|
+
userOutcome: 'The assistant can triage email, draft replies in the user\'s writing style, apply labels, access calendar events directly over IMAP/SMTP and CalDAV, and act on tasks and reminders.',
|
|
267
385
|
targetStandard: 'better',
|
|
268
|
-
bestInClassRequirement: '
|
|
269
|
-
goodVibesStatus: '
|
|
270
|
-
owners: ['agent', 'connected-host'
|
|
271
|
-
goodVibesNow: 'GoodVibes
|
|
386
|
+
bestInClassRequirement: 'Email triage, AI-matched draft replies, auto-tagging, spam triage, direct CalDAV calendar sync, .ics import/export, and agent-aware scheduling share one reviewed personal operations surface.',
|
|
387
|
+
goodVibesStatus: 'partial',
|
|
388
|
+
owners: ['agent', 'connected-host'],
|
|
389
|
+
goodVibesNow: 'GoodVibes ships direct IMAP/SMTP email access and .ics calendar import/export, wired to the `/email` and `/calendar` agent routes. Personal Ops has a unified workspace and first-class `personal_ops action:"briefing|status|queue|intake|lane|read"` model tool. Email and calendar access is backed by direct protocol connectors and MCP connectors that surface inbox and calendar operations as inspectable setup routes with confirmed read and write boundaries. Writing-style-matched draft replies, auto-tagging, spam triage, and direct CalDAV server sync (Radicale/Nextcloud/Apple/Fastmail) are not yet shipped.',
|
|
390
|
+
nextMoves: [
|
|
391
|
+
'Design writing-style matching for draft replies as a confirmed Personal Ops lane so the assistant can draft in the user\'s voice with explicit before-send review.',
|
|
392
|
+
'Add a CalDAV server sync connector (Radicale, Nextcloud, Apple Calendar, Fastmail) so local-first calendar changes propagate without a cloud calendar MCP service.',
|
|
393
|
+
'Add auto-tagging and spam triage to the IMAP email connector so high-volume inboxes are manageable from the Personal Ops briefing surface.',
|
|
394
|
+
],
|
|
395
|
+
competitorSignals: [
|
|
396
|
+
{ competitor: 'openclaw', evidence: 'OpenClaw showcases mail, calendar, reminders, and personal operating-system workflows; channel breadth suggests direct protocol access.' },
|
|
397
|
+
{ competitor: 'hermes', evidence: 'Hermes messaging gateway includes email as a channel; Google Workspace skills imply calendar and mail access beyond connector mediation.' },
|
|
398
|
+
{ competitor: 'odysseus', evidence: 'Odysseus ships native IMAP/SMTP email with AI summaries, style-matched replies, auto-tagging, spam triage, and a local-first CalDAV calendar with Radicale/Nextcloud/Apple/Fastmail sync and .ics import/export.' },
|
|
399
|
+
],
|
|
400
|
+
},
|
|
401
|
+
{
|
|
402
|
+
id: 'channel-to-profile-routing',
|
|
403
|
+
userOutcome: 'When a message arrives on a specific channel or account, it is routed to the correct isolated agent profile automatically, so the assistant\'s context, permissions, and personality match the channel.',
|
|
404
|
+
targetStandard: 'parity',
|
|
405
|
+
bestInClassRequirement: 'Inbound channels and accounts route to isolated agents with their own workspaces and sessions via a local control plane.',
|
|
406
|
+
goodVibesStatus: 'gap',
|
|
407
|
+
owners: ['agent', 'connected-host'],
|
|
408
|
+
goodVibesNow: 'GoodVibes ships isolated Profiles (Agent homes) and channel adapters, but inbound channel messages are not automatically routed to specific profiles. Users must switch profiles manually. OpenClaw routes inbound channels and accounts to isolated agents with own workspaces and sessions via the local Gateway control plane.',
|
|
272
409
|
nextMoves: [
|
|
273
|
-
'
|
|
274
|
-
'
|
|
410
|
+
'Design a channel-to-profile routing contract in the connected-host operator method surface so inbound messages can be directed to a named profile home.',
|
|
411
|
+
'Add a channel routing configuration surface to the Channels workspace so users can assign each channel to a specific profile without manual session switching.',
|
|
412
|
+
'Ensure the routing contract respects the review-first confirmation boundary: routing configuration changes require explicit user confirmation before taking effect.',
|
|
275
413
|
],
|
|
276
414
|
competitorSignals: [
|
|
277
|
-
{ competitor: 'openclaw', evidence: '
|
|
278
|
-
{ competitor: 'hermes', evidence: '
|
|
279
|
-
{ competitor: 'odysseus', evidence: '
|
|
415
|
+
{ competitor: 'openclaw', evidence: 'OpenClaw routes inbound channels and accounts to isolated agents with own workspaces and sessions via the local Gateway multi-agent routing control plane.' },
|
|
416
|
+
{ competitor: 'hermes', evidence: 'Hermes routes Telegram, Discord, Slack, WhatsApp, Signal, CLI, and email through one gateway but does not document isolated per-channel agent profiles.' },
|
|
417
|
+
{ competitor: 'odysseus', evidence: 'Odysseus does not document channel-to-profile routing; single workspace per install.' },
|
|
280
418
|
],
|
|
281
419
|
},
|
|
282
420
|
];
|