vidbyte-cli 0.1.0__py3-none-any.whl

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 (269) hide show
  1. vidbyte_cli/__init__.py +11 -0
  2. vidbyte_cli/__main__.py +6 -0
  3. vidbyte_cli/cli.py +18 -0
  4. vidbyte_cli/commands/__init__.py +86 -0
  5. vidbyte_cli/commands/agent_options.py +53 -0
  6. vidbyte_cli/commands/agents/__init__.py +31 -0
  7. vidbyte_cli/commands/agents/suggestion/__init__.py +38 -0
  8. vidbyte_cli/commands/agents/suggestion/prompts/__init__.py +3 -0
  9. vidbyte_cli/commands/agents/suggestion/prompts/all_categories.md +5 -0
  10. vidbyte_cli/commands/agents/suggestion/prompts/approaches.md +100 -0
  11. vidbyte_cli/commands/agents/suggestion/prompts/avoid.md +100 -0
  12. vidbyte_cli/commands/agents/suggestion/prompts/blockers.md +100 -0
  13. vidbyte_cli/commands/agents/suggestion/prompts/capability.md +100 -0
  14. vidbyte_cli/commands/agents/suggestion/prompts/categories.md +5 -0
  15. vidbyte_cli/commands/agents/suggestion/prompts/category.md +5 -0
  16. vidbyte_cli/commands/agents/suggestion/prompts/completed.md +100 -0
  17. vidbyte_cli/commands/agents/suggestion/prompts/constraint.md +100 -0
  18. vidbyte_cli/commands/agents/suggestion/prompts/context.md +100 -0
  19. vidbyte_cli/commands/agents/suggestion/prompts/count.md +5 -0
  20. vidbyte_cli/commands/agents/suggestion/prompts/critic_model.md +100 -0
  21. vidbyte_cli/commands/agents/suggestion/prompts/decision.md +100 -0
  22. vidbyte_cli/commands/agents/suggestion/prompts/dry_run.md +5 -0
  23. vidbyte_cli/commands/agents/suggestion/prompts/extra_compute.md +5 -0
  24. vidbyte_cli/commands/agents/suggestion/prompts/feedback_accept.md +7 -0
  25. vidbyte_cli/commands/agents/suggestion/prompts/feedback_group.md +7 -0
  26. vidbyte_cli/commands/agents/suggestion/prompts/feedback_project.md +100 -0
  27. vidbyte_cli/commands/agents/suggestion/prompts/feedback_reason.md +98 -0
  28. vidbyte_cli/commands/agents/suggestion/prompts/feedback_reject.md +7 -0
  29. vidbyte_cli/commands/agents/suggestion/prompts/feedback_suggestion.md +101 -0
  30. vidbyte_cli/commands/agents/suggestion/prompts/files.md +100 -0
  31. vidbyte_cli/commands/agents/suggestion/prompts/forbidden.md +100 -0
  32. vidbyte_cli/commands/agents/suggestion/prompts/goal.md +100 -0
  33. vidbyte_cli/commands/agents/suggestion/prompts/handoff.md +7 -0
  34. vidbyte_cli/commands/agents/suggestion/prompts/horizon.md +5 -0
  35. vidbyte_cli/commands/agents/suggestion/prompts/hypotheses.md +100 -0
  36. vidbyte_cli/commands/agents/suggestion/prompts/idea.md +100 -0
  37. vidbyte_cli/commands/agents/suggestion/prompts/in_progress.md +100 -0
  38. vidbyte_cli/commands/agents/suggestion/prompts/input.md +100 -0
  39. vidbyte_cli/commands/agents/suggestion/prompts/library.py +29 -0
  40. vidbyte_cli/commands/agents/suggestion/prompts/max_messages.md +5 -0
  41. vidbyte_cli/commands/agents/suggestion/prompts/max_output_tokens.md +5 -0
  42. vidbyte_cli/commands/agents/suggestion/prompts/max_total_tokens.md +5 -0
  43. vidbyte_cli/commands/agents/suggestion/prompts/mistakes.md +100 -0
  44. vidbyte_cli/commands/agents/suggestion/prompts/outcomes.md +100 -0
  45. vidbyte_cli/commands/agents/suggestion/prompts/project.md +100 -0
  46. vidbyte_cli/commands/agents/suggestion/prompts/project_create.md +7 -0
  47. vidbyte_cli/commands/agents/suggestion/prompts/project_description.md +98 -0
  48. vidbyte_cli/commands/agents/suggestion/prompts/project_group.md +7 -0
  49. vidbyte_cli/commands/agents/suggestion/prompts/project_key.md +96 -0
  50. vidbyte_cli/commands/agents/suggestion/prompts/project_list.md +7 -0
  51. vidbyte_cli/commands/agents/suggestion/prompts/project_title.md +99 -0
  52. vidbyte_cli/commands/agents/suggestion/prompts/provider.md +5 -0
  53. vidbyte_cli/commands/agents/suggestion/prompts/question.md +100 -0
  54. vidbyte_cli/commands/agents/suggestion/prompts/risks.md +100 -0
  55. vidbyte_cli/commands/agents/suggestion/prompts/rounds.md +5 -0
  56. vidbyte_cli/commands/agents/suggestion/prompts/run.md +5 -0
  57. vidbyte_cli/commands/agents/suggestion/prompts/success.md +100 -0
  58. vidbyte_cli/commands/agents/suggestion/prompts/timeout.md +5 -0
  59. vidbyte_cli/commands/agents/suggestion/prompts/trajectory.md +100 -0
  60. vidbyte_cli/commands/agents/suggestion/prompts/view.md +5 -0
  61. vidbyte_cli/commands/agents/suggestion/prompts/view_all.md +5 -0
  62. vidbyte_cli/commands/agents/suggestion/render.py +77 -0
  63. vidbyte_cli/commands/agents/suggestion/request_builder.py +240 -0
  64. vidbyte_cli/commands/agents/suggestion/suggest.py +154 -0
  65. vidbyte_cli/commands/agents/suggestion/suggestion_categories.py +77 -0
  66. vidbyte_cli/commands/agents/suggestion/suggestion_feedback.py +85 -0
  67. vidbyte_cli/commands/agents/suggestion/suggestion_handoff.py +67 -0
  68. vidbyte_cli/commands/agents/suggestion/suggestion_projects.py +95 -0
  69. vidbyte_cli/commands/auth/__init__.py +0 -0
  70. vidbyte_cli/commands/auth/login.py +100 -0
  71. vidbyte_cli/commands/auth/logout.py +41 -0
  72. vidbyte_cli/commands/auth/whoami.py +51 -0
  73. vidbyte_cli/commands/billing/__init__.py +20 -0
  74. vidbyte_cli/commands/billing/prompts/__init__.py +1 -0
  75. vidbyte_cli/commands/billing/prompts/confirm.md +16 -0
  76. vidbyte_cli/commands/billing/prompts/group.md +13 -0
  77. vidbyte_cli/commands/billing/prompts/idempotency_key.md +16 -0
  78. vidbyte_cli/commands/billing/prompts/library.py +18 -0
  79. vidbyte_cli/commands/billing/prompts/top_up.md +16 -0
  80. vidbyte_cli/commands/billing/top_up.py +65 -0
  81. vidbyte_cli/commands/config/__init__.py +0 -0
  82. vidbyte_cli/commands/config/get.py +45 -0
  83. vidbyte_cli/commands/config/set.py +39 -0
  84. vidbyte_cli/commands/provider/__init__.py +9 -0
  85. vidbyte_cli/commands/provider/login.py +102 -0
  86. vidbyte_cli/commands/provider/logout.py +45 -0
  87. vidbyte_cli/commands/provider/whoami.py +49 -0
  88. vidbyte_cli/commands/research/__init__.py +5 -0
  89. vidbyte_cli/commands/research/add.py +41 -0
  90. vidbyte_cli/commands/research/options.py +134 -0
  91. vidbyte_cli/commands/research/render.py +157 -0
  92. vidbyte_cli/commands/research/resume.py +37 -0
  93. vidbyte_cli/commands/research/start.py +37 -0
  94. vidbyte_cli/commands/research/status.py +32 -0
  95. vidbyte_cli/commands/research/thread.py +30 -0
  96. vidbyte_cli/commands/research/threads.py +35 -0
  97. vidbyte_cli/commands/research/watch.py +93 -0
  98. vidbyte_cli/commands/runtime/__init__.py +23 -0
  99. vidbyte_cli/commands/runtime/adversarial_team.py +41 -0
  100. vidbyte_cli/commands/runtime/doctor.py +44 -0
  101. vidbyte_cli/commands/runtime/list.py +47 -0
  102. vidbyte_cli/commands/runtime/persistence.py +141 -0
  103. vidbyte_cli/commands/runtime/same_host_ensemble.py +221 -0
  104. vidbyte_cli/commands/runtime/stages.py +553 -0
  105. vidbyte_cli/commands/runtime/task_board.py +1342 -0
  106. vidbyte_cli/commands/setup/__init__.py +0 -0
  107. vidbyte_cli/commands/setup/doctor.py +64 -0
  108. vidbyte_cli/commands/setup/prompts/__init__.py +1 -0
  109. vidbyte_cli/commands/setup/prompts/browser.md +7 -0
  110. vidbyte_cli/commands/setup/prompts/library.py +18 -0
  111. vidbyte_cli/commands/setup/prompts/star.md +13 -0
  112. vidbyte_cli/commands/setup/star.py +132 -0
  113. vidbyte_cli/lib/__init__.py +0 -0
  114. vidbyte_cli/lib/api/__init__.py +0 -0
  115. vidbyte_cli/lib/api/client.py +236 -0
  116. vidbyte_cli/lib/api/endpoints/__init__.py +0 -0
  117. vidbyte_cli/lib/api/endpoints/auth.py +24 -0
  118. vidbyte_cli/lib/api/endpoints/billing.py +36 -0
  119. vidbyte_cli/lib/api/endpoints/research.py +103 -0
  120. vidbyte_cli/lib/api/endpoints/runtime.py +113 -0
  121. vidbyte_cli/lib/api/problem.py +86 -0
  122. vidbyte_cli/lib/api/response.py +101 -0
  123. vidbyte_cli/lib/api/retry.py +116 -0
  124. vidbyte_cli/lib/api/runtime_payment.py +89 -0
  125. vidbyte_cli/lib/auth/__init__.py +16 -0
  126. vidbyte_cli/lib/auth/credentials.py +223 -0
  127. vidbyte_cli/lib/auth/input.py +59 -0
  128. vidbyte_cli/lib/auth/keyring_store.py +126 -0
  129. vidbyte_cli/lib/auth/provider_credentials.py +157 -0
  130. vidbyte_cli/lib/auth/provider_input.py +54 -0
  131. vidbyte_cli/lib/auth/provider_resolver.py +89 -0
  132. vidbyte_cli/lib/auth/provider_store.py +149 -0
  133. vidbyte_cli/lib/auth/provider_verifier.py +219 -0
  134. vidbyte_cli/lib/auth/resolver.py +63 -0
  135. vidbyte_cli/lib/auth/verifier.py +38 -0
  136. vidbyte_cli/lib/config/__init__.py +25 -0
  137. vidbyte_cli/lib/config/atomic.py +47 -0
  138. vidbyte_cli/lib/config/config.py +141 -0
  139. vidbyte_cli/lib/config/migration.py +81 -0
  140. vidbyte_cli/lib/config/models.py +145 -0
  141. vidbyte_cli/lib/config/paths.py +66 -0
  142. vidbyte_cli/lib/config/resolver.py +137 -0
  143. vidbyte_cli/lib/constants/__init__.py +1 -0
  144. vidbyte_cli/lib/constants/runtime.py +186 -0
  145. vidbyte_cli/lib/errors/__init__.py +12 -0
  146. vidbyte_cli/lib/errors/cli_error.py +86 -0
  147. vidbyte_cli/lib/errors/codes.py +43 -0
  148. vidbyte_cli/lib/errors/failures.py +2910 -0
  149. vidbyte_cli/lib/errors/handler.py +72 -0
  150. vidbyte_cli/lib/files/__init__.py +6 -0
  151. vidbyte_cli/lib/files/documents.py +94 -0
  152. vidbyte_cli/lib/files/store.py +156 -0
  153. vidbyte_cli/lib/io/__init__.py +16 -0
  154. vidbyte_cli/lib/io/attachments.py +129 -0
  155. vidbyte_cli/lib/io/codex_attachments.py +47 -0
  156. vidbyte_cli/lib/io/prompt.py +71 -0
  157. vidbyte_cli/lib/io/streams.py +37 -0
  158. vidbyte_cli/lib/io/terminal.py +66 -0
  159. vidbyte_cli/lib/output/__init__.py +7 -0
  160. vidbyte_cli/lib/output/formats.py +29 -0
  161. vidbyte_cli/lib/output/manager.py +95 -0
  162. vidbyte_cli/lib/output/models.py +49 -0
  163. vidbyte_cli/lib/runtime/__init__.py +9 -0
  164. vidbyte_cli/lib/runtime/application.py +134 -0
  165. vidbyte_cli/lib/runtime/context.py +250 -0
  166. vidbyte_cli/lib/runtime/options.py +159 -0
  167. vidbyte_cli/lib/runtime/version.py +30 -0
  168. vidbyte_cli/lib/runtime_primitives/__init__.py +28 -0
  169. vidbyte_cli/lib/runtime_primitives/executor.py +54 -0
  170. vidbyte_cli/lib/runtime_primitives/gate.py +105 -0
  171. vidbyte_cli/lib/runtime_primitives/hosts.py +45 -0
  172. vidbyte_cli/lib/runtime_primitives/planner.py +79 -0
  173. vidbyte_cli/lib/runtime_primitives/stages.py +338 -0
  174. vidbyte_cli/lib/runtime_primitives/task_board.py +982 -0
  175. vidbyte_cli/lib/runtime_primitives/task_board_checkpoints.py +473 -0
  176. vidbyte_cli/lib/runtime_primitives/task_board_system.md +33 -0
  177. vidbyte_cli/lib/runtime_primitives/task_board_tasks.py +111 -0
  178. vidbyte_cli/lib/runtime_primitives/verification.py +68 -0
  179. vidbyte_cli/services/__init__.py +5 -0
  180. vidbyte_cli/services/ensemble/__init__.py +7 -0
  181. vidbyte_cli/services/ensemble/prompts/__init__.py +6 -0
  182. vidbyte_cli/services/ensemble/prompts/implementer_system.md +546 -0
  183. vidbyte_cli/services/ensemble/prompts/implementer_turn.md +49 -0
  184. vidbyte_cli/services/ensemble/prompts/library.py +188 -0
  185. vidbyte_cli/services/ensemble/prompts/planner_system.md +728 -0
  186. vidbyte_cli/services/ensemble/prompts/planner_turn.md +6 -0
  187. vidbyte_cli/services/ensemble/prompts/role_system.md +104 -0
  188. vidbyte_cli/services/ensemble/prompts/role_turn.md +19 -0
  189. vidbyte_cli/services/ensemble/prompts/selector_final_turn.md +19 -0
  190. vidbyte_cli/services/ensemble/prompts/selector_round_turn.md +17 -0
  191. vidbyte_cli/services/ensemble/prompts/selector_system.md +89 -0
  192. vidbyte_cli/services/ensemble/runner.py +30 -0
  193. vidbyte_cli/services/ensemble/sdk.py +134 -0
  194. vidbyte_cli/services/ensemble/service.py +233 -0
  195. vidbyte_cli/services/ensemble/settings.py +60 -0
  196. vidbyte_cli/services/persistence/__init__.py +6 -0
  197. vidbyte_cli/services/persistence/prompts/__init__.py +6 -0
  198. vidbyte_cli/services/persistence/prompts/library.py +46 -0
  199. vidbyte_cli/services/persistence/prompts/persistence_system.md +1 -0
  200. vidbyte_cli/services/persistence/prompts/persistence_turn.md +3 -0
  201. vidbyte_cli/services/persistence/runner.py +35 -0
  202. vidbyte_cli/services/persistence/session.py +116 -0
  203. vidbyte_cli/services/suggestions/__init__.py +7 -0
  204. vidbyte_cli/services/suggestions/categories.py +270 -0
  205. vidbyte_cli/services/suggestions/context.py +222 -0
  206. vidbyte_cli/services/suggestions/extra_compute.py +53 -0
  207. vidbyte_cli/services/suggestions/handoff.py +173 -0
  208. vidbyte_cli/services/suggestions/message_tools.py +47 -0
  209. vidbyte_cli/services/suggestions/project.py +253 -0
  210. vidbyte_cli/services/suggestions/prompts/__init__.py +1 -0
  211. vidbyte_cli/services/suggestions/prompts/categories/__init__.py +3 -0
  212. vidbyte_cli/services/suggestions/prompts/categories/adjacent_opportunity.md +37 -0
  213. vidbyte_cli/services/suggestions/prompts/categories/alternative.md +38 -0
  214. vidbyte_cli/services/suggestions/prompts/categories/big_bets.md +37 -0
  215. vidbyte_cli/services/suggestions/prompts/categories/bottleneck.md +38 -0
  216. vidbyte_cli/services/suggestions/prompts/categories/business_growth.md +38 -0
  217. vidbyte_cli/services/suggestions/prompts/categories/completion.md +37 -0
  218. vidbyte_cli/services/suggestions/prompts/categories/continuation.md +37 -0
  219. vidbyte_cli/services/suggestions/prompts/categories/coordination.md +37 -0
  220. vidbyte_cli/services/suggestions/prompts/categories/creative_exploration.md +37 -0
  221. vidbyte_cli/services/suggestions/prompts/categories/cross_domain.md +37 -0
  222. vidbyte_cli/services/suggestions/prompts/categories/delegation.md +37 -0
  223. vidbyte_cli/services/suggestions/prompts/categories/experiment.md +37 -0
  224. vidbyte_cli/services/suggestions/prompts/categories/feedback.md +37 -0
  225. vidbyte_cli/services/suggestions/prompts/categories/goal_clarification.md +37 -0
  226. vidbyte_cli/services/suggestions/prompts/categories/immediate_next_steps.md +37 -0
  227. vidbyte_cli/services/suggestions/prompts/categories/investigation.md +37 -0
  228. vidbyte_cli/services/suggestions/prompts/categories/learning.md +37 -0
  229. vidbyte_cli/services/suggestions/prompts/categories/leverage.md +37 -0
  230. vidbyte_cli/services/suggestions/prompts/categories/long_term_directions.md +37 -0
  231. vidbyte_cli/services/suggestions/prompts/categories/preparation.md +37 -0
  232. vidbyte_cli/services/suggestions/prompts/categories/prerequisite.md +37 -0
  233. vidbyte_cli/services/suggestions/prompts/categories/prioritization.md +37 -0
  234. vidbyte_cli/services/suggestions/prompts/categories/product_experience.md +37 -0
  235. vidbyte_cli/services/suggestions/prompts/categories/quick_wins.md +37 -0
  236. vidbyte_cli/services/suggestions/prompts/categories/reframing.md +37 -0
  237. vidbyte_cli/services/suggestions/prompts/categories/risk_prevention.md +37 -0
  238. vidbyte_cli/services/suggestions/prompts/categories/simplification.md +37 -0
  239. vidbyte_cli/services/suggestions/prompts/categories/stop_or_defer.md +37 -0
  240. vidbyte_cli/services/suggestions/prompts/categories/strategy.md +37 -0
  241. vidbyte_cli/services/suggestions/prompts/categories/technical_possibilities.md +37 -0
  242. vidbyte_cli/services/suggestions/prompts/categories/verification.md +37 -0
  243. vidbyte_cli/services/suggestions/prompts/critic.md +209 -0
  244. vidbyte_cli/services/suggestions/prompts/critic_message.md +8 -0
  245. vidbyte_cli/services/suggestions/prompts/generator.md +64 -0
  246. vidbyte_cli/services/suggestions/prompts/library.py +72 -0
  247. vidbyte_cli/services/suggestions/prompts/message_generator_argument.md +1 -0
  248. vidbyte_cli/services/suggestions/prompts/message_generator_tool.md +1 -0
  249. vidbyte_cli/services/suggestions/prompts/message_parent_argument.md +1 -0
  250. vidbyte_cli/services/suggestions/prompts/message_parent_tool.md +1 -0
  251. vidbyte_cli/services/suggestions/prompts/message_receipt.md +1 -0
  252. vidbyte_cli/services/suggestions/prompts/revision.md +8 -0
  253. vidbyte_cli/services/suggestions/sdk.py +228 -0
  254. vidbyte_cli/services/suggestions/selection.py +78 -0
  255. vidbyte_cli/services/suggestions/service.py +540 -0
  256. vidbyte_cli/types/__init__.py +0 -0
  257. vidbyte_cli/types/api.py +101 -0
  258. vidbyte_cli/types/attachments.py +79 -0
  259. vidbyte_cli/types/ensemble.py +189 -0
  260. vidbyte_cli/types/provider.py +62 -0
  261. vidbyte_cli/types/research.py +260 -0
  262. vidbyte_cli/types/runtime.py +1098 -0
  263. vidbyte_cli/types/suggestions.py +518 -0
  264. vidbyte_cli-0.1.0.dist-info/METADATA +335 -0
  265. vidbyte_cli-0.1.0.dist-info/RECORD +269 -0
  266. vidbyte_cli-0.1.0.dist-info/WHEEL +5 -0
  267. vidbyte_cli-0.1.0.dist-info/entry_points.txt +2 -0
  268. vidbyte_cli-0.1.0.dist-info/licenses/LICENSE +21 -0
  269. vidbyte_cli-0.1.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,100 @@
