@pellux/goodvibes-agent 1.1.7 → 1.2.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 (255) hide show
  1. package/CHANGELOG.md +170 -0
  2. package/README.md +46 -30
  3. package/dist/package/{ast-grep-napi.linux-x64-gnu-mkk8xwww.node → ast-grep-napi.linux-x64-gnu-swtppvy9.node} +0 -0
  4. package/dist/package/{ast-grep-napi.linux-x64-musl-ryqtgdv6.node → ast-grep-napi.linux-x64-musl-ttfcdtap.node} +0 -0
  5. package/dist/package/main.js +132577 -91483
  6. package/docs/README.md +14 -7
  7. package/docs/channels-remote-and-api.md +8 -5
  8. package/docs/connected-host.md +14 -12
  9. package/docs/getting-started.md +56 -30
  10. package/docs/knowledge-artifacts-and-multimodal.md +7 -5
  11. package/docs/project-planning.md +2 -2
  12. package/docs/providers-and-routing.md +11 -3
  13. package/docs/tools-and-commands.md +114 -45
  14. package/docs/voice-and-live-tts.md +3 -1
  15. package/package.json +3 -2
  16. package/release/release-notes.md +130 -5
  17. package/release/release-readiness.json +120 -90
  18. package/src/agent/assistant-cockpit.ts +247 -0
  19. package/src/agent/autonomy-schedule-format.ts +96 -0
  20. package/src/agent/autonomy-schedule.ts +514 -0
  21. package/src/agent/channel-delivery-receipts.ts +292 -0
  22. package/src/agent/competitive-feature-inventory.ts +296 -0
  23. package/src/agent/document-registry-types.ts +106 -0
  24. package/src/agent/document-registry.ts +734 -0
  25. package/src/agent/harness-control.ts +2 -2
  26. package/src/agent/memory-prompt.ts +2 -2
  27. package/src/agent/operator-actions.ts +50 -6
  28. package/src/agent/persona-registry.ts +8 -0
  29. package/src/agent/project-context-files.ts +273 -0
  30. package/src/agent/prompt-context-receipts.ts +502 -0
  31. package/src/agent/reminder-schedule-format.ts +16 -2
  32. package/src/agent/research-run-registry.ts +582 -0
  33. package/src/agent/research-source-registry.ts +441 -0
  34. package/src/agent/routine-registry.ts +19 -3
  35. package/src/agent/routine-schedule-format.ts +27 -2
  36. package/src/agent/runtime-profile-starters.ts +7 -0
  37. package/src/agent/runtime-profile.ts +106 -4
  38. package/src/agent/schedule-edit-format.ts +129 -0
  39. package/src/agent/schedule-edit.ts +496 -0
  40. package/src/agent/schedule-next-routes.ts +42 -0
  41. package/src/agent/setup-wizard-checkpoint.ts +140 -0
  42. package/src/agent/setup-wizard.ts +447 -0
  43. package/src/agent/skill-registry-types.ts +102 -0
  44. package/src/agent/skill-registry.ts +81 -107
  45. package/src/agent/vibe-confirmation-routes.ts +62 -0
  46. package/src/agent/vibe-file.ts +285 -0
  47. package/src/cli/agent-knowledge-command.ts +45 -2
  48. package/src/cli/help.ts +3 -0
  49. package/src/cli/profiles-command.ts +25 -11
  50. package/src/config/agent-settings-policy.ts +1 -18
  51. package/src/input/agent-workspace-activation.ts +53 -0
  52. package/src/input/agent-workspace-artifact-browser-editor.ts +494 -0
  53. package/src/input/agent-workspace-artifact-metadata.ts +17 -0
  54. package/src/input/agent-workspace-basic-command-editors.ts +5 -1
  55. package/src/input/agent-workspace-categories.ts +153 -155
  56. package/src/input/agent-workspace-channel-triage.ts +481 -0
  57. package/src/input/agent-workspace-channels.ts +263 -0
  58. package/src/input/agent-workspace-command-editor.ts +152 -0
  59. package/src/input/agent-workspace-context-snapshot.ts +349 -0
  60. package/src/input/agent-workspace-delegation-editor-submission.ts +8 -0
  61. package/src/input/agent-workspace-document-editor.ts +502 -0
  62. package/src/input/agent-workspace-document-ops-editor.ts +523 -0
  63. package/src/input/agent-workspace-host-category.ts +1 -1
  64. package/src/input/agent-workspace-local-library-snapshot.ts +167 -0
  65. package/src/input/agent-workspace-model-compare-editor.ts +376 -0
  66. package/src/input/agent-workspace-model-compare-prompt-submission.ts +552 -0
  67. package/src/input/agent-workspace-model-compare-types.ts +82 -0
  68. package/src/input/agent-workspace-model-compare-utils.ts +35 -0
  69. package/src/input/agent-workspace-onboarding-categories.ts +141 -0
  70. package/src/input/agent-workspace-operations-command-editor-submission.ts +53 -0
  71. package/src/input/agent-workspace-operations-command-editors.ts +22 -0
  72. package/src/input/agent-workspace-research-report-editor.ts +212 -0
  73. package/src/input/agent-workspace-research-run-editor.ts +144 -0
  74. package/src/input/agent-workspace-research-source-editor.ts +167 -0
  75. package/src/input/agent-workspace-review-packet-snapshot.ts +593 -0
  76. package/src/input/agent-workspace-review-packet-utils.ts +265 -0
  77. package/src/input/agent-workspace-settings.ts +262 -30
  78. package/src/input/agent-workspace-setup-checkpoint-action.ts +127 -0
  79. package/src/input/agent-workspace-setup-snapshot.ts +198 -0
  80. package/src/input/agent-workspace-setup.ts +34 -1
  81. package/src/input/agent-workspace-snapshot.ts +162 -147
  82. package/src/input/agent-workspace-types.ts +287 -2
  83. package/src/input/agent-workspace.ts +18 -0
  84. package/src/input/command-registry.ts +9 -2
  85. package/src/input/commands/agent-runtime-profile-runtime.ts +28 -13
  86. package/src/input/commands/channels-runtime.ts +102 -114
  87. package/src/input/commands/delegation-runtime.ts +87 -24
  88. package/src/input/commands/knowledge-browser-flags.ts +12 -0
  89. package/src/input/commands/knowledge.ts +28 -14
  90. package/src/input/commands/operator-actions-runtime.ts +6 -3
  91. package/src/input/commands/schedule-runtime.ts +71 -14
  92. package/src/input/commands/session-content.ts +2 -2
  93. package/src/input/commands/shell-core.ts +2 -0
  94. package/src/input/commands/vibe-runtime.ts +140 -0
  95. package/src/input/commands.ts +2 -0
  96. package/src/input/connected-host-routes.ts +123 -0
  97. package/src/input/settings-modal-types.ts +14 -0
  98. package/src/main.ts +15 -15
  99. package/src/panels/qr-panel.ts +2 -2
  100. package/src/renderer/agent-workspace-context-lines.ts +686 -0
  101. package/src/renderer/agent-workspace.ts +30 -419
  102. package/src/renderer/settings-modal-helpers.ts +12 -0
  103. package/src/renderer/settings-modal.ts +12 -0
  104. package/src/runtime/bootstrap-command-context.ts +11 -1
  105. package/src/runtime/bootstrap-command-parts.ts +14 -3
  106. package/src/runtime/bootstrap-core.ts +39 -1
  107. package/src/runtime/bootstrap-shell.ts +6 -0
  108. package/src/runtime/bootstrap.ts +113 -30
  109. package/src/runtime/connected-host-auth.ts +3 -2
  110. package/src/runtime/execution-ledger.ts +231 -0
  111. package/src/runtime/services.ts +88 -10
  112. package/src/runtime/tool-permission-safety.ts +199 -5
  113. package/src/shell/session-continuity-hints.ts +39 -0
  114. package/src/tools/agent-artifacts-tool.ts +606 -0
  115. package/src/tools/agent-audit-tool.ts +155 -0
  116. package/src/tools/agent-autonomy-schedule-tool.ts +238 -0
  117. package/src/tools/agent-autonomy-tool.ts +140 -0
  118. package/src/tools/agent-channel-send-tool.ts +24 -2
  119. package/src/tools/agent-channels-tool.ts +140 -0
  120. package/src/tools/agent-computer-tool.ts +168 -0
  121. package/src/tools/agent-context-policy.ts +137 -7
  122. package/src/tools/agent-context-tool.ts +143 -0
  123. package/src/tools/agent-delegation-tool.ts +128 -0
  124. package/src/tools/agent-device-tool.ts +240 -0
  125. package/src/tools/agent-documents-tool.ts +684 -0
  126. package/src/tools/agent-execution-tool.ts +230 -0
  127. package/src/tools/agent-harness-agent-orchestration.ts +703 -0
  128. package/src/tools/agent-harness-autonomy-intake.ts +785 -0
  129. package/src/tools/agent-harness-autonomy-live-records.ts +588 -0
  130. package/src/tools/agent-harness-autonomy-queue-types.ts +88 -0
  131. package/src/tools/agent-harness-autonomy-queue.ts +560 -0
  132. package/src/tools/agent-harness-background-processes-types.ts +35 -0
  133. package/src/tools/agent-harness-background-processes.ts +794 -0
  134. package/src/tools/agent-harness-browser-cockpit-route.ts +219 -0
  135. package/src/tools/agent-harness-browser-control.ts +338 -0
  136. package/src/tools/agent-harness-channel-metadata.ts +168 -10
  137. package/src/tools/agent-harness-cli-command-policy.ts +110 -0
  138. package/src/tools/agent-harness-command-catalog.ts +4 -2
  139. package/src/tools/agent-harness-command-runner.ts +42 -0
  140. package/src/tools/agent-harness-connected-host-status.ts +7 -4
  141. package/src/tools/agent-harness-delegation-posture.ts +234 -19
  142. package/src/tools/agent-harness-document-ops-reviewer-readiness.ts +234 -0
  143. package/src/tools/agent-harness-document-ops-types.ts +72 -0
  144. package/src/tools/agent-harness-document-ops.ts +671 -0
  145. package/src/tools/agent-harness-execution-history.ts +489 -0
  146. package/src/tools/agent-harness-execution-posture.ts +382 -0
  147. package/src/tools/agent-harness-file-recovery.ts +135 -0
  148. package/src/tools/agent-harness-keybinding-metadata.ts +16 -12
  149. package/src/tools/agent-harness-learning-curator-common.ts +102 -0
  150. package/src/tools/agent-harness-learning-curator-consolidation.ts +295 -0
  151. package/src/tools/agent-harness-learning-curator-proposals.ts +606 -0
  152. package/src/tools/agent-harness-learning-curator-types.ts +151 -0
  153. package/src/tools/agent-harness-learning-curator.ts +417 -0
  154. package/src/tools/agent-harness-local-model-benchmarks.ts +199 -0
  155. package/src/tools/agent-harness-local-model-cookbook.ts +238 -0
  156. package/src/tools/agent-harness-local-model-endpoints.ts +673 -0
  157. package/src/tools/agent-harness-media-posture.ts +208 -2
  158. package/src/tools/agent-harness-memory-posture.ts +556 -0
  159. package/src/tools/agent-harness-metadata.ts +100 -168
  160. package/src/tools/agent-harness-mode-catalog.ts +84 -33
  161. package/src/tools/agent-harness-model-catalog.ts +162 -0
  162. package/src/tools/agent-harness-model-provider-health.ts +186 -0
  163. package/src/tools/agent-harness-model-readiness.ts +406 -0
  164. package/src/tools/agent-harness-model-routing-types.ts +266 -0
  165. package/src/tools/agent-harness-model-routing-utils.ts +30 -0
  166. package/src/tools/agent-harness-model-routing.ts +137 -190
  167. package/src/tools/agent-harness-operator-methods.ts +115 -133
  168. package/src/tools/agent-harness-pairing-posture.ts +431 -18
  169. package/src/tools/agent-harness-personal-ops-discovery.ts +533 -0
  170. package/src/tools/agent-harness-personal-ops-intake.ts +385 -0
  171. package/src/tools/agent-harness-personal-ops-lanes.ts +204 -0
  172. package/src/tools/agent-harness-personal-ops-records.ts +732 -0
  173. package/src/tools/agent-harness-personal-ops-runner.ts +637 -0
  174. package/src/tools/agent-harness-personal-ops-types.ts +222 -0
  175. package/src/tools/agent-harness-personal-ops.ts +606 -0
  176. package/src/tools/agent-harness-project-context.ts +144 -0
  177. package/src/tools/agent-harness-prompt-context.ts +589 -0
  178. package/src/tools/agent-harness-provider-account-metadata.ts +2 -2
  179. package/src/tools/agent-harness-release-evidence.ts +9 -7
  180. package/src/tools/agent-harness-release-readiness.ts +9 -7
  181. package/src/tools/agent-harness-research-briefing.ts +427 -0
  182. package/src/tools/agent-harness-research-queue.ts +250 -0
  183. package/src/tools/agent-harness-research-runs.ts +295 -0
  184. package/src/tools/agent-harness-research-workflow.ts +322 -0
  185. package/src/tools/agent-harness-security-posture.ts +2 -2
  186. package/src/tools/agent-harness-service-posture.ts +9 -9
  187. package/src/tools/agent-harness-session-metadata.ts +3 -3
  188. package/src/tools/agent-harness-setup-connected-host.ts +501 -0
  189. package/src/tools/agent-harness-setup-describe.ts +557 -0
  190. package/src/tools/agent-harness-setup-handoffs.ts +502 -0
  191. package/src/tools/agent-harness-setup-model-helpers.ts +101 -0
  192. package/src/tools/agent-harness-setup-plan.ts +253 -0
  193. package/src/tools/agent-harness-setup-posture-types.ts +218 -0
  194. package/src/tools/agent-harness-setup-posture-utils.ts +173 -0
  195. package/src/tools/agent-harness-setup-posture.ts +449 -221
  196. package/src/tools/agent-harness-setup-smoke.ts +508 -0
  197. package/src/tools/agent-harness-sudo-posture.ts +114 -0
  198. package/src/tools/agent-harness-tool-schema.ts +120 -7
  199. package/src/tools/agent-harness-tool-types.ts +78 -0
  200. package/src/tools/agent-harness-tool-utils.ts +43 -0
  201. package/src/tools/agent-harness-tool.ts +311 -370
  202. package/src/tools/agent-harness-ui-surface-metadata.ts +76 -69
  203. package/src/tools/agent-harness-ui-surface-types.ts +46 -0
  204. package/src/tools/agent-harness-vibe-health.ts +105 -0
  205. package/src/tools/agent-harness-workspace-action-runner.ts +149 -0
  206. package/src/tools/agent-harness-workspace-actions.ts +114 -8
  207. package/src/tools/agent-harness-workspace-editor-execution.ts +214 -0
  208. package/src/tools/agent-harness-workspace-editor-runner.ts +755 -0
  209. package/src/tools/agent-host-tool.ts +159 -0
  210. package/src/tools/agent-knowledge-ingest-tool.ts +34 -1
  211. package/src/tools/agent-learning-consolidation-core.ts +327 -0
  212. package/src/tools/agent-learning-consolidation-tool.ts +758 -0
  213. package/src/tools/agent-memory-tool.ts +214 -0
  214. package/src/tools/agent-model-compare-export.ts +315 -0
  215. package/src/tools/agent-model-compare-handoff.ts +592 -0
  216. package/src/tools/agent-model-compare-judgment.ts +633 -0
  217. package/src/tools/agent-model-compare-run.ts +722 -0
  218. package/src/tools/agent-model-compare-tool.ts +698 -0
  219. package/src/tools/agent-model-compare-types.ts +191 -0
  220. package/src/tools/agent-model-compare-utils.ts +93 -0
  221. package/src/tools/agent-models-tool.ts +208 -0
  222. package/src/tools/agent-operator-action-tool.ts +1 -1
  223. package/src/tools/agent-operator-method-tool.ts +643 -0
  224. package/src/tools/agent-personal-ops-tool.ts +197 -0
  225. package/src/tools/agent-policy-explanation.ts +415 -0
  226. package/src/tools/agent-research-report-tool.ts +608 -0
  227. package/src/tools/agent-research-runs-tool.ts +434 -0
  228. package/src/tools/agent-research-sources-tool.ts +443 -0
  229. package/src/tools/agent-research-tool.ts +687 -0
  230. package/src/tools/agent-review-packet-presets-core.ts +757 -0
  231. package/src/tools/agent-review-packet-presets-tool.ts +466 -0
  232. package/src/tools/agent-review-packet-share-tool.ts +305 -0
  233. package/src/tools/agent-route-planner-candidates-setup.ts +411 -0
  234. package/src/tools/agent-route-planner-candidates-surfaces.ts +432 -0
  235. package/src/tools/agent-route-planner-candidates-work.ts +251 -0
  236. package/src/tools/agent-route-planner-helpers.ts +667 -0
  237. package/src/tools/agent-route-planner.ts +185 -0
  238. package/src/tools/agent-route-tool.ts +105 -0
  239. package/src/tools/agent-schedule-edit-tool.ts +210 -0
  240. package/src/tools/agent-schedule-tool.ts +282 -0
  241. package/src/tools/agent-security-tool.ts +145 -0
  242. package/src/tools/agent-sessions-tool.ts +122 -0
  243. package/src/tools/agent-settings-import-tool.ts +104 -0
  244. package/src/tools/agent-settings-tool.ts +176 -0
  245. package/src/tools/agent-setup-tool.ts +226 -0
  246. package/src/tools/agent-support-tool.ts +122 -0
  247. package/src/tools/agent-terminal-process-tools.ts +167 -0
  248. package/src/tools/agent-tool-policy-guard-types.ts +77 -0
  249. package/src/tools/agent-tool-policy-guard.ts +106 -85
  250. package/src/tools/agent-vibe-tool.ts +297 -0
  251. package/src/tools/agent-work-plan-tool.ts +265 -6
  252. package/src/tools/agent-workspace-tool.ts +305 -0
  253. package/src/tools/artifact-archive.ts +169 -0
  254. package/src/tools/tool-definition-compaction.ts +36 -0
  255. package/src/version.ts +1 -1
