@floh-solutions/pharos-cli 0.32.0 → 0.34.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 (42) hide show
  1. package/README.md +154 -32
  2. package/dist/capabilities.d.ts +27 -0
  3. package/dist/capabilities.d.ts.map +1 -1
  4. package/dist/capabilities.js +144 -41
  5. package/dist/capabilities.js.map +1 -1
  6. package/dist/cli.d.ts.map +1 -1
  7. package/dist/cli.js +62 -14
  8. package/dist/cli.js.map +1 -1
  9. package/dist/commands/delegate.d.ts +151 -6
  10. package/dist/commands/delegate.d.ts.map +1 -1
  11. package/dist/commands/delegate.js +575 -147
  12. package/dist/commands/delegate.js.map +1 -1
  13. package/dist/commands/doctor.d.ts +41 -0
  14. package/dist/commands/doctor.d.ts.map +1 -1
  15. package/dist/commands/doctor.js +345 -44
  16. package/dist/commands/doctor.js.map +1 -1
  17. package/dist/commands/pr.d.ts +56 -0
  18. package/dist/commands/pr.d.ts.map +1 -0
  19. package/dist/commands/pr.js +202 -0
  20. package/dist/commands/pr.js.map +1 -0
  21. package/dist/commands/setup.js +21 -3
  22. package/dist/commands/setup.js.map +1 -1
  23. package/dist/delegate/argus.d.ts +111 -2
  24. package/dist/delegate/argus.d.ts.map +1 -1
  25. package/dist/delegate/argus.js +99 -1
  26. package/dist/delegate/argus.js.map +1 -1
  27. package/dist/delegate/hosts.d.ts +29 -0
  28. package/dist/delegate/hosts.d.ts.map +1 -1
  29. package/dist/delegate/hosts.js +23 -0
  30. package/dist/delegate/hosts.js.map +1 -1
  31. package/dist/delegate/sessions.d.ts +174 -1
  32. package/dist/delegate/sessions.d.ts.map +1 -1
  33. package/dist/delegate/sessions.js +282 -28
  34. package/dist/delegate/sessions.js.map +1 -1
  35. package/dist/delegate/vsix.d.ts +26 -0
  36. package/dist/delegate/vsix.d.ts.map +1 -1
  37. package/dist/delegate/vsix.js +22 -5
  38. package/dist/delegate/vsix.js.map +1 -1
  39. package/package.json +3 -3
  40. package/skill/SKILL.md +32 -9
  41. package/vscode/pharos-bridge.json +1 -1
  42. package/vscode/pharos-bridge.vsix +0 -0
package/README.md CHANGED
@@ -549,6 +549,34 @@ connectivity fault worded as a credential fault. `gh-auth` therefore never tells
549
549
  you that you are signed out; it reports both causes, because from here they are
550
550
  genuinely indistinguishable.
551
551
 
552
+ ### The skill serves both agents
553
+
554
+ `pharos setup --install skill` installs the skill from the floh-skills
555
+ marketplace into **every coding agent on the machine**: Claude Code, Codex, or
556
+ both when both are found. Codex reads the same Claude-format
557
+ `.claude-plugin/marketplace.json` and generates its own `.codex-plugin/plugin.json`
558
+ from it, so one publish reaches both.
559
+
560
+ `doctor` reports them as two rows — `skill` for Claude Code, `skill-codex` for
561
+ Codex — and emits each only when that agent is on PATH, so a machine running one
562
+ of them does not get a column of red about the other. **Publishing a new version
563
+ does not update an installed one**, and the command that picks one up differs:
564
+
565
+ | agent | update |
566
+ |---|---|
567
+ | Claude Code | `claude plugin update pharos@floh-skills` |
568
+ | Codex | `codex plugin marketplace upgrade floh-skills` then `codex plugin add pharos@floh-skills` |
569
+
570
+ Codex needs the two because `codex plugin marketplace add` is a no-op once the
571
+ marketplace is configured and does **not** refresh the snapshot it fetched the
572
+ first time — so `plugin add` alone reinstalls whatever was published back then.
573
+ `--install skill` runs the refresh for you, and reports per agent which got it.
574
+
575
+ `pharos setup --skill` is something else and stays Claude-only: a personal copy
576
+ in `~/.claude/skills/`, which **shadows** the marketplace one and stops receiving
577
+ corrections. It is for a machine that cannot use plugins, and Codex has no such
578
+ machine — `codex plugin` ships with the CLI.
579
+
552
580
  ## Delegating a work item to a coding agent