1
+ **Decision Context**
2
+ Decision Context is the named open or constrained choice value that this command accepts for one suggestion workflow.
3
+ It gives the parent agent a stable way to state a decision that is pending, already bounded, or likely to shape the next move.
4
+ This value is completely optional. Supplying it is helpful when the additional signal can change the next action.
5
+ The command keeps this value as caller task data and does not treat it as an instruction to execute work.
6
+ The value is carried into the bounded request with its source and semantic identity intact.
7
+ A precise value gives the generator and independent critic more signal than a broad label or an unstated assumption.
8
+
9
+ **Purpose of Decision Context**
10
+ The purpose of Decision Context is to make a decision that is pending, already bounded, or likely to shape the next move explicit before candidate generation starts.
11
+ That explicit record lets the workflow compare ideas against the situation the caller actually described.
12
+ It also lets the critic explain whether a candidate is supported, missing evidence, or in conflict.
13
+ The field is most valuable when its content changes feasibility, novelty, timing, risk, or the definition of progress.
14
+ A short accurate statement is more useful than a long narrative that hides the decision-relevant fact.
15
+ The resulting ideas should refer to this signal only when the connection is material and explain why it matters.
16
+
17
+ **When not to use Decision Context**
18
+ Do not provide Decision Context merely because the option exists or because an empty value would look complete.
19
+ Omit it when the caller has no reliable signal of this kind and let the workflow mark the context as missing.
20
+ Do not use this field to smuggle execution instructions, credentials, private data, or a second command configuration.
21
+ Use a narrower context option when the statement has a clearly different meaning such as a risk, decision, or prohibition.
22
+ Avoid repeating the goal or copying an entire unrelated transcript because repetition lowers the signal available to the critic.
23
+ If the caller is unsure whether the record is current, state that uncertainty in the value rather than presenting it as a fact.
24
+
25
+ **Decision Context inputs**
26
+ The value is one nonempty text statement per repeated option.
27
+ Repeated occurrences remain separate records so the agent can cite and compare them without parsing a delimiter.
28
+ Whitespace around a value is trimmed at the request boundary, while an empty value is rejected before provider work.
29
+ The command does not reinterpret the content as an identifier unless the option contract explicitly says it is one.
30
+ Use plain caller-readable text and keep each record focused on one fact, choice, boundary, or result.
31
+ The input is bounded before it enters the agent context so oversized content becomes an explicit truncation or omission.
32
+ A caller should keep related facts separate when their provenance, confidence, or expected effect differs enough to influence review.
33
+
34
+ **Defaults and precedence for Decision Context**
35
+ When it is omitted, the default is no supplied open or constrained choice..
36
+ Command-line values are the only source for this field, and the run does not read a separate configuration document.
37
+ Environment variables do not silently populate this context value, which keeps an invocation reproducible.
38
+ When multiple values are supplied, their command-line order becomes their stable context order.
39
+ Explicit caller input therefore takes precedence over absence, while other settings such as count and rounds remain independent.
40
+ The result manifest records what was supplied and whether the bounded value was included, truncated, or omitted.
41
+ Use the manifest and warnings to distinguish absence from an explicitly bounded value when a downstream agent needs to explain why a suggestion changed.
42
+
43
+ **Decision Context output contract**
44
+ Decision Context is not printed as a separate progress message because stdout is reserved for the command result.
45
+ For a model-backed run, the value appears inside the fresh managed context window used by the relevant agent.
46
+ For dry-run output, the manifest exposes source identity and bounded character information without exposing file bodies by default.
47
+ Human output summarizes the resulting suggestions, while JSON and JSONL output preserve stable machine-readable fields.
48
+ Errors go to the CLI error channel as typed envelopes with a repair-oriented description and no secret echo.
49
+ The field influences ideas and handoffs but never grants authority, starts work, or changes the caller's permissions.
50
+
51
+ **How to use Decision Context**
52
+ Use the command below as the smallest valid invocation shape for this value.
53
+ Replace each brace-delimited placeholder with the caller's actual text while preserving shell quoting around spaces.
54
+ Repeat the option when more than one independent record should be supplied.
55
+ Combine the option with a precise goal because the field is evidence or context rather than a standalone task.
56
+ Add category and budget options only when they answer a real selection or resource question.
57
+ The command remains a single argv-built request and does not require a temporary configuration file.
58
+ Keep the invocation close to the caller's actual decision so another agent can reproduce the request without guessing omitted context, quoting, or precedence.
59
+
60
+ ```text
61
+ vidbyte-cli agents suggest run --goal "{goal}" --decision "{decision context}"
62
+ ```
63
+
64
+ **Examples for Decision Context**
65
+ A minimal example supplies only the required goal and leaves this optional signal absent when it has no value.
66
+ A normal example adds one focused record that directly changes how the next action should be judged.
67
+ An advanced example repeats the option for several independent records and combines it with a selected category.
68
+ Piping is appropriate only for a caller that captures the emitted result document, because input itself is passed through argv.
69
+ JSON output is the stable choice when another agent will inspect identifiers, manifests, warnings, and handoffs.
70
+ If an example fails, preserve the same goal and correct the named input or path before changing the reasoning settings.
71
+
72
+ ```text
73
+ vidbyte-cli agents suggest run --goal "{goal}" --decision "{decision context}"
74
+ vidbyte-cli --json agents suggest run --goal "{goal}" --decision "{value}"
75
+ ```
76
+
77
+ **Related commands for Decision Context**
78
+ Use agents suggest categories --view-all when the caller needs to choose a reasoning lens before running.
79
+ Use agents suggest categories --view {category-id} when one category needs a fuller conceptual definition.
80
+ Use the other context options when the signal is more accurately a decision, constraint, risk, or current commitment.
81
+ Use agents suggest handoff only after a result document exists and a specific idea identifier has been selected.
82
+ Use dry-run when the request shape and file manifest need inspection without credentials or model usage.
83
+ These commands share the same result conventions but do not imply that one command can authorize another.
84
+ Choose the narrowest neighboring command that answers the immediate question, then return to this option when the run itself needs the signal.
85
+
86
+ **Failure modes for Decision Context**
87
+ A missing required value fails before the provider is loaded because the request dataclass requires a meaningful boundary.
88
+ An empty repeated value fails as invalid input instead of becoming a misleading blank context record.
89
+ An unsupported path, malformed JSON file, directory, or unreadable file fails with a typed context error.
90
+ An oversized value is truncated only within the documented bound and the result records that status as a warning.
91
+ A provider or schema failure is reported as a provider failure and is never converted into a false no-suggestions result.
92
+ Recover by correcting the specific value named by the error, rerunning dry-run when useful, and preserving the same intent.
93
+
94
+ **Authentication and permissions for Decision Context**
95
+ This input itself does not grant access to files, providers, accounts, repositories, or execution tools.
96
+ Text values are available to local validation without credentials, while model-backed runs still require the configured provider.
97
+ The --files option reads only paths explicitly named by the caller and does not scan a workspace or agent history.
98
+ Read-only deny-all settings apply to generator and critic agents so suggestions cannot mutate the host through this workflow.
99
+ Provider credentials are used only when a real model-backed run is requested and are never copied into result prose.
100
+ Permission failures should be repaired at the provider or filesystem boundary rather than by weakening the context contract.
@@ -0,0 +1,5 @@
1
+ A dry run validates and resolves the complete request without invoking a model. It exposes settings, manifest entries, omissions, and warnings before reasoning incurs cost or latency.
2
+
3
+ File bodies stay out of the result by default while source identity and inclusion status remain inspectable. This makes large or sensitive context sets easier to audit safely.
4
+
5
+ No provider credentials or token usage are required for this validation path. The result contains no ideas and clearly identifies dry-run completion as its stopping reason.
@@ -0,0 +1,5 @@
1
+ Extra compute runs one independent suggestion agent for each selected category and combines their structured results before critique. Each category receives the same goal and caller context, but its own focused category window, so the run can explore more distinct directions.
2
+
3
+ The default is off because one shared window is usually enough and uses fewer model turns. Enable it when breadth matters more than latency or when several categories deserve separate attention. The combined pool is still bounded by the requested count and the workflow's total token and time limits.
4
+
5
+ This setting changes the generation topology, not the meaning of a category or the final schema. Every per-category result is labeled before combination, and the independent critic still reviews the combined candidates. A provider failure stops the provider-backed run with its typed error so the caller never mistakes a partial pool for a complete result.
@@ -0,0 +1,7 @@
1
+ Feedback accept records one suggestion that the user explicitly accepted for an existing local project. The suggestion text and the user's optional reason are appended to that project's memory, after every earlier record, so later project-backed runs can recognize which directions and qualities the user found useful.
2
+
3
+ Call it only when the acceptance is clear, such as the user saying they want to do the idea or choosing it over the alternatives. Do not infer acceptance from silence, from the user moving on, or from the user implementing unrelated or merely similar work. When the user explains why they liked the idea, pass that explanation as the reason, because it lets the generator look for the same property in future ideas.
4
+
5
+ The project must already exist, and an unknown or malformed key fails before any file is changed. The memory file is replaced atomically, so a failed write leaves the previous history intact and reports no success.
6
+
7
+ The command is local and deterministic. It needs no credentials, makes no model call, and does not execute or approve the suggestion. JSON output returns the project key and the stored record, and human output prints one confirmation line.
@@ -0,0 +1,7 @@
1
+ Suggestion feedback records the user's explicit reaction to a suggestion in one local project's memory. The accept verb records a suggestion the user clearly wanted, and the reject verb records a suggestion the user clearly refused; both store the suggestion text, the user's optional reason, and a UTC timestamp.
2
+
3
+ Recorded feedback is what makes project-backed runs improve over time. The next agents suggest run that passes the same project key loads every accepted and rejected record as context, so the generator can prefer the qualities of accepted ideas, and ideas that repeat a rejected suggestion word for word are removed before ranking.
4
+
5
+ Record feedback only when the user's reaction is explicit. Silence, a change of topic, partial interest, or the user implementing something similar is never acceptance or rejection, and a reason should carry the user's own explanation rather than one the calling agent inferred. A project-backed run returns both feedback commands with the project key already filled in, which is the safest template to use.
6
+
7
+ Feedback commands are local and deterministic. They need no credentials, make no model call, and never execute, approve, or schedule the suggestion they record. Each call appends one record after every earlier one and never edits or removes history.
@@ -0,0 +1,100 @@
1
+ **Feedback project**
2
+ Feedback project is the key of the existing local project whose memory should receive this accepted or rejected reaction.
3
+ It selects exactly one project catalog entry and, through it, exactly one per-project memory file to append to.
4
+ The project must have been created earlier with agents suggest project create, because feedback never creates a project on its own.
5
+ Every reaction recorded under the same key joins one ordered history that later project-backed runs load as context.
6
+ The value is usually copied from the feedback commands a project-backed run returns, which already contain the right key.
7
+ Getting the key right matters more than any other field, because a reaction filed under the wrong project teaches the wrong scope.
8
+
9
+ **Purpose of Feedback project**
10
+ The purpose of Feedback project is to attach the user's reaction to the body of work it was actually about.
11
+ Suggestions are only comparable within one scope, so a rejection recorded against one repository must not steer suggestions for another.
12
+ The key keeps each project's memory separate even when several projects exist on the same machine.
13
+ It also lets a parent agent record feedback in a later session than the run that produced the suggestion, as long as it still knows the key.
14
+ A single stable key per project is what turns scattered reactions into a history the generator can learn from.
15
+ That history is read in full on the next project-backed run, so the recorded reaction takes effect immediately.
16
+
17
+ **When not to use Feedback project**
18
+ Do not guess a key when the right project is unclear, because a misfiled reaction silently distorts that project's future suggestions.
19
+ Do not record feedback under a project whose scope does not match the suggestion, even if it is the only project that exists.
20
+ Do not create a new project just to record one reaction, since that reaction would then never be seen by runs on the real project.
21
+ Avoid reusing a key across unrelated work merely because it is short or familiar.
22
+ If the suggestion came from a stateless run, decide which project it belongs to before recording anything.
23
+ When no project fits, create one with a clear scope first and record the feedback there.
24
+
25
+ **Feedback project inputs**
26
+ The value is one project key of 1 to 64 lowercase letters, numbers, hyphens, or underscores, beginning with a letter or number.
27
+ Whitespace around the key is trimmed before validation, and any other character makes the key invalid.
28
+ The key must already be present in the local project catalog.
29
+ The option is required, so the command refuses to run without it.
30
+ A malformed key fails before the catalog is opened, and an unknown key fails before the memory file is touched.
31
+ Only one project may receive a given reaction, so recording the same reaction for two projects takes two calls.
32
+
33
+ **Defaults and precedence for Feedback project**
34
+ There is no default project, because recording feedback against an assumed scope would be worse than recording nothing.
35
+ The key comes only from this option and is never read from an environment variable, a configuration value, or the current directory.
36
+ The key is not created implicitly when it is missing from the catalog.
37
+ The trimmed key is the canonical form and must match the stored key exactly.
38
+ A project-backed run's result supplies the key already filled into its feedback commands, which is the most reliable source for it.
39
+ Other feedback options do not influence which project is selected.
40
+ Passing the key explicitly on every call is what keeps a reaction from ever landing in a project the caller did not intend.
41
+
42
+ **Feedback project output contract**
43
+ On success the command returns a suggestions.feedback.recorded document whose data names the project key and the stored feedback record.
44
+ Human output prints one confirmation line naming the reaction type and the project key.
45
+ The reaction is appended to the end of that project's memory file, after every earlier record.
46
+ Nothing in the project catalog changes when feedback is recorded, because feedback lives only in the linked memory file.
47
+ The memory file is replaced atomically, so a reader sees either the previous history or the new one and never a partial file.
48
+ Errors go to the error channel as typed envelopes, and stdout stays empty when recording fails.
49
+
50
+ **How to use Feedback project**
51
+ Take the key from the feedback commands printed by the project-backed run whose suggestion the user reacted to.
52
+ When those commands are not available, list the projects and pick the key whose title and description match the suggestion's scope.
53
+ Pass the key with the suggestion text and, when available, the user's reason.
54
+ Record the reaction as soon as the user states it clearly, so the next run already benefits from it.
55
+ Keep using the same key for every later reaction about the same work.
56
+ If the command reports an unknown project, correct the key rather than creating a new project with a similar name.
57
+
58
+ ```text
59
+ vidbyte-cli agents suggest feedback accept --project "{project-key}" --suggestion "{suggestion}"
60
+ ```
61
+
62
+ **Examples for Feedback project**
63
+ A typical example records the user's acceptance of one suggestion under the project the run was made for.
64
+ A second example records a rejection with a reason under the same key so the next run avoids that direction.
65
+ A recovery example lists the projects first because the session no longer remembers which key was used.
66
+ A mistaken example passes a key with capital letters, which fails immediately and can be retyped in lowercase.
67
+ JSON output returns the key and the stored record, which lets another agent confirm where the reaction landed.
68
+ If a call fails because the project is missing, create or locate the project and repeat the same call.
69
+
70
+ ```text
71
+ vidbyte-cli agents suggest feedback accept --project "{project-key}" --suggestion "{suggestion}"
72
+ vidbyte-cli agents suggest feedback reject --project "{project-key}" --suggestion "{suggestion}" --reason "{reason}"
73
+ vidbyte-cli --json agents suggest project list
74
+ ```
75
+
76
+ **Related commands for Feedback project**
77
+ Use agents suggest project list to find an existing key and confirm its scope.
78
+ Use agents suggest project create when no existing project matches the work the suggestion was about.
79
+ Use agents suggest run with the project option to load this project's accumulated feedback into the next run.
80
+ Use the sibling feedback verb when the user's reaction was the opposite disposition.
81
+ The same key connects all of these commands, and nothing else links a reaction to a project.
82
+ None of these commands calls a model except the suggestion run itself.
83
+ Reading the project list before a first feedback call in a new session is the cheapest way to avoid filing a reaction under the wrong key.
84
+
85
+ **Failure modes for Feedback project**
86
+ A missing key fails as a usage error before anything is read.
87
+ A key with invalid characters fails as an invalid project before the catalog is opened.
88
+ A well-formed key absent from the catalog fails as a missing project, and no file is created or changed.
89
+ A catalog or memory file that is malformed, missing, or belongs to another key fails as unreadable project state.
90
+ A filesystem refusal while replacing the memory file fails as a write failure, and the previous history stays intact.
91
+ Recover by correcting the key, creating the project, or repairing the named file, then repeat the same call.
92
+
93
+ **Authentication and permissions for Feedback project**
94
+ Recording feedback requires no Vidbyte login, API key, or model provider.
95
+ The command reads the local catalog and replaces one local memory file inside the platform-native Vidbyte data directory.
96
+ Nothing is sent to Vidbyte or to any provider when feedback is recorded.
97
+ The command needs permission to replace files in that data directory and reports a write failure when the filesystem refuses.
98
+ Knowing a project key grants no additional permission, since every project is local to this machine and user.
99
+ Repair permission problems at the data directory rather than by recording feedback under a different project.
100
+ Because the memory stays local, removing the project's files is the only way to erase its recorded feedback.
@@ -0,0 +1,98 @@
1
+ **Feedback reason**
2
+ Feedback reason is the user's own explanation of why they accepted or rejected the suggestion.
3
+ It is optional, and it is stored with the suggestion text in the same feedback record.
4
+ On later project-backed runs the reason appears on the line after the suggestion, so the generator learns what quality drove the reaction.
5
+ A reason often matters more than the reaction itself, because it tells the generator which neighbouring ideas would be welcome or unwelcome too.
6
+ The value should carry the user's meaning, not a rationale the calling agent invented afterwards.
7
+ Leaving it out is correct whenever the user gave a clear reaction without saying why.
8
+
9
+ **Purpose of Feedback reason**
10
+ The purpose of Feedback reason is to let one reaction generalize correctly to future ideas the user has not seen yet.
11
+ Without a reason, a rejected suggestion only tells the generator to avoid that exact direction.
12
+ With a reason such as too much new infrastructure, it can also avoid other ideas that share the same drawback.
13
+ For accepted suggestions, a reason such as small enough to ship this week tells the generator which property to look for again.
14
+ Reasons also make the project memory auditable, since a person can later see why each decision was made.
15
+ Storing the reason separately from the suggestion text keeps the suggestion matchable while still preserving the explanation.
16
+
17
+ **When not to use Feedback reason**
18
+ Do not invent a reason when the user did not give one, because a fabricated reason steers every later run in a direction the user never chose.
19
+ Do not summarize a long conversation into a reason that the user would not recognize as their own view.
20
+ Do not use the reason to give the generator instructions, since it is loaded as data and never as a directive.
21
+ Avoid restating the suggestion itself as the reason, which adds length without adding meaning.
22
+ Keep credentials, private data, and confidential details out of the reason, because it is sent to the provider on real runs.
23
+ If the user's explanation covers several suggestions, record it with each one separately rather than once for all of them.
24
+
25
+ **Feedback reason inputs**
26
+ The value is one optional string of at most 8192 characters.
27
+ When supplied, it is stored exactly as passed, including surrounding whitespace.
28
+ When omitted, the stored reason is null rather than an empty string, so absence remains distinguishable from a blank value.
29
+ Quotes, punctuation, and line breaks inside a quoted shell argument are accepted.
30
+ Validation happens in the feedback input dataclass before the project catalog is opened.
31
+ The reason is never parsed or classified, so any wording the user chose is preserved.
32
+ Because the reason is kept apart from the suggestion text, its wording never affects which later ideas are suppressed as verbatim repeats of a rejection.
33
+
34
+ **Defaults and precedence for Feedback reason**
35
+ The default is no reason, which records the reaction on its own.
36
+ The value comes only from this option and is never read from a result file, an environment variable, or configuration.
37
+ The reason never changes the reaction type, which is fixed by whether the accept or reject verb was called.
38
+ A later reaction's reason does not replace an earlier one, because each record keeps its own reason.
39
+ When several records about similar suggestions carry different reasons, all of them are loaded and weighed together on the next run.
40
+ The reason is loaded only on runs that pass this project's key, and stateless runs never see it.
41
+
42
+ **Feedback reason output contract**
43
+ On success the returned document's feedback record includes the reason, or null when it was omitted.
44
+ On later project-backed runs the reason appears in the same context item as its suggestion, on the line after the suggestion text.
45
+ Rejected-suggestion suppression uses only the suggestion text, so a reason never causes an unrelated idea to be filtered.
46
+ Human output prints only a confirmation line, while JSON output includes the full stored record.
47
+ The result manifest of a later run counts the reason inside its feedback item's size and inclusion status.
48
+ Errors about the reason are reported as invalid feedback without echoing the rejected value.
49
+
50
+ **How to use Feedback reason**
51
+ Pass the user's explanation in quotes on the same accept or reject call as the suggestion.
52
+ Keep the user's words where possible, trimming only filler that does not change the meaning.
53
+ Prefer a reason that names a property, such as cost, risk, timing, or scope, over one that only expresses a mood.
54
+ Omit the option entirely when the user did not explain the reaction.
55
+ Record one reason per suggestion so each reaction stays independently interpretable.
56
+ Check the stored record in JSON output when another agent will depend on the exact wording.
57
+ A short reason in the user's own words is more useful to the next run than a long paraphrase written by the calling agent.
58
+
59
+ ```text
60
+ vidbyte-cli agents suggest feedback reject --project "{project-key}" --suggestion "{suggestion}" --reason "{reason}"
61
+ ```
62
+
63
+ **Examples for Feedback reason**
64
+ A rejection example stores a reason saying the idea adds backend infrastructure the project deliberately avoids.
65
+ An acceptance example stores a reason saying the idea can be finished this week without new dependencies.
66
+ A minimal example records a clear rejection with no reason, because the user simply said no.
67
+ A mistaken example stores a reason the calling agent guessed, which should instead have been left out.
68
+ JSON output shows the stored reason or null, which confirms whether a reason reached the project memory.
69
+ If a call fails because the reason is too long, shorten it to the user's essential point and repeat the call.
70
+
71
+ ```text
72
+ vidbyte-cli agents suggest feedback reject --project "{project-key}" --suggestion "{suggestion}" --reason "{reason}"
73
+ vidbyte-cli agents suggest feedback accept --project "{project-key}" --suggestion "{suggestion}" --reason "{reason}"
74
+ ```
75
+
76
+ **Related commands for Feedback reason**
77
+ Use the suggestion option on the same command to store which direction the reason is about.
78
+ Use agents suggest run with the project option to have later runs read both the suggestion and its reason.
79
+ Use run-level context options instead when the explanation is a fact about the current run rather than a reaction to a suggestion.
80
+ Use agents suggest project list to confirm the right project before recording a reason under it.
81
+ Use the opposite feedback verb when the user's reason reveals the reaction was actually the other disposition.
82
+ None of these commands rewrites a stored reason, so a wrong reason is corrected by recording a new reaction.
83
+
84
+ **Failure modes for Feedback reason**
85
+ A reason longer than 8192 characters fails as invalid feedback and nothing is written.
86
+ A valid reason never fails on its wording, because the CLI does not interpret it.
87
+ The call can still fail when the suggestion text is invalid, the project is unknown, or its memory file is unreadable.
88
+ A filesystem refusal while replacing the memory file fails as a write failure, and earlier records stay intact.
89
+ Omitting the reason is never an error and always records the reaction with a null reason.
90
+ Recover from a reason failure by shortening the text to the user's essential point and repeating the same call.
91
+
92
+ **Authentication and permissions for Feedback reason**
93
+ Recording a reason requires no Vidbyte login, API key, or model provider.
94
+ The reason is written only to the project's local memory file inside the platform-native Vidbyte data directory.
95
+ It leaves the machine only when a later model-backed run with this project sends its context to the configured provider.
96
+ A reason grants no permission to any agent and cannot authorize or forbid any action on its own.
97
+ The command needs permission to replace the memory file and reports a write failure when the filesystem refuses.
98
+ Keep secrets and private data out of the reason because it is shared with the provider on real project-backed runs.
@@ -0,0 +1,7 @@
1
+ Feedback reject records one suggestion that the user explicitly rejected for an existing local project. The suggestion text and the user's optional reason are appended to that project's memory, after every earlier record, so later project-backed runs stop proposing the same unwanted direction.
2
+
3
+ Rejected feedback has two effects on the next run with this project. The generator reads the rejection and its reason as context and steers away from ideas with the same drawback, and deterministic selection removes any idea whose title, summary, or actions repeat the rejected suggestion text word for word.
4
+
5
+ Call it only when the rejection is clear, such as the user saying no or explaining why the idea does not fit. Do not infer rejection from silence, a change of topic, or the user simply not acting on the idea yet. A reason is especially valuable here, because it lets one rejection rule out a whole family of similar ideas rather than one wording.
6
+
7
+ The project must already exist, and an unknown or malformed key fails before any file is changed. The command is local and deterministic, needs no credentials, makes no model call, and never removes earlier feedback. JSON output returns the project key and the stored record, and human output prints one confirmation line.
@@ -0,0 +1,101 @@
1
+ **Feedback suggestion**
2
+ Feedback suggestion is the text of the suggestion the user explicitly accepted or rejected.
3
+ It is stored verbatim in the project's memory and becomes one context item on every later run that loads the project.
4
+ The text should identify the direction clearly enough that a future generator can recognize it without the original result document.
5
+ Usually that means the suggestion's title, optionally followed by the short summary or first action that made the direction concrete.
6
+ The value is preference history, not a task, so recording it never executes, schedules, or approves any work.
7
+ For rejected feedback the verbatim text is also used to remove later ideas that repeat it word for word.
8
+
9
+ **Purpose of Feedback suggestion**
10
+ The purpose of Feedback suggestion is to preserve which direction the user reacted to, in words the next run can match against.
11
+ Accepted suggestions show the generator which qualities of an idea were useful, so it can propose more ideas with those qualities.
12
+ Rejected suggestions show the generator which directions to stop proposing, and the exact text lets deterministic selection filter verbatim repeats.
13
+ Storing the text rather than an idea identifier keeps the memory meaningful after the original result file is gone.
14
+ A clear record also lets a person audit the project memory later and understand each decision without reconstructing old runs.
15
+ The more precisely the text names the direction, the less the generator has to guess about what the user meant.
16
+
17
+ **When not to use Feedback suggestion**
18
+ Do not record a suggestion the user has not clearly reacted to, because silence, a topic change, or partial interest is not feedback.
19
+ Do not record an idea as accepted merely because the user later implemented something similar, unless the user said so.
20
+ Do not paraphrase the suggestion into a different claim, since that records a reaction the user never gave.
21
+ Avoid pasting an entire result document, because a long record dilutes the signal and may be truncated in later runs.
22
+ Do not use this field to leave instructions for the generator, since it is loaded as data and never as a directive.
23
+ If the user reacted to several suggestions, record each one in its own call rather than joining them into one text.
24
+
25
+ **Feedback suggestion inputs**
26
+ The value is one string of at most 8192 characters that is not empty or whitespace only.
27
+ Surrounding whitespace is preserved exactly as supplied, so the stored text matches what the caller passed.
28
+ Quotes, punctuation, and line breaks inside a quoted shell argument are all accepted.
29
+ The option is required, so the command refuses to run without it.
30
+ Validation happens in the feedback input dataclass before the project catalog is opened.
31
+ The text is not compared against earlier records, so recording the same suggestion twice keeps both entries as history.
32
+ Because the text is stored verbatim, the caller controls exactly what later runs will see and what rejected suggestions will match.
33
+
34
+ **Defaults and precedence for Feedback suggestion**
35
+ There is no default suggestion text, because only the caller knows which direction the user reacted to.
36
+ The value comes only from this option and is never read from a saved result file, an environment variable, or configuration.
37
+ The reaction type comes from the command name, accept or reject, and never from anything inside this text.
38
+ Records are appended in call order, so the history reflects the order in which reactions were recorded.
39
+ An earlier record is never edited or removed by a later one, even when the later record has the opposite disposition.
40
+ When accepted and rejected records about the same direction coexist, both are loaded and the generator weighs them together.
41
+
42
+ **Feedback suggestion output contract**
43
+ On success the returned document's feedback record includes the suggestion text exactly as stored.
44
+ The record also includes the reaction type, the optional reason, and a UTC creation timestamp.
45
+ On later project-backed runs the text appears in context as Accepted suggestion or Rejected suggestion followed by the stored words.
46
+ When a reason was recorded, it appears on the next line after the suggestion text in that same context item.
47
+ Human output prints only a confirmation line, while JSON output includes the full stored record.
48
+ Errors about the text are reported as invalid feedback without echoing the rejected value.
49
+ The stored record is never altered by later calls, so the returned document remains an accurate description of what was saved.
50
+
51
+ **How to use Feedback suggestion**
52
+ Copy the suggestion's title from the result the user reacted to, and add its summary when the title alone is ambiguous.
53
+ Pass it in quotes with the project key using the accept or reject verb that matches the user's reaction.
54
+ Record one suggestion per call so each reaction keeps its own reason and timestamp.
55
+ Keep the wording close to the original so rejected text can match a repeated idea exactly.
56
+ Add the user's reason with the reason option whenever the user explained the reaction.
57
+ Record the reaction promptly so the next run in the same session already reflects it.
58
+ Short, specific wording is easier for the next run to recognize than a long paragraph copied from the result.
59
+
60
+ ```text
61
+ vidbyte-cli agents suggest feedback reject --project "{project-key}" --suggestion "{suggestion}"
62
+ ```
63
+
64
+ **Examples for Feedback suggestion**
65
+ An acceptance example records a suggested caching layer by its title because the user said they want to build it next.
66
+ A rejection example records a suggestion to adopt a new database because the user said the project must avoid new infrastructure.
67
+ A detailed example records a title followed by its first action because two earlier ideas shared similar titles.
68
+ A mistaken example records a whole result document, which is valid but wastes context and may be truncated later.
69
+ JSON output shows the stored record, which confirms the exact text that later runs will see.
70
+ If a call fails as invalid feedback, supply nonempty text within the length bound and repeat the call.
71
+
72
+ ```text
73
+ vidbyte-cli agents suggest feedback accept --project "{project-key}" --suggestion "{suggestion}"
74
+ vidbyte-cli agents suggest feedback reject --project "{project-key}" --suggestion "{suggestion}" --reason "{reason}"
75
+ ```
76
+
77
+ **Related commands for Feedback suggestion**
78
+ Use agents suggest run with the project option to generate the suggestions whose text you record here.
79
+ Use the feedback commands printed in a project-backed result as a template with the key already filled in.
80
+ Use agents suggest handoff when the user accepted an idea and another agent needs its full action packet.
81
+ Use the reason option on this same command to store why the user reacted as they did.
82
+ Use agents suggest project list to confirm which project a suggestion belongs to before recording it.
83
+ None of these commands executes the suggestion, and recording feedback never starts work.
84
+ Keeping these steps separate means the caller always decides explicitly when a reaction is recorded.
85
+
86
+ **Failure modes for Feedback suggestion**
87
+ A missing suggestion option fails as a usage error before anything is read.
88
+ Text that is empty or whitespace only fails as invalid feedback and nothing is written.
89
+ Text longer than 8192 characters fails as invalid feedback with the bound named in the error.
90
+ A valid text can still fail to be recorded when the project is unknown or its memory file is unreadable.
91
+ A filesystem refusal while replacing the memory file fails as a write failure, and earlier records stay intact.
92
+ Recover from a text failure by shortening or supplying the suggestion, then repeat the same call.
93
+ No failure ever records a partial reaction, so a retry cannot create a duplicate of a record that was never saved.
94
+
95
+ **Authentication and permissions for Feedback suggestion**
96
+ Recording suggestion text requires no Vidbyte login, API key, or model provider.
97
+ The text is written only to the project's local memory file inside the platform-native Vidbyte data directory.
98
+ It leaves the machine only when a later model-backed run with this project sends its context to the configured provider.
99
+ Recording feedback grants no permission to any agent and cannot authorize the suggestion it names.
100
+ The command needs permission to replace the memory file and reports a write failure when the filesystem refuses.
101
+ Keep secrets and private data out of the text because it is shared with the provider on real project-backed runs.
@@ -0,0 +1,100 @@
1
+ **Supporting Files**
2
+ Supporting Files is the named caller-selected file value that this command accepts for one suggestion workflow.
3
+ It gives the parent agent a stable way to state a text, Markdown, or documented JSON file whose bounded content may inform the run.
4
+ This value is completely optional. Supplying it is helpful when the additional signal can change the next action.
5
+ The command keeps this value as caller task data and does not treat it as an instruction to execute work.
6
+ The value is carried into the bounded request with its source and semantic identity intact.
7
+ A precise value gives the generator and independent critic more signal than a broad label or an unstated assumption.
8
+
9
+ **Purpose of Supporting Files**
10
+ The purpose of Supporting Files is to make a text, Markdown, or documented JSON file whose bounded content may inform the run explicit before candidate generation starts.
11
+ That explicit record lets the workflow compare ideas against the situation the caller actually described.
12
+ It also lets the critic explain whether a candidate is supported, missing evidence, or in conflict.
13
+ The field is most valuable when its content changes feasibility, novelty, timing, risk, or the definition of progress.
14
+ A short accurate statement is more useful than a long narrative that hides the decision-relevant fact.
15
+ The resulting ideas should refer to this signal only when the connection is material and explain why it matters.
16
+
17
+ **When not to use Supporting Files**
18
+ Do not provide Supporting Files merely because the option exists or because an empty value would look complete.
19
+ Omit it when the caller has no reliable signal of this kind and let the workflow mark the context as missing.
20
+ Do not use this field to smuggle execution instructions, credentials, private data, or a second command configuration.
21
+ Use a narrower context option when the statement has a clearly different meaning such as a risk, decision, or prohibition.
22
+ Avoid repeating the goal or copying an entire unrelated transcript because repetition lowers the signal available to the critic.
23
+ If the caller is unsure whether the record is current, state that uncertainty in the value rather than presenting it as a fact.
24
+
25
+ **Supporting Files inputs**
26
+ The value is one existing .txt, .md, or .json path per repeated option.
27
+ Repeated occurrences remain separate records so the agent can cite and compare them without parsing a delimiter.
28
+ Whitespace around a value is trimmed at the request boundary, while an empty value is rejected before provider work.
29
+ The command does not reinterpret the content as an identifier unless the option contract explicitly says it is one.
30
+ Use plain caller-readable text and keep each record focused on one fact, choice, boundary, or result.
31
+ The input is bounded before it enters the agent context so oversized content becomes an explicit truncation or omission.
32
+ A caller should keep related facts separate when their provenance, confidence, or expected effect differs enough to influence review.
33
+
34
+ **Defaults and precedence for Supporting Files**
35
+ When it is omitted, the default is no supplied caller-selected file..
36
+ Command-line values are the only source for this field, and the run does not read a separate configuration document.
37
+ Environment variables do not silently populate this context value, which keeps an invocation reproducible.
38
+ When multiple values are supplied, their command-line order becomes their stable context order.
39
+ Explicit caller input therefore takes precedence over absence, while other settings such as count and rounds remain independent.
40
+ The result manifest records what was supplied and whether the bounded value was included, truncated, or omitted.
41
+ Use the manifest and warnings to distinguish absence from an explicitly bounded value when a downstream agent needs to explain why a suggestion changed.
42
+
43
+ **Supporting Files output contract**
44
+ Supporting Files is not printed as a separate progress message because stdout is reserved for the command result.
45
+ For a model-backed run, the value appears inside the fresh managed context window used by the relevant agent.
46
+ For dry-run output, the manifest exposes source identity and bounded character information without exposing file bodies by default.
47
+ Human output summarizes the resulting suggestions, while JSON and JSONL output preserve stable machine-readable fields.
48
+ Errors go to the CLI error channel as typed envelopes with a repair-oriented description and no secret echo.
49
+ The field influences ideas and handoffs but never grants authority, starts work, or changes the caller's permissions.
50
+
51
+ **How to use Supporting Files**
52
+ Use the command below as the smallest valid invocation shape for this value.
53
+ Replace each brace-delimited placeholder with the caller's actual text while preserving shell quoting around spaces.
54
+ Repeat the option when more than one independent record should be supplied.
55
+ Combine the option with a precise goal because the field is evidence or context rather than a standalone task.
56
+ Add category and budget options only when they answer a real selection or resource question.
57
+ The command remains a single argv-built request and does not require a temporary configuration file.
58
+ Keep the invocation close to the caller's actual decision so another agent can reproduce the request without guessing omitted context, quoting, or precedence.
59
+
60
+ ```text
61
+ vidbyte-cli agents suggest run --goal "{goal}" --files "{path/to/context.md}"
62
+ ```
63
+
64
+ **Examples for Supporting Files**
65
+ A minimal example supplies only the required goal and leaves this optional signal absent when it has no value.
66
+ A normal example adds one focused record that directly changes how the next action should be judged.
67
+ An advanced example repeats the option for several independent records and combines it with a selected category.
68
+ Piping is appropriate only for a caller that captures the emitted result document, because input itself is passed through argv.
69
+ JSON output is the stable choice when another agent will inspect identifiers, manifests, warnings, and handoffs.
70
+ If an example fails, preserve the same goal and correct the named input or path before changing the reasoning settings.
71
+
72
+ ```text
73
+ vidbyte-cli agents suggest run --goal "{goal}" --files "{path/to/context.md}"
74
+ vidbyte-cli --json agents suggest run --goal "{goal}" --files "{value}"
75
+ ```
76
+
77
+ **Related commands for Supporting Files**
78
+ Use agents suggest categories --view-all when the caller needs to choose a reasoning lens before running.
79
+ Use agents suggest categories --view {category-id} when one category needs a fuller conceptual definition.
80
+ Use the other context options when the signal is more accurately a decision, constraint, risk, or current commitment.
81
+ Use agents suggest handoff only after a result document exists and a specific idea identifier has been selected.
82
+ Use dry-run when the request shape and file manifest need inspection without credentials or model usage.
83
+ These commands share the same result conventions but do not imply that one command can authorize another.
84
+ Choose the narrowest neighboring command that answers the immediate question, then return to this option when the run itself needs the signal.
85
+
86
+ **Failure modes for Supporting Files**
87
+ A missing required value fails before the provider is loaded because the request dataclass requires a meaningful boundary.
88
+ An empty repeated value fails as invalid input instead of becoming a misleading blank context record.
89
+ An unsupported path, malformed JSON file, directory, or unreadable file fails with a typed context error.
90
+ An oversized value is truncated only within the documented bound and the result records that status as a warning.
91
+ A provider or schema failure is reported as a provider failure and is never converted into a false no-suggestions result.
92
+ Recover by correcting the specific value named by the error, rerunning dry-run when useful, and preserving the same intent.
93
+
94
+ **Authentication and permissions for Supporting Files**
95
+ This input itself does not grant access to files, providers, accounts, repositories, or execution tools.
96
+ Text values are available to local validation without credentials, while model-backed runs still require the configured provider.
97
+ The --files option reads only paths explicitly named by the caller and does not scan a workspace or agent history.
98
+ Read-only deny-all settings apply to generator and critic agents so suggestions cannot mutate the host through this workflow.
99
+ Provider credentials are used only when a real model-backed run is requested and are never copied into result prose.
100
+ Permission failures should be repaired at the provider or filesystem boundary rather than by weakening the context contract.