@@ -97,25 +97,28 @@ function renderProfilesResult(result: AgentRuntimeProfileCommandResult): string
97
97
  ` persona ${template.personaName}`,
98
98
  ` skills ${template.skillNames.join(', ')}`,
99
99
  ` routines ${template.routineNames.join(', ')}`,
100
- ].join('\n')),
100
+ template.vibeIncluded ? ' vibe included' : '',
101
+ ].filter(Boolean).join('\n')),
101
102
  'Use goodvibes-agent profiles create <name> --template <id> --yes',
102
- 'Export/edit/import with goodvibes-agent profiles templates export <id> <path> --yes',
103
+ 'Export/edit/import with goodvibes-agent profiles templates export <id> <path> [--include-vibe] --yes',
103
104
  ].join('\n');
104
105
  }
105
106
  if (result.kind === 'agent.profiles.template.export' && result.data?.template && result.data.path) {
106
107
  return [
107
108
  `Agent starter template exported: ${result.data.template.id}`,
108
109
  ` path ${result.data.path}`,
110
+ result.data.template.vibeIncluded ? ' vibe included' : '',
109
111
  ' edit the JSON, then import it with goodvibes-agent profiles templates import <path> --yes',
110
- ].join('\n');
112
+ ].filter(Boolean).join('\n');
111
113
  }
