@floh-solutions/pharos-cli 0.31.1 → 0.33.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.
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
@@ -557,6 +585,7 @@ pharos delegate --host vscode-insiders --agent claude \
557
585
  pharos delegate --host terminal --agent codex --folder … --text … --dry-run
558
586
  pharos delegate --list --host terminal --agent claude --folder … # what is running
559
587
  pharos delegate --session 6844 --host terminal --agent claude --folder … --text …
588
+ pharos delegate --host navarch --agent claude --folder … --text … # a worker in Navarch
560
589
  ```
561
590
 
562
591
  Pharos.app's *Ask Agent* is a GUI over this verb, the way its Command line
@@ -571,7 +600,7 @@ starts one with the prompt as its first message.
571
600
  |---|---|
572
601
  | `terminal` | Apple Events: `do script … in` the tab whose tty the session holds, else a new window. macOS asks once whether the calling app may control Terminal. |
573
602
  | `vscode`, `vscode-insiders` | a `vscode[-insiders]://floh-solutions.pharos/delegate?…` URI handled by the Pharos bridge extension — `pharos setup --install vscode-bridge`. Nothing else can put a prompt into VS Code from outside; the Claude Code and Codex extensions take none. |
574
- | `navarch` | refused `unsupported`, `--list` included, until this CLI speaks the Argus socket op (#1393). The op itself exists (#1378); a Navarch row's `id` and `name` come from `fleet_status` over that socket, so listing pids instead would hand back ids `--session` could never accept. |
603
+ | `navarch` | one JSON line on `argusd`'s board socket `{"op":"delegate"}`, the verb that needs no board todo. The daemon finds a worker on the folder, Navarch starts one if there is none, waits for a screen that can take text, and types. See below: it is the one route that can answer `pending`. |
575
604
 
576
605
  ### Several sessions on one folder
577
606
 
@@ -599,6 +628,179 @@ refuse a list — notably **not** `bridge-not-installed`, because listing is
599
628
  `claude agents --json` and `ps` and reads the same on a VS Code with no
600
629
  extensions at all. `--dry-run` carries the same array.
601
630
 
631
+ ### Navarch, over `argusd`'s own socket
632
+
633
+ ```bash
634
+ pharos delegate --host navarch --agent claude --folder ~/Developer/widgets --text "Fetch …"
635
+ pharos delegate --host navarch --agent claude --folder … --list
636
+ pharos delegate --host navarch --agent claude --folder … --session 1958E897-… --text "…"
637
+ pharos delegate --host navarch --agent claude --folder … --gh-account alisina-tibata --text "…"
638
+ pharos delegate --host navarch --agent claude --folder … --status 89933CD2-…
639
+ ```
640
+
641
+ In Navarch neither half of the job belongs to the application alone. A worker's
642
+ terminal is held by **`argusd`**, a daemon that outlives the app; only the app
643
+ can watch a screen settle before typing into it. So the route is one JSON line
644
+ on `~/.config/argus/argus-board.sock` — `{"op":"delegate"}` — and the two halves
645
+ split where the knowledge is: the daemon validates and finds a worker on the
646
+ folder, Navarch starts one if there is none, waits for an input box and types.
647
+
648
+ It is also the one route that needs no board todo, which every other operator
649
+ action in Argus does. That is the whole reason the verb exists: the work item
650
+ *is* the todo, and it lives in Azure DevOps. The hand-off is recorded on a
651
+ hidden scratch pad instead, reported as `delegation.todo`.
652
+
653
+ **`pending` is a successful answer, and a `--status` read is the other half of
654
+ it.** On the default autonomy dial the first hand-off on a machine raises an
655
+ approval card in Navarch, and the daemon answers the moment it goes up rather
656
+ than holding a CLI on somebody who is in another app:
657
+
658
+ ```json
659
+ { "ok": true, "action": "pending", "host": "navarch", "session": null,
660
+ "detail": "Navarch is asking you to approve this hand-off …",
661
+ "delegation": { "request": "270005F8-…", "worker": null, "name": null,
662
+ "created": false, "todo": 2 } }
663
+ ```
664
+
665
+ `worker` and `name` are `null` rather than `""` because nothing has been typed
666
+ yet — "we have not got a worker" and "the worker is the empty string" are
667
+ different facts. Pass `delegation.request` back as `--status <request>` to turn
668
+ that into `sent`, `launched`, `declined` or `delivery-failed`; argus keeps the
669
+ row for an hour, sized for a person at lunch rather than for a poll.
670
+
671
+ The socket adds ten `reason` ids, and they are separate because **each names a
672
+ different fix**:
673
+
674
+ | `reason` | what is true | the fix |
675
+ |---|---|---|
676
+ | `argusd-not-running` | nothing is listening on the socket | open Navarch; argusd comes with it |
677
+ | `argusd-outdated` | argusd is running and predates the verb | reload it — deliberately, it ends every live session |
678
+ | `navarch-not-running` | argusd is up, the app is not | open Navarch |
679
+ | `unsupported` | Navarch is running and is an older build | update it (`make-app.sh --install`) |
680
+ | `declined` | a person said no at the card | nothing to fix |
681
+ | `delivery-failed` | Navarch reached the worker and nothing landed — a trust dialog, a blank screen | look at the pane, then delegate again |
682
+ | `rate-limited` | twelve operator writes a minute, and this was the thirteenth | wait a minute |
683
+ | `not-an-operator` | the gate refused the stamp pharos sets on every request | almost always a daemon that predates it |
684
+ | `request-unknown` | `--status` for an id this core does not hold | it aged out, or was made elsewhere |
685
+ | `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 |
686
+
687
+ `argusd-outdated` is the one to expect first, and it is not a bug: argusd
688
+ outliving the app is the feature that keeps sessions alive across a restart, so
689
+ master, the installed app and the running daemon drift independently. It is also
690
+ the one that has to be **inferred rather than read**. `reason` arrived with the
691
+ verb, so a daemon too old to serve `delegate` is too old to stamp one — and it
692
+ says three different things, two of which blame the caller:
693
+
694
+ ```
695
+ {"ok":false,"error":"unknown op 'delegate' — see argus-board help …"}
696
+ {"ok":false,"error":"delegate requires a \"todo\" (id) — the work it serves"}
697
+ ```
698
+
699
+ The second is the trap. An old daemon forwards any verb the attached app claims
700
+ it can run, and that forwarder demands the board todo this verb exists to do
701
+ without — so a correct delegation is refused for not carrying one, and a caller
702
+ that believed the message would go and add it. **The tell is the missing
703
+ `reason` key, never the prose.**
704
+
705
+ `--list` asks `delegate_candidates` — **the find, asked rather than
706
+ performed** (argus #1402). The rows are argusd's own answer to its own
707
+ question, ranked by its own rule: not exited, the right kind, local, not
708
+ holding a board mission, and **not an Argus Agent** — an operator is a claude
709
+ worker with no mission sitting in a base checkout, which is exactly the folder
710
+ a person links in Pharos, and delegating into it would hand the work item to
711
+ the thing that drives the fleet. Ties break on `starting` last and then on
712
+ ascending UUID, never on status, so two calls a second apart name the same
713
+ pane. `recommended` is the daemon's own `target`. A row's `id` is the worker
714
+ UUID, its `status` is the contract's `idle`/`busy`/`unknown` — with
715
+ **`needs_input` reported `busy`**, because a worker on a trust dialog is idle
716
+ by every measure except the one that matters.
717
+
718
+ The answer carries **`source`**, which is not a footnote:
719
+
720
+ | `source` | what the list is | what `--session` / `--gh-account` do |
721
+ |---|---|---|
722
+ | `daemon` | `delegate_candidates` — a row it offered is a row it accepts | honoured |
723
+ | `fleet_status` | this CLI's own reading, a prediction of the find | refused `argusd-outdated` |
724
+
725
+ An argusd that predates #1402 answers the read `unknown-op`, and `fleet_status`
726
+ answers on *every* generation of argusd — so the list is still worth serving,
727
+ and it is served with `source: "fleet_status"` and a sentence saying the pick
728
+ cannot be honoured against that daemon. One that predates `delegate` itself
729
+ carries no `reason` key at all, and that is `argusd-outdated`: listing workers
730
+ a send is about to refuse to touch would hand the app a menu of picks that can
731
+ only fail.
732
+
733
+ Two things the route does **not** do. It never pre-checks the agent on `PATH`:
734
+ argusd spawns the worker from the app's own login shell, and a GUI-launched
735
+ Pharos has roughly `/usr/bin:/bin`, so a check here would refuse nearly every
736
+ real call while reporting a fact about the wrong process. And it never folds a
737
+ multi-line prompt into one line — the receiving TUI submits on Enter and Navarch
738
+ owns that Enter, so several lines is a usage error rather than a rewrite nobody
739
+ proof-read.
740
+
741
+ ### Picking a worker, and the daemon that would ignore the pick
742
+
743
+ `--session <uuid>` travels as the op's `worker`, and `--session new` as
744
+ `worker: "new"` — a fresh worker even where the find would have had one. The
745
+ CLI does **not** re-check the pick before sending it: argusd validates `worker`
746
+ against the very predicate `delegate_candidates` listed from, so one rule
747
+ serves the find, the list and the validation, and a second copy here could only
748
+ disagree with it. A row the read offered is a row the send accepts.
749
+
750
+ A pick it will not take comes back as **`session-gone`**, keeping argusd's own
751
+ sentence — which names *which* of six it was: *has exited*, *is an Argus Agent*,
752
+ *is holding mission #N*, *is a codex worker, not claude*, *is on ax52, not on
753
+ this Mac*, *is in … , not in …*. That is the same fact and the same fix as a
754
+ vanished pid on Terminal, so it is the same word. (`session-not-targetable` was
755
+ this route's own refusal and is **gone from the closed set** — it meant the op
756
+ could not express a target at all, and it can.)
757
+
758
+ **A daemon that predates #1402 does not refuse these flags — it ignores them.**
759
+ `delegate` reads the keys it knows and discards the rest, so a `worker` it has
760
+ never heard of is dropped, the find runs anyway, and the answer is `sent` about
761
+ a pane nobody chose; a `gh_account` is dropped the same way and the worker
762
+ starts as whoever `gh` was last logged in as. Nothing in the reply says either
763
+ happened. So `--session` and `--gh-account` ask `delegate_candidates` first —
764
+ it landed in the same change, so serving it is proof both fields are read — and
765
+ refuse `argusd-outdated` with nothing sent when it is not served. `pharos
766
+ doctor`'s `argus-delegate` row reports the same fact before anybody hits it.
767
+
768
+ ### The GitHub account a started worker runs as
769
+
770
+ ```bash
771
+ pharos delegate --host navarch --agent claude --folder … \
772
+ --gh-account alisina-tibata --text "Fetch Azure DevOps work item #4821 …"
773
+ ```
774
+
775
+ `--gh-account` takes a **GitHub login, or the label of an account bound in
776
+ Navarch** — argusd resolves it against its own `accounts.json`, label first and
777
+ then login, case-insensitively and read fresh on every call. Two spellings
778
+ because two systems name one identity differently: Navarch knows a label a
779
+ human picked, and a caller outside Argus knows the login. The flag is held to a
780
+ login-shaped token (no spaces), so a label containing a space cannot be named
781
+ through it — pass the login, which always resolves.
782
+
783
+ Three rules, all argusd's:
784
+
785
+ - **A worker it STARTS runs as that account.** An account it does not know is
786
+ refused `gh-account-unknown`, never substituted — a worker with no binding
787
+ runs as whatever `gh` was last logged in as, and a hand-off that commits
788
+ under the wrong identity is the failure the resolution exists to prevent. The
789
+ refusal lists every label and login the core holds.
790
+ - **A prompt that lands in a worker already running leaves its account alone**,
791
+ and says so in the reply: a session already on the project is already running
792
+ as somebody, and re-checking would refuse hand-offs that are perfectly fine.
793
+ - **There is no fallback**, in either direction.
794
+
795
+ On `terminal`, `vscode` and `vscode-insiders` the flag is accepted, ignored,
796
+ and said to be — those hosts hand the prompt to a session in an app that is
797
+ already running as whoever this machine is logged in as, and only Navarch
798
+ starts a session on your behalf. An empty `--gh-account ""` is a usage error
799
+ rather than "no account asked for": a caller whose variable came out empty must
800
+ not silently get the wrong identity.
801
+
802
+ ### Picking one of several
803
+
602
804
  `--session <id>` delivers to exactly that session and **never falls back**: a
603
805
  pick that no longer matches is `session-gone`, not a new window. That covers
604
806
  the session exiting between the list and the send, and a Terminal tab closed
@@ -610,21 +812,33 @@ malformed id is a usage error rather than `session-gone`, because the latter is
610
812
  a fact about the machine and would tell somebody their session had died when it
611
813
  never existed.
612
814
 
613
- On the VS Code hosts the pick travels in the URI as `session=<pid>`, and the
614
- bridge honours it from **0.2.0**. An older bridge refuses any query key it
815
+ On Navarch the pick is a worker UUID and travels as the op's own `worker` see
816
+ *Picking a worker* above. On the VS Code hosts it travels in the URI as
817
+ `session=<pid>`, and the bridge honours it — from **0.2.0**. An older bridge refuses any query key it
615
818
  does not know, so it would reject the whole URI and send nothing; `--session`
616
819
  against one is therefore refused `bridge-not-installed` here rather than
617
820
  reported as sent, and `pharos doctor` marks such a bridge not ok so the wizard
618
821
  offers the upgrade. Delegating without `--session` works on either.
619
822
 
620
- Success is `{ ok: true, action: "sent" | "launched", session, detail }`. A
621
- refusal is `{ ok: false, reason, detail }` on stdout with exit 2, `reason`
823
+ Success is `{ ok: true, action: "sent" | "launched" | "pending", session,
824
+ detail }` `pending` only on `navarch`, where it carries a `delegation` block.
825
+ A refusal is `{ ok: false, reason, detail }` on stdout with exit 2, `reason`
622
826
  being one of `host-not-installed`, `agent-not-installed`,
623
827
  `bridge-not-installed`, `automation-denied`, `folder-missing`, `unsupported`,
624
- `session-gone` stable ids, because the app renders facts. `pharos doctor` carries the rows
625
- behind them: `terminal`, `vscode`, `vscode-insiders`, `navarch`, `claude`,
626
- `codex`, and per installed VS Code flavour `<host>-claude-ext`,
627
- `<host>-codex-ext`, `<host>-bridge`. The agents are reported, never installed:
828
+ `session-gone`, plus the Argus socket's ten tabulated above stable ids,
829
+ because the app renders facts. **`session-not-targetable` is no longer one of
830
+ them**: it meant the `delegate` op could not name a worker, which stopped being
831
+ true with argus #1402, and a dead id in a closed set is a fix the app builds
832
+ for a state that cannot happen. `pharos doctor` carries the rows behind them:
833
+ `terminal`, `vscode`, `vscode-insiders`, `navarch`, `claude`, `codex`, per
834
+ installed VS Code flavour `<host>-claude-ext`, `<host>-codex-ext`,
835
+ `<host>-bridge`, and — only where Navarch is installed — `argus-delegate`, which
836
+ asks the **running** `argusd` whether it serves the verb, and then whether it
837
+ also reads a target worker and a GitHub account. That last one is a row
838
+ of its own because argusd outlives the app: a current Navarch in `/Applications`
839
+ and a daemon from last week are an ordinary state, and the daemon is what
840
+ decides. It offers no `install`, because the fix is a reload that ends every live
841
+ worker session and is a person's to time. The agents are reported, never installed:
628
842
  a coding agent is the person's login.
629
843
 
630
844
  ## Requirements
@@ -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":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,cAAc,EAA6B,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,aAAa,EAA6B,MAAM,oBAAoB,CAAC;AAE9E,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AA+EhC;;;;;;;GAOG;AACH,MAAM,QAAQ,GAA2E;IACvF,WAAW,EAAE;QACX,4EAA4E;QAC5E,2EAA2E;QAC3E,yEAAyE;QACzE,oCAAoC;QACpC,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,aAAa,CAAC;QAC1C,GAAG,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,CAAC;QACrC,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,mCAAmC,EAAE,IAAI,CAAC;KACvE;IACD,OAAO,EAAE;QACP,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;QAC5B,GAAG,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,eAAe,CAAC;QACvC,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,wBAAwB,EAAE,IAAI,CAAC;KAC5D;IACD,yEAAyE;IACzE,2EAA2E;IAC3E,8EAA8E;IAC9E,4EAA4E;IAC5E,EAAE;IACF,wEAAwE;IACxE,+EAA+E;IAC/E,4EAA4E;IAC5E,8EAA8E;IAC9E,8EAA8E;IAC9E,iBAAiB;IACjB,EAAE,EAAE;QACF,IAAI,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC;QACvB,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC;KAChD;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAiB;IACvC,8EAA8E;IAC9E,2EAA2E;IAC3E,6DAA6D;IAC7D;QACE,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,kBAAkB;QACxB,OAAO,EACL,2FAA2F;cACzF,qFAAqF;cACrF,6EAA6E;QACjF,IAAI,EAAE,kBAAkB;KACzB;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE,sDAAsD;QAC/D,IAAI,EAAE,iBAAiB;KACxB;IACD;QACE,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,YAAY;QAClB,OAAO,EACL,4FAA4F;cAC1F,qFAAqF;cACrF,iCAAiC;QACrC,IAAI,EAAE,QAAQ;KACf;IACD;QACE,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,aAAa;QACnB,OAAO,EACL,sFAAsF;cACpF,gCAAgC;QACpC,IAAI,EAAE,SAAS;KAChB;IACD;QACE,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,2DAA2D;QACpE,IAAI,EAAE,QAAQ;KACf;IACD,0EAA0E;IAC1E,2EAA2E;IAC3E,oEAAoE;IACpE,uEAAuE;IACvE,kEAAkE;IAClE;QACE,EAAE,EAAE,eAAe;QACnB,IAAI,EAAE,+BAA+B;QACrC,OAAO,EACL,gGAAgG;cAC9F,yFAAyF;cACzF,yCAAyC;QAC7C,IAAI,EAAE,mDAAmD;KAC1D;CACF,CAAC;AAEF,qEAAqE;AACrE,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,GAAsB,EACtB,UAKI,EAAE;IAEN,MAAM,QAAQ,GAAwB,EAAE,CAAC;IAEzC,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,IAAI,EAAE,KAAK,gBAAgB,EAAE,CAAC;YAC5B,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,cAAc,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YACpE,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;YACnB,QAAQ,CAAC,IAAI,CAAC,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;YACjD,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,eAAe,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;YAC5C,QAAQ,CAAC,IAAI,CAAC;gBACZ,EAAE;gBACF,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,MAAM,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,cAAc,CAAC,MAA4B;IAClD,OAAO;QACL,EAAE,EAAE,gBAAgB;QACpB,EAAE,EAAE,MAAM,CAAC,SAAS;QACpB,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,MAAM,CAAC,SAAS;YACtB,CAAC,CAAC,aAAa,MAAM,CAAC,OAAO,OAAO,MAAM,CAAC,IAAI,GAAG;YAClD,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,gBAAgB,CAAC;KACxC,CAAC;AACJ,CAAC;AAED,+DAA+D;AAC/D,MAAM,CAAC,MAAM,WAAW,GAAG,yBAAyB,CAAC;AACrD;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAAC;AAC9C,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,gBAAgB,EAAE,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,YAAY,GAQZ;IACJ;QACE,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE;YACvD,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE;SACxC;QACD,MAAM,EAAE,0BAA0B,MAAM,IAAI;KAC7C;IACD;QACE,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,OAAO;QACf,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE;YACvD;gBACE,IAAI,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,gBAAgB,CAAC;gBAC5D,QAAQ,EAAE,IAAI;gBACd,WAAW,EACT,gFAAgF;sBAC9E,0BAA0B;aAC/B;YACD,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE;SACpC;QACD,MAAM,EACJ,sCAAsC,gBAAgB,8BAA8B,MAAM,IAAI;KACjG;CACF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,KAAK,UAAU,kBAAkB,CAC/B,OAA2E;IAE3E,8EAA8E;IAC9E,yEAAyE;IACzE,uEAAuE;IACvE,oEAAoE;IACpE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACvC,MAAM,OAAO,GAAwB,EAAE,CAAC;IACxC,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACjE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACP,oEAAoE;YACpE,qEAAqE;YACrE,iBAAiB;QACnB,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,EAAE,EAAE,OAAO;YACX,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,EAAE;YACV,MAAM,EACJ,yFAAyF;kBACvF,+EAA+E;kBAC/E,gEAAgE;SACrE,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAwB,EAAE,CAAC;IACvC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,MAAM,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAExF,OAAO;QACL,EAAE,EAAE,OAAO;QACX,yEAAyE;QACzE,0EAA0E;QAC1E,yBAAyB;QACzB,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;QACzC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,IAAI;QACvC,MAAM;QACN,wEAAwE;QACxE,2EAA2E;QAC3E,uEAAuE;QACvE,uEAAuE;QACvE,sEAAsE;QACtE,MAAM,EACJ,SAAS,CAAC,MAAM,KAAK,CAAC;YACpB,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,GAAG,OAAO,wEAAwE;kBAChF,0DAA0D;kBAC1D,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;KAC3G,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,SAAS,aAAa,CAAC,KAAiB;IACtC,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,KAAK,KAAK,CAAE,CAAC,MAAM,CAAC;AAC7E,CAAC;AAED,wEAAwE;AACxE,KAAK,UAAU,eAAe,CAC5B,KAAoC,EACpC,GAAsB,EACtB,SAAkD;IAElD,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;IACtD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,IAAI,GAAkB,IAAI,CAAC;IAE/B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACzD,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE;gBACjC,OAAO,EAAE,CAAC,GAAG,MAAM;gBACnB,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;gBAC1B,GAAG;aACJ,CAAC,CAAC;YACH,IAAI,GAAG,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,OAAO,cAAc,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACnG,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBAC3B,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YAC1D,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,MAAM,IAAI,CAAC,WAAW,IAAI,aAAa,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,OAAO;QACL,GAAG,IAAI;QACP,EAAE,EAAE,IAAI;QACR,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,kCAAkC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;KAChG,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,EAAU,EACV,OAA2E;IAE3E,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC1B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,sCAAsC,EAAE,IAAI,EAAE,CAAC;IAChG,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,cAAc,EAAE,CAAC;IACvC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO;YACL,EAAE;YACF,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,IAAI;YACb,MAAM,EACJ,QAAQ,EAAE,KAAK,QAAQ;gBACrB,CAAC,CAAC,kFAAkF;sBAChF,0EAA0E;sBAC1E,4CAA4C;gBAChD,CAAC,CAAC,wEAAwE;SAC/E,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,sBAAsB,EAAE,GAAG,EAAE,CAAC;IACjG,CAAC;IAED,8EAA8E;IAC9E,sEAAsE;IACtE,oDAAoD;IACpD,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACjF,OAAO,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC;IAE7B,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;YAC3F,mEAAmE;YACnE,oEAAoE;YACpE,kDAAkD;YAClD,OAAO,EAAE,EAAE,GAAG,MAAM;YACpB,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;YAC1B,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;SAC3D,CAAC,CAAC;QACH,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,EAAE;YACF,EAAE,EAAE,KAAK;YACT,OAAO;YACP,MAAM,EAAE,wBAAwB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;SACzF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,sDAAsD;AACtD,KAAK,UAAU,cAAc;IAC3B,MAAM,UAAU,GACd,QAAQ,EAAE,KAAK,QAAQ;QACrB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QACpC,CAAC,CAAC,QAAQ,EAAE,KAAK,OAAO;YACtB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;YACxC,CAAC,CAAC;gBACE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE;gBAClC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;aACjC,CAAC;IAEV,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YAChE,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ;QACV,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
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;AA2kBX,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;AAojBD;;;;;;;;;;;;;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;AA+nBX,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"}