553
581
 
554
582
  ```bash
@@ -591,7 +619,8 @@ row a plain delegate takes.
591
619
  `--list` sends nothing, needs no prompt, and is scoped to the requested
592
620
  `--host`. Every key on a row is always present and never null — the app decodes
593
621
  a row into a menu item, and an absent field is a decoder somebody gets wrong
594
- once and then only on the machine where it is missing. `id` is a **string**
622
+ once and then only on the machine where it is missing. (`profile`, below, is
623
+ the one deliberate exception.) `id` is a **string**
595
624
  even though it is a pid today, because a Navarch id will be a worker UUID.
596
625
  `detail` is the locator only and never repeats the status, so a caller composes
597
626
  its second line as status + detail. No sessions is a normal answer: exit 0 with
@@ -600,11 +629,34 @@ refuse a list — notably **not** `bridge-not-installed`, because listing is
600
629
  `claude agents --json` and `ps` and reads the same on a VS Code with no
601
630
  extensions at all. `--dry-run` carries the same array.
602
631
 
632
+ ### Sessions that run as another login
633
+
634
+ `claude agents --json` lists ONE config directory's sessions, and a machine has
635
+ several: the default (`$CLAUDE_CONFIG_DIR`, or `~/.claude`), every Argus agent
636
+ account (`~/.config/argus/auth/claude/<name>`), and whatever `CLAUDE_CONFIG_DIR`
637
+ a VS Code or a session was started with — an editor opened from a shell inside
638
+ an Argus worker gives every terminal that worker's login. So Claude sessions are
639
+ read from all of them, one `claude agents --json` each, merged and de-duplicated
640
+ by pid, and a session found outside the default carries `"profile": "floh"` and
641
+ ` · profile floh` in its `detail` (both absent for the default, so its rows read
642
+ as they always did). Every registry past the default is asked only when it
643
+ already holds `sessions/*.json`: asking one that has never run a session writes
644
+ a first-start `.claude.json` into it, and those directories are the fleet's
645
+ credentials. Starting a session is unchanged — the host's own environment
646
+ decides the account — but when a VS Code carries a non-default
647
+ `CLAUDE_CONFIG_DIR`, `--list`, a launch and `doctor`'s host row all say so, with
648
+ the fix (relaunch it from the Dock). Terminal cannot be asked the same: it is an
649
+ Apple platform binary, and macOS shows `ps -E` none of its environment, so its
650
+ sessions are found through their own and a new window says nothing about a
651
+ login it cannot read.
652
+
603
653
  ### Navarch, over `argusd`'s own socket
604
654
 
605
655
  ```bash
606
656
  pharos delegate --host navarch --agent claude --folder ~/Developer/widgets --text "Fetch …"
607
657
  pharos delegate --host navarch --agent claude --folder … --list
658
+ pharos delegate --host navarch --agent claude --folder … --session 1958E897-… --text "…"
659
+ pharos delegate --host navarch --agent claude --folder … --gh-account alisina-tibata --text "…"
608
660
  pharos delegate --host navarch --agent claude --folder … --status 89933CD2-…
609
661
  ```
610
662
 
@@ -638,7 +690,7 @@ different facts. Pass `delegation.request` back as `--status <request>` to turn
638
690
  that into `sent`, `launched`, `declined` or `delivery-failed`; argus keeps the
639
691
  row for an hour, sized for a person at lunch rather than for a poll.
640
692
 
641
- The socket adds nine `reason` ids, and they are separate because **each names a
693
+ The socket adds ten `reason` ids, and they are separate because **each names a
642
694
  different fix**:
643
695
 
644
696
  | `reason` | what is true | the fix |
@@ -652,6 +704,7 @@ different fix**:
652
704
  | `rate-limited` | twelve operator writes a minute, and this was the thirteenth | wait a minute |
653
705
  | `not-an-operator` | the gate refused the stamp pharos sets on every request | almost always a daemon that predates it |
654
706
  | `request-unknown` | `--status` for an id this core does not hold | it aged out, or was made elsewhere |
707
+ | `gh-account-unknown` | `--gh-account` named an identity this core has never heard of, and a worker would be started | add it in Navarch ▸ Accounts, or pass a spelling it knows — the refusal lists them |
655
708
 
656
709
  `argusd-outdated` is the one to expect first, and it is not a bug: argusd
657
710
  outliving the app is the feature that keeps sessions alive across a restart, so
@@ -671,21 +724,33 @@ without — so a correct delegation is refused for not carrying one, and a calle
671
724
  that believed the message would go and add it. **The tell is the missing
672
725
  `reason` key, never the prose.**
673
726
 
674
- `--list` reads `fleet_status` and ranks it by the daemon's own rule: not exited,
675
- the right kind, local, not holding a board mission, and **not an Argus Agent** —
676
- an operator is a claude worker with no mission sitting in a base checkout, which
677
- is exactly the folder a person links in Pharos, and delegating into it would
678
- hand the work item to the thing that drives the fleet. Ties break on `starting`
679
- last and then on ascending UUID, never on status, so two calls a second apart
680
- name the same pane. A row's `id` is the worker UUID, its `status` is the
681
- contract's `idle`/`busy`/`unknown` with **`needs_input` reported `busy`**,
682
- because a worker on a trust dialog is idle by every measure except the one that
683
- matters.
684
-
685
- `--list` asks one question first: a `delegate_status` read about an all-zero id,
686
- which is free and side-effect-free, and tells it whether this daemon serves the
687
- verb at all. `fleet_status` answers on *every* generation of argusd, so without
688
- that probe a list would enumerate workers a send is about to refuse to touch.
727
+ `--list` asks `delegate_candidates` **the find, asked rather than
728
+ performed** (argus #1402). The rows are argusd's own answer to its own
729
+ question, ranked by its own rule: not exited, the right kind, local, not
730
+ holding a board mission, and **not an Argus Agent** an operator is a claude
731
+ worker with no mission sitting in a base checkout, which is exactly the folder
732
+ a person links in Pharos, and delegating into it would hand the work item to
733
+ the thing that drives the fleet. Ties break on `starting` last and then on
734
+ ascending UUID, never on status, so two calls a second apart name the same
735
+ pane. `recommended` is the daemon's own `target`. A row's `id` is the worker
736
+ UUID, its `status` is the contract's `idle`/`busy`/`unknown` — with
737
+ **`needs_input` reported `busy`**, because a worker on a trust dialog is idle
738
+ by every measure except the one that matters.
739
+
740
+ The answer carries **`source`**, which is not a footnote:
741
+
742
+ | `source` | what the list is | what `--session` / `--gh-account` do |
743
+ |---|---|---|
744
+ | `daemon` | `delegate_candidates` — a row it offered is a row it accepts | honoured |
745
+ | `fleet_status` | this CLI's own reading, a prediction of the find | refused `argusd-outdated` |
746
+
747
+ An argusd that predates #1402 answers the read `unknown-op`, and `fleet_status`
748
+ answers on *every* generation of argusd — so the list is still worth serving,
749
+ and it is served with `source: "fleet_status"` and a sentence saying the pick
750
+ cannot be honoured against that daemon. One that predates `delegate` itself
751
+ carries no `reason` key at all, and that is `argusd-outdated`: listing workers
752
+ a send is about to refuse to touch would hand the app a menu of picks that can
753
+ only fail.
689
754
 
690
755
  Two things the route does **not** do. It never pre-checks the agent on `PATH`:
691
756
  argusd spawns the worker from the app's own login shell, and a GUI-launched
@@ -695,14 +760,66 @@ multi-line prompt into one line — the receiving TUI submits on Enter and Navar
695
760
  owns that Enter, so several lines is a usage error rather than a rewrite nobody
696
761
  proof-read.
697
762
 
698
- **`--session` is refused `session-not-targetable` for now.** The `delegate` op
699
- takes a folder and a kind and no target worker; the find is entirely the
700
- daemon's. So the only pick this CLI could honour is the one argusd would have
701
- made anyway, and answering `sent` about a pane the person did not choose is the
702
- failure this verb exists not to produce. It is deliberately not `session-gone`:
703
- that worker is alive, and saying it had died would send somebody looking for a
704
- corpse. Board todo **#1402** in the argus repo adds the field; when it lands the
705
- refusal goes and nothing else here changes.
763
+ ### Picking a worker, and the daemon that would ignore the pick
764
+
765
+ `--session <uuid>` travels as the op's `worker`, and `--session new` as
766
+ `worker: "new"` a fresh worker even where the find would have had one. The
767
+ CLI does **not** re-check the pick before sending it: argusd validates `worker`
768
+ against the very predicate `delegate_candidates` listed from, so one rule
769
+ serves the find, the list and the validation, and a second copy here could only
770
+ disagree with it. A row the read offered is a row the send accepts.
771
+
772
+ A pick it will not take comes back as **`session-gone`**, keeping argusd's own
773
+ sentence — which names *which* of six it was: *has exited*, *is an Argus Agent*,
774
+ *is holding mission #N*, *is a codex worker, not claude*, *is on ax52, not on
775
+ this Mac*, *is in … , not in …*. That is the same fact and the same fix as a
776
+ vanished pid on Terminal, so it is the same word. (`session-not-targetable` was
777
+ this route's own refusal and is **gone from the closed set** — it meant the op
778
+ could not express a target at all, and it can.)
779
+
780
+ **A daemon that predates #1402 does not refuse these flags — it ignores them.**
781
+ `delegate` reads the keys it knows and discards the rest, so a `worker` it has
782
+ never heard of is dropped, the find runs anyway, and the answer is `sent` about
783
+ a pane nobody chose; a `gh_account` is dropped the same way and the worker
784
+ starts as whoever `gh` was last logged in as. Nothing in the reply says either
785
+ happened. So `--session` and `--gh-account` ask `delegate_candidates` first —
786
+ it landed in the same change, so serving it is proof both fields are read — and
787
+ refuse `argusd-outdated` with nothing sent when it is not served. `pharos
788
+ doctor`'s `argus-delegate` row reports the same fact before anybody hits it.
789
+
790
+ ### The GitHub account a started worker runs as
791
+
792
+ ```bash
793
+ pharos delegate --host navarch --agent claude --folder … \
794
+ --gh-account alisina-tibata --text "Fetch Azure DevOps work item #4821 …"
795
+ ```
796
+
797
+ `--gh-account` takes a **GitHub login, or the label of an account bound in
798
+ Navarch** — argusd resolves it against its own `accounts.json`, label first and
799
+ then login, case-insensitively and read fresh on every call. Two spellings
800
+ because two systems name one identity differently: Navarch knows a label a
801
+ human picked, and a caller outside Argus knows the login. The flag is held to a
802
+ login-shaped token (no spaces), so a label containing a space cannot be named
803
+ through it — pass the login, which always resolves.
804
+
805
+ Three rules, all argusd's:
806
+
807
+ - **A worker it STARTS runs as that account.** An account it does not know is
808
+ refused `gh-account-unknown`, never substituted — a worker with no binding
809
+ runs as whatever `gh` was last logged in as, and a hand-off that commits
810
+ under the wrong identity is the failure the resolution exists to prevent. The
811
+ refusal lists every label and login the core holds.
812
+ - **A prompt that lands in a worker already running leaves its account alone**,
813
+ and says so in the reply: a session already on the project is already running
814
+ as somebody, and re-checking would refuse hand-offs that are perfectly fine.
815
+ - **There is no fallback**, in either direction.
816
+
817
+ On `terminal`, `vscode` and `vscode-insiders` the flag is accepted, ignored,
818
+ and said to be — those hosts hand the prompt to a session in an app that is
819
+ already running as whoever this machine is logged in as, and only Navarch
820
+ starts a session on your behalf. An empty `--gh-account ""` is a usage error
821
+ rather than "no account asked for": a caller whose variable came out empty must
822
+ not silently get the wrong identity.
706
823
 
707
824
  ### Picking one of several
708
825
 
@@ -717,8 +834,9 @@ malformed id is a usage error rather than `session-gone`, because the latter is
717
834
  a fact about the machine and would tell somebody their session had died when it
718
835
  never existed.
719
836
 
720
- On the VS Code hosts the pick travels in the URI as `session=<pid>`, and the
721
- bridge honours it from **0.2.0**. An older bridge refuses any query key it
837
+ On Navarch the pick is a worker UUID and travels as the op's own `worker` see
838
+ *Picking a worker* above. On the VS Code hosts it travels in the URI as
839
+ `session=<pid>`, and the bridge honours it — from **0.2.0**. An older bridge refuses any query key it
722
840
  does not know, so it would reject the whole URI and send nothing; `--session`
723
841
  against one is therefore refused `bridge-not-installed` here rather than
724
842
  reported as sent, and `pharos doctor` marks such a bridge not ok so the wizard
@@ -729,12 +847,16 @@ detail }` — `pending` only on `navarch`, where it carries a `delegation` block
729
847
  A refusal is `{ ok: false, reason, detail }` on stdout with exit 2, `reason`
730
848
  being one of `host-not-installed`, `agent-not-installed`,
731
849
  `bridge-not-installed`, `automation-denied`, `folder-missing`, `unsupported`,
732
- `session-gone`, `session-not-targetable`, plus the Argus socket's nine tabulated
733
- above — stable ids, because the app renders facts. `pharos doctor` carries the rows
734
- behind them: `terminal`, `vscode`, `vscode-insiders`, `navarch`, `claude`,
735
- `codex`, per installed VS Code flavour `<host>-claude-ext`, `<host>-codex-ext`,
850
+ `session-gone`, plus the Argus socket's ten tabulated above — stable ids,
851
+ because the app renders facts. **`session-not-targetable` is no longer one of
852
+ them**: it meant the `delegate` op could not name a worker, which stopped being
853
+ true with argus #1402, and a dead id in a closed set is a fix the app builds
854
+ for a state that cannot happen. `pharos doctor` carries the rows behind them:
855
+ `terminal`, `vscode`, `vscode-insiders`, `navarch`, `claude`, `codex`, per
856
+ installed VS Code flavour `<host>-claude-ext`, `<host>-codex-ext`,
736
857
  `<host>-bridge`, and — only where Navarch is installed — `argus-delegate`, which
737
- asks the **running** `argusd` whether it serves the verb. That last one is a row
858
+ asks the **running** `argusd` whether it serves the verb, and then whether it
859
+ also reads a target worker and a GitHub account. That last one is a row
738
860
  of its own because argusd outlives the app: a current Navarch in `/Applications`
739
861
  and a daemon from last week are an ordinary state, and the daemon is what
740
862
  decides. It offers no `install`, because the fix is a reload that ends every live
@@ -52,6 +52,24 @@ export interface CapabilityOutcome {
52
52
  * reading the sentence. Absent on every other capability.
53
53
  */