112
114
  if (result.kind === 'agent.profiles.template.import' && result.data?.template) {
113
115
  return [
114
116
  `Agent starter template imported: ${result.data.template.id}`,
115
117
  ` name ${result.data.template.name}`,
116
118
  ` origin ${formatAgentRecordSource(result.data.template.source)}`,
119
+ result.data.template.vibeIncluded ? ' vibe included' : '',
117
120
  ` use goodvibes-agent profiles create <name> --template ${result.data.template.id} --yes`,
118
- ].join('\n');
121
+ ].filter(Boolean).join('\n');
119
122
  }
120
123
  if (result.kind === 'agent.profiles.template.from_discovered' && result.data?.template) {
121
124
  return [
@@ -124,8 +127,9 @@ function renderProfilesResult(result: AgentRuntimeProfileCommandResult): string
124
127
  ` persona ${result.data.template.personaName}`,
125
128
  ` skills ${result.data.template.skillNames.join(', ')}`,
126
129
  ` routines ${result.data.template.routineNames.join(', ')}`,
130
+ result.data.template.vibeIncluded ? ' vibe included' : '',
127
131
  ` use goodvibes-agent profiles create <name> --template ${result.data.template.id} --yes`,
128
- ].join('\n');
132
+ ].filter(Boolean).join('\n');
129
133
  }
