@team-agent/installer 0.3.1 → 0.3.3

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 (79) hide show
  1. package/Cargo.lock +34 -1
  2. package/Cargo.toml +1 -1
  3. package/crates/team-agent/Cargo.toml +1 -1
  4. package/crates/team-agent/src/cli/adapters.rs +234 -26
  5. package/crates/team-agent/src/cli/diagnose.rs +144 -10
  6. package/crates/team-agent/src/cli/emit.rs +289 -54
  7. package/crates/team-agent/src/cli/leader.rs +37 -8
  8. package/crates/team-agent/src/cli/mod.rs +1281 -196
  9. package/crates/team-agent/src/cli/status_port.rs +195 -46
  10. package/crates/team-agent/src/cli/tests/divergence.rs +1 -2
  11. package/crates/team-agent/src/cli/tests/lane_c.rs +23 -13
  12. package/crates/team-agent/src/cli/tests/main_preserved.rs +2 -0
  13. package/crates/team-agent/src/cli/tests/run_delegation.rs +59 -3
  14. package/crates/team-agent/src/cli/types.rs +18 -0
  15. package/crates/team-agent/src/compiler.rs +15 -5
  16. package/crates/team-agent/src/coordinator/health.rs +95 -17
  17. package/crates/team-agent/src/coordinator/mod.rs +4 -0
  18. package/crates/team-agent/src/coordinator/runtime_detectors.rs +500 -0
  19. package/crates/team-agent/src/coordinator/runtime_observation.rs +58 -0
  20. package/crates/team-agent/src/coordinator/tick.rs +222 -69
  21. package/crates/team-agent/src/coordinator/types.rs +15 -3
  22. package/crates/team-agent/src/db/schema.rs +37 -2
  23. package/crates/team-agent/src/diagnose/comms.rs +226 -0
  24. package/crates/team-agent/src/diagnose/mod.rs +45 -0
  25. package/crates/team-agent/src/diagnose/orphans.rs +658 -0
  26. package/crates/team-agent/src/fake_worker.rs +146 -3
  27. package/crates/team-agent/src/leader/start.rs +121 -23
  28. package/crates/team-agent/src/leader/types.rs +44 -1
  29. package/crates/team-agent/src/lib.rs +3 -0
  30. package/crates/team-agent/src/lifecycle/display.rs +645 -47
  31. package/crates/team-agent/src/lifecycle/launch.rs +1061 -146
  32. package/crates/team-agent/src/lifecycle/mod.rs +2 -0
  33. package/crates/team-agent/src/lifecycle/profile_launch.rs +810 -0
  34. package/crates/team-agent/src/lifecycle/profile_smoke.rs +522 -0
  35. package/crates/team-agent/src/lifecycle/restart/agent.rs +99 -23
  36. package/crates/team-agent/src/lifecycle/restart/common.rs +183 -24
  37. package/crates/team-agent/src/lifecycle/restart/rebuild.rs +498 -22
  38. package/crates/team-agent/src/lifecycle/restart/remove.rs +27 -7
  39. package/crates/team-agent/src/lifecycle/restart/team_state.rs +19 -0
  40. package/crates/team-agent/src/lifecycle/restart.rs +24 -1
  41. package/crates/team-agent/src/lifecycle/tests/lane_ops.rs +5 -5
  42. package/crates/team-agent/src/lifecycle/tests/launch_spawn.rs +37 -7
  43. package/crates/team-agent/src/lifecycle/types.rs +19 -0
  44. package/crates/team-agent/src/mcp_server/helpers.rs +1 -0
  45. package/crates/team-agent/src/mcp_server/lifecycle_tools/agent_ops.rs +341 -0
  46. package/crates/team-agent/src/mcp_server/lifecycle_tools/mod.rs +10 -0
  47. package/crates/team-agent/src/mcp_server/lifecycle_tools/state_status.rs +158 -0
  48. package/crates/team-agent/src/mcp_server/mod.rs +3 -74
  49. package/crates/team-agent/src/mcp_server/tests/scoped.rs +1 -1
  50. package/crates/team-agent/src/mcp_server/tests/send.rs +6 -5
  51. package/crates/team-agent/src/mcp_server/tools.rs +312 -111
  52. package/crates/team-agent/src/mcp_server/types.rs +6 -4
  53. package/crates/team-agent/src/mcp_server/wire.rs +19 -7
  54. package/crates/team-agent/src/message_store.rs +21 -4
  55. package/crates/team-agent/src/messaging/delivery.rs +470 -59
  56. package/crates/team-agent/src/messaging/mod.rs +9 -6
  57. package/crates/team-agent/src/messaging/results.rs +353 -63
  58. package/crates/team-agent/src/messaging/selftest.rs +199 -12
  59. package/crates/team-agent/src/messaging/send.rs +35 -3
  60. package/crates/team-agent/src/messaging/tests/runtime.rs +19 -4
  61. package/crates/team-agent/src/messaging/types.rs +11 -3
  62. package/crates/team-agent/src/os_probe.rs +119 -0
  63. package/crates/team-agent/src/packaging/migrate.rs +10 -2
  64. package/crates/team-agent/src/packaging/tests.rs +23 -0
  65. package/crates/team-agent/src/provider/adapter.rs +564 -63
  66. package/crates/team-agent/src/provider/approvals/runtime_prompts.rs +1 -7
  67. package/crates/team-agent/src/provider/classify.rs +51 -4
  68. package/crates/team-agent/src/provider/helpers.rs +10 -1
  69. package/crates/team-agent/src/provider/startup_prompt.rs +94 -0
  70. package/crates/team-agent/src/provider/types.rs +47 -0
  71. package/crates/team-agent/src/session_capture.rs +616 -0
  72. package/crates/team-agent/src/state/persist.rs +170 -1
  73. package/crates/team-agent/src/state/projection.rs +141 -8
  74. package/crates/team-agent/src/state/selector.rs +5 -2
  75. package/crates/team-agent/src/tmux_backend.rs +161 -64
  76. package/crates/team-agent/src/transport/test_support.rs +9 -0
  77. package/crates/team-agent/src/transport/tests/wire.rs +4 -0
  78. package/crates/team-agent/src/transport.rs +13 -2
  79. package/package.json +4 -4