54
54
  flavours?: BridgeInstallOutcome["flavours"];
55
+ /**
56
+ * `skill` only, and the same idea one layer over: one entry per coding agent
57
+ * found on this machine, so a wizard can say *Claude Code got it, Codex did
58
+ * not* rather than parsing a sentence for it (#1399). Absent on every other
59
+ * capability; an empty array when no agent was found at all.
60
+ */
61
+ agents?: SkillAgentOutcome[];
62
+ }
63
+ /** The agents that can install the skill. Both read the same marketplace. */
64
+ export type SkillAgent = "claude" | "codex";
65
+ export interface SkillAgentOutcome {
66
+ agent: SkillAgent;
67
+ /** How it is spelled to a person, matching the `doctor` row's name. */
68
+ name: string;
69
+ ok: boolean;
70
+ /** The last command run for this agent, so a transcript shows what happened. */
71
+ command: string | null;
72
+ detail: string;
55
73
  }
56
74
  export declare const INSTALLABLE: Capability[];
57
75
  /** Install the named capabilities, one at a time, reporting each. */
@@ -61,4 +79,13 @@ export declare function installCapabilities(ids: readonly string[], options?: {
61
79
  onCommand?: (command: string) => void;
62
80
  onProgress?: (fraction: number, stage: string) => void;
63
81
  }): Promise<CapabilityOutcome[]>;