130
134
  if (result.kind === 'agent.profiles.default') {
131
135
  const selected = result.data?.selectedProfile;
@@ -157,8 +161,9 @@ function renderProfilesResult(result: AgentRuntimeProfileCommandResult): string
157
161
  ` persona ${result.data.template.personaName}`,
158
162
  ` skills ${result.data.template.skillNames.join(', ')}`,
159
163
  ` routines ${result.data.template.routineNames.join(', ')}`,
164
+ result.data.template.vibeIncluded ? ' vibe included' : '',
160
165
  ` launch: ${result.data.nextCommand ?? `goodvibes-agent --agent-profile ${result.data.profile.id}`}`,
161
- ].join('\n');
166
+ ].filter(Boolean).join('\n');
162
167
  }
163
168
  const profile = result.data?.profile;
164
169
  if (result.kind === 'agent.profiles.create' && profile) {
@@ -169,9 +174,10 @@ function renderProfilesResult(result: AgentRuntimeProfileCommandResult): string
169
174
  ...(template ? [
170
175
  ` starter: ${template.id} (${template.name})`,
171
176
  ` seeded: ${template.personaIds.length} persona, ${template.skillIds.length} skills, ${template.routineIds.length} routine`,
177
+ template.vibePath ? ` vibe ${template.vibePath}` : '',
172
178
  ] : []),
173
179
  ` use ${result.data?.nextCommand ?? `goodvibes-agent --agent-profile ${profile.id}`}`,
174
- ].join('\n');
180
+ ].filter(Boolean).join('\n');
175
181
  }
