@pellux/goodvibes-tui 0.19.24 → 0.19.26

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.
Files changed (76) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +5 -5
  3. package/bin/goodvibes +10 -0
  4. package/bin/goodvibes-daemon +10 -0
  5. package/docs/foundation-artifacts/operator-contract.json +1 -1
  6. package/package.json +3 -2
  7. package/src/cli/bundle-command.ts +225 -0
  8. package/src/cli/completion.ts +90 -0
  9. package/src/cli/config-overrides.ts +159 -0
  10. package/src/cli/endpoints.ts +63 -0
  11. package/src/cli/entrypoint.ts +169 -0
  12. package/src/cli/help.ts +301 -0
  13. package/src/cli/index.ts +11 -0
  14. package/src/cli/management-commands.ts +426 -0
  15. package/src/cli/management.ts +719 -0
  16. package/src/cli/network-posture.ts +46 -0
  17. package/src/cli/package-verification.ts +119 -0
  18. package/src/cli/parser.ts +369 -0
  19. package/src/cli/provider-classification.ts +107 -0
  20. package/src/cli/redaction.ts +105 -0
  21. package/src/cli/service-command.ts +45 -0
  22. package/src/cli/service-posture.ts +247 -0
  23. package/src/cli/status.ts +382 -0
  24. package/src/cli/surface-command.ts +248 -0
  25. package/src/cli/tui-startup.ts +32 -0
  26. package/src/cli/types.ts +69 -0
  27. package/src/cli-flags.ts +18 -55
  28. package/src/config/index.ts +1 -1
  29. package/src/config/secrets.ts +44 -0
  30. package/src/daemon/cli.ts +62 -11
  31. package/src/input/command-registry.ts +3 -0
  32. package/src/input/commands/guidance-runtime.ts +9 -4
  33. package/src/input/commands/local-runtime.ts +21 -7
  34. package/src/input/commands/local-setup.ts +31 -38
  35. package/src/input/commands/onboarding-runtime.ts +14 -0
  36. package/src/input/commands/runtime-services.ts +9 -0
  37. package/src/input/commands.ts +2 -0
  38. package/src/input/feed-context-factory.ts +8 -1
  39. package/src/input/handler-feed.ts +13 -8
  40. package/src/input/handler-interactions.ts +266 -0
  41. package/src/input/handler-modal-stack.ts +23 -3
  42. package/src/input/handler-modal-token-routes.ts +23 -1
  43. package/src/input/handler-onboarding.ts +696 -0
  44. package/src/input/handler-picker-routes.ts +15 -7
  45. package/src/input/handler-ui-state.ts +58 -0
  46. package/src/input/handler.ts +120 -246
  47. package/src/input/onboarding/handler-onboarding-routes.ts +105 -0
  48. package/src/input/onboarding/onboarding-wizard-apply.ts +211 -0
  49. package/src/input/onboarding/onboarding-wizard-constants.ts +148 -0
  50. package/src/input/onboarding/onboarding-wizard-external-surfaces.ts +712 -0
  51. package/src/input/onboarding/onboarding-wizard-helpers.ts +218 -0
  52. package/src/input/onboarding/onboarding-wizard-rules.ts +224 -0
  53. package/src/input/onboarding/onboarding-wizard-state.ts +354 -0
  54. package/src/input/onboarding/onboarding-wizard-steps.ts +642 -0
  55. package/src/input/onboarding/onboarding-wizard-types.ts +170 -0
  56. package/src/input/onboarding/onboarding-wizard.ts +594 -0
  57. package/src/main.ts +32 -39
  58. package/src/panels/builtin/operations.ts +0 -10
  59. package/src/panels/index.ts +0 -1
  60. package/src/renderer/conversation-overlays.ts +6 -0
  61. package/src/renderer/help-overlay.ts +1 -1
  62. package/src/renderer/onboarding/onboarding-wizard.ts +533 -0
  63. package/src/runtime/bootstrap-core.ts +1 -0
  64. package/src/runtime/bootstrap.ts +123 -0
  65. package/src/runtime/onboarding/apply.ts +685 -0
  66. package/src/runtime/onboarding/derivation.ts +495 -0
  67. package/src/runtime/onboarding/index.ts +7 -0
  68. package/src/runtime/onboarding/markers.ts +161 -0
  69. package/src/runtime/onboarding/snapshot.ts +400 -0
  70. package/src/runtime/onboarding/state.ts +140 -0
  71. package/src/runtime/onboarding/types.ts +402 -0
  72. package/src/runtime/onboarding/verify.ts +233 -0
  73. package/src/runtime/ui-services.ts +16 -0
  74. package/src/shell/ui-openers.ts +12 -2
  75. package/src/version.ts +1 -1
  76. package/src/panels/welcome-panel.ts +0 -64