82
+ /** The marketplace this skill ships from. Public, and ours. */
83
+ export declare const MARKETPLACE = "ASNNetworks/floh-skills";
84
+ /**
85
+ * What both agents call it once it is added — the repository name, not the
86
+ * `owner/repo` source. `codex plugin list --marketplace <name>` and the
87
+ * `@<name>` half of {@link PLUGIN} are the same string, so it is spelled once.
88
+ */
89
+ export declare const MARKETPLACE_NAME = "floh-skills";
90
+ export declare const PLUGIN = "pharos@floh-skills";
64
91
  //# sourceMappingURL=capabilities.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAKA,OAAO,EAAiB,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAI9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,MAAM,WAAW,UAAU;IACzB,mEAAmE;IACnE,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,OAAO,CAAC;IACZ,qEAAqE;IACrE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,QAAQ,CAAC,EAAE,oBAAoB,CAAC,UAAU,CAAC,CAAC;CAC7C;AA0CD,eAAO,MAAM,WAAW,EAAE,UAAU,EAoDnC,CAAC;AAEF,qEAAqE;AACrE,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,SAAS,MAAM,EAAE,EACtB,OAAO,GAAE;IACP,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,gEAAgE;IAChE,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnD,GACL,OAAO,CAAC,iBAAiB,EAAE,CAAC,CA2B9B"}