176
182
  if (result.kind === 'agent.profiles.delete' && profile) {
177
183
  return [
@@ -211,7 +217,7 @@ export async function handleProfilesCommand(runtime: ProfilesCommandRuntime): Pr
211
217
  const result: AgentRuntimeProfileCommandResult = {
212
218
  ok: false,
213
219
  kind: 'agent.profiles.error',
214
- error: 'Usage: goodvibes-agent profiles templates from-discovered <id> [--name <name>] [--description <summary>] [--persona <name>] [--skills all|name,name] [--routines all|name,name] [--replace] --yes',
220
+ error: 'Usage: goodvibes-agent profiles templates from-discovered <id> [--name <name>] [--description <summary>] [--persona <name>] [--skills all|name,name] [--routines all|name,name] [--include-vibe] [--replace] --yes',
215
221
  };
216
222
  return {
217
223
  output: renderProfilesOutput(result, runtime.cli.flags.outputFormat),
@@ -239,6 +245,7 @@ export async function handleProfilesCommand(runtime: ProfilesCommandRuntime): Pr
239
245
  persona: flagValue(rawRest, ['--persona']) ?? undefined,
240
246
  skills: parseCsvFlag(rawRest, ['--skills']),
241
247
  routines: parseCsvFlag(rawRest, ['--routines']),
248
+ includeVibe: rawRest.includes('--include-vibe'),
242
249
  replace: hasYes(rawRest) && rawRest.includes('--replace'),
243
250
  });
244
251
  const result: AgentRuntimeProfileCommandResult = {
@@ -256,7 +263,7 @@ export async function handleProfilesCommand(runtime: ProfilesCommandRuntime): Pr
256
263
  const result: AgentRuntimeProfileCommandResult = {
257
264
  ok: false,
258
265
  kind: 'agent.profiles.error',
259
- error: 'Usage: goodvibes-agent profiles templates export <id> <path> --yes',
266
+ error: 'Usage: goodvibes-agent profiles templates export <id> <path> [--include-vibe] --yes',
260
267
  };
261
268
  return {
262
269
  output: renderProfilesOutput(result, runtime.cli.flags.outputFormat),
@@ -274,7 +281,13 @@ export async function handleProfilesCommand(runtime: ProfilesCommandRuntime): Pr
274
281
  exitCode: 2,
275
282
  };
276
283
  }
277
- const template = exportAgentRuntimeProfileTemplate(runtime.homeDirectory, templateId, templatePath);
284
+ const template = exportAgentRuntimeProfileTemplate(runtime.homeDirectory, templateId, templatePath, {
285
+ includeVibe: rawRest.includes('--include-vibe'),
286
+ shellPaths: {
287
+ homeDirectory: runtime.homeDirectory,
288
+ workingDirectory: runtime.workingDirectory,
289
+ },
290
+ });
278
291
  const result: AgentRuntimeProfileCommandResult = {
279
292
  ok: true,
280
293
  kind: 'agent.profiles.template.export',
@@ -506,7 +519,7 @@ export async function handleProfilesCommand(runtime: ProfilesCommandRuntime): Pr
506
519
  const result: AgentRuntimeProfileCommandResult = {
507
520
  ok: false,
508
521
  kind: 'agent.profiles.error',
509
- error: 'Usage: goodvibes-agent profiles create-from-discovered <name> [--template-id <id>] [--profile-name <display>] [--description <summary>] [--persona <name>] [--skills all|name,name] [--routines all|name,name] [--replace] --yes',
522
+ error: 'Usage: goodvibes-agent profiles create-from-discovered <name> [--template-id <id>] [--profile-name <display>] [--description <summary>] [--persona <name>] [--skills all|name,name] [--routines all|name,name] [--include-vibe] [--replace] --yes',
510
523
  };
511
524
  return {
512
525
  output: renderProfilesOutput(result, runtime.cli.flags.outputFormat),
@@ -535,6 +548,7 @@ export async function handleProfilesCommand(runtime: ProfilesCommandRuntime): Pr
535
548
  persona: flagValue(rawRest, ['--persona']) ?? undefined,
536
549
  skills: parseCsvFlag(rawRest, ['--skills']),
537
550
  routines: parseCsvFlag(rawRest, ['--routines']),
551
+ includeVibe: rawRest.includes('--include-vibe'),
538
552
  replace: rawRest.includes('--replace'),
539
553
  });
540
554
  const result: AgentRuntimeProfileCommandResult = {
@@ -1,20 +1,7 @@
1
- export const AGENT_EXTERNAL_HOST_SETTING_LOCK_REASON = 'GoodVibes Agent uses a connected GoodVibes host. Change host lifecycle and bind posture from the owning host; Agent settings are read-only for those controls.';
1
+ export const AGENT_EXTERNAL_HOST_SETTING_LOCK_REASON = 'This raw daemon/listener danger toggle is protected. Use an explicit confirmed operator action or setup command for lifecycle changes.';
2
2
 
3
3
  const AGENT_HIDDEN_SETTING_PREFIXES = [
4
- ['cloud', 'flare.'].join(''),
5
- ['surfaces.', 'home', 'assistant.'].join(''),
6
- 'batch.',
7
- 'controlPlane.',
8
4
  'danger.',
9
- 'httpListener.',
10
- 'network.',
11
- 'orchestration.',
12
- 'runtime.',
13
- 'service.',
14
- 'sandbox.',
15
- 'web.',
16
- 'watchers.',
17
- 'wrfc.',
18
5
  ] as const;
19
6
 
20
7
  const AGENT_HIDDEN_SETTING_KEYS = new Set<string>([
@@ -22,10 +9,6 @@ const AGENT_HIDDEN_SETTING_KEYS = new Set<string>([
22
9
  ]);
23
10
 
24
11
  const EXTERNAL_HOST_SETTING_PREFIXES = [
25
- 'service.',
26
- 'controlPlane.',
27
- 'httpListener.',
28
- 'web.',
29
12
  ] as const;
30
13
 
31
14
  const EXTERNAL_HOST_SETTING_KEYS = new Set<string>([
@@ -1,6 +1,13 @@
1
1
  import { createLearnedBehaviorEditor, createLocalEditor, createProfileEditor } from './agent-workspace-editors.ts';
2
+ import { createAgentArtifactBrowserEditor, createAgentArtifactExportEditor, createAgentArtifactPackageEditor, createAgentArtifactPromoteKnowledgeEditor, createAgentArtifactShowEditor } from './agent-workspace-artifact-browser-editor.ts';
3
+ import { createAgentDocumentAcceptSuggestionEditor, createAgentDocumentAttachArtifactEditor, createAgentDocumentBrowseEditor, createAgentDocumentCommentEditor, createAgentDocumentCreateEditor, createAgentDocumentExportEditor, createAgentDocumentInsertArtifactEditor, createAgentDocumentRejectSuggestionEditor, createAgentDocumentResolveCommentEditor, createAgentDocumentReviewEditor, createAgentDocumentShowEditor, createAgentDocumentSuggestEditor, createAgentDocumentUpdateEditor } from './agent-workspace-document-editor.ts';
4
+ import { createAgentDocumentReviewerReadinessEditor, createAgentDocumentReviewPacketPresetEditor, createAgentDocumentReviewPacketPresetRefreshEditor, createAgentDocumentReviewPacketShareEditor, createAgentDocumentReviewPacketWizardEditor } from './agent-workspace-document-ops-editor.ts';
2
5
  import { createAgentWorkspaceBasicCommandEditor, isAgentWorkspaceBasicCommandEditorKind } from './agent-workspace-basic-command-editors.ts';
3
6
  import { createAgentKnowledgeQueryEditor } from './agent-workspace-knowledge-query-editor.ts';
7
+ import { createAgentLocalModelBenchmarkEditor, createAgentModelCompareAnalyticsEditor, createAgentModelCompareApplyEditor, createAgentModelCompareEditor, createAgentModelCompareExportEditor, createAgentModelCompareHandoffDiffEditor, createAgentModelCompareJudgmentEditor, createAgentModelCompareReviewEditor, createAgentModelCompareRouteDecisionEditor } from './agent-workspace-model-compare-editor.ts';
8
+ import { createAgentResearchReportEditor } from './agent-workspace-research-report-editor.ts';
9
+ import { createAgentResearchRunEditor } from './agent-workspace-research-run-editor.ts';
10
+ import { createAgentResearchSourceEditor } from './agent-workspace-research-source-editor.ts';
4
11
  import { createReminderScheduleEditor } from './agent-workspace-reminder-schedule-editor.ts';
5
12
  import { createRoutineScheduleEditor } from './agent-workspace-routine-schedule-editor.ts';
6
13
  import { createAgentWorkspaceWebResearchEditor } from './agent-workspace-web-research-editor.ts';
@@ -15,6 +22,8 @@ import type {
15
22
  AgentWorkspaceLocalEditorKind,
16
23
  AgentWorkspaceLocalLibraryItem,
17
24
  AgentWorkspaceLocalOperation,
25
+ AgentWorkspaceRecentReviewerHandoffArtifact,
26
+ AgentWorkspaceReviewPacketDefaults,
18
27
  AgentWorkspaceRuntimeSnapshot,
19
28
  AgentWorkspaceRuntimeStarterTemplateItem,
20
29
  } from './agent-workspace-types.ts';
@@ -38,6 +47,7 @@ interface AgentWorkspaceActivationHost {
38
47
  applyLocalLibraryOperation(operation: AgentWorkspaceLocalOperation): void;
39
48
  applySettingAction(action: AgentWorkspaceCategory['actions'][number], requestRender?: () => void): void;
40
49
  importTuiSettings(requestRender?: () => void): void;
50
+ applySetupCheckpointAction(action: AgentWorkspaceCategory['actions'][number], requestRender?: () => void): void;
41
51
  openModelPickerAction(action: AgentWorkspaceCategory['actions'][number], requestRender?: () => void): void;
42
52
  openSettingsModalAction(action: AgentWorkspaceCategory['actions'][number], requestRender?: () => void): void;
43
53
  completeOnboarding(): void;
@@ -69,6 +79,10 @@ export function activateAgentWorkspaceSelection(
69
79
  workspace.importTuiSettings(requestRender);
70
80
  return;
71
81
  }
82
+ if (action.kind === 'setup-checkpoint') {
83
+ workspace.applySetupCheckpointAction(action, requestRender);
84
+ return;
85
+ }
72
86
  if (action.kind === 'model-picker') {
73
87
  workspace.openModelPickerAction(action, requestRender);
74
88
  return;
@@ -81,6 +95,8 @@ export function activateAgentWorkspaceSelection(
81
95
  const editor = createAgentWorkspaceEditor(action.editorKind, {
82
96
  runtimeStarterTemplates: workspace.runtimeSnapshot?.runtimeStarterTemplates ?? [],
83
97
  selectedRoutine: workspace.selectedLocalLibraryItem('routine'),
98
+ recentReviewerHandoffArtifacts: workspace.runtimeSnapshot?.recentReviewerHandoffArtifacts ?? [],
99
+ reviewPacketDefaults: workspace.runtimeSnapshot?.reviewPacketDefaults ?? null,
84
100
  });
85
101
  if (!editor) {
86
102
  workspace.status = `Editor unavailable: ${action.editorKind}.`;
@@ -178,12 +194,49 @@ export function createAgentWorkspaceEditor(
178
194
  options: {
179
195
  readonly runtimeStarterTemplates?: readonly AgentWorkspaceRuntimeStarterTemplateItem[];
180
196
  readonly selectedRoutine?: AgentWorkspaceLocalLibraryItem | null;
197
+ readonly recentReviewerHandoffArtifacts?: readonly AgentWorkspaceRecentReviewerHandoffArtifact[];
198
+ readonly reviewPacketDefaults?: AgentWorkspaceReviewPacketDefaults | null;
181
199
  } = {},
182
200
  ): AgentWorkspaceLocalEditor | null {
183
201
  if (editorKind === 'profile') return createProfileEditor(options.runtimeStarterTemplates ?? []);
184
202
  if (editorKind === 'learned-behavior') return createLearnedBehaviorEditor();
185
203
  if (editorKind === 'web-research') return createAgentWorkspaceWebResearchEditor('research');
186
204
  if (editorKind === 'web-fetch') return createAgentWorkspaceWebResearchEditor('fetch');
205
+ if (editorKind === 'research-run') return createAgentResearchRunEditor();
206
+ if (editorKind === 'research-source') return createAgentResearchSourceEditor();
207
+ if (editorKind === 'research-report') return createAgentResearchReportEditor();
208
+ if (editorKind === 'artifact-browser') return createAgentArtifactBrowserEditor();
209
+ if (editorKind === 'artifact-show') return createAgentArtifactShowEditor();
210
+ if (editorKind === 'artifact-export-file') return createAgentArtifactExportEditor();
211
+ if (editorKind === 'artifact-export-package') return createAgentArtifactPackageEditor();
212
+ if (editorKind === 'artifact-promote-knowledge') return createAgentArtifactPromoteKnowledgeEditor();
213
+ if (editorKind === 'document-browse') return createAgentDocumentBrowseEditor();
214
+ if (editorKind === 'document-show') return createAgentDocumentShowEditor();
215
+ if (editorKind === 'document-create') return createAgentDocumentCreateEditor();
216
+ if (editorKind === 'document-update') return createAgentDocumentUpdateEditor();
217
+ if (editorKind === 'document-review') return createAgentDocumentReviewEditor();
218
+ if (editorKind === 'document-comment') return createAgentDocumentCommentEditor();
219
+ if (editorKind === 'document-resolve-comment') return createAgentDocumentResolveCommentEditor();
220
+ if (editorKind === 'document-suggest') return createAgentDocumentSuggestEditor();
221
+ if (editorKind === 'document-accept-suggestion') return createAgentDocumentAcceptSuggestionEditor();
222
+ if (editorKind === 'document-reject-suggestion') return createAgentDocumentRejectSuggestionEditor();
223
+ if (editorKind === 'document-insert-artifact') return createAgentDocumentInsertArtifactEditor();
224
+ if (editorKind === 'document-attach-artifact') return createAgentDocumentAttachArtifactEditor();
225
+ if (editorKind === 'document-export') return createAgentDocumentExportEditor(options.reviewPacketDefaults ?? null);
226
+ if (editorKind === 'document-reviewer-readiness') return createAgentDocumentReviewerReadinessEditor();
227
+ if (editorKind === 'document-review-packet-wizard') return createAgentDocumentReviewPacketWizardEditor();
228
+ if (editorKind === 'document-review-packet-preset') return createAgentDocumentReviewPacketPresetEditor(options.reviewPacketDefaults ?? null);
229
+ if (editorKind === 'document-review-packet-preset-refresh') return createAgentDocumentReviewPacketPresetRefreshEditor();
230
+ if (editorKind === 'document-review-packet-share') return createAgentDocumentReviewPacketShareEditor(options.reviewPacketDefaults ?? null);
231
+ if (editorKind === 'model-compare') return createAgentModelCompareEditor();
232
+ if (editorKind === 'local-model-benchmark') return createAgentLocalModelBenchmarkEditor();
233
+ if (editorKind === 'model-compare-review') return createAgentModelCompareReviewEditor();
234
+ if (editorKind === 'model-compare-handoff-diff') return createAgentModelCompareHandoffDiffEditor(options.recentReviewerHandoffArtifacts ?? []);
235
+ if (editorKind === 'model-compare-judge') return createAgentModelCompareJudgmentEditor();
236
+ if (editorKind === 'model-compare-apply') return createAgentModelCompareApplyEditor(options.reviewPacketDefaults ?? null);
237
+ if (editorKind === 'model-compare-route-decision') return createAgentModelCompareRouteDecisionEditor(options.reviewPacketDefaults ?? null);
238
+ if (editorKind === 'model-compare-export') return createAgentModelCompareExportEditor(options.reviewPacketDefaults ?? null);
239
+ if (editorKind === 'model-compare-analytics') return createAgentModelCompareAnalyticsEditor();
187
240
  if (editorKind && isAgentWorkspaceBasicCommandEditorKind(editorKind)) return createAgentWorkspaceBasicCommandEditor(editorKind);
188
241
  if (editorKind === 'knowledge-ask') return createAgentKnowledgeQueryEditor('ask');
189
242
  if (editorKind === 'knowledge-search') return createAgentKnowledgeQueryEditor('search');