@pellux/goodvibes-agent 0.1.117 → 1.0.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.
Files changed (253) hide show
  1. package/CHANGELOG.md +13 -4
  2. package/README.md +35 -14
  3. package/bin/goodvibes-agent.ts +16 -2
  4. package/dist/package/main.js +176073 -170980
  5. package/docs/README.md +11 -5
  6. package/docs/channels-remote-and-api.md +50 -0
  7. package/docs/connected-host.md +3 -3
  8. package/docs/getting-started.md +29 -15
  9. package/docs/knowledge-artifacts-and-multimodal.md +91 -0
  10. package/docs/project-planning.md +79 -0
  11. package/docs/providers-and-routing.md +46 -0
  12. package/docs/release-and-publishing.md +44 -9
  13. package/docs/tools-and-commands.md +123 -0
  14. package/docs/voice-and-live-tts.md +51 -0
  15. package/package.json +2 -5
  16. package/src/agent/channel-delivery.ts +201 -0
  17. package/src/agent/media-generation.ts +159 -0
  18. package/src/agent/memory-prompt.ts +0 -1
  19. package/src/agent/note-registry.ts +329 -0
  20. package/src/agent/operator-actions.ts +343 -0
  21. package/src/agent/persona-registry.ts +15 -14
  22. package/src/agent/record-labels.ts +107 -0
  23. package/src/agent/reminder-schedule-format.ts +33 -24
  24. package/src/agent/reminder-schedule.ts +26 -25
  25. package/src/agent/routine-registry.ts +13 -12
  26. package/src/agent/routine-schedule-args.ts +2 -1
  27. package/src/agent/routine-schedule-format.ts +77 -53
  28. package/src/agent/routine-schedule-promotion.ts +34 -32
  29. package/src/agent/routine-schedule-receipts.ts +28 -26
  30. package/src/agent/runtime-profile-starters.ts +2 -2
  31. package/src/agent/runtime-profile.ts +18 -17
  32. package/src/agent/skill-registry.ts +25 -24
  33. package/src/cli/agent-knowledge-args.ts +5 -1
  34. package/src/cli/agent-knowledge-command.ts +39 -33
  35. package/src/cli/agent-knowledge-format.ts +80 -67
  36. package/src/cli/agent-knowledge-methods.ts +1 -1
  37. package/src/cli/agent-knowledge-runtime.ts +32 -26
  38. package/src/cli/bundle-command.ts +13 -8
  39. package/src/cli/config-overrides.ts +37 -36
  40. package/src/cli/external-runtime.ts +10 -4
  41. package/src/cli/help.ts +29 -11
  42. package/src/cli/local-library-command.ts +134 -68
  43. package/src/cli/management-commands.ts +98 -62
  44. package/src/cli/management.ts +52 -26
  45. package/src/cli/memory-command.ts +66 -32
  46. package/src/cli/parser.ts +37 -24
  47. package/src/cli/profiles-command.ts +52 -35
  48. package/src/cli/provider-auth-routes.ts +2 -1
  49. package/src/cli/routines-command.ts +44 -36
  50. package/src/cli/service-posture.ts +6 -6
  51. package/src/cli/status.ts +46 -121
  52. package/src/core/conversation-message-snapshot.ts +131 -0
  53. package/src/input/agent-workspace-activation.ts +33 -7
  54. package/src/input/agent-workspace-basic-command-editor-submission.ts +7 -3
  55. package/src/input/agent-workspace-basic-command-editors.ts +30 -10
  56. package/src/input/agent-workspace-categories.ts +276 -64
  57. package/src/input/agent-workspace-channel-command-editor-submission.ts +34 -0
  58. package/src/input/agent-workspace-channel-command-editors.ts +23 -5
  59. package/src/input/agent-workspace-channels.ts +35 -2
  60. package/src/input/agent-workspace-command-editor.ts +18 -2
  61. package/src/input/agent-workspace-config-reader.ts +16 -0
  62. package/src/input/agent-workspace-delegation-editor-submission.ts +1 -1
  63. package/src/input/agent-workspace-editors.ts +140 -2
  64. package/src/input/agent-workspace-knowledge-query-editor.ts +1 -1
  65. package/src/input/agent-workspace-learned-behavior.ts +2 -2
  66. package/src/input/agent-workspace-library-command-editor-submission.ts +1 -1
  67. package/src/input/agent-workspace-library-command-editors.ts +2 -2
  68. package/src/input/agent-workspace-local-operations.ts +218 -0
  69. package/src/input/agent-workspace-local-selection.ts +75 -0
  70. package/src/input/agent-workspace-media-command-editor-submission.ts +62 -0
  71. package/src/input/agent-workspace-media-command-editors.ts +27 -0
  72. package/src/input/agent-workspace-memory-command-editors.ts +1 -1
  73. package/src/input/agent-workspace-memory-editor.ts +2 -2
  74. package/src/input/agent-workspace-navigation.ts +38 -2
  75. package/src/input/agent-workspace-notify-editor-submission.ts +16 -2
  76. package/src/input/agent-workspace-operations-command-editor-submission.ts +63 -1
  77. package/src/input/agent-workspace-operations-command-editors.ts +80 -3
  78. package/src/input/agent-workspace-panel-route.ts +43 -0
  79. package/src/input/agent-workspace-reminder-schedule-editor.ts +1 -1
  80. package/src/input/agent-workspace-routine-schedule-editor.ts +2 -2
  81. package/src/input/agent-workspace-search.ts +169 -0
  82. package/src/input/agent-workspace-setup.ts +22 -11
  83. package/src/input/agent-workspace-skill-bundle-command-editor-submission.ts +6 -6
  84. package/src/input/agent-workspace-skill-bundle-command-editors.ts +10 -10
  85. package/src/input/agent-workspace-snapshot.ts +112 -13
  86. package/src/input/agent-workspace-task-command-editors.ts +4 -4
  87. package/src/input/agent-workspace-token.ts +18 -2
  88. package/src/input/agent-workspace-types.ts +92 -4
  89. package/src/input/agent-workspace-voice-media.ts +3 -6
  90. package/src/input/agent-workspace-web-research-editor.ts +104 -0
  91. package/src/input/agent-workspace.ts +136 -208
  92. package/src/input/command-registry.ts +4 -1
  93. package/src/input/commands/agent-runtime-profile-runtime.ts +45 -41
  94. package/src/input/commands/agent-skills-runtime.ts +83 -70
  95. package/src/input/commands/agent-workspace-runtime.ts +23 -7
  96. package/src/input/commands/brief-runtime.ts +25 -24
  97. package/src/input/commands/channels-runtime.ts +145 -31
  98. package/src/input/commands/delegation-runtime.ts +29 -23
  99. package/src/input/commands/experience-runtime.ts +6 -4
  100. package/src/input/commands/guidance-runtime.ts +4 -4
  101. package/src/input/commands/health-runtime.ts +140 -115
  102. package/src/input/commands/knowledge.ts +57 -56
  103. package/src/input/commands/local-provider-runtime.ts +36 -18
  104. package/src/input/commands/local-runtime.ts +138 -16
  105. package/src/input/commands/local-setup-review.ts +7 -7
  106. package/src/input/commands/mcp-runtime.ts +56 -35
  107. package/src/input/commands/notify-runtime.ts +38 -9
  108. package/src/input/commands/operator-actions-runtime.ts +138 -0
  109. package/src/input/commands/operator-runtime.ts +6 -17
  110. package/src/input/commands/personas-runtime.ts +45 -30
  111. package/src/input/commands/planning-runtime.ts +1 -1
  112. package/src/input/commands/platform-access-runtime.ts +29 -29
  113. package/src/input/commands/provider-accounts-runtime.ts +60 -39
  114. package/src/input/commands/qrcode-runtime.ts +45 -6
  115. package/src/input/commands/recall-bundle.ts +11 -11
  116. package/src/input/commands/recall-capture.ts +13 -11
  117. package/src/input/commands/recall-query.ts +29 -21
  118. package/src/input/commands/recall-review.ts +2 -1
  119. package/src/input/commands/routines-runtime.ts +59 -43
  120. package/src/input/commands/schedule-runtime.ts +33 -20
  121. package/src/input/commands/security-runtime.ts +4 -4
  122. package/src/input/commands/session-content.ts +80 -78
  123. package/src/input/commands/session-workflow.ts +132 -93
  124. package/src/input/commands/session.ts +3 -174
  125. package/src/input/commands/shell-core.ts +32 -17
  126. package/src/input/commands/subscription-runtime.ts +53 -179
  127. package/src/input/commands/tasks-runtime.ts +20 -20
  128. package/src/input/commands/work-plan-runtime.ts +33 -8
  129. package/src/input/commands.ts +2 -2
  130. package/src/input/feed-context-factory.ts +2 -1
  131. package/src/input/file-picker.ts +3 -2
  132. package/src/input/handler-command-route.ts +4 -7
  133. package/src/input/handler-content-actions.ts +89 -1
  134. package/src/input/handler-feed-routes.ts +19 -12
  135. package/src/input/handler-feed.ts +6 -3
  136. package/src/input/handler-interactions.ts +7 -5
  137. package/src/input/handler-modal-stack.ts +3 -3
  138. package/src/input/handler-onboarding.ts +24 -80
  139. package/src/input/handler-shortcuts.ts +15 -4
  140. package/src/input/handler.ts +47 -17
  141. package/src/input/input-history.ts +5 -6
  142. package/src/input/keybindings.ts +22 -11
  143. package/src/input/onboarding/onboarding-wizard-apply.ts +13 -0
  144. package/src/input/onboarding/onboarding-wizard-constants.ts +1 -0
  145. package/src/input/onboarding/onboarding-wizard-operator-steps.ts +147 -57
  146. package/src/input/onboarding/onboarding-wizard-steps.ts +46 -29
  147. package/src/input/onboarding/onboarding-wizard-types.ts +3 -1
  148. package/src/input/onboarding/onboarding-wizard.ts +68 -0
  149. package/src/input/profile-picker-modal.ts +31 -12
  150. package/src/input/session-picker-modal.ts +21 -4
  151. package/src/input/settings-modal-behavior.ts +0 -3
  152. package/src/input/settings-modal-subscriptions.ts +3 -3
  153. package/src/input/settings-modal-types.ts +2 -13
  154. package/src/input/settings-modal.ts +6 -52
  155. package/src/input/submission-intent.ts +0 -1
  156. package/src/input/submission-router.ts +3 -3
  157. package/src/main.ts +18 -8
  158. package/src/panels/approval-panel.ts +8 -8
  159. package/src/panels/automation-control-panel.ts +2 -2
  160. package/src/panels/base-panel.ts +1 -1
  161. package/src/panels/builtin/agent.ts +1 -1
  162. package/src/panels/builtin/operations.ts +1 -10
  163. package/src/panels/builtin/session.ts +9 -9
  164. package/src/panels/builtin/shared.ts +2 -2
  165. package/src/panels/cost-tracker-panel.ts +1 -1
  166. package/src/panels/docs-panel.ts +5 -3
  167. package/src/panels/index.ts +0 -1
  168. package/src/panels/knowledge-panel.ts +6 -5
  169. package/src/panels/memory-panel.ts +7 -6
  170. package/src/panels/panel-list-panel.ts +36 -80
  171. package/src/panels/project-planning-panel.ts +18 -11
  172. package/src/panels/provider-account-snapshot.ts +51 -25
  173. package/src/panels/provider-accounts-panel.ts +33 -18
  174. package/src/panels/provider-health-domains.ts +45 -4
  175. package/src/panels/provider-health-panel.ts +5 -4
  176. package/src/panels/qr-panel.ts +1 -1
  177. package/src/panels/schedule-panel.ts +9 -17
  178. package/src/panels/security-panel.ts +8 -8
  179. package/src/panels/session-browser-panel.ts +10 -10
  180. package/src/panels/subscription-panel.ts +3 -3
  181. package/src/panels/system-messages-panel.ts +1 -1
  182. package/src/panels/tasks-panel.ts +20 -13
  183. package/src/panels/tool-inspector-panel.ts +19 -12
  184. package/src/panels/work-plan-panel.ts +5 -5
  185. package/src/planning/project-planning-coordinator.ts +1 -1
  186. package/src/provider-auth-route-display.ts +9 -0
  187. package/src/renderer/agent-workspace-style.ts +34 -0
  188. package/src/renderer/agent-workspace.ts +228 -52
  189. package/src/renderer/autocomplete-overlay.ts +25 -6
  190. package/src/renderer/bookmark-modal.ts +19 -4
  191. package/src/renderer/buffer.ts +4 -2
  192. package/src/renderer/context-inspector.ts +50 -13
  193. package/src/renderer/diff.ts +1 -1
  194. package/src/renderer/file-picker-overlay.ts +19 -6
  195. package/src/renderer/help-overlay.ts +106 -33
  196. package/src/renderer/history-search-overlay.ts +19 -4
  197. package/src/renderer/live-tail-modal.ts +27 -5
  198. package/src/renderer/mcp-workspace.ts +164 -50
  199. package/src/renderer/model-picker-overlay.ts +58 -2
  200. package/src/renderer/model-workspace.ts +104 -20
  201. package/src/renderer/process-modal.ts +27 -6
  202. package/src/renderer/profile-picker-modal.ts +20 -4
  203. package/src/renderer/search-overlay.ts +25 -5
  204. package/src/renderer/selection-modal-overlay.ts +46 -14
  205. package/src/renderer/session-picker-modal.ts +18 -1
  206. package/src/renderer/settings-modal-helpers.ts +2 -40
  207. package/src/renderer/settings-modal.ts +83 -50
  208. package/src/renderer/tool-call.ts +20 -11
  209. package/src/runtime/agent-runtime-events.ts +6 -6
  210. package/src/runtime/bootstrap-command-context.ts +7 -1
  211. package/src/runtime/bootstrap-command-parts.ts +9 -7
  212. package/src/runtime/bootstrap-core.ts +19 -1
  213. package/src/runtime/bootstrap-hook-bridge.ts +7 -18
  214. package/src/runtime/bootstrap-shell.ts +4 -4
  215. package/src/runtime/bootstrap.ts +31 -22
  216. package/src/runtime/connected-host-auth.ts +7 -2
  217. package/src/runtime/diagnostics/panels/index.ts +2 -2
  218. package/src/runtime/diagnostics/panels/policy.ts +7 -7
  219. package/src/runtime/index.ts +2 -1
  220. package/src/runtime/onboarding/apply-file-helpers.ts +66 -0
  221. package/src/runtime/onboarding/apply.ts +80 -79
  222. package/src/runtime/onboarding/derivation.ts +5 -8
  223. package/src/runtime/onboarding/snapshot.ts +0 -15
  224. package/src/runtime/onboarding/types.ts +8 -19
  225. package/src/runtime/onboarding/verify.ts +32 -10
  226. package/src/runtime/operator-token-cleanup.ts +1 -1
  227. package/src/runtime/services.ts +91 -22
  228. package/src/runtime/store/selectors/index.ts +3 -3
  229. package/src/runtime/store/state.ts +1 -4
  230. package/src/runtime/surface-feature-flags.ts +41 -6
  231. package/src/runtime/ui-read-models.ts +3 -4
  232. package/src/runtime/ui-services.ts +6 -6
  233. package/src/shell/blocking-input.ts +2 -1
  234. package/src/shell/ui-openers.ts +3 -13
  235. package/src/tools/agent-analysis-registry-policy.ts +0 -1
  236. package/src/tools/agent-channel-send-tool.ts +133 -0
  237. package/src/tools/agent-context-policy.ts +1 -1
  238. package/src/tools/agent-knowledge-ingest-tool.ts +405 -0
  239. package/src/tools/agent-knowledge-tool.ts +170 -0
  240. package/src/tools/agent-local-registry-tool.ts +269 -69
  241. package/src/tools/agent-media-generate-tool.ts +133 -0
  242. package/src/tools/agent-notify-tool.ts +143 -0
  243. package/src/tools/agent-operator-action-tool.ts +137 -0
  244. package/src/tools/agent-operator-briefing-tool.ts +217 -0
  245. package/src/tools/agent-reminder-schedule-tool.ts +237 -0
  246. package/src/tools/agent-tool-policy-guard.ts +8 -8
  247. package/src/tools/agent-work-plan-tool.ts +256 -0
  248. package/src/version.ts +1 -1
  249. package/src/input/commands/policy-dispatch.ts +0 -339
  250. package/src/input/commands/policy.ts +0 -13
  251. package/src/panels/panel-picker.ts +0 -105
  252. package/src/panels/policy-panel.ts +0 -308
  253. package/src/renderer/panel-picker-overlay.ts +0 -202