1
+ {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAKA,OAAO,EAAiB,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAI9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,MAAM,WAAW,UAAU;IACzB,mEAAmE;IACnE,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,OAAO,CAAC;IACZ,qEAAqE;IACrE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,QAAQ,CAAC,EAAE,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAC5C;;;;;OAKG;IACH,MAAM,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AAED,6EAA6E;AAC7E,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE5C,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,UAAU,CAAC;IAClB,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,OAAO,CAAC;IACZ,gFAAgF;IAChF,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AA0CD,eAAO,MAAM,WAAW,EAAE,UAAU,EAwDnC,CAAC;AAEF,qEAAqE;AACrE,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,SAAS,MAAM,EAAE,EACtB,OAAO,GAAE;IACP,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,gEAAgE;IAChE,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnD,GACL,OAAO,CAAC,iBAAiB,EAAE,CAAC,CA2B9B;AAaD,+DAA+D;AAC/D,eAAO,MAAM,WAAW,4BAA4B,CAAC;AACrD;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAC9C,eAAO,MAAM,MAAM,uBAA+B,CAAC"}
@@ -44,11 +44,15 @@ const PACKAGES = {
44
44
  },
45
45
  };
46
46
  export const INSTALLABLE = [
47
+ // **One capability, every agent on the machine** (#1399). `doctor` reports it
48
+ // per agent — `skill`, `skill-codex` — and this is the single install both
49
+ // rows name, exactly like the two VS Code bridge rows below.
47
50
  {
48
51
  id: "skill",
49
52
  name: "The pharos skill",
50
- unlocks: "Claude Code learns this tool exists. Without it a session does not know to reach for "
51
- + "pharos at all, which is the difference between a CLI you installed and one that gets used.",
53
+ unlocks: "Claude Code and Codex learn this tool exists whichever of them is on this machine, and "
54
+ + "both when both are. Without it a session does not know to reach for pharos at all, "
55
+ + "which is the difference between a CLI you installed and one that gets used.",
52
56
  size: "a few hundred KB",
53
57
  },
54
58
  {
@@ -130,10 +134,64 @@ function convertOutcome(result) {
130
134
  };
131
135
  }
132
136
  /** The marketplace this skill ships from. Public, and ours. */
133
- const MARKETPLACE = "ASNNetworks/floh-skills";
134
- const PLUGIN = "pharos@floh-skills";
137
+ export const MARKETPLACE = "ASNNetworks/floh-skills";
135
138
  /**
136
- * Install the skill as a Claude Code PLUGIN, from the marketplace.
139
+ * What both agents call it once it is added — the repository name, not the
140
+ * `owner/repo` source. `codex plugin list --marketplace <name>` and the
141
+ * `@<name>` half of {@link PLUGIN} are the same string, so it is spelled once.
142
+ */
143
+ export const MARKETPLACE_NAME = "floh-skills";
144
+ export const PLUGIN = `pharos@${MARKETPLACE_NAME}`;
145
+ /**
146
+ * What each agent has to be told, in order, to install the skill from the
147
+ * marketplace.
148
+ *
149
+ * **Both agents read the same `.claude-plugin/marketplace.json`** — Codex
150
+ * generates its own `.codex-plugin/plugin.json` scoped to `./skills/pharos`
151
+ * from it — so this is one skill published once, reaching whichever agents are
152
+ * here. Every command below is idempotent and exits 0 when already done, which
153
+ * is what makes them safe in a wizard somebody runs twice (measured: Codex
154
+ * answers `alreadyAdded: true`).
155
+ *
156
+ * **Codex has a third step and it is the one that matters.** `codex plugin
157
+ * marketplace add` is a no-op when the marketplace is already configured, and
158
+ * it does NOT refresh the git snapshot it fetched the first time — so `plugin
159
+ * add` straight after it installs whatever was published back then. That is
160
+ * this repository's published-is-not-delivered trap in a new place, and
161
+ * `marketplace upgrade` is what closes it. It is `optional` because a refresh
162
+ * needs the network and a stale skill beats no skill: a failure there is
163
+ * reported and the install continues.
164
+ */
165
+ const SKILL_AGENTS = [
166
+ {
167
+ agent: "claude",
168
+ name: "Claude Code",
169
+ binary: "claude",
170
+ steps: [
171
+ { args: ["plugin", "marketplace", "add", MARKETPLACE] },
172
+ { args: ["plugin", "install", PLUGIN] },
173
+ ],
174
+ update: `\`claude plugin update ${PLUGIN}\``,
175
+ },
176
+ {
177
+ agent: "codex",
178
+ name: "Codex",
179
+ binary: "codex",
180
+ steps: [
181
+ { args: ["plugin", "marketplace", "add", MARKETPLACE] },
182
+ {
183
+ args: ["plugin", "marketplace", "upgrade", MARKETPLACE_NAME],
184
+ optional: true,
185
+ whenSkipped: "the marketplace snapshot could not be refreshed, so what was installed may be "
186
+ + "behind what is published",
187
+ },
188
+ { args: ["plugin", "add", PLUGIN] },
189
+ ],
190
+ update: `\`codex plugin marketplace upgrade ${MARKETPLACE_NAME}\` then \`codex plugin add ${PLUGIN}\``,
191
+ },
192
+ ];
193
+ /**
194
+ * Install the skill as a PLUGIN, into every coding agent on this machine.
137
195
  *
138
196
  * ## Why this is not `setup --skill`
139
197
  *
@@ -142,13 +200,18 @@ const PLUGIN = "pharos@floh-skills";
142
200
  * to floh-skills silently stops arriving. That flag is for a machine that
143
201
  * cannot use plugins, and it stays that way.
144
202
  *
145
- * This does what the printed hint always told people to do by hand:
203
+ * This does what the printed hint always told people to do by hand, now for
204
+ * both agents rather than one — see {@link SKILL_AGENTS}.
146
205
  *
147
- * claude plugin marketplace add ASNNetworks/floh-skills
148
- * claude plugin install pharos@floh-skills
206
+ * ## Both when both are found (#1399)
149
207
  *
150
- * Both are idempotent and exit 0 when already done, which is what makes them
151
- * safe to run from a wizard somebody may run twice.
208
+ * Found the day @user asked whether Codex could reach pharos on this machine:
209
+ * the CLI was on the login PATH, the skill was installed for Claude Code, and
210
+ * Codex had the marketplace configured and had never installed pharos from it.
211
+ * Nothing on the machine reported that, and the fix was two commands typed by
212
+ * hand. So this installs for every agent it finds, and reports **per agent**
213
+ * which got it: a half-install that reads as done is the failure this whole
214
+ * file is arranged against.
152
215
  *
153
216
  * ## Why it matters more than it looks
154
217
  *
@@ -157,53 +220,93 @@ const PLUGIN = "pharos@floh-skills";
157
220
  * an agent knows to use it before being told.
158
221
  */
159
222
  async function installSkillPlugin(options) {
160
- // Not every consumer is Claude Code. codex, antigravity and a plain shell all
161
- // use this CLI, and none of them has a plugin system so an absent `claude`
162
- // is a legitimate state to report, not a failure to install something.
163
- try {
164
- await run("claude", ["--version"], { timeout: 15_000 });
223
+ // **Probed against the env this was GIVEN, not `process.env`** the doctor's
224
+ // rule, and it is how the macOS app hands over a login-shell PATH. A GUI
225
+ // -launched app inherits roughly `/usr/bin:/bin`, so probing the wrong
226
+ // environment concludes "no agents here" on a machine running both.
227
+ const env = options.env ?? process.env;
228
+ const present = [];
229
+ for (const agent of SKILL_AGENTS) {
230
+ try {
231
+ await run(agent.binary, ["--version"], { timeout: 15_000, env });
232
+ present.push(agent);
233
+ }
234
+ catch {
235
+ // Not here. A legitimate state, not a failure to install something:
236
+ // antigravity and a plain shell both use this CLI and have no plugin
237
+ // system at all.
238
+ }
165
239
  }
166
- catch {
240
+ if (present.length === 0) {
167
241
  return {
168
242
  id: "skill",
169
243
  ok: false,
170
244
  command: null,
171
- detail: "The `claude` command is not on PATH, so there is no plugin system to install into. "
245
+ agents: [],
246
+ detail: "Neither `claude` nor `codex` is on PATH, so there is no plugin system to install into. "
172
247
  + "If you are using a different agent, point it at the skill in the floh-skills "
173
248
  + "repository, or run `pharos setup --skill` for a personal copy.",
174
249
  };
175
250
  }
176
- const steps = [
177
- ["marketplace", ["plugin", "marketplace", "add", MARKETPLACE]],
178
- ["install", ["plugin", "install", PLUGIN]],
179
- ];
180
- for (const [, args] of steps) {
181
- const command = `claude ${args.join(" ")}`;
182
- options.onCommand?.(command);
251
+ const agents = [];
252
+ for (const agent of present) {
253
+ agents.push(await installSkillFor(agent, env, options.onCommand));
254
+ }
255
+ const installed = agents.filter((outcome) => outcome.ok);
256
+ const summary = agents.map((outcome) => `${outcome.name}: ${outcome.detail}`).join(" ");
257
+ return {
258
+ id: "skill",
259
+ // Every agent found, or it is not done. A tick box that goes green while
260
+ // one of two agents still has no idea pharos exists is the exact shape of
261
+ // the bug this replaces.
262
+ ok: agents.every((outcome) => outcome.ok),
263
+ command: agents.at(-1)?.command ?? null,
264
+ agents,
265
+ // **Said out loud, because it is the step people miss.** Installing the
266
+ // plugin does not load it into a session already running, and publishing a
267
+ // new version does not update an installed one. A skill silently seven
268
+ // versions behind is how a correction that shipped weeks ago keeps not
269
+ // arriving — and the command that picks it up is different per agent.
270
+ detail: installed.length === 0
271
+ ? summary
272
+ : `${summary} Restart the agent to load it. Later, publishing a new skill does NOT `
273
+ + "update an installed copy; what picks up a correction is "
274
+ + `${installed.map((outcome) => `${updateCommand(outcome.agent)} for ${outcome.name}`).join(", ")}.`,
275
+ };
276
+ }
277
+ /** What picks up a published correction for one agent. Never the same string. */
278
+ function updateCommand(agent) {
279
+ return SKILL_AGENTS.find((candidate) => candidate.agent === agent).update;
280
+ }
281
+ /** One agent's steps, stopping at the first required one that fails. */
282
+ async function installSkillFor(agent, env, onCommand) {
283
+ const base = { agent: agent.agent, name: agent.name };
284
+ const skipped = [];
285
+ let last = null;
286
+ for (const step of agent.steps) {
287
+ const command = `${agent.binary} ${step.args.join(" ")}`;
288
+ onCommand?.(command);
183
289
  try {
184
- await run("claude", args, { timeout: 5 * 60_000, maxBuffer: 4 * 1024 * 1024 });
290
+ await run(agent.binary, step.args, {
291
+ timeout: 5 * 60_000,
292
+ maxBuffer: 4 * 1024 * 1024,
293
+ env,
294
+ });
295
+ last = command;
185
296
  }
186
297
  catch (error) {
187
- return {
188
- id: "skill",
189
- ok: false,
190
- command,
191
- detail: `That command failed: ${error instanceof Error ? error.message : String(error)}`,
192
- };
298
+ const failure = `\`${command}\` failed: ${error instanceof Error ? error.message : String(error)}`;
299
+ if (step.optional !== true) {
300
+ return { ...base, ok: false, command, detail: failure };
301
+ }
302
+ skipped.push(`${failure} ${step.whenSkipped ?? "carrying on"}`);
193
303
  }
194
304
  }
195
305
  return {
196
- id: "skill",
306
+ ...base,
197
307
  ok: true,
198
- command: `claude ${steps[1][1].join(" ")}`,
199
- // **Said out loud, because it is the step people miss.** Installing the
200
- // plugin does not load it into a session already running, and publishing a
201
- // new version does not update an installed one — `claude plugin update`
202
- // does. A skill silently seven versions behind is how a correction that
203
- // shipped weeks ago keeps not arriving.
204
- detail: "Installed from the marketplace. Restart Claude Code to load it. Later, "
205
- + "`claude plugin update pharos@floh-skills` picks up published corrections — "
206
- + "publishing does not update an installed copy on its own.",
308
+ command: last,
309
+ detail: `installed from the marketplace.${skipped.length === 0 ? "" : ` ${skipped.join(" ")}`}`,
207
310
  };
208
311
  }
209
312
  async function installPackage(id, options) {
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAiC5D,OAAO,EAKL,KAAK,QAAQ,EAEd,MAAM,aAAa,CAAC;AAGrB,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;AAsBpE;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ,6TAOX,CAAC;AA+lBX,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,gDAAgD;IAChD,SAAS,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;IAChD,+EAA+E;IAC/E,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC/B,uDAAuD;IACvD,MAAM,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;CACnC;AAED,wBAAsB,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAOhE;AAsjBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,aAAa,GAAG,MAAM,EAAE,CA+BrF"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAiC5D,OAAO,EAKL,KAAK,QAAQ,EAEd,MAAM,aAAa,CAAC;AAGrB,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;AAsBpE;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ,6TAOX,CAAC;AAsoBX,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,gDAAgD;IAChD,SAAS,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;IAChD,+EAA+E;IAC/E,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC/B,uDAAuD;IACvD,MAAM,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;CACnC;AAED,wBAAsB,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAOhE;AA+jBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,aAAa,GAAG,MAAM,EAAE,CA+BrF"}