@sabaiway/agent-workflow-kit 3.15.0 → 4.1.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 (65) hide show
  1. package/CHANGELOG.md +118 -0
  2. package/README.md +4 -4
  3. package/SKILL.md +1 -1
  4. package/bridges/antigravity-cli-bridge/SKILL.md +12 -8
  5. package/bridges/antigravity-cli-bridge/bin/agy-review.sh +735 -55
  6. package/bridges/antigravity-cli-bridge/bin/agy-review.test.mjs +899 -51
  7. package/bridges/antigravity-cli-bridge/bin/agy.sh +4 -3
  8. package/bridges/antigravity-cli-bridge/bin/agy.test.mjs +23 -0
  9. package/bridges/antigravity-cli-bridge/capability.json +14 -4
  10. package/bridges/antigravity-cli-bridge/references/driving-agy.md +12 -4
  11. package/bridges/antigravity-cli-bridge/references/models-and-flags.md +4 -3
  12. package/bridges/antigravity-cli-bridge/references/review-prompt.md +65 -2
  13. package/bridges/codex-cli-bridge/SKILL.md +1 -1
  14. package/bridges/codex-cli-bridge/bin/codex-exec.sh +2 -1
  15. package/bridges/codex-cli-bridge/bin/codex-review.sh +63 -13
  16. package/bridges/codex-cli-bridge/bin/codex-review.test.mjs +38 -0
  17. package/bridges/codex-cli-bridge/capability.json +1 -1
  18. package/capability.json +1 -1
  19. package/package.json +1 -1
  20. package/references/agents/review-lens.md +39 -0
  21. package/references/hooks/gate-approve.mjs +54 -7
  22. package/references/modes/agents.md +11 -2
  23. package/references/modes/autonomy-doctor.md +2 -0
  24. package/references/modes/backends.md +2 -0
  25. package/references/modes/bootstrap.md +2 -0
  26. package/references/modes/bridge-settings.md +4 -1
  27. package/references/modes/commit-guard.md +2 -0
  28. package/references/modes/core-evidence.md +2 -0
  29. package/references/modes/coverage-check.md +2 -0
  30. package/references/modes/doc-parity.md +2 -0
  31. package/references/modes/gates.md +2 -0
  32. package/references/modes/grounding.md +2 -0
  33. package/references/modes/help.md +2 -0
  34. package/references/modes/hook.md +13 -2
  35. package/references/modes/migrate-adr-store.md +2 -0
  36. package/references/modes/procedures.md +2 -0
  37. package/references/modes/recipes.md +2 -0
  38. package/references/modes/recommendations.md +4 -3
  39. package/references/modes/review-state.md +2 -0
  40. package/references/modes/sandbox-masks.md +2 -0
  41. package/references/modes/set-autonomy.md +2 -0
  42. package/references/modes/set-recipe.md +3 -0
  43. package/references/modes/setup.md +2 -0
  44. package/references/modes/state-block-guard.md +2 -0
  45. package/references/modes/status.md +4 -1
  46. package/references/modes/uninstall.md +2 -0
  47. package/references/modes/upgrade.md +2 -0
  48. package/references/modes/velocity.md +7 -0
  49. package/references/modes/worktrees.md +2 -0
  50. package/tools/bridge-settings-read.mjs +40 -10
  51. package/tools/bridge-settings.mjs +22 -7
  52. package/tools/cheap-agents.mjs +15 -5
  53. package/tools/commands.mjs +2 -2
  54. package/tools/core-evidence.mjs +29 -2
  55. package/tools/detect-backends.mjs +1 -1
  56. package/tools/manifest/schema.md +7 -0
  57. package/tools/manifest/validate.mjs +8 -0
  58. package/tools/presentation.mjs +1 -1
  59. package/tools/procedures.mjs +9 -2
  60. package/tools/recipes.mjs +4 -1
  61. package/tools/recommendations.mjs +110 -59
  62. package/tools/renderers.mjs +10 -1
  63. package/tools/review-state.mjs +4 -0
  64. package/tools/velocity-profile.mjs +6 -3
  65. package/tools/view-model.mjs +3 -1
@@ -254,15 +254,18 @@ export const SHELL_METACHARACTERS = Object.freeze([
254
254
  // test/gate-hook-core-parity.test.mjs alongside UNIVERSAL_READONLY_ALLOWLIST.
255
255
  export const RUNTIME_RESIDUAL_FORMS = Object.freeze({
256
256
  writeRedirections: Object.freeze(['>', '>>', '1>', '2>', '&>', '>|']),
257
- // `$(…)` + backtick + process substitution `<(…)` all RUN a nested command (`>(…)` is caught by
258
- // the `>` redirection scan). Bare `<` is input redirection (reads a file read-only commands may
257
+ // `$(…)` + backtick + BOTH process substitutions `<(…)` / `>(…)` RUN a nested command. `>(…)` is
258
+ // named here explicitly because that is the class it is IN: the redirection scan also happens to
259
+ // match its `>`, but a command that RUNS something must be reported as running something, and a
260
+ // classification must not depend on another class's coincidence. Bare `<` is input redirection
261
+ // (reads a file — read-only commands may
259
262
  // already do that), so it is deliberately NOT here. The bash-5.3 function substitutions `${ cmd; }`
260
263
  // (a blank — space/tab/newline/CR — right after `${`) and `${| cmd; }` (runs a command, assigns
261
264
  // REPLY) also execute a nested command — matched as the literal openers `${ ` / `${\t` / `${\n` /
262
265
  // `${\r` / `${|` (AD-055 Part II; the `\r` opener guards CRLF payloads — council agy nit). An
263
266
  // ordinary `${VAR}` parameter expansion has NO blank after `${`, so it trips none of these — kept
264
267
  // rung-(b)-silent on a settings-allowed single (rung (c) excludes all `$`).
265
- commandSubstitutions: Object.freeze(['$(', '`', '<(', '${ ', '${\t', '${\n', '${\r', '${|']),
268
+ commandSubstitutions: Object.freeze(['$(', '`', '<(', '>(', '${ ', '${\t', '${\n', '${\r', '${|']),
266
269
  // A backslash immediately before a newline/CR is a bash LINE CONTINUATION: bash removes it and
267
270
  // splices the two lines into ONE word, which can reconstruct a residual token (`--output`, `$(`,
268
271
  // `${ …; }`) that a raw substring scan on the pre-splice string misses (`--outp\<newline>ut=f` →
@@ -37,7 +37,9 @@ const bridgeVm = (b) => ({
37
37
  settings: b.settings?.error
38
38
  ? { error: b.settings.error }
39
39
  : b.settings?.active?.length
40
- ? { active: b.settings.active.map((a) => ({ key: a.key, value: a.value, source: a.source })) }
40
+ // `retired` rides along: a retired knob is CONFIGURED but arms nothing, and dropping the flag
41
+ // here rendered a dead key as an active setting on the one surface a user reads by default.
42
+ ? { active: b.settings.active.map((a) => ({ key: a.key, value: a.value, source: a.source, retired: a.retired ?? null })) }
41
43
  : null,
42
44
  });
43
45