@@ -3,6 +3,7 @@ import { createAgentWorkspaceBasicCommandEditor, isAgentWorkspaceBasicCommandEdi
3
3
  import { createAgentKnowledgeQueryEditor } from './agent-workspace-knowledge-query-editor.ts';
4
4
  import { createReminderScheduleEditor } from './agent-workspace-reminder-schedule-editor.ts';
5
5
  import { createRoutineScheduleEditor } from './agent-workspace-routine-schedule-editor.ts';
6
+ import { createAgentWorkspaceWebResearchEditor } from './agent-workspace-web-research-editor.ts';
6
7
  import { parseSlashCommand } from './slash-command-parser.ts';
7
8
  import type {
8
9
  AgentWorkspaceActionResult,
@@ -35,6 +36,7 @@ interface AgentWorkspaceActivationHost {
35
36
  applyLocalLibraryOperation(operation: AgentWorkspaceLocalOperation): void;
36
37
  hasCommandDispatch(): boolean;
37
38
  dispatchWorkspaceCommand: AgentWorkspaceCommandDispatcher;
39
+ commitActionSearchSelection(): boolean;
38
40
  }
39
41
 
40
42
  export function activateAgentWorkspaceSelection(
@@ -49,15 +51,27 @@ export function activateAgentWorkspaceSelection(
49
51
  workspace.focusActions();
50
52
  return;
51
53
  }
54
+ if (!workspace.commitActionSearchSelection()) return;
52
55
  const action = workspace.selectedAction;
53
56
  if (!action) return;
54
57
  if (action.kind === 'editor' && action.editorKind) {
55
- workspace.localEditor = createWorkspaceEditor(workspace, action.editorKind);
56
- workspace.status = `Editing ${workspace.localEditor.title}.`;
58
+ const editor = createWorkspaceEditor(workspace, action.editorKind);
59
+ if (!editor) {
60
+ workspace.status = `Editor unavailable: ${action.editorKind}.`;
61
+ workspace.lastActionResult = {
62
+ kind: 'error',
63
+ title: 'Editor unavailable',
64
+ detail: `No Agent workspace editor exists for ${action.editorKind}.`,
65
+ safety: action.safety,
66
+ };
67
+ return;
68
+ }
69
+ workspace.localEditor = editor;
70
+ workspace.status = `Editing ${editor.title}.`;
57
71
  workspace.lastActionResult = {
58
72
  kind: 'guidance',
59
- title: workspace.localEditor.title,
60
- detail: workspace.localEditor.message,
73
+ title: editor.title,
74
+ detail: editor.message,
61
75
  safety: action.safety,
62
76
  };
63
77
  return;
@@ -131,16 +145,28 @@ export function activateAgentWorkspaceSelection(
131
145
 
132
146
  function createWorkspaceEditor(
133
147
  workspace: AgentWorkspaceActivationHost,
134
- editorKind: AgentWorkspaceCategory['actions'][number]['editorKind'],
135
- ): AgentWorkspaceLocalEditor {
148
+ editorKind: NonNullable<AgentWorkspaceCategory['actions'][number]['editorKind']>,
149
+ ): AgentWorkspaceLocalEditor | null {
136
150
  if (editorKind === 'profile') return createProfileEditor(workspace.runtimeSnapshot?.runtimeStarterTemplates ?? []);
137
151
  if (editorKind === 'learned-behavior') return createLearnedBehaviorEditor();
152
+ if (editorKind === 'web-research') return createAgentWorkspaceWebResearchEditor('research');
153
+ if (editorKind === 'web-fetch') return createAgentWorkspaceWebResearchEditor('fetch');
138
154
  if (editorKind && isAgentWorkspaceBasicCommandEditorKind(editorKind)) return createAgentWorkspaceBasicCommandEditor(editorKind);
139
155
  if (editorKind === 'knowledge-ask') return createAgentKnowledgeQueryEditor('ask');
140
156
  if (editorKind === 'knowledge-search') return createAgentKnowledgeQueryEditor('search');
141
157
  if (editorKind === 'reminder-schedule') return createReminderScheduleEditor();
142
158
  if (editorKind === 'routine-schedule') return createRoutineScheduleEditor(workspace.selectedLocalLibraryItem('routine'));
143
- return createLocalEditor(editorKind ?? 'memory');
159
+ if (
160
+ editorKind === 'memory'
161
+ || editorKind === 'note'
162
+ || editorKind === 'persona'
163
+ || editorKind === 'skill'
164
+ || editorKind === 'routine'
165
+ || editorKind === 'knowledge-url'
166
+ ) {
167
+ return createLocalEditor(editorKind);
168
+ }
169
+ return null;
144
170
  }
145
171
 
146
172
  function handleGuidanceOrWorkspaceAction(
@@ -5,6 +5,7 @@ import { buildAgentWorkspaceDelegationEditorSubmission, isAgentWorkspaceDelegati
5
5
  import { buildAgentWorkspaceKnowledgeCommandEditorSubmission, isAgentWorkspaceKnowledgeCommandSubmissionKind } from './agent-workspace-knowledge-command-editor-submission.ts';
6
6
  import { buildAgentWorkspaceLibraryCommandEditorSubmission, isAgentWorkspaceLibraryCommandSubmissionKind } from './agent-workspace-library-command-editor-submission.ts';
7
7
  import { buildAgentWorkspaceMemoryCommandEditorSubmission, isAgentWorkspaceMemoryCommandSubmissionKind } from './agent-workspace-memory-command-editor-submission.ts';
8
+ import { buildAgentWorkspaceMediaCommandEditorSubmission, isAgentWorkspaceMediaCommandSubmissionKind } from './agent-workspace-media-command-editor-submission.ts';
8
9
  import { buildAgentWorkspaceMcpCommandEditorSubmission, isAgentWorkspaceMcpCommandSubmissionKind } from './agent-workspace-mcp-command-editor-submission.ts';
9
10
  import { buildAgentWorkspaceNotifyEditorSubmission, isAgentWorkspaceNotifyEditorKind } from './agent-workspace-notify-editor-submission.ts';
10
11
  import { buildAgentWorkspaceOperationsCommandEditorSubmission, isAgentWorkspaceOperationsCommandSubmissionKind } from './agent-workspace-operations-command-editor-submission.ts';
@@ -231,6 +232,9 @@ export function buildAgentWorkspaceBasicCommandEditorSubmission(
231
232
  if (isAgentWorkspaceMemoryCommandSubmissionKind(editor.kind)) {
232
233
  return buildAgentWorkspaceMemoryCommandEditorSubmission(editor, readField);
233
234
  }
235
+ if (isAgentWorkspaceMediaCommandSubmissionKind(editor.kind)) {
236
+ return buildAgentWorkspaceMediaCommandEditorSubmission(editor, readField);
237
+ }
234
238
  if (isAgentWorkspaceProviderCommandSubmissionKind(editor.kind)) {
235
239
  return buildAgentWorkspaceProviderCommandEditorSubmission(editor, readField);
236
240
  }
@@ -612,7 +616,7 @@ export function buildAgentWorkspaceBasicCommandEditorSubmission(
612
616
  'start',
613
617
  ];
614
618
  if (!isAffirmative(readField('openBrowser'))) parts.push('--no-browser');
615
- if (isAffirmative(readField('manual'))) parts.push('--manual');
619
+ parts.push('--manual');
616
620
  parts.push('--yes');
617
621
  const command = parts.join(' ');
618
622
  return {
@@ -683,7 +687,7 @@ export function buildAgentWorkspaceBasicCommandEditorSubmission(
683
687
  };
684
688
  }
685
689
  const parts = [
686
- '/agent-skills',
690
+ '/skills',
687
691
  'import-discovered',
688
692
  quoteSlashCommandArg(readField('name')),
689
693
  ];
@@ -762,7 +766,7 @@ export function buildAgentWorkspaceBasicCommandEditorSubmission(
762
766
  };
763
767
  }
764
768
  const commandParts = [
765
- '/agent-skills bundle create',
769
+ '/skills bundle create',
766
770
  '--name',
767
771
  quoteSlashCommandArg(readField('name')),
768
772
  '--description',
@@ -9,6 +9,8 @@ import type { AgentWorkspaceLibraryCommandEditorKind } from './agent-workspace-l
9
9
  import { createAgentWorkspaceLibraryCommandEditor, isAgentWorkspaceLibraryCommandEditorKind } from './agent-workspace-library-command-editors.ts';
10
10
  import type { AgentWorkspaceMemoryCommandEditorKind } from './agent-workspace-memory-command-editors.ts';
11
11
  import { createAgentWorkspaceMemoryCommandEditor, isAgentWorkspaceMemoryCommandEditorKind } from './agent-workspace-memory-command-editors.ts';
12
+ import type { AgentWorkspaceMediaCommandEditorKind } from './agent-workspace-media-command-editors.ts';
13
+ import { createAgentWorkspaceMediaCommandEditor, isAgentWorkspaceMediaCommandEditorKind } from './agent-workspace-media-command-editors.ts';
12
14
  import type { AgentWorkspaceOperationsCommandEditorKind } from './agent-workspace-operations-command-editors.ts';
13
15
  import { createAgentWorkspaceOperationsCommandEditor, isAgentWorkspaceOperationsCommandEditorKind } from './agent-workspace-operations-command-editors.ts';
14
16
  import type { AgentWorkspaceProviderCommandEditorKind } from './agent-workspace-provider-command-editors.ts';
@@ -22,7 +24,7 @@ import { createAgentWorkspaceTaskCommandEditor, isAgentWorkspaceTaskCommandEdito
22
24
  export type { AgentWorkspaceBasicCommandEditorSubmission } from './agent-workspace-basic-command-editor-submission.ts';
23
25
  export { buildAgentWorkspaceBasicCommandEditorSubmission } from './agent-workspace-basic-command-editor-submission.ts';
24
26
 
25
- export type AgentWorkspaceBasicCommandEditorKind = AgentWorkspaceAccessCommandEditorKind | AgentWorkspaceChannelCommandEditorKind | AgentWorkspaceKnowledgeCommandEditorKind | AgentWorkspaceLibraryCommandEditorKind | AgentWorkspaceMemoryCommandEditorKind | AgentWorkspaceOperationsCommandEditorKind | AgentWorkspaceProviderCommandEditorKind | AgentWorkspaceSessionCommandEditorKind | AgentWorkspaceSkillBundleCommandEditorKind | AgentWorkspaceTaskCommandEditorKind | Extract<
27
+ export type AgentWorkspaceBasicCommandEditorKind = AgentWorkspaceAccessCommandEditorKind | AgentWorkspaceChannelCommandEditorKind | AgentWorkspaceKnowledgeCommandEditorKind | AgentWorkspaceLibraryCommandEditorKind | AgentWorkspaceMemoryCommandEditorKind | AgentWorkspaceMediaCommandEditorKind | AgentWorkspaceOperationsCommandEditorKind | AgentWorkspaceProviderCommandEditorKind | AgentWorkspaceSessionCommandEditorKind | AgentWorkspaceSkillBundleCommandEditorKind | AgentWorkspaceTaskCommandEditorKind | Extract<
26
28
  AgentWorkspaceEditorKind,
27
29
  'knowledge-file' | 'knowledge-urls' | 'knowledge-bookmarks' | 'knowledge-browser-history' | 'knowledge-connector-ingest' | 'knowledge-reindex' | 'tts-prompt' | 'image-input' | 'skill-bundle' | 'skill-discovery-import' | 'profile-template-export' | 'profile-template-import'
28
30
  | 'profile-template-from-discovered' | 'profile-from-discovered' | 'profile-default' | 'profile-default-clear'
@@ -34,7 +36,7 @@ export type AgentWorkspaceBasicCommandEditorKind = AgentWorkspaceAccessCommandEd
34
36
  | 'workplan-add' | 'workplan-show' | 'workplan-status' | 'workplan-delete' | 'workplan-clear-completed'
35
37
  | 'persona-discovery-import'
36
38
  | 'routine-discovery-import'
37
- | 'mcp-server' | 'mcp-tools-server' | 'mcp-repair' | 'notify-webhook' | 'notify-webhook-remove' | 'notify-webhook-clear' | 'notify-webhook-test'
39
+ | 'mcp-server' | 'mcp-tools-server' | 'mcp-repair' | 'notify-webhook' | 'notify-webhook-remove' | 'notify-webhook-clear' | 'notify-webhook-test' | 'notify-send'
38
40
  | 'secret-set' | 'secret-link' | 'secret-test' | 'secret-delete'
39
41
  >;
40
42
 
@@ -44,6 +46,7 @@ export function isAgentWorkspaceBasicCommandEditorKind(kind: AgentWorkspaceEdito
44
46
  || isAgentWorkspaceKnowledgeCommandEditorKind(kind)
45
47
  || isAgentWorkspaceLibraryCommandEditorKind(kind)
46
48
  || isAgentWorkspaceMemoryCommandEditorKind(kind)
49
+ || isAgentWorkspaceMediaCommandEditorKind(kind)
47
50
  || isAgentWorkspaceOperationsCommandEditorKind(kind)
48
51
  || isAgentWorkspaceProviderCommandEditorKind(kind)
49
52
  || isAgentWorkspaceSessionCommandEditorKind(kind)
@@ -92,6 +95,7 @@ export function isAgentWorkspaceBasicCommandEditorKind(kind: AgentWorkspaceEdito
92
95
  || kind === 'notify-webhook-remove'
93
96
  || kind === 'notify-webhook-clear'
94
97
  || kind === 'notify-webhook-test'
98
+ || kind === 'notify-send'
95
99
  || kind === 'secret-set'
96
100
  || kind === 'secret-link'
97
101
  || kind === 'secret-test'
@@ -114,6 +118,9 @@ export function createAgentWorkspaceBasicCommandEditor(kind: AgentWorkspaceBasic
114
118
  if (isAgentWorkspaceMemoryCommandEditorKind(kind)) {
115
119
  return createAgentWorkspaceMemoryCommandEditor(kind);
116
120
  }
121
+ if (isAgentWorkspaceMediaCommandEditorKind(kind)) {
122
+ return createAgentWorkspaceMediaCommandEditor(kind);
123
+ }
117
124
  if (isAgentWorkspaceOperationsCommandEditorKind(kind)) {
118
125
  return createAgentWorkspaceOperationsCommandEditor(kind);
119
126
  }
@@ -312,6 +319,19 @@ export function createAgentWorkspaceBasicCommandEditor(kind: AgentWorkspaceBasic
312
319
  ],
313
320
  };
314
321
  }
322
+ if (kind === 'notify-send') {
323
+ return {
324
+ kind,
325
+ mode: 'create',
326
+ title: 'Send Notification',
327
+ selectedFieldIndex: 0,
328
+ message: 'Send one message to configured Agent notification webhook targets. Type yes on the final field to confirm.',
329
+ fields: [
330
+ { id: 'message', label: 'Message', value: '', required: true, multiline: true, hint: 'Plain-text message to send. Ctrl-J inserts a new line.' },
331
+ { id: 'confirm', label: 'Confirm', value: '', required: true, multiline: false, hint: 'Type yes to run /notify send with --yes.' },
332
+ ],
333
+ };
334
+ }
315
335
  if (kind === 'secret-set') {
316
336
  return {
317
337
  kind,
@@ -363,7 +383,7 @@ export function createAgentWorkspaceBasicCommandEditor(kind: AgentWorkspaceBasic
363
383
  mode: 'delete',
364
384
  title: 'Delete Stored Secret',
365
385
  selectedFieldIndex: 0,
366
- message: 'Delete one stored secret key from the selected scope/storage. Type yes on the final field to confirm.',
386
+ message: 'Delete one stored secret key from the selected scope and storage mode. Type yes on the final field to confirm.',
367
387
  fields: [
368
388
  { id: 'key', label: 'Secret key', value: '', required: true, multiline: false, hint: 'Stored key to delete.' },
369
389
  { id: 'scope', label: 'Scope', value: '', required: false, multiline: false, hint: 'Optional project or user. Blank lets the command choose the matching stored key.' },
@@ -515,7 +535,7 @@ export function createAgentWorkspaceBasicCommandEditor(kind: AgentWorkspaceBasic
515
535
  mode: 'update',
516
536
  title: 'Use Default Agent Profile',
517
537
  selectedFieldIndex: 0,
518
- message: 'Select which isolated Agent profile the next normal goodvibes-agent launch should use. Type yes on the final field to confirm.',
538
+ message: 'Select which isolated Agent profile the next plain goodvibes-agent run should use. Type yes on the final field to confirm.',
519
539
  fields: [
520
540
  { id: 'profile', label: 'Profile name', value: '', required: true, multiline: false, hint: 'Existing isolated Agent profile name from /agent-profile list.' },
521
541
  { id: 'confirm', label: 'Confirm', value: '', required: true, multiline: false, hint: 'Type yes to run /agent-profile use with --yes.' },
@@ -528,7 +548,7 @@ export function createAgentWorkspaceBasicCommandEditor(kind: AgentWorkspaceBasic
528
548
  mode: 'update',
529
549
  title: 'Clear Default Agent Profile',
530
550
  selectedFieldIndex: 0,
531
- message: 'Return the next normal goodvibes-agent launch to the base Agent home. Type yes to confirm.',
551
+ message: 'Return the next plain goodvibes-agent run to the base Agent home. Type yes to confirm.',
532
552
  fields: [
533
553
  { id: 'confirm', label: 'Confirm', value: '', required: true, multiline: false, hint: 'Type yes to run /agent-profile default clear with --yes.' },
534
554
  ],
@@ -603,11 +623,11 @@ export function createAgentWorkspaceBasicCommandEditor(kind: AgentWorkspaceBasic
603
623
  mode: 'create',
604
624
  title: 'Start Provider Subscription Login',
605
625
  selectedFieldIndex: 0,
606
- message: 'Start one provider subscription OAuth login. Type yes on the final field to confirm browser/pending-login side effects.',
626
+ message: 'Begin one provider subscription OAuth login. Type yes on the final field to confirm browser and pending-login side effects.',
607
627
  fields: [
608
628
  { id: 'provider', label: 'Provider', value: 'openai', required: true, multiline: false, hint: 'Subscription provider id from /subscription providers.' },
609
629
  { id: 'openBrowser', label: 'Open browser', value: 'yes', required: false, multiline: false, hint: 'yes/no. Use no to print the authorization URL only.' },
610
- { id: 'manual', label: 'Manual callback', value: 'no', required: false, multiline: false, hint: 'yes/no. Use yes to avoid the local callback listener and finish manually.' },
630
+ { id: 'manual', label: 'Manual completion', value: 'yes', required: false, multiline: false, hint: 'Agent always finishes subscription login through the explicit finish form.' },
611
631
  { id: 'confirm', label: 'Confirm', value: '', required: true, multiline: false, hint: 'Type yes to run /subscription login <provider> start with --yes.' },
612
632
  ],
613
633
  };
@@ -648,7 +668,7 @@ export function createAgentWorkspaceBasicCommandEditor(kind: AgentWorkspaceBasic
648
668
  message: 'Send one explicit build/fix/review task to GoodVibes TUI/shared-session routes. Type yes on the final field to confirm.',
649
669
  fields: [
650
670
  { id: 'task', label: 'Original task', value: '', required: true, multiline: true, hint: 'Paste the full original user ask. Ctrl-J inserts a new line.' },
651
- { id: 'wrfc', label: 'Request WRFC', value: '', required: false, multiline: false, hint: 'yes/no. Blank means no WRFC request.' },
671
+ { id: 'review', label: 'Request delegated review', value: '', required: false, multiline: false, hint: 'yes/no. Blank means no delegated review request.' },
652
672
  { id: 'confirm', label: 'Confirm', value: '', required: true, multiline: false, hint: 'Type yes to run /delegate for this task.' },
653
673
  ],
654
674
  };
@@ -726,9 +746,9 @@ export function createAgentWorkspaceBasicCommandEditor(kind: AgentWorkspaceBasic
726
746
  selectedFieldIndex: 0,
727
747
  message: 'Import one discovered SKILL.md or .md skill file into the Agent-local skill registry. Type yes on the final field to confirm.',
728
748
  fields: [
729
- { id: 'name', label: 'Discovered skill', value: '', required: true, multiline: false, hint: 'Name shown by /agent-skills discover.' },
749
+ { id: 'name', label: 'Discovered skill', value: '', required: true, multiline: false, hint: 'Name shown by /skills discover.' },
730
750
  { id: 'enabled', label: 'Enable now', value: 'yes', required: false, multiline: false, hint: 'yes/no.' },
731
- { id: 'confirm', label: 'Confirm', value: '', required: true, multiline: false, hint: 'Type yes to run /agent-skills import-discovered with --yes.' },
751
+ { id: 'confirm', label: 'Confirm', value: '', required: true, multiline: false, hint: 'Type yes to run /skills import-discovered with --yes.' },
732
752
  ],
733
753
  };
734
754
  }