@@ -47,21 +47,48 @@ pub fn leader_launcher_args(values: &[String]) -> Result<LeaderLauncherArgs, Cli
47
47
  Ok(out)
48
48
  }
49
49
 
50
+ fn leader_launcher_json(values: &[String]) -> bool {
51
+ values
52
+ .iter()
53
+ .take_while(|arg| arg.as_str() != "--")
54
+ .any(|arg| arg == "--json")
55
+ }
56
+
57
+ fn without_leader_json(values: &[String]) -> Vec<String> {
58
+ let mut out = Vec::with_capacity(values.len());
59
+ let mut provider_remainder = false;
60
+ for value in values {
61
+ if provider_remainder || value != "--json" {
62
+ out.push(value.clone());
63
+ }
64
+ if value == "--" {
65
+ provider_remainder = true;
66
+ }
67
+ }
68
+ out
69
+ }
70
+
50
71
  /// `codex`/`claude` passthrough(`parser.py:86`/`_run_leader_passthrough`):leader 早返回,
51
72
  /// **不**进 subparser。`-h`/`--help` 打 usage 直接返回 [`CmdResult::none`]。否则解析 attach
52
- /// 旗标 + `lifecycle_port::start_leader`。`command` ∈ {codex, claude_code}。
53
- pub fn cmd_leader_passthrough(command: &str, provider_args: &[String], cwd: &Path) -> Result<CmdResult, CliError> {
73
+ /// 旗标 + `lifecycle_port::start_leader`。`command` ∈ {codex, claude}。
74
+ pub fn cmd_leader_passthrough(
75
+ command: &str,
76
+ provider_args: &[String],
77
+ cwd: &Path,
78
+ ) -> Result<CmdResult, CliError> {
54
79
  if provider_args == ["-h"] || provider_args == ["--help"] {
55
80
  return Ok(CmdResult::none());
56
81
  }
57
- let attach = leader_launcher_args(provider_args)?;
82
+ let as_json = leader_launcher_json(provider_args);
83
+ let launcher_args = without_leader_json(provider_args);
84
+ let attach = leader_launcher_args(&launcher_args)?;
58
85
  let provider = if command == "codex" {
59
86
  crate::model::enums::Provider::Codex
60
87
  } else {
61
88
  crate::model::enums::Provider::ClaudeCode
62
89
  };
63
90
  let value = lifecycle_port::start_leader(provider, &attach.provider_args, cwd, &attach)?;
64
- Ok(CmdResult::from_json(value, false))
91
+ Ok(CmdResult::from_json(value, as_json))
65
92
  }
66
93
 
67
94
  // =============================================================================
@@ -143,7 +170,11 @@ fn parse_inbox_entries(text: impl AsRef<str>) -> Vec<String> {
143
170
  }
144
171
 
145
172
  fn render_inbox_summary(entries: &[String], budget: usize) -> String {
146
- let noun = if entries.len() == 1 { "entry" } else { "entries" };
173
+ let noun = if entries.len() == 1 {
174
+ "entry"
175
+ } else {
176
+ "entries"
177
+ };
147
178
  let header = format!("Leader inbox: {} new fallback {noun}", entries.len());
148
179
  let hint = "Hint: team-agent inbox leader";
149
180
  let footer = "Truncated: more fallback entries available; run team-agent inbox leader";
@@ -173,9 +204,7 @@ fn render_inbox_summary(entries: &[String], budget: usize) -> String {
173
204
  };
174
205
  if char_len(&summary) > budget {
175
206
  let keep = budget.saturating_sub(char_len(footer)).saturating_sub(6);
176
- let body = prefix_chars(&lines.join("\n"), keep)
177
- .trim_end()
178
- .to_string();
207
+ let body = prefix_chars(&lines.join("\n"), keep).trim_end().to_string();
179
208
  summary = format!("{body} ...\n{footer}");
180
209
  }
181
210
  summary