trantor 0.18.21 → 0.18.22
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.
- package/.claude-plugin/plugin.json +2 -2
- package/README.md +5 -0
- package/bin/crew.sh +21 -0
- package/package.json +2 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "trantor",
|
|
3
|
-
"version": "0.18.
|
|
4
|
-
"description": "Trantor
|
|
3
|
+
"version": "0.18.22",
|
|
4
|
+
"description": "Trantor — the hub-world for AI agent crews: live message bus, presence, project Kanban/flow board + crew orchestration for independent AI coding agents (Claude, Codex, Gemini, Kimi, DeepSeek)",
|
|
5
5
|
"mcpServers": {
|
|
6
6
|
"relay": {
|
|
7
7
|
"command": "node",
|
package/README.md
CHANGED
|
@@ -364,6 +364,11 @@ model-authored handoff instead of superseding it; the successor is injected a ca
|
|
|
364
364
|
being spoken to; and a session hosted in a Workspace pane is replaced in place by a detached
|
|
365
365
|
driver — the same chain the app's [Hand off now] button runs.
|
|
366
366
|
|
|
367
|
+
Waking works the same way from the other end: hover a sleeping project in the app's sidebar and
|
|
368
|
+
**Wake** hosts its session as an in-app pane — `trantor open` under the hood, opened in the
|
|
369
|
+
project's own checkout wherever it is called from, handoff-beats-resume, and the same kickoff
|
|
370
|
+
prompt so the woken session catches up (handoff, board, memory) and recaps on its own.
|
|
371
|
+
|
|
367
372
|
Why crews never exhaust the orchestrator: bus messages are **by reference** (~70 tokens),
|
|
368
373
|
work products stay in each agent's own context — the orchestrator burns at coordination
|
|
369
374
|
rate, not work rate.
|
package/bin/crew.sh
CHANGED
|
@@ -194,6 +194,24 @@ _herdr_close_pane() { [ "$DRY" = "1" ] && { echo "[dry] herdr pane close $1";
|
|
|
194
194
|
# So the project gets ONE claude session id, chosen by us and remembered. First open starts claude
|
|
195
195
|
# under it; every later open resumes it. Discovering the id afterwards would be guesswork, and
|
|
196
196
|
# `--continue` would grab whatever ran last in this directory, which may be a different window.
|
|
197
|
+
# A NAMED project must open in ITS checkout, wherever the caller stands (2026-08-31: the app ran
|
|
198
|
+
# `trantor open crebral-health` from the Tauri process cwd and claude booted THERE — a trust
|
|
199
|
+
# prompt for a folder the operator never chose, transcripts under the wrong slug, no project
|
|
200
|
+
# memory, ACTIVE NOW blind). Resolution mirrors the app's project_dir: $TRANTOR_DEV_ROOT
|
|
201
|
+
# (default ~/development)/<name>. Unknown name from an unrelated cwd → refuse loudly rather
|
|
202
|
+
# than open somewhere silly.
|
|
203
|
+
_orch_resolve_dir() { # $1=cwd $2=project-arg → dir to open in (stdout); fails when unresolvable
|
|
204
|
+
local herebase; herebase="$(basename "$(git -C "$1" rev-parse --show-toplevel 2>/dev/null || echo "$1")")"
|
|
205
|
+
if [ -z "$2" ] || [ "$2" = "$herebase" ]; then printf '%s' "$1"; return 0; fi
|
|
206
|
+
local devroot="${TRANTOR_DEV_ROOT:-$HOME/development}"
|
|
207
|
+
if [ -d "$devroot/$2" ]; then
|
|
208
|
+
echo "— opening $2 in its checkout: $devroot/$2 —" >&2
|
|
209
|
+
printf '%s' "$devroot/$2"; return 0
|
|
210
|
+
fi
|
|
211
|
+
echo "trantor open: '$2' has no checkout at $devroot/$2 and this is '$herebase' — cd into the project first" >&2
|
|
212
|
+
return 1
|
|
213
|
+
}
|
|
214
|
+
|
|
197
215
|
_orch_sid() { # $1=project → the project's session uuid, minting one on first use
|
|
198
216
|
local f="${STATE%/*}/orch-sessions.txt" p sid
|
|
199
217
|
if [ -f "$f" ]; then
|
|
@@ -601,6 +619,7 @@ open_orchestrator() {
|
|
|
601
619
|
--*) echo "trantor open: unknown flag '$a'"; usage_open; return 1 ;;
|
|
602
620
|
*) PROJ="$a" ;;
|
|
603
621
|
esac; done
|
|
622
|
+
DIR="$(_orch_resolve_dir "$DIR" "$PROJ")" || exit 1
|
|
604
623
|
command -v herdr >/dev/null 2>&1 || { echo "trantor open needs herdr (the pane host) — install: curl -fsSL https://herdr.dev/install.sh | sh"; exit 1; }
|
|
605
624
|
local wsid="" orch="" live_ids="" live_names="" pair="" line fresh=0
|
|
606
625
|
local sid; sid="$(_orch_sid "$PROJ")" || { echo "trantor open: could not mint a session id (uuidgen missing?)" >&2; exit 1; }
|
|
@@ -635,6 +654,8 @@ open_orchestrator() {
|
|
|
635
654
|
if _herdr pane rename "$orch" "orchestrator · $PROJ" >/dev/null 2>&1; then
|
|
636
655
|
if _herdr_pane_has_agent "$orch"; then
|
|
637
656
|
echo "herdr:${wsid:-?}/$orch"
|
|
657
|
+
# CONTRACT: the app's orchestrator_open (desktop terminal.rs) matches this exact phrase
|
|
658
|
+
# to SKIP its kickoff prompt — a reattach is a live conversation, never to be typed into.
|
|
638
659
|
echo "— orchestrator already hosted: reattached to herdr:${wsid:-?}/$orch —" >&2
|
|
639
660
|
return 0
|
|
640
661
|
fi
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "trantor",
|
|
3
|
-
"version": "0.18.
|
|
3
|
+
"version": "0.18.22",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"trantor": "bin/cli.mjs"
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"scripts": {
|
|
14
14
|
"test": "node bin/slop-gate.mjs --surface desktop/src && node test.mjs && node test-scenarios.mjs && node test-failure.mjs && node test-redelivery.mjs && node test-crew-completion.mjs && node test-contracts.mjs && node test-autonomy.mjs && node test-integrate.mjs && node test-handoff.mjs && node test-handoff-summarizer.mjs && node test-baton-turn-boundary.mjs && node test-agents.mjs && node test-update.mjs && node test-handoff-guard.mjs && node test-baton-latest.mjs && node test-balances.mjs && node test-usage-live.mjs && node test-subagent-cost.mjs && node test-inbox.mjs && node test-inflight.mjs && node test-notify.mjs && node test-focus.mjs && node test-cardlog.mjs && node test-checklist.mjs && node test-relay-note.mjs && node test-reaper.mjs && node test-events.mjs && node test-proposals.mjs && node test-scrub.mjs && node test-store-delta.mjs && node test-message-re.mjs && node test-claims.mjs && node test-adopt.mjs && node test-summarize.mjs && node test-identity-core.mjs && node test-identity.mjs && node test-identity-instances.mjs && node test-duty.mjs && node test-duty-dark.mjs && node test-duty-seat.mjs && node test-discovery.mjs && node test-doctor.mjs && node test-crew-env.mjs && node test-desktop-transport.mjs && node test-crew-worktree.mjs && bash test-crew-herdr.sh && npm --prefix desktop run test --silent && node test-splitbrain.mjs && node test-overseer.mjs && node test-overseer-lib.mjs && node test-overseer-warn.mjs && node test-provider-keys.mjs && node test-inbox-delivery.mjs && node test-identity-drift.mjs && node test-inbox-staleness.mjs && node test-seats.mjs && node test-seat-identity.mjs && node test-hub-routing.mjs && node test-hook-routing.mjs && node test-relay-wait.mjs && node test-dsh-seat.mjs && node test-kimi-bridge.mjs && node test-kimi-events.mjs && python3 engine/test-routing.py && node test-reconcile.mjs && node test-resources.mjs && node test-patrol.mjs && node test-bridge.mjs && bash test-crew.sh"
|
|
15
15
|
},
|
|
16
|
-
"description": "The hub-world for AI agent crews
|
|
16
|
+
"description": "The hub-world for AI agent crews — orchestrate Claude Code, Codex, GLM, Kimi, DeepSeek & any OpenRouter model as live crews with a plan-aware Advisor, a Kanban/flow command center, a testing gate, and an economics brain (Scrooge).",
|
|
17
17
|
"files": [
|
|
18
18
|
"hub.mjs",
|
|
19
19
|
"mcp.mjs",
|