@@ -0,0 +1,170 @@
1
+ import { isIP } from 'node:net';
2
+ import type { ModelPickerTarget } from '../model-picker.ts';
3
+ import {
4
+ deriveOnboardingStepState,
5
+ type OnboardingAcknowledgementReason,
6
+ type OnboardingAcknowledgementTarget,
7
+ type OnboardingApplyOperation,
8
+ type OnboardingApplyRequest,
9
+ type OnboardingMode,
10
+ type OnboardingSnapshotState,
11
+ type OnboardingStep1CapabilityId,
12
+ type OnboardingStep1CapabilityItem,
13
+ type OnboardingStepDerivationState,
14
+ } from '../../runtime/onboarding/index.ts';
15
+ import type { ConfigKey } from '../../config/index.ts';
16
+
17
+ export type OnboardingWizardMode = OnboardingMode;
18
+
19
+ export type OnboardingWizardStepId =
20
+ | 'loading'
21
+ | 'capabilities'
22
+ | 'network'
23
+ | 'access'
24
+ | 'external-services'
25
+ | 'provider-access'
26
+ | 'default-model'
27
+ | 'experience'
28
+ | 'review';
29
+
30
+ export type OnboardingWizardFieldKind =
31
+ | 'status'
32
+ | 'checklist'
33
+ | 'radio'
34
+ | 'text'
35
+ | 'masked'
36
+ | 'acknowledgement'
37
+ | 'modelPicker'
38
+ | 'action';
39
+
40
+ export type OnboardingWizardAction =
41
+ | 'apply'
42
+ | 'select-all-capabilities'
43
+ | 'clear-capabilities'
44
+ | 'start-openai-subscription'
45
+ | 'finish-openai-subscription';
46
+
47
+ export interface OnboardingWizardRadioOption {
48
+ readonly id: string;
49
+ readonly label: string;
50
+ readonly hint: string;
51
+ }
52
+
53
+ export interface OnboardingWizardModelSelection {
54
+ readonly providerId: string;
55
+ readonly modelId: string;
56
+ readonly enabled?: boolean;
57
+ }
58
+
59
+ interface OnboardingWizardFieldBase {
60
+ readonly id: string;
61
+ readonly kind: OnboardingWizardFieldKind;
62
+ readonly label: string;
63
+ readonly hint: string;
64
+ }
65
+
66
+ export interface OnboardingWizardChecklistFieldDefinition extends OnboardingWizardFieldBase {
67
+ readonly kind: 'checklist';
68
+ readonly defaultValue: boolean;
69
+ readonly capabilityId?: OnboardingStep1CapabilityId;
70
+ }
71
+
72
+ export interface OnboardingWizardRadioFieldDefinition extends OnboardingWizardFieldBase {
73
+ readonly kind: 'radio';
74
+ readonly options: readonly OnboardingWizardRadioOption[];
75
+ readonly defaultValue: string;
76
+ }
77
+
78
+ export interface OnboardingWizardTextFieldDefinition extends OnboardingWizardFieldBase {
79
+ readonly kind: 'text';
80
+ readonly defaultValue: string;
81
+ readonly placeholder: string;
82
+ readonly required?: boolean;
83
+ }
84
+
85
+ export interface OnboardingWizardMaskedFieldDefinition extends OnboardingWizardFieldBase {
86
+ readonly kind: 'masked';
87
+ readonly defaultValue: string;
88
+ readonly placeholder: string;
89
+ readonly required?: boolean;
90
+ }
91
+
92
+ export interface OnboardingWizardStatusFieldDefinition extends OnboardingWizardFieldBase {
93
+ readonly kind: 'status';
94
+ readonly defaultValue: string;
95
+ }
96
+
97
+ export interface OnboardingWizardAcknowledgementFieldDefinition extends OnboardingWizardFieldBase {
98
+ readonly kind: 'acknowledgement';
99
+ readonly defaultValue: boolean;
100
+ readonly required: boolean;
101
+ readonly reason: OnboardingAcknowledgementReason;
102
+ readonly target?: OnboardingAcknowledgementTarget;
103
+ }
104
+
105
+ export interface OnboardingWizardModelPickerFieldDefinition extends OnboardingWizardFieldBase {
106
+ readonly kind: 'modelPicker';
107
+ readonly target: ModelPickerTarget;
108
+ readonly defaultSelection: OnboardingWizardModelSelection;
109
+ }
110
+
111
+ export interface OnboardingWizardActionFieldDefinition extends OnboardingWizardFieldBase {
112
+ readonly kind: 'action';
113
+ readonly action: OnboardingWizardAction;
114
+ readonly defaultValue: string;
115
+ }
116
+
117
+ export type OnboardingWizardFieldDefinition =
118
+ | OnboardingWizardStatusFieldDefinition
119
+ | OnboardingWizardChecklistFieldDefinition
120
+ | OnboardingWizardRadioFieldDefinition
121
+ | OnboardingWizardTextFieldDefinition
122
+ | OnboardingWizardMaskedFieldDefinition
123
+ | OnboardingWizardAcknowledgementFieldDefinition
124
+ | OnboardingWizardModelPickerFieldDefinition
125
+ | OnboardingWizardActionFieldDefinition;
126
+
127
+ export interface OnboardingWizardStepDefinition {
128
+ readonly id: OnboardingWizardStepId;
129
+ readonly title: string;
130
+ readonly shortLabel: string;
131
+ readonly description: string;
132
+ readonly summaryTitle: string;
133
+ readonly summaryLines: readonly string[];
134
+ readonly fields: readonly OnboardingWizardFieldDefinition[];
135
+ }
136
+
137
+ export interface OnboardingWizardFieldWindow {
138
+ readonly start: number;
139
+ readonly end: number;
140
+ readonly total: number;
141
+ readonly fields: readonly OnboardingWizardFieldDefinition[];
142
+ }
143
+
144
+ export interface OnboardingWizardSnapshot {
145
+ readonly active: boolean;
146
+ readonly mode: OnboardingWizardMode;
147
+ readonly stepIndex: number;
148
+ readonly scrollOffsets: readonly number[];
149
+ readonly selectedFieldIndices: readonly number[];
150
+ readonly dirtyStepIds: readonly OnboardingWizardStepId[];
151
+ readonly pendingModelPickerTarget: ModelPickerTarget | null;
152
+ readonly pendingAction: OnboardingWizardAction | null;
153
+ readonly toggleState: ReadonlyArray<readonly [string, boolean]>;
154
+ readonly radioState: ReadonlyArray<readonly [string, string]>;
155
+ readonly textState: ReadonlyArray<readonly [string, string]>;
156
+ readonly modelSelectionState: ReadonlyArray<readonly [ModelPickerTarget, OnboardingWizardModelSelection]>;
157
+ readonly touchedActionFields: readonly string[];
158
+ readonly editingFieldId: string | null;
159
+ readonly editBuffer: string;
160
+ readonly hydrationPending: boolean;
161
+ readonly hydrationError: string | null;
162
+ readonly hydration: OnboardingWizardRuntimeHydration;
163
+ }
164
+
165
+ export interface OnboardingWizardRuntimeHydration {
166
+ readonly snapshot?: OnboardingSnapshotState | null;
167
+ readonly derived?: Partial<OnboardingStepDerivationState> | null;
168
+ }
169
+
170
+ export type MutableModelSelectionMap = Map<ModelPickerTarget, OnboardingWizardModelSelection>;