pushary 1.9.87 → 1.9.88
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/CHANGELOG.md +8 -0
- package/data/SKILL.md +35 -24
- package/data/cowork/SKILL.md +4 -4
- package/data/cursor-plugin/.cursor-plugin/plugin.json +1 -1
- package/data/cursor-plugin/CHANGELOG.md +8 -0
- package/data/cursor-plugin/skills/pushary/SKILL.md +34 -23
- package/data/vscode-plugin/.claude-plugin/plugin.json +1 -1
- package/data/vscode-plugin/CHANGELOG.md +8 -0
- package/data/vscode-plugin/skills/pushary/SKILL.md +34 -23
- package/dist/{api-ZDMC22LN.js → api-BE4B7HBE.js} +7 -7
- package/dist/bin/pushary-bell-hook.js +18 -18
- package/dist/bin/pushary-bell.js +5 -5
- package/dist/bin/pushary-claude.js +19 -19
- package/dist/bin/pushary-clean.js +26 -26
- package/dist/bin/pushary-codex-bridge.js +14 -14
- package/dist/bin/pushary-codex-hook.js +21 -21
- package/dist/bin/pushary-codex-session.js +6 -6
- package/dist/bin/pushary-codex.js +8 -8
- package/dist/bin/pushary-connect.js +19 -19
- package/dist/bin/pushary-daemon.js +30 -30
- package/dist/bin/pushary-disconnect.js +18 -18
- package/dist/bin/pushary-display-hook.js +10 -10
- package/dist/bin/pushary-doctor.js +32 -32
- package/dist/bin/pushary-elicitation-hook.js +18 -18
- package/dist/bin/pushary-gemini-bridge.js +9 -9
- package/dist/bin/pushary-gemini-hook.js +19 -19
- package/dist/bin/pushary-hook.js +20 -20
- package/dist/bin/pushary-login.js +13 -13
- package/dist/bin/pushary-logout.js +16 -16
- package/dist/bin/pushary-mcp.js +8 -8
- package/dist/bin/pushary-mode.js +9 -9
- package/dist/bin/pushary-notification-hook.js +17 -17
- package/dist/bin/pushary-opencode-hook.js +18 -18
- package/dist/bin/pushary-permission-denied-hook.js +20 -20
- package/dist/bin/pushary-permission-hook.js +20 -20
- package/dist/bin/pushary-post-hook.js +17 -17
- package/dist/bin/pushary-prompt-hook.js +17 -17
- package/dist/bin/pushary-session-end-hook.js +19 -19
- package/dist/bin/pushary-session-start-hook.js +27 -27
- package/dist/bin/pushary-setup.js +38 -38
- package/dist/bin/pushary-status.js +23 -23
- package/dist/bin/pushary-stop-hook.js +17 -17
- package/dist/bin/pushary-stopfailure-hook.js +17 -17
- package/dist/bin/pushary-suggestions.js +9 -9
- package/dist/bin/pushary-transcript-register.js +11 -11
- package/dist/bin/pushary-transcripts.js +18 -18
- package/dist/bin/pushary-upgrade.js +32 -32
- package/dist/bin/pushary-wait.js +9 -9
- package/dist/bin/pushary.js +4 -4
- package/dist/{chunk-TQ43EX2E.js → chunk-2HTE4ECJ.js} +1 -1
- package/dist/{chunk-R5SANCZC.js → chunk-2NJNC26C.js} +4 -4
- package/dist/{chunk-SLMCMHVY.js → chunk-3BG5S7MB.js} +2 -2
- package/dist/{chunk-RHDHLXUK.js → chunk-3C4UGMIV.js} +3 -3
- package/dist/{chunk-7AH6F44G.js → chunk-3XJL2M7H.js} +3 -3
- package/dist/{chunk-6OVWYAET.js → chunk-3ZE7VQOU.js} +3 -3
- package/dist/{chunk-UAB3K3TA.js → chunk-4C7OJLSL.js} +3 -3
- package/dist/{chunk-VADZ6C26.js → chunk-4TT2ZFWZ.js} +1 -1
- package/dist/{chunk-CT2HRZLL.js → chunk-4Z7MR5FE.js} +2 -2
- package/dist/{chunk-42KJLBX2.js → chunk-6GDZ4RYR.js} +5 -5
- package/dist/{chunk-YRQWA4ZS.js → chunk-6RFDH4JU.js} +1 -1
- package/dist/{chunk-XGW7J7KT.js → chunk-A2F7T3IR.js} +1 -1
- package/dist/{chunk-3ZWJBPQ5.js → chunk-B4NVYPX5.js} +1 -1
- package/dist/{chunk-7SY2F6JA.js → chunk-BC2HT6JP.js} +2 -2
- package/dist/{chunk-FQ2EBMDA.js → chunk-BOWXZWHG.js} +6 -6
- package/dist/{chunk-K34J2V5G.js → chunk-BSTZ66FA.js} +2 -2
- package/dist/{chunk-XPE745FL.js → chunk-CAXE3TYX.js} +5 -5
- package/dist/{chunk-4RZXECJS.js → chunk-DHVVEH2K.js} +5 -5
- package/dist/{chunk-K4I2LESS.js → chunk-DM5LNEGJ.js} +2 -2
- package/dist/{chunk-X5INK4OE.js → chunk-FFIDXKQ7.js} +8 -8
- package/dist/{chunk-B34K6NXW.js → chunk-FK2EK27I.js} +2 -2
- package/dist/{chunk-QN2EFKXV.js → chunk-FRUKY6KV.js} +2 -2
- package/dist/{chunk-FE3I7SCA.js → chunk-FUVVGIXZ.js} +4 -4
- package/dist/{chunk-M66W7UD7.js → chunk-GJXRYXMC.js} +2 -2
- package/dist/{chunk-VU5PKE2N.js → chunk-I6MNMAS7.js} +1 -1
- package/dist/{chunk-GVMOTYFU.js → chunk-IXOCJHJW.js} +2 -2
- package/dist/{chunk-IOJZPPDB.js → chunk-JOULYVW6.js} +1 -1
- package/dist/{chunk-JILOKJ3W.js → chunk-JQMOQLM2.js} +7 -7
- package/dist/{chunk-D766FEAS.js → chunk-JQPY2B2H.js} +1 -1
- package/dist/{chunk-IXUJCONI.js → chunk-LAYKEYZE.js} +1 -1
- package/dist/{chunk-VNYSGRCL.js → chunk-LH3SNS6H.js} +9 -9
- package/dist/{chunk-GAYYYXMU.js → chunk-LHXJYSNX.js} +1 -1
- package/dist/{chunk-7LRY76MV.js → chunk-LXFBSMAE.js} +4 -4
- package/dist/{chunk-NW3GZBQA.js → chunk-M4UXDYNJ.js} +4 -4
- package/dist/{chunk-S33CCO4J.js → chunk-MQKXQWXA.js} +1 -1
- package/dist/{chunk-UOM5SUWJ.js → chunk-N7OMDSXK.js} +1 -1
- package/dist/{chunk-YLWPJ2MP.js → chunk-NOGDU4XS.js} +2 -2
- package/dist/{chunk-GVZAEST7.js → chunk-NWLGRSGE.js} +3 -3
- package/dist/{chunk-4VHT5SWU.js → chunk-O53SJBBB.js} +3 -3
- package/dist/{chunk-NFKB7ZHA.js → chunk-OBS7O22Q.js} +2 -2
- package/dist/{chunk-7TZDVGMC.js → chunk-OMLR56J5.js} +1 -1
- package/dist/{chunk-XMRCP7TM.js → chunk-PG5WFIHE.js} +1 -1
- package/dist/{chunk-E5DZ74QT.js → chunk-PYI2EFRH.js} +4 -4
- package/dist/{chunk-5YDIHB67.js → chunk-QOMIFKQL.js} +3 -3
- package/dist/{chunk-UDYWZ4DI.js → chunk-QQCGYHYG.js} +1 -1
- package/dist/{chunk-LXTTFH4P.js → chunk-RX5FSSQK.js} +5 -5
- package/dist/{chunk-MY6CX7WE.js → chunk-TBPMI4LY.js} +4 -4
- package/dist/{chunk-ZLO3K5TP.js → chunk-VIDB26GQ.js} +4 -4
- package/dist/{chunk-VNROKR2K.js → chunk-WBZA72O5.js} +2 -2
- package/dist/{chunk-RKN7BJRQ.js → chunk-YN4IXOFK.js} +1 -1
- package/dist/{chunk-NFQCFVKJ.js → chunk-Z2LYELNQ.js} +5 -5
- package/dist/{chunk-2CJNGJQS.js → chunk-ZEPS4KIK.js} +2 -2
- package/dist/{chunk-GPP7AUCM.js → chunk-ZP5AB6R5.js} +3 -3
- package/dist/{chunk-WJ2APMU5.js → chunk-ZXDHPPGI.js} +3 -3
- package/dist/{codex-app-cards-switch-ARYZG5DV.js → codex-app-cards-switch-XLSLVXDP.js} +7 -7
- package/dist/{codex-desktop-launch-6P2IXUIZ.js → codex-desktop-launch-HRE6YP56.js} +1 -1
- package/dist/{codex-session-launch-WUZSHGSI.js → codex-session-launch-7RGYGW32.js} +12 -12
- package/dist/{global-upgrade-QGHGUP5V.js → global-upgrade-VR76ZRWG.js} +8 -8
- package/dist/{identity-WRUYTQ4O.js → identity-NJAXA45Q.js} +3 -3
- package/dist/{live-capabilities-AJJILIIZ.js → live-capabilities-5UTM55OC.js} +4 -4
- package/dist/{paths-Q5A6GBRA.js → paths-BX4DXC3B.js} +2 -2
- package/dist/{reapply-BMNUBJ3Z.js → reapply-PMCMNTED.js} +21 -21
- package/dist/src/index.js +20 -20
- package/dist/{upgrade-lock-NGCFJRRN.js → upgrade-lock-2G2S3FH7.js} +3 -3
- package/package.json +1 -1
|
@@ -25,7 +25,7 @@ Nobody has to say "ping me". When one of these moments is true, act now: ask in
|
|
|
25
25
|
- **Another skill tells you to confirm with the user.** That instruction assumes someone watches the terminal. Often nobody does. Ask it where the user is, as for every moment here, so the run continues when they answer.
|
|
26
26
|
- **A long task finished or failed and nobody is watching.** Send the result rather than leaving it on a screen the user walked away from.
|
|
27
27
|
|
|
28
|
-
When no device is connected, follow the handoff in the result. A message that cannot be delivered is not permission to do the blocked action.
|
|
28
|
+
When no device is connected, follow the handoff in the result and keep doing approved work that does not depend on the answer. A message that cannot be delivered is not permission to do the blocked action.
|
|
29
29
|
|
|
30
30
|
## Ask Less, Ask Well
|
|
31
31
|
|
|
@@ -78,8 +78,9 @@ A round holds every decision whose inputs you already know. A decision that depe
|
|
|
78
78
|
- **Silence is not agreement.** No answer approves nothing. An irreversible step, spending money or a decision outside your authority still gets its own question unless the user already approved it.
|
|
79
79
|
- **One `select` with the real options beats three `confirm` questions.**
|
|
80
80
|
- **Ask at the boundary, not once for each item.** Ask about deleting files, not about each file.
|
|
81
|
-
- **
|
|
82
|
-
- **
|
|
81
|
+
- **Write for someone glancing at a phone.** Name the exact thing and the number: "Delete the 3 unused migration files?" beats "Should I clean up?"
|
|
82
|
+
- **Send at most three pushes per task** unless the user asks for more. Questions asked as chat text do not count. The cap never holds back an approval the run cannot continue without: ask it where the user is.
|
|
83
|
+
- **When the requested work is done, report it and stop.** Do not ask what to do next unless the user asked you to. Work blocked on a choice only the user can make is not done: ask that choice.
|
|
83
84
|
|
|
84
85
|
## Setup
|
|
85
86
|
|
|
@@ -126,16 +127,24 @@ When Node and npm are available, run `npx pushary@latest status --json`. The exi
|
|
|
126
127
|
| --- | --- |
|
|
127
128
|
| 0 | Ready. If the JSON says `connectedThroughMacApp: true`, the Mac app holds the key: check the account, plan and phone in the Pushary Mac app. |
|
|
128
129
|
| 1 | The command failed. |
|
|
129
|
-
| 2 | A malformed key
|
|
130
|
+
| 2 | A malformed key, an unknown flag, or a Node version that is too old. |
|
|
130
131
|
| 3 | Not set up on this machine. |
|
|
131
132
|
| 4 | The key was rejected or signed out. |
|
|
132
|
-
| 5 |
|
|
133
|
-
| 6 | Nothing proves a question reaches this user: no phone of theirs is paired, or only a teammate's devices are.
|
|
134
|
-
| 8 | Pushary could not be reached. |
|
|
133
|
+
| 5 | Two keys that disagree, or no active plan. |
|
|
134
|
+
| 6 | Nothing proves a question reaches this user: no phone of theirs is paired, or only a teammate's devices are. |
|
|
135
|
+
| 8 | Pushary could not be reached. Check again later; do not run setup. |
|
|
135
136
|
|
|
136
|
-
For
|
|
137
|
+
For any code but 0 or 8, run `npx pushary@latest status` without `--json` and follow the steps it prints, with these changes:
|
|
137
138
|
|
|
138
|
-
|
|
139
|
+
- Run a printed `pushary …` command as `npx pushary@latest …`, and a printed setup as in "Running setup yourself". Where it says to get or copy a key, run setup instead. Never ask the user for one.
|
|
140
|
+
- **`mac-app` printed and the code is 3:** have the user sign in to the Pushary Mac app, then check again.
|
|
141
|
+
- **Status says the key was signed out on this Mac:** have the user sign in again to the Pushary Mac app, open Settings > Agents and press Repair on every agent that offers it (if none does yet, have them close Settings, wait a minute and open it again), then run setup as in "Running setup yourself". It reuses the key the app wrote into the agents' settings; if the first one it finds does not work, it pairs instead. If status then shows the old key `from $PUSHARY_API_KEY`, have the user restart this agent from a new terminal.
|
|
142
|
+
- **The Key line says `from $PUSHARY_API_KEY`, the code is 2 or 4, and status does not say signed out on this Mac:** this shell exports a bad key, and it wins over any key setup saves. Run setup at most once. If status still fails or shows `Key drift`, have the user delete every `export PUSHARY_API_KEY` line that still sets the old key from their shell startup files, such as ~/.zshrc, ~/.zprofile, ~/.bashrc and ~/.bash_profile, including any setup said it could not update, then restart this agent from a new terminal.
|
|
143
|
+
- **Code 6, instead of the steps status prints:** have them install the Pushary app from https://pushary.com/download, sign in to the account this machine uses and allow notifications, then check again. A user who does not use a phone always gets 6: say so and stop. If it still says 6, offer to pair the phone: in the Pushary Mac app under Settings > Phone > Pair when `mac-app` printed, otherwise with setup `--connect app` as in "Running setup yourself", which creates a new key.
|
|
144
|
+
|
|
145
|
+
For `mac-app` without Node or npm, or with a Node version the CLI refuses, open the Pushary Mac app. Check the account, the plan and the Agents connection there, and connect or repair agents in the app. Do not install Node to inspect a native setup, and do not claim an exit code when no CLI ran.
|
|
146
|
+
|
|
147
|
+
To add an agent to a working install, run `npx pushary@latest setup --agents <id>`; it reuses the key and does not pair again. When status reported `connectedThroughMacApp: true`, connect the agent in the Pushary Mac app instead, except Cline. Setup keeps hooks the Mac app owns; pass `--take-over-hooks` only when the user wants the command line to own them.
|
|
139
148
|
|
|
140
149
|
### Branch 2. `Darwin`, no key, no `mac-app`
|
|
141
150
|
|
|
@@ -159,18 +168,18 @@ In PowerShell, type `npx.cmd` instead of `npx`. Node 20.17+, 22.13+ or 23.5+ is
|
|
|
159
168
|
|
|
160
169
|
### Running setup yourself
|
|
161
170
|
|
|
162
|
-
Before you run it, tell the user what it does: it pairs their phone, then configures MCP, hooks and the skill for the agents you name. It also
|
|
171
|
+
Before you run it, tell the user what it does: it pairs their phone, then configures MCP, hooks and the skill for the agents you name. It may also install the `pushary` command globally and start a background service so the phone can start sessions (`--control off` skips it). It turns on session history (`--transcripts off` turns it off). It needs a paid plan; the phone app shows the price and any trial.
|
|
163
172
|
|
|
164
|
-
1. **Name the agents.** Pass `--agents` with your own id: `claude_code`, `codex`, `
|
|
173
|
+
1. **Name the agents.** Pass `--agents` with your own id: `claude_code`, `codex`, `gemini_cli`, `cursor`, `vscode`, `opencode`, `hermes`, `cline`, `antigravity_cli`, `qwen_code`, `codebuddy`, `qoder`, `droid`, `devin`, `grok`, `fx` or `custom`, or a comma-separated list. `custom` (Windsurf or any other MCP client) gets a key like any other id but configures no client: it prints the server URL and an `Authorization: Bearer $PUSHARY_API_KEY` header. Add both to that client's MCP settings before you report it connected; if the client cannot read environment variables, use the key saved in ~/.pushary/config.json. Without `--agents`, setup run from an agent's shell configures every agent it detects.
|
|
165
174
|
2. **Run it in the background.** It waits up to 15 minutes for the phone, longer than most agents let a foreground command run, and a killed setup kills the pairing code with it. Start it as a background process that writes to a log, read the short link, the QR and the fingerprint from that log, show them to the user as they print, and keep checking the log until setup exits. Do not summarise them. The link survives where the QR renders badly. Start while the user can still read your messages: until they approve, nothing is configured and you have no other way to reach them.
|
|
166
175
|
3. **Walk the user through it.** They open the link or scan the QR. If they do not have the Pushary app, they install it from https://pushary.com/download, then return to the original link and tap Open Pushary; they do the same if the app restarts during sign-in or payment. The app shows a fingerprint that must match the one in your output. On a first install the app asks them to sign in and choose a plan. Then they approve, and setup finishes on its own. If the code expires, run setup again.
|
|
167
|
-
4. **Report the result plainly.** If setup exits without pairing, nothing was configured. Say so.
|
|
176
|
+
4. **Report the result plainly.** If setup exits without pairing, nothing was configured. Say so. If it exits 6, the agents are configured but nothing proves a phone of theirs can receive yet: follow code 6 above, but if setup just paired, do not pair again.
|
|
168
177
|
|
|
169
|
-
Never ask the user for an API key, and never send them to a signup page first. If
|
|
178
|
+
Never ask the user for an API key, and never send them to a signup page first. If a working key is already set or stored on this machine, setup reuses it and skips pairing. `--connect app` always pairs and creates a new key unless `--key` or `--key-stdin` is passed. If this machine had a key, tell the user it stays active until they revoke it under API keys at https://pushary.com/dashboard/agent/settings.
|
|
170
179
|
|
|
171
180
|
Manual MCP configuration also works, but it needs a key from https://pushary.com/sign-up?utm_source=skill&utm_medium=setup. Prefer setup.
|
|
172
181
|
|
|
173
|
-
Setup itself sends only a test notification, because it cannot tell whether the user is there to answer. Right after it finishes, while the user still has their phone in hand, test a question and answer: for a CLI setup, run `npx pushary@latest doctor --roundtrip`. A returned answer proves the question path, not hook enforcement. Restart the agent and follow its approval check at https://pushary.com/docs/agents/supported-agents. For a Mac app setup, use the app's connection tests and ask one harmless question from the current agent.
|
|
182
|
+
Setup itself sends only a test notification, because it cannot tell whether the user is there to answer. Right after it finishes, while the user still has their phone in hand, test a question and answer: for a CLI setup, run `npx pushary@latest doctor --roundtrip`. It needs a CLI key, sends a test push and one question, and waits about a minute for the answer. Its exit code also covers unrelated checks, so read the Synthetic answer test line. A returned answer proves the question path, not hook enforcement. Restart the agent and follow its approval check at https://pushary.com/docs/agents/supported-agents. For a Mac app setup, use the app's connection tests and ask one harmless question from the current agent.
|
|
174
183
|
|
|
175
184
|
## Pricing and Free Alternatives
|
|
176
185
|
|
|
@@ -184,7 +193,7 @@ Your client already holds each tool's schema, with every parameter and returned
|
|
|
184
193
|
|
|
185
194
|
### ask_user
|
|
186
195
|
|
|
187
|
-
Asks a question and waits. Use `confirm` for yes or no, `select` for 2 to 6 known options, and `input` when the options cannot be listed. A question stays open until it is answered or cancelled, except through a connector, by signing in or with a connector key
|
|
196
|
+
Asks a question and waits. Use `confirm` for yes or no, `select` for 2 to 6 known options, and `input` when the options cannot be listed. A question stays open until it is answered or cancelled, except one asked through a connector, by signing in or with a connector key, which closes 10 minutes after it is sent: Claude.ai, Claude Desktop, Cowork, ChatGPT, Grok Bot, signed-in Cline, and the Pushary for Claude and Pushary for Cowork plugins. One call waits at most 55 seconds and may return at once. The user's delivery mode decides how long:
|
|
188
197
|
|
|
189
198
|
| Mode | The phone | The call |
|
|
190
199
|
|---|---|---|
|
|
@@ -193,9 +202,9 @@ Asks a question and waits. Use `confirm` for yes or no, `select` for 2 to 6 know
|
|
|
193
202
|
| **Alert only** (`notify_only`) | Told, not asked | Returns at once with `status: "notified"` |
|
|
194
203
|
| **In agent** (`terminal_only`) | Nothing is sent | Returns at once with `status: "terminal"` |
|
|
195
204
|
|
|
196
|
-
`timeoutMs` sets this call's wait, longer or shorter than the policy, up to 55000. Read `answered`; it is absent when you pass `wait: false`, which returns at once with `status: "pending"`. When work that does not depend on the answer remains, pass `wait: false`, do that work, then poll with `wait_for_answer`.
|
|
205
|
+
`timeoutMs` sets this call's wait, longer or shorter than the policy, up to 55000. Read `answered`; it is absent when you pass `wait: false`, which returns at once, normally with `status: "pending"`. When work that does not depend on the answer remains, pass `wait: false`, do that work, then poll with `wait_for_answer`.
|
|
197
206
|
|
|
198
|
-
**Approvals.** Pass `toolName`, `toolTarget` (the command head) and the full command in `actionBody` whenever the question approves a tool call, and never leave them out to make a question approvable. When the command is destructive, such as a recursive delete, a force-push, a hard reset, a dropped table,
|
|
207
|
+
**Approvals.** Pass `toolName`, `toolTarget` (the command head) and the full command in `actionBody` whenever the question approves a tool call, and never leave them out to make a question approvable. When the command is destructive or ships something, such as a recursive delete, a force-push, a hard reset, a dropped or truncated table, `sudo`, or any deploy, publish or release, the phone offers only deny and `defer` ("Handle on your machine"). `defer` on any question means the user will decide at the computer: treat it as no answer and ask in the current client.
|
|
199
208
|
|
|
200
209
|
**Answers.** `value` is "yes" or "no" for confirm, the chosen option for select, and the typed text for input. Read `note` too: a denial with a note carries the reason or a condition. A select or input value containing "yes" is answer data, not approval of a separate action.
|
|
201
210
|
|
|
@@ -221,7 +230,7 @@ Read `answered`, `status` and `handoffAction` on every response. Follow `handoff
|
|
|
221
230
|
|
|
222
231
|
**Moving a live question to the current chat:** cancel it first. If cancellation returns `handoffAction: "stop"`, stop. Otherwise, if it returns `cancelled: false`, poll once for 1 second and honor the answer that won the race. If the user answers in chat while a phone question is live, do the same before acting.
|
|
223
232
|
|
|
224
|
-
`noDevices: true` means nothing could receive the question: tell the user what the `warning` field says to connect, and follow the handoff. `paused: true` means phone approvals
|
|
233
|
+
`noDevices: true` means nothing could receive the question: tell the user what the `warning` field says to connect, and follow the handoff. `paused: true` means this question was not pushed because earlier phone approvals went unanswered: three in this session, or 20 on this workspace in 14 days. Say so, and follow the handoff. A session pause sends the phone one notice; approving it resumes.
|
|
225
234
|
|
|
226
235
|
### send_notification
|
|
227
236
|
|
|
@@ -229,6 +238,8 @@ Tells the user something. Nothing is awaited. Send it for a requested update or
|
|
|
229
238
|
|
|
230
239
|
Always pass `context.type`: `task_complete`, `error` or `info`. It marks the notification as a task update, so the user's setting for where updates land can route it. Keep the title under 60 characters and the body under 180; the phone cuts the body there. Put detail in `context`.
|
|
231
240
|
|
|
241
|
+
Only `sent` above 0 says a device was reached. `sent: 0` or a `suppressed` reason means no phone or browser got a push: tell the user what `warning` or `suppressed` says, not that you notified them. `status: "recorded"` means the turn's completion update was recorded, not that a device got it: only the first one per turn is sent, following the user's update settings. Do not tell the user you notified them on `recorded` alone. `status: "ignored"` means nothing was sent.
|
|
242
|
+
|
|
232
243
|
```json
|
|
233
244
|
{
|
|
234
245
|
"title": "Refactoring complete",
|
|
@@ -255,7 +266,7 @@ Retracts a pending question, for example when you found the answer another way.
|
|
|
255
266
|
|
|
256
267
|
### schedule_reminder
|
|
257
268
|
|
|
258
|
-
When the user asks "remind me later", set a one-time personal reminder with `body` and either `inMinutes` or `at` (an ISO timestamp with an explicit UTC offset or Z). Confirm the returned `fireAt` in their local time and never guess their timezone. For example, `{"body":"Check the deploy","inMinutes":30}`. It
|
|
269
|
+
When the user asks "remind me later", set a one-time personal reminder with `body` (180 characters at most, or the call fails) and either `inMinutes` or `at` (an ISO timestamp with an explicit UTC offset or Z). Confirm the returned `fireAt` in their local time and never guess their timezone. For example, `{"body":"Check the deploy","inMinutes":30}`. It goes to their phone and the Pushary Mac app; with no phone connected, only to the Mac app if they have one. Tell the user any `warning` in the result. It usually arrives within a minute of `fireAt`, even after you exit. It does not schedule agent work. Call it with no arguments to list pending reminders, or pass `cancelReminderId` to cancel one; `cancelled: false` means nothing was cancelled: it was not found, already settled, or already sending. Limits: 30 days ahead, 25 pending per user in each workspace. Do not use `ask_user` for reminders.
|
|
259
270
|
|
|
260
271
|
### propose_scope
|
|
261
272
|
|
|
@@ -267,7 +278,7 @@ Agree the boundary of a run once, before the first edit. The user sees the paths
|
|
|
267
278
|
|
|
268
279
|
**Write paths as globs.** The matcher compares text. A word like `hubspot` matches no file and makes every edit ask; it belongs in `promises`. Write `docs/**`, not `docs`. Letter case matters. Use forward slashes and no leading `./`. For a run that changes no files, call it with no paths and put the whole boundary in `promises`.
|
|
269
280
|
|
|
270
|
-
**Read the result.** An empty `enforces` means nothing is checked automatically: tell the user. `hookSeen: false` means no hook has reported this `sessionId`, so the contract will never be found: fix the id or say the boundary is only a promise. Answered but not `ratified` means the user declined: ask which boundary they want. Use the `sessionId` your client reports for this run. If it reports none and you have `list_sessions`, call it and take the session whose working directory matches yours with the newest `lastSeenAt`. If another live session shares that folder, on this machine or another, or you cannot tell, skip the scope and tell the user the boundary is only a promise. Never invent an id.
|
|
281
|
+
**Read the result.** An empty `enforces` means nothing is checked automatically: tell the user. `hookSeen: false` means no hook has reported this `sessionId`, so the contract will never be found: fix the id or say the boundary is only a promise. Answered but not `ratified` means the user declined: ask which boundary they want. A yes typed in the chat does not ratify a scope; the boundary is then only a promise. Use the `sessionId` your client reports for this run. If it reports none and you have `list_sessions`, call it and take the session whose working directory matches yours with the newest `lastSeenAt`. If another live session shares that folder, on this machine or another, or you cannot tell, skip the scope and tell the user the boundary is only a promise. Never invent an id.
|
|
271
282
|
|
|
272
283
|
A scope lasts for the session, up to 12 hours, and ends at session end. A later ratified proposal replaces it.
|
|
273
284
|
|
|
@@ -278,18 +289,18 @@ Read-only. Shows your live agent sessions and any questions still waiting. If an
|
|
|
278
289
|
## Limits
|
|
279
290
|
|
|
280
291
|
- 8 open questions per agent session and 25 per workspace. When a question is refused for this, answer or cancel an open one.
|
|
281
|
-
- 10 notifications per 5 minutes per workspace.
|
|
292
|
+
- 10 notifications per 5 minutes per workspace. Every `schedule_reminder` call, including a list or a cancel, counts toward it.
|
|
282
293
|
|
|
283
294
|
## Answer Surfaces and Account Boundaries
|
|
284
295
|
|
|
285
296
|
| Surface | What the user can do |
|
|
286
297
|
| --- | --- |
|
|
287
298
|
| Mobile app | Answer confirm, select and input questions. Confirm notifications offer approve and deny on the lock screen, except for risky commands. Choices and text open the app. |
|
|
288
|
-
| Mac notch | Answer
|
|
299
|
+
| Mac notch | Answer confirm, select, input and question-set questions, including keyboard controls. |
|
|
289
300
|
| Slack | Answer through buttons, menus or text modals when the integration and recipient are configured. |
|
|
290
301
|
| Browser | Open the decision page as a fallback; browser notifications need permission. |
|
|
291
302
|
|
|
292
|
-
Partner customers use scoped enrollment links issued by their application. Do not enroll them into the operator's account or send their decisions through personal tools.
|
|
303
|
+
Partner customers use scoped enrollment links issued by their application. Do not enroll them into the operator's account or send their decisions through personal tools. They answer on their enrolled phone, and in the Mac notch once they connect the Mac from the phone app. See https://pushary.com/docs/agents/embed for Partner setup.
|
|
293
304
|
|
|
294
305
|
## Identifying Your Agent
|
|
295
306
|
|
|
@@ -17,14 +17,14 @@ import {
|
|
|
17
17
|
waitForQuestion,
|
|
18
18
|
waitsForThePhone,
|
|
19
19
|
withdrawQuestion
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-3XJL2M7H.js";
|
|
21
21
|
import "./chunk-POFBE6ZY.js";
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
26
|
-
import "./chunk-
|
|
27
|
-
import "./chunk-
|
|
22
|
+
import "./chunk-ZEPS4KIK.js";
|
|
23
|
+
import "./chunk-4TT2ZFWZ.js";
|
|
24
|
+
import "./chunk-A2F7T3IR.js";
|
|
25
|
+
import "./chunk-BC2HT6JP.js";
|
|
26
|
+
import "./chunk-NOGDU4XS.js";
|
|
27
|
+
import "./chunk-QOMIFKQL.js";
|
|
28
28
|
import "./chunk-NP65LEAY.js";
|
|
29
29
|
import "./chunk-PPY5N2E6.js";
|
|
30
30
|
import "./chunk-KZERVKTD.js";
|
|
@@ -1,35 +1,35 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
handleBell
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-LHXJYSNX.js";
|
|
5
5
|
import {
|
|
6
6
|
readHookInput
|
|
7
|
-
} from "../chunk-
|
|
8
|
-
import "../chunk-
|
|
9
|
-
import "../chunk-
|
|
10
|
-
import "../chunk-
|
|
11
|
-
import "../chunk-
|
|
12
|
-
import "../chunk-
|
|
7
|
+
} from "../chunk-BOWXZWHG.js";
|
|
8
|
+
import "../chunk-JQMOQLM2.js";
|
|
9
|
+
import "../chunk-I6MNMAS7.js";
|
|
10
|
+
import "../chunk-O53SJBBB.js";
|
|
11
|
+
import "../chunk-FUVVGIXZ.js";
|
|
12
|
+
import "../chunk-DM5LNEGJ.js";
|
|
13
13
|
import "../chunk-D7ZJ3AUK.js";
|
|
14
|
-
import "../chunk-
|
|
14
|
+
import "../chunk-OMLR56J5.js";
|
|
15
15
|
import "../chunk-NMUI3ZWG.js";
|
|
16
16
|
import "../chunk-4PS27SCG.js";
|
|
17
17
|
import "../chunk-XMSDA5WA.js";
|
|
18
|
-
import "../chunk-
|
|
18
|
+
import "../chunk-JOULYVW6.js";
|
|
19
19
|
import "../chunk-XHKBHWLX.js";
|
|
20
|
-
import "../chunk-
|
|
21
|
-
import "../chunk-
|
|
20
|
+
import "../chunk-2HTE4ECJ.js";
|
|
21
|
+
import "../chunk-DHVVEH2K.js";
|
|
22
22
|
import "../chunk-TXJ65MIV.js";
|
|
23
23
|
import "../chunk-OUIUIJV4.js";
|
|
24
|
-
import "../chunk-
|
|
24
|
+
import "../chunk-3XJL2M7H.js";
|
|
25
25
|
import "../chunk-POFBE6ZY.js";
|
|
26
|
-
import "../chunk-
|
|
27
|
-
import "../chunk-
|
|
28
|
-
import "../chunk-
|
|
29
|
-
import "../chunk-
|
|
26
|
+
import "../chunk-ZEPS4KIK.js";
|
|
27
|
+
import "../chunk-4TT2ZFWZ.js";
|
|
28
|
+
import "../chunk-A2F7T3IR.js";
|
|
29
|
+
import "../chunk-BC2HT6JP.js";
|
|
30
30
|
import "../chunk-DWUD47H5.js";
|
|
31
|
-
import "../chunk-
|
|
32
|
-
import "../chunk-
|
|
31
|
+
import "../chunk-NOGDU4XS.js";
|
|
32
|
+
import "../chunk-QOMIFKQL.js";
|
|
33
33
|
import "../chunk-NP65LEAY.js";
|
|
34
34
|
import "../chunk-PPY5N2E6.js";
|
|
35
35
|
import "../chunk-KZERVKTD.js";
|
package/dist/bin/pushary-bell.js
CHANGED
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
liveAgentCount,
|
|
6
6
|
ring,
|
|
7
7
|
upgradeThreshold
|
|
8
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-LHXJYSNX.js";
|
|
9
9
|
import {
|
|
10
10
|
createIo
|
|
11
11
|
} from "../chunk-FO3MDD26.js";
|
|
@@ -16,19 +16,19 @@ import {
|
|
|
16
16
|
addBellHooks,
|
|
17
17
|
bellInstalled,
|
|
18
18
|
removeBellHooks
|
|
19
|
-
} from "../chunk-
|
|
19
|
+
} from "../chunk-OMLR56J5.js";
|
|
20
20
|
import {
|
|
21
21
|
parseFlags
|
|
22
22
|
} from "../chunk-NMUI3ZWG.js";
|
|
23
|
-
import "../chunk-
|
|
23
|
+
import "../chunk-2HTE4ECJ.js";
|
|
24
24
|
import "../chunk-DWUD47H5.js";
|
|
25
25
|
import {
|
|
26
26
|
claudeSettings
|
|
27
|
-
} from "../chunk-
|
|
27
|
+
} from "../chunk-NOGDU4XS.js";
|
|
28
28
|
import {
|
|
29
29
|
readJsonSafe,
|
|
30
30
|
writeJsonAtomic
|
|
31
|
-
} from "../chunk-
|
|
31
|
+
} from "../chunk-QOMIFKQL.js";
|
|
32
32
|
import "../chunk-NP65LEAY.js";
|
|
33
33
|
import "../chunk-PPY5N2E6.js";
|
|
34
34
|
import {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
WRAPPER_ACTIVE_ENV,
|
|
4
4
|
findClaudeBinary
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-3BG5S7MB.js";
|
|
6
6
|
import {
|
|
7
7
|
CommandReceipts,
|
|
8
8
|
controllerCommandSchema
|
|
@@ -12,26 +12,26 @@ import {
|
|
|
12
12
|
describeIdleWindow,
|
|
13
13
|
startProcessOwnership,
|
|
14
14
|
withSpawnProcessOwnership
|
|
15
|
-
} from "../chunk-
|
|
16
|
-
import "../chunk-
|
|
15
|
+
} from "../chunk-OBS7O22Q.js";
|
|
16
|
+
import "../chunk-B4NVYPX5.js";
|
|
17
17
|
import {
|
|
18
18
|
announceSubscriptionRequired,
|
|
19
19
|
isDeferAnswer
|
|
20
|
-
} from "../chunk-
|
|
20
|
+
} from "../chunk-MQKXQWXA.js";
|
|
21
21
|
import {
|
|
22
22
|
claudeTranscriptPath,
|
|
23
23
|
redactDraft,
|
|
24
24
|
registerTranscript,
|
|
25
25
|
registeredTranscriptEnabled,
|
|
26
26
|
startDraftPublisher
|
|
27
|
-
} from "../chunk-
|
|
28
|
-
import "../chunk-
|
|
27
|
+
} from "../chunk-JQMOQLM2.js";
|
|
28
|
+
import "../chunk-I6MNMAS7.js";
|
|
29
29
|
import {
|
|
30
30
|
ensureDaemonRunning
|
|
31
|
-
} from "../chunk-
|
|
32
|
-
import "../chunk-
|
|
31
|
+
} from "../chunk-FUVVGIXZ.js";
|
|
32
|
+
import "../chunk-DM5LNEGJ.js";
|
|
33
33
|
import "../chunk-D7ZJ3AUK.js";
|
|
34
|
-
import "../chunk-
|
|
34
|
+
import "../chunk-OMLR56J5.js";
|
|
35
35
|
import "../chunk-NMUI3ZWG.js";
|
|
36
36
|
import "../chunk-4PS27SCG.js";
|
|
37
37
|
import {
|
|
@@ -39,12 +39,12 @@ import {
|
|
|
39
39
|
} from "../chunk-XMSDA5WA.js";
|
|
40
40
|
import {
|
|
41
41
|
transcriptsEnabled
|
|
42
|
-
} from "../chunk-
|
|
42
|
+
} from "../chunk-JOULYVW6.js";
|
|
43
43
|
import {
|
|
44
44
|
needsShell,
|
|
45
45
|
spawnClaude
|
|
46
46
|
} from "../chunk-XHKBHWLX.js";
|
|
47
|
-
import "../chunk-
|
|
47
|
+
import "../chunk-2HTE4ECJ.js";
|
|
48
48
|
import {
|
|
49
49
|
DEFAULT_SESSION,
|
|
50
50
|
fetchModeState,
|
|
@@ -57,7 +57,7 @@ import {
|
|
|
57
57
|
removePendingCommand,
|
|
58
58
|
reportEvent,
|
|
59
59
|
savePendingCommand
|
|
60
|
-
} from "../chunk-
|
|
60
|
+
} from "../chunk-DHVVEH2K.js";
|
|
61
61
|
import {
|
|
62
62
|
UNNAMED_ACTION,
|
|
63
63
|
deriveToolTarget,
|
|
@@ -78,21 +78,21 @@ import {
|
|
|
78
78
|
waitForAnswer,
|
|
79
79
|
waitsForThePhone,
|
|
80
80
|
withdrawQuestion
|
|
81
|
-
} from "../chunk-
|
|
81
|
+
} from "../chunk-3XJL2M7H.js";
|
|
82
82
|
import "../chunk-POFBE6ZY.js";
|
|
83
83
|
import {
|
|
84
84
|
SubscriptionRequiredError
|
|
85
|
-
} from "../chunk-
|
|
86
|
-
import "../chunk-
|
|
87
|
-
import "../chunk-
|
|
85
|
+
} from "../chunk-ZEPS4KIK.js";
|
|
86
|
+
import "../chunk-4TT2ZFWZ.js";
|
|
87
|
+
import "../chunk-A2F7T3IR.js";
|
|
88
88
|
import {
|
|
89
89
|
getMachineId
|
|
90
|
-
} from "../chunk-
|
|
90
|
+
} from "../chunk-BC2HT6JP.js";
|
|
91
91
|
import "../chunk-DWUD47H5.js";
|
|
92
92
|
import {
|
|
93
93
|
claudeConfigDir
|
|
94
|
-
} from "../chunk-
|
|
95
|
-
import "../chunk-
|
|
94
|
+
} from "../chunk-NOGDU4XS.js";
|
|
95
|
+
import "../chunk-QOMIFKQL.js";
|
|
96
96
|
import {
|
|
97
97
|
getApiKey,
|
|
98
98
|
getBaseUrl
|
|
@@ -15,30 +15,30 @@ import {
|
|
|
15
15
|
storedMacAppState,
|
|
16
16
|
storedPusharyKeychainServices,
|
|
17
17
|
waitForMacAppExit
|
|
18
|
-
} from "../chunk-
|
|
18
|
+
} from "../chunk-NWLGRSGE.js";
|
|
19
19
|
import {
|
|
20
20
|
PUSHARY_SKILL_NAME,
|
|
21
21
|
PUSHARY_SKILL_SOURCE,
|
|
22
22
|
createGuards
|
|
23
23
|
} from "../chunk-J42EAEX3.js";
|
|
24
|
-
import "../chunk-
|
|
24
|
+
import "../chunk-GJXRYXMC.js";
|
|
25
25
|
import "../chunk-XCEN33UP.js";
|
|
26
26
|
import {
|
|
27
27
|
describeCliKeyRevocation,
|
|
28
28
|
planCliKeyRevocations,
|
|
29
29
|
readCliHeldKeys,
|
|
30
30
|
revokeCliKeys
|
|
31
|
-
} from "../chunk-
|
|
31
|
+
} from "../chunk-VIDB26GQ.js";
|
|
32
32
|
import {
|
|
33
33
|
isCursorPluginLeftover,
|
|
34
34
|
releaseSoleGate,
|
|
35
35
|
withoutPusharyCursorHooks
|
|
36
|
-
} from "../chunk-
|
|
36
|
+
} from "../chunk-3C4UGMIV.js";
|
|
37
37
|
import {
|
|
38
38
|
shortenHome,
|
|
39
39
|
unregisterPluginLocation,
|
|
40
40
|
vscodeSettingsTargets
|
|
41
|
-
} from "../chunk-
|
|
41
|
+
} from "../chunk-M4UXDYNJ.js";
|
|
42
42
|
import {
|
|
43
43
|
configFileHoldsMacAppKey,
|
|
44
44
|
macAppKeepsMcpEntry,
|
|
@@ -46,22 +46,22 @@ import {
|
|
|
46
46
|
pusharyKey,
|
|
47
47
|
readMacAppAgentKey,
|
|
48
48
|
setupReceiptKey
|
|
49
|
-
} from "../chunk-
|
|
50
|
-
import "../chunk-
|
|
49
|
+
} from "../chunk-2NJNC26C.js";
|
|
50
|
+
import "../chunk-6RFDH4JU.js";
|
|
51
51
|
import {
|
|
52
52
|
HERMES_CONFIG_FILE,
|
|
53
53
|
defaultHermesHome,
|
|
54
54
|
hermesReceiptPaths,
|
|
55
55
|
removeHermesWiring
|
|
56
|
-
} from "../chunk-
|
|
56
|
+
} from "../chunk-Z2LYELNQ.js";
|
|
57
57
|
import "../chunk-QCGNGEGE.js";
|
|
58
58
|
import {
|
|
59
59
|
planClineRemoval,
|
|
60
60
|
planFxRemoval,
|
|
61
61
|
removeClineServer
|
|
62
|
-
} from "../chunk-
|
|
63
|
-
import "../chunk-
|
|
64
|
-
import "../chunk-
|
|
62
|
+
} from "../chunk-CAXE3TYX.js";
|
|
63
|
+
import "../chunk-N7OMDSXK.js";
|
|
64
|
+
import "../chunk-QQCGYHYG.js";
|
|
65
65
|
import {
|
|
66
66
|
OPENCODE_ASKED_PERMISSIONS,
|
|
67
67
|
OPENCODE_PLUGIN_SIBLING,
|
|
@@ -75,7 +75,7 @@ import {
|
|
|
75
75
|
openCodePluginDir,
|
|
76
76
|
openCodePluginFile,
|
|
77
77
|
removeOpenCodeMcpServer
|
|
78
|
-
} from "../chunk-
|
|
78
|
+
} from "../chunk-TBPMI4LY.js";
|
|
79
79
|
import {
|
|
80
80
|
ansiPainter,
|
|
81
81
|
useColor
|
|
@@ -83,7 +83,7 @@ import {
|
|
|
83
83
|
import {
|
|
84
84
|
exitOnHelpFlag
|
|
85
85
|
} from "../chunk-RPXPRBBA.js";
|
|
86
|
-
import "../chunk-
|
|
86
|
+
import "../chunk-B4NVYPX5.js";
|
|
87
87
|
import {
|
|
88
88
|
compatibleConfigFile,
|
|
89
89
|
compatibleDocuments,
|
|
@@ -95,10 +95,10 @@ import {
|
|
|
95
95
|
removeCompatibleHooks,
|
|
96
96
|
removeCompatibleMcpServer,
|
|
97
97
|
serializeConfigDocument
|
|
98
|
-
} from "../chunk-
|
|
98
|
+
} from "../chunk-O53SJBBB.js";
|
|
99
99
|
import {
|
|
100
100
|
disableDaemonService
|
|
101
|
-
} from "../chunk-
|
|
101
|
+
} from "../chunk-FUVVGIXZ.js";
|
|
102
102
|
import {
|
|
103
103
|
hookOwnerOf,
|
|
104
104
|
isHookTakeoverReceipt,
|
|
@@ -107,9 +107,9 @@ import {
|
|
|
107
107
|
resolveBridgeStub,
|
|
108
108
|
restoreHookTakeover,
|
|
109
109
|
restoreMcpServer
|
|
110
|
-
} from "../chunk-
|
|
110
|
+
} from "../chunk-DM5LNEGJ.js";
|
|
111
111
|
import "../chunk-D7ZJ3AUK.js";
|
|
112
|
-
import "../chunk-
|
|
112
|
+
import "../chunk-OMLR56J5.js";
|
|
113
113
|
import {
|
|
114
114
|
parseFlags
|
|
115
115
|
} from "../chunk-NMUI3ZWG.js";
|
|
@@ -119,17 +119,17 @@ import {
|
|
|
119
119
|
isDisabledExport,
|
|
120
120
|
removeClaudeAlias,
|
|
121
121
|
shellProfileCandidates
|
|
122
|
-
} from "../chunk-
|
|
122
|
+
} from "../chunk-2HTE4ECJ.js";
|
|
123
123
|
import "../chunk-E46NE7FB.js";
|
|
124
|
-
import "../chunk-
|
|
124
|
+
import "../chunk-DHVVEH2K.js";
|
|
125
125
|
import "../chunk-TXJ65MIV.js";
|
|
126
126
|
import "../chunk-OUIUIJV4.js";
|
|
127
|
-
import "../chunk-
|
|
127
|
+
import "../chunk-3XJL2M7H.js";
|
|
128
128
|
import "../chunk-POFBE6ZY.js";
|
|
129
|
-
import "../chunk-
|
|
130
|
-
import "../chunk-
|
|
131
|
-
import "../chunk-
|
|
132
|
-
import "../chunk-
|
|
129
|
+
import "../chunk-ZEPS4KIK.js";
|
|
130
|
+
import "../chunk-4TT2ZFWZ.js";
|
|
131
|
+
import "../chunk-A2F7T3IR.js";
|
|
132
|
+
import "../chunk-BC2HT6JP.js";
|
|
133
133
|
import "../chunk-DWUD47H5.js";
|
|
134
134
|
import {
|
|
135
135
|
claudeConfigDir,
|
|
@@ -173,14 +173,14 @@ import {
|
|
|
173
173
|
restoreCodexHookTrust,
|
|
174
174
|
vscodePluginDir,
|
|
175
175
|
vscodePluginMcp
|
|
176
|
-
} from "../chunk-
|
|
176
|
+
} from "../chunk-NOGDU4XS.js";
|
|
177
177
|
import {
|
|
178
178
|
cleanNpmEnv,
|
|
179
179
|
globalPackageState,
|
|
180
180
|
npmIsOnPath,
|
|
181
181
|
readGlobalFolder,
|
|
182
182
|
readGlobalPrefix
|
|
183
|
-
} from "../chunk-
|
|
183
|
+
} from "../chunk-QOMIFKQL.js";
|
|
184
184
|
import {
|
|
185
185
|
getBaseUrl
|
|
186
186
|
} from "../chunk-NP65LEAY.js";
|
|
@@ -1,36 +1,36 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
runCodexBridge
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-3ZE7VQOU.js";
|
|
5
5
|
import "../chunk-P4W5TP2X.js";
|
|
6
6
|
import {
|
|
7
7
|
resolveProviderBinary
|
|
8
|
-
} from "../chunk-
|
|
9
|
-
import "../chunk-
|
|
8
|
+
} from "../chunk-4C7OJLSL.js";
|
|
9
|
+
import "../chunk-WBZA72O5.js";
|
|
10
10
|
import "../chunk-N5P2FLOJ.js";
|
|
11
11
|
import {
|
|
12
12
|
withSpawnProcessOwnership
|
|
13
|
-
} from "../chunk-
|
|
14
|
-
import "../chunk-
|
|
13
|
+
} from "../chunk-OBS7O22Q.js";
|
|
14
|
+
import "../chunk-B4NVYPX5.js";
|
|
15
15
|
import "../chunk-4PS27SCG.js";
|
|
16
16
|
import "../chunk-XMSDA5WA.js";
|
|
17
17
|
import {
|
|
18
18
|
transcriptsEnabled
|
|
19
|
-
} from "../chunk-
|
|
19
|
+
} from "../chunk-JOULYVW6.js";
|
|
20
20
|
import "../chunk-XHKBHWLX.js";
|
|
21
|
-
import "../chunk-
|
|
21
|
+
import "../chunk-2HTE4ECJ.js";
|
|
22
22
|
import "../chunk-OUIUIJV4.js";
|
|
23
|
-
import "../chunk-
|
|
23
|
+
import "../chunk-3XJL2M7H.js";
|
|
24
24
|
import "../chunk-POFBE6ZY.js";
|
|
25
|
-
import "../chunk-
|
|
26
|
-
import "../chunk-
|
|
27
|
-
import "../chunk-
|
|
25
|
+
import "../chunk-ZEPS4KIK.js";
|
|
26
|
+
import "../chunk-4TT2ZFWZ.js";
|
|
27
|
+
import "../chunk-A2F7T3IR.js";
|
|
28
28
|
import {
|
|
29
29
|
getMachineId
|
|
30
|
-
} from "../chunk-
|
|
30
|
+
} from "../chunk-BC2HT6JP.js";
|
|
31
31
|
import "../chunk-DWUD47H5.js";
|
|
32
|
-
import "../chunk-
|
|
33
|
-
import "../chunk-
|
|
32
|
+
import "../chunk-NOGDU4XS.js";
|
|
33
|
+
import "../chunk-QOMIFKQL.js";
|
|
34
34
|
import {
|
|
35
35
|
getApiKey,
|
|
36
36
|
getBaseUrl
|