@pellux/goodvibes-agent 0.1.79 → 0.1.80
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
CHANGED
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to GoodVibes Agent will be recorded here.
|
|
4
4
|
|
|
5
|
+
## 0.1.80 - 2026-06-01
|
|
6
|
+
|
|
7
|
+
- Added an Agent day-one readiness checklist to the onboarding review step covering runtime connection, default model route, profile setup, isolated Agent Knowledge, local behavior, channels, routines/schedules, and explicit build delegation.
|
|
8
|
+
- Kept the first-run review focused on Agent setup outcomes instead of copied runtime lifecycle or non-Agent knowledge behavior.
|
|
9
|
+
|
|
5
10
|
## 0.1.79 - 2026-06-01
|
|
6
11
|
|
|
7
12
|
- Expanded the Voice & Media workspace into a provider readiness matrix covering selected TTS readiness, missing secret key names, media understanding/generation posture, and browser-tool state.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pellux/goodvibes-agent",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.80",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "GoodVibes personal operator assistant TUI with a proactive Agent product brain, isolated Agent Knowledge, local profiles, routines, skills, personas, and explicit build delegation.",
|
|
6
6
|
"type": "module",
|
|
@@ -3,6 +3,7 @@ import { modelSelectionLabel, normalizeText } from './onboarding-wizard-helpers.
|
|
|
3
3
|
import { listAgentRuntimeProfileTemplates } from '../../agent/runtime-profile.ts';
|
|
4
4
|
import type { OnboardingWizardController } from './onboarding-wizard.ts';
|
|
5
5
|
import type { OnboardingWizardActionFieldDefinition, OnboardingWizardFieldDefinition, OnboardingWizardModelPickerFieldDefinition, OnboardingWizardRadioFieldDefinition, OnboardingWizardRadioOption, OnboardingWizardStepDefinition } from './onboarding-wizard-types.ts';
|
|
6
|
+
import type { OnboardingStep1CapabilityId, OnboardingStep1CapabilityItem } from '../../runtime/onboarding/index.ts';
|
|
6
7
|
|
|
7
8
|
function buildStarterTemplateOptions(): readonly OnboardingWizardRadioOption[] {
|
|
8
9
|
return [
|
|
@@ -58,6 +59,98 @@ function addApplyAndContinueAction(step: OnboardingWizardStepDefinition): Onboar
|
|
|
58
59
|
};
|
|
59
60
|
}
|
|
60
61
|
|
|
62
|
+
function findRuntimeCapability(
|
|
63
|
+
controller: OnboardingWizardController,
|
|
64
|
+
id: OnboardingStep1CapabilityId,
|
|
65
|
+
): OnboardingStep1CapabilityItem | null {
|
|
66
|
+
return controller.runtimeDerived.step1Capabilities.find((capability) => capability.id === id) ?? null;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
function currentMainModelLabel(controller: OnboardingWizardController): string {
|
|
70
|
+
const routing = controller.runtimeSnapshot?.providerRouting;
|
|
71
|
+
return modelSelectionLabel(controller.modelSelectionState.get('main') ?? {
|
|
72
|
+
providerId: normalizeText(routing?.primaryProviderId),
|
|
73
|
+
modelId: normalizeText(routing?.primaryModelId),
|
|
74
|
+
enabled: true,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
function profileSetupLabel(controller: OnboardingWizardController): string {
|
|
79
|
+
const profileName = normalizeText(controller.getStringFieldValue('agent-setup.profile-name', ''));
|
|
80
|
+
const templateId = controller.getStringFieldValue('agent-setup.profile-template', 'none');
|
|
81
|
+
if (profileName.length === 0) return 'Current home';
|
|
82
|
+
return templateId === 'none' ? `Create ${profileName}` : `Create ${profileName} from ${templateId}`;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
function buildReviewReadinessFields(controller: OnboardingWizardController): readonly OnboardingWizardFieldDefinition[] {
|
|
86
|
+
const localBehavior = findRuntimeCapability(controller, 'local-behavior');
|
|
87
|
+
const channels = findRuntimeCapability(controller, 'communication-channels');
|
|
88
|
+
const automation = findRuntimeCapability(controller, 'automation-review');
|
|
89
|
+
const collectionIssues = controller.runtimeSnapshot?.collectionIssues.length ?? 0;
|
|
90
|
+
|
|
91
|
+
return [
|
|
92
|
+
{
|
|
93
|
+
kind: 'status',
|
|
94
|
+
id: 'review.readiness.connection',
|
|
95
|
+
label: 'Runtime connection snapshot',
|
|
96
|
+
hint: collectionIssues > 0
|
|
97
|
+
? `${collectionIssues} setup snapshot issue(s) need attention before this Agent is day-one ready.`
|
|
98
|
+
: 'The setup snapshot loaded cleanly from the external GoodVibes runtime.',
|
|
99
|
+
defaultValue: collectionIssues > 0 ? 'Needs attention' : 'Ready',
|
|
100
|
+
spacerBeforeRows: 1,
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
kind: 'status',
|
|
104
|
+
id: 'review.readiness.model',
|
|
105
|
+
label: 'Default model route',
|
|
106
|
+
hint: 'Normal assistant turns use this selected provider/model route unless changed later from the model picker.',
|
|
107
|
+
defaultValue: currentMainModelLabel(controller),
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
kind: 'status',
|
|
111
|
+
id: 'review.readiness.profile',
|
|
112
|
+
label: 'Agent profile',
|
|
113
|
+
hint: 'Profiles isolate Agent-local config, sessions, memory, personas, skills, routines, and setup state.',
|
|
114
|
+
defaultValue: profileSetupLabel(controller),
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
kind: 'status',
|
|
118
|
+
id: 'review.readiness.knowledge',
|
|
119
|
+
label: 'Agent Knowledge segment',
|
|
120
|
+
hint: 'Ask, search, status, and ingest stay on /api/goodvibes-agent/knowledge/* with no default wiki or non-Agent fallback.',
|
|
121
|
+
defaultValue: 'Isolated',
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
kind: 'status',
|
|
125
|
+
id: 'review.readiness.local-behavior',
|
|
126
|
+
label: 'Local behavior library',
|
|
127
|
+
hint: localBehavior?.detail ?? 'Agent-local memory, routines, skills, and personas remain local until a stable shared registry exists.',
|
|
128
|
+
defaultValue: localBehavior?.selected ? 'Customized' : 'Starter ready',
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
kind: 'status',
|
|
132
|
+
id: 'review.readiness.channels',
|
|
133
|
+
label: 'Channels and notifications',
|
|
134
|
+
hint: channels?.detail ?? 'Connect only the channels the Agent should use, and keep outbound delivery explicit.',
|
|
135
|
+
defaultValue: channels?.selected ? 'Review configured' : 'Optional setup',
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
kind: 'status',
|
|
139
|
+
id: 'review.readiness.automation',
|
|
140
|
+
label: 'Routines and schedules',
|
|
141
|
+
hint: automation?.detail ?? 'Local routines run in the main conversation; external schedules require explicit promotion and confirmation.',
|
|
142
|
+
defaultValue: automation?.selected ? 'Review configured' : 'Local first',
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
kind: 'status',
|
|
146
|
+
id: 'review.readiness.delegation',
|
|
147
|
+
label: 'Build delegation',
|
|
148
|
+
hint: 'Build, fix, implementation, and review work is handed to GoodVibes TUI only when explicitly requested.',
|
|
149
|
+
defaultValue: 'Explicit only',
|
|
150
|
+
},
|
|
151
|
+
];
|
|
152
|
+
}
|
|
153
|
+
|
|
61
154
|
export function buildCommunicationStep(): OnboardingWizardStepDefinition {
|
|
62
155
|
return {
|
|
63
156
|
id: 'agent-communication',
|
|
@@ -636,14 +729,17 @@ export function buildReviewStep(controller: OnboardingWizardController): Onboard
|
|
|
636
729
|
const unsavedLabel = controller.dirtyStepCount === 1
|
|
637
730
|
? '1 screen has unapplied changes'
|
|
638
731
|
: `${controller.dirtyStepCount} screens have unapplied changes`;
|
|
732
|
+
const collectionIssues = controller.runtimeSnapshot?.collectionIssues.length ?? 0;
|
|
733
|
+
const dayOneReadiness = collectionIssues > 0 ? `${collectionIssues} connection issue(s) before day-one ready` : 'operator checklist ready';
|
|
639
734
|
|
|
640
735
|
return {
|
|
641
736
|
id: 'review',
|
|
642
737
|
title: 'Review and apply',
|
|
643
738
|
shortLabel: 'Review',
|
|
644
|
-
description: 'Review Agent-
|
|
645
|
-
summaryTitle: '
|
|
739
|
+
description: 'Review the Agent day-one checklist and apply setup directly from the wizard.',
|
|
740
|
+
summaryTitle: 'Agent day-one readiness',
|
|
646
741
|
summaryLines: [
|
|
742
|
+
`Day-one readiness: ${dayOneReadiness}`,
|
|
647
743
|
unsavedLabel,
|
|
648
744
|
`${controller.buildApplyRequest().operations.length} Agent setting change(s) ready to apply`,
|
|
649
745
|
feedback ? `Last apply: ${feedback.title}` : 'No apply errors reported',
|
|
@@ -651,6 +747,7 @@ export function buildReviewStep(controller: OnboardingWizardController): Onboard
|
|
|
651
747
|
],
|
|
652
748
|
fields: [
|
|
653
749
|
...feedbackFields,
|
|
750
|
+
...buildReviewReadinessFields(controller),
|
|
654
751
|
{
|
|
655
752
|
kind: 'status',
|
|
656
753
|
id: 'review.global-marker',
|
package/src/version.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { join } from 'node:path';
|
|
|
6
6
|
// The prebuild script updates the fallback value before compilation.
|
|
7
7
|
// Uses import.meta.dir (Bun) to locate package.json relative to this file,
|
|
8
8
|
// which is correct regardless of the process working directory.
|
|
9
|
-
let _version = '0.1.
|
|
9
|
+
let _version = '0.1.80';
|
|
10
10
|
let _sdkVersion = '0.33.35';
|
|
11
11
|
try {
|
|
12
12
|
const pkg = JSON.parse(readFileSync(join(import.meta.dir, '..', 'package.json'), 'utf-8')) as {
|