@pushary/agent-hooks 1.9.23 → 1.9.25
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 +15 -0
- package/data/cursor-plugin/.cursor-plugin/plugin.json +1 -1
- package/data/cursor-plugin/CHANGELOG.md +4 -0
- package/data/cursor-plugin/scripts/pushary-gate.mjs +4 -2
- package/data/cursor-plugin/scripts/pushary-gate.test.mjs +14 -1
- package/dist/bin/pushary-bell-hook.js +25 -25
- package/dist/bin/pushary-bell.js +9 -9
- package/dist/bin/pushary-claude.js +27 -26
- package/dist/bin/pushary-clean.js +41 -93
- package/dist/bin/pushary-codex-bridge.js +17 -17
- package/dist/bin/pushary-codex-hook.js +30 -30
- package/dist/bin/pushary-codex.js +12 -12
- package/dist/bin/pushary-connect.js +24 -24
- package/dist/bin/pushary-cowork.js +5 -5
- package/dist/bin/pushary-daemon.js +31 -31
- package/dist/bin/pushary-disconnect.js +24 -24
- package/dist/bin/pushary-doctor.js +33 -33
- package/dist/bin/pushary-elicitation-hook.js +25 -25
- package/dist/bin/pushary-gemini-bridge.js +13 -13
- package/dist/bin/pushary-gemini-hook.js +27 -27
- package/dist/bin/pushary-hook.js +29 -29
- package/dist/bin/pushary-login.js +16 -16
- package/dist/bin/pushary-logout.js +77 -26
- package/dist/bin/pushary-mcp.js +9 -9
- package/dist/bin/pushary-mode.js +12 -12
- package/dist/bin/pushary-notification-hook.js +24 -24
- package/dist/bin/pushary-opencode-hook.js +26 -26
- package/dist/bin/pushary-permission-denied-hook.js +29 -29
- package/dist/bin/pushary-permission-hook.js +28 -28
- package/dist/bin/pushary-post-hook.js +24 -24
- package/dist/bin/pushary-prompt-hook.js +24 -24
- package/dist/bin/pushary-session-end-hook.js +24 -24
- package/dist/bin/pushary-session-start-hook.js +28 -28
- package/dist/bin/pushary-setup.js +41 -38
- package/dist/bin/pushary-stats.js +5 -5
- package/dist/bin/pushary-status.js +26 -26
- package/dist/bin/pushary-stop-hook.js +24 -24
- package/dist/bin/pushary-stopfailure-hook.js +24 -24
- package/dist/bin/pushary-suggestions.js +12 -12
- package/dist/bin/pushary-transcript-register.js +17 -17
- package/dist/bin/pushary-transcripts.js +7 -7
- package/dist/bin/pushary-upgrade.js +30 -30
- package/dist/bin/pushary-wait.js +12 -12
- package/dist/bin/pushary.js +6 -6
- package/dist/{chunk-GN6BJXC7.js → chunk-2CUE3XXS.js} +1 -1
- package/dist/{chunk-OH6OGEOY.js → chunk-2J2WFX7X.js} +4 -4
- package/dist/{chunk-QIODXPTP.js → chunk-2VQZC6DW.js} +4 -4
- package/dist/{chunk-SWQLZQE3.js → chunk-2XHBYMVN.js} +14 -13
- package/dist/{chunk-HXZG5WHU.js → chunk-3UYMOWX6.js} +2 -2
- package/dist/{chunk-R5C3QCVT.js → chunk-4KZP4YMV.js} +1 -1
- package/dist/{chunk-73HGV4R6.js → chunk-5ETE7F45.js} +2 -2
- package/dist/{chunk-OQPEHKH2.js → chunk-5Q2QJ2AL.js} +1 -1
- package/dist/{chunk-K2EYK5RL.js → chunk-5WTEKIAS.js} +4 -4
- package/dist/{chunk-AV5VX7OK.js → chunk-7UZD2F4Y.js} +8 -8
- package/dist/{chunk-E2LGKG75.js → chunk-7V6PJFDF.js} +3 -3
- package/dist/{chunk-KJA6IGOZ.js → chunk-A3QQWXIE.js} +1 -1
- package/dist/{chunk-GYP6DLA4.js → chunk-AXB4ABUD.js} +8 -8
- package/dist/{chunk-I46QTKYI.js → chunk-BGJDOHNF.js} +5 -5
- package/dist/{chunk-FBV2KS3Z.js → chunk-BHRMHDOO.js} +2 -2
- package/dist/{chunk-RN5NRRHX.js → chunk-EJJNZYDS.js} +2 -2
- package/dist/{chunk-6HT2TUZD.js → chunk-EJMXZH5E.js} +2 -2
- package/dist/{chunk-N4DMADJM.js → chunk-FCXYDR62.js} +1 -1
- package/dist/{chunk-ZGYO6OQE.js → chunk-FJKV64M7.js} +5 -5
- package/dist/{chunk-QFNY4KUQ.js → chunk-FLC4TVXH.js} +1 -1
- package/dist/{chunk-NHBPW6C4.js → chunk-G446AVR5.js} +2 -2
- package/dist/{chunk-AQ3TSQA2.js → chunk-GC5HJE3T.js} +21 -8
- package/dist/{chunk-CJTQNUUT.js → chunk-HEJMZVJI.js} +2 -2
- package/dist/{chunk-OH647UT3.js → chunk-KGSN2SOL.js} +793 -18
- package/dist/{chunk-7RGEJOQS.js → chunk-KM7AEGKF.js} +3 -3
- package/dist/{chunk-FIYCICHC.js → chunk-KP4BIZLP.js} +2 -2
- package/dist/{chunk-YXHVMZPR.js → chunk-KZLOVLA6.js} +4 -4
- package/dist/{chunk-AXSHPFU3.js → chunk-LDNKGG5G.js} +3 -3
- package/dist/{chunk-DKBPNHAI.js → chunk-N3ACK3YA.js} +4 -4
- package/dist/{chunk-4GKQDFH6.js → chunk-NFH2H7PD.js} +5 -5
- package/dist/{chunk-BY5EKA6W.js → chunk-OFHSTCXK.js} +3 -3
- package/dist/{chunk-LEQRIJ4H.js → chunk-OOKIWOMK.js} +3 -3
- package/dist/{chunk-7J2AX5T6.js → chunk-OWOSNGEQ.js} +2 -2
- package/dist/{chunk-SSWK2WYX.js → chunk-PAMW5M53.js} +5 -5
- package/dist/{chunk-JNKHCGHR.js → chunk-PM2WJSUH.js} +1 -1
- package/dist/{chunk-JCEUDLGW.js → chunk-PPGLIWOR.js} +1 -1
- package/dist/{chunk-PFB7P4F3.js → chunk-PSNF27BC.js} +6 -6
- package/dist/{chunk-2AUKCSLQ.js → chunk-Q37XFSPO.js} +4 -4
- package/dist/{chunk-S2R2U5W5.js → chunk-RSENVGBQ.js} +4 -4
- package/dist/{chunk-M7DCI44L.js → chunk-SGGR5MN2.js} +1 -1
- package/dist/{chunk-NSCETODW.js → chunk-TLUSUDRU.js} +1 -1
- package/dist/chunk-UJB6HHP4.js +166 -0
- package/dist/{chunk-YZPFJCFE.js → chunk-UK7OY3EJ.js} +1 -1
- package/dist/{chunk-ISAKLEKE.js → chunk-UUOC7A7M.js} +7 -7
- package/dist/{chunk-Z4UDB7EC.js → chunk-VEGS4NYF.js} +3 -3
- package/dist/{chunk-USUI4P63.js → chunk-VFF7ZBIS.js} +2 -2
- package/dist/{chunk-RHIKMNWJ.js → chunk-VN5Q4KOD.js} +2 -2
- package/dist/{chunk-6GHZAS7S.js → chunk-WEKXYS2F.js} +4 -4
- package/dist/{chunk-SLBO7PHS.js → chunk-WKEP4JAW.js} +2 -2
- package/dist/{chunk-M6R3SZZS.js → chunk-YD3DIFIU.js} +1 -1
- package/dist/{chunk-EDN4F6GX.js → chunk-ZLGCNHJG.js} +1 -1
- package/dist/{chunk-A5U62Q6K.js → chunk-ZLY7BHN4.js} +5 -5
- package/dist/{chunk-AFP3HZVK.js → chunk-ZNT4ZZXJ.js} +1 -1
- package/dist/{chunk-XBETSM5T.js → chunk-ZV3262AA.js} +3 -3
- package/dist/{global-upgrade-SKY7A3SI.js → global-upgrade-4M4TJKQR.js} +6 -6
- package/dist/{paths-XUUEK7OU.js → paths-6JY6J56N.js} +2 -2
- package/dist/{reapply-WQDP26EA.js → reapply-LFEQ5GF6.js} +20 -20
- package/dist/src/index.js +19 -19
- package/dist/{upgrade-lock-AYW3TB7X.js → upgrade-lock-CZRCHYVU.js} +3 -3
- package/package.json +1 -1
- package/dist/chunk-OYIN77HO.js +0 -72
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.9.25
|
|
4
|
+
|
|
5
|
+
- "Always allow Bash in this workspace" and "Always allow Bash in this repository" now still ask about a command with a real consequence. That is running downloaded code (`curl ... | sh`, or a file downloaded and then run), a production deploy or migration (`vercel --prod`, `RAILS_ENV=production bin/rails db:migrate`), a schema push or reset (`prisma db push`, `prisma migrate reset`, `supabase db push`, `drizzle-kit push`), a SQL client that writes or runs a script file (`psql -c "UPDATE ..."`, `psql -f`, `psql < file`, `sqlite3 app.db < schema.sql`), `redis-cli FLUSHALL`, a cluster deploy (`kubectl apply`, `helm upgrade`), publishing (`docker push`, `npm publish`), `gh pr merge`, `gh repo delete`, `aws s3 sync --delete`, restarting, stopping or unloading a service (`systemctl restart`, `launchctl unload`), throwing away uncommitted changes (`git checkout <file>`, `git restore`, `git branch -D`), and writing or deleting a `.env` or secrets file. These used to run without a question. They are recognised behind wrappers such as `sudo`, `env`, `timeout` and `xargs`, behind global flags such as `git -C dir`, inside `if` and `for` blocks, and with output redirected to a log file.
|
|
6
|
+
- Under those rules a plain `git push`, `git push -u origin HEAD`, `git push --dry-run`, `git clean -n`, and an `rm`, `git rm` or `unlink` of a file keep running. Asking about every push and every removal under a rule that says always allow is too much. A force push, `rm -r` and `git clean -f` still ask, as before, and a force push now also asks when it is written as `git -C dir push --force`, `git push origin +main`, or a push that deletes or mirrors branches on the remote (`--delete`, `:branch`, `--mirror`, `--prune`).
|
|
7
|
+
- The same applies to a bare `Bash` approve rule written on the Policies page and to rules saved before this release. Presets and "Allow Bash for this session" keep their own rules. To let one of the held commands run anyway, add a specific rule such as `Bash(docker push:*)`.
|
|
8
|
+
- Claude Code's commit form, `git commit -m "$(cat <<'EOF' ... EOF)"`, is now read as a commit when every shell reads its message as plain text, including macOS `/bin/bash` 3.2. "Allow Bash for this session" asks about fewer commits, a `Bash(git commit:*)` rule now covers them, and a `&& git push` after one is seen, also by a `Bash(git push:*)` deny rule. A message with an unmatched `)`, an apostrophe, a backslash, a backtick, or a line that starts with the closing word such as `EOF`, is not read this way and asks as before.
|
|
9
|
+
- Production deploys and migrations, SQL that writes, runs a script file or comes from a variable or a pipe, `mongosh --eval`, cluster deploys and schema resets (`kubectl apply`, `helm upgrade`, `prisma db push`), `pg_restore --clean`, `mongorestore --drop`, `gh pr merge`, and publishing or deploying with `docker push`, `twine upload`, `cargo publish`, `npm unpublish`, `gh release create`, `pulumi up`, `cdk deploy`, `firebase deploy`, `fly deploy` or `wrangler deploy` now also ask under "Allow Bash for this session". These checks skip a command run with `--dry-run` or `--help`, but a command that says deploy, publish or release, such as `cargo publish --dry-run` or `firebase deploy --dry-run`, still asks, as it did before this release.
|
|
10
|
+
|
|
11
|
+
## 1.9.24
|
|
12
|
+
|
|
13
|
+
- Under When I'm out, a call nobody answers is refused for every agent with no approval prompt of its own (Antigravity CLI, Cursor file edits, sessions started from your phone), even when your rule approves on timeout. The 1.9.17 notes said this; only Codex did it. Under Every time a rule that approves on timeout still runs the call after its full wait.
|
|
14
|
+
- After three approvals nobody answered in a session, an Every time call whose rule approves on timeout keeps reaching your phone instead of running at once with nothing shown. Antigravity CLI sessions are no longer paused at all: agy sends nothing that could lift the pause, so every later call was refused until a new conversation.
|
|
15
|
+
- "Allow for this session" is offered for an MCP tool only when its name says it reads, such as `get_issue` or `list_files`. A grant cannot see the arguments of later calls, so a tool such as `query` or `create_issue` asks every time. A session grant already given for such a tool stops applying.
|
|
16
|
+
- `pushary sign-out --revoke` and `pushary clean --everything` revoke only a key this CLI created by browser sign-in or pairing. The Pushary Mac app's key, a key you pasted or passed with `--key`, and a key from an `export PUSHARY_API_KEY` line are removed from this computer and not revoked, because the Mac app or another machine may still use them; the output says so and links to the dashboard to revoke it there. Since 1.9.8 `sign-out --revoke` could revoke the Mac app's own key. A key saved before 1.9.24 has no record of how it was made, so it is removed and not revoked until your next sign-in records one.
|
|
17
|
+
|
|
3
18
|
## 1.9.23
|
|
4
19
|
|
|
5
20
|
- A `printf` whose format has a numeric conversion, such as `%d`, `%x` or `%f`, is no longer approved as a read unless every argument is a plain number. zsh, the default shell on a Mac, evaluates those arguments as arithmetic, and an argument such as `'PWD[$(command)]'` ran the command while Pushary approved it without asking. `printf '%s\n' text`, `printf hello` and `printf '%d\n' 42` are still approved as reads.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "pushary",
|
|
3
3
|
"displayName": "Pushary — Control Panel for AI Agents",
|
|
4
4
|
"description": "Push notifications, human-in-the-loop questions, and permission gating for your AI coding agent. Get a push when a task finishes, answer the agent from your phone, and approve risky commands before they run.",
|
|
5
|
-
"version": "0.2.
|
|
5
|
+
"version": "0.2.6",
|
|
6
6
|
"author": { "name": "Pushary", "email": "business@pushary.com" },
|
|
7
7
|
"homepage": "https://pushary.com",
|
|
8
8
|
"repository": "https://github.com/Pushary/cursor-plugin",
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.2.6
|
|
4
|
+
|
|
5
|
+
- Under When I'm out, a file change nobody answers is refused, even when your rule approves on timeout. Cursor's file hooks have no prompt of their own, so the change used to run once the wait ended. Under Every time a rule that approves on timeout still runs the change, as before.
|
|
6
|
+
|
|
3
7
|
## 0.2.5
|
|
4
8
|
|
|
5
9
|
- Under When I'm out, a file change asks your phone every time, also while you are at the keyboard, and waits for your policy's timeout. Cursor's file hooks cannot show a prompt of their own. Before, the change was refused with "Switch to Every time" and nobody was asked, or it was refused after the 10 second push window when you were away. Shell commands and MCP calls keep When I'm out as it was, because Cursor prompts for those itself.
|
|
@@ -37,6 +37,8 @@ const unresolved = (verdict) => genericToolHook && verdict?.reason === 'not_gate
|
|
|
37
37
|
|
|
38
38
|
const approvalModeWithoutLocalPrompt = (mode) => mode === 'push_first' ? 'push_only' : mode
|
|
39
39
|
const deliveryModeForThisHook = (mode) => genericToolHook ? approvalModeWithoutLocalPrompt(mode) : mode
|
|
40
|
+
const timeoutActionWithoutLocalPrompt = ({ mode, timeoutAction }) => mode !== 'push_only' && timeoutAction === 'approve' ? 'deny' : timeoutAction
|
|
41
|
+
const timeoutActionForThisHook = (tool) => genericToolHook ? timeoutActionWithoutLocalPrompt(tool) : tool.timeoutAction
|
|
40
42
|
const localSurfaceHint = () => genericToolHook ? { localSurfaceAvailable: false } : {}
|
|
41
43
|
|
|
42
44
|
let activeQuestion
|
|
@@ -705,7 +707,7 @@ setTimeout(async () => {
|
|
|
705
707
|
case 'notify_only':
|
|
706
708
|
return respond(await handleNotifyOnly(apiKey, request, project, ident))
|
|
707
709
|
case 'push_only':
|
|
708
|
-
return respond(await handlePushOnly(apiKey, request, project, ident, tool.timeoutSeconds, tool
|
|
710
|
+
return respond(await handlePushOnly(apiKey, request, project, ident, tool.timeoutSeconds, timeoutActionForThisHook(tool)))
|
|
709
711
|
case 'push_first':
|
|
710
712
|
default:
|
|
711
713
|
return respond(await handlePushFirst(apiKey, request, project, ident, tool.pushFirstSeconds))
|
|
@@ -718,7 +720,7 @@ setTimeout(async () => {
|
|
|
718
720
|
|
|
719
721
|
// Exported for scripts/pushary-gate.test.mjs. main() only runs when the gate is
|
|
720
722
|
// executed directly, so importing this file for a test does not read stdin.
|
|
721
|
-
export { normalizeRepoRemote, deriveRepoKey, describeRequest, handlePushOnly, handlePushFirst, withdraw, approvalModeWithoutLocalPrompt }
|
|
723
|
+
export { normalizeRepoRemote, deriveRepoKey, describeRequest, handlePushOnly, handlePushFirst, withdraw, approvalModeWithoutLocalPrompt, timeoutActionWithoutLocalPrompt }
|
|
722
724
|
|
|
723
725
|
const isDirectRun = process.argv[1] && import.meta.url === `file://${process.argv[1]}`
|
|
724
726
|
if (!isDirectRun) {
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
import assert from 'node:assert/strict'
|
|
16
16
|
import { describe, it } from 'node:test'
|
|
17
|
-
import { describeRequest, normalizeRepoRemote, redactSecrets } from './pushary-gate.mjs'
|
|
17
|
+
import { describeRequest, normalizeRepoRemote, redactSecrets, timeoutActionWithoutLocalPrompt } from './pushary-gate.mjs'
|
|
18
18
|
|
|
19
19
|
describe('repo identity', () => {
|
|
20
20
|
it('collapses the forms of one remote', () => {
|
|
@@ -135,3 +135,16 @@ describe('approval text redaction', () => {
|
|
|
135
135
|
assert.equal(redactSecrets('export API_KEY="abc123" && rm -rf build'), 'export API_KEY="[redacted]" && rm -rf build')
|
|
136
136
|
})
|
|
137
137
|
})
|
|
138
|
+
|
|
139
|
+
describe('a rule that approves on timeout, for a file hook with no prompt of its own', () => {
|
|
140
|
+
it('approves only under Every time, and is refused under When I am out', () => {
|
|
141
|
+
assert.equal(timeoutActionWithoutLocalPrompt({ mode: 'push_only', timeoutAction: 'approve' }), 'approve')
|
|
142
|
+
assert.equal(timeoutActionWithoutLocalPrompt({ mode: 'push_first', timeoutAction: 'approve' }), 'deny')
|
|
143
|
+
})
|
|
144
|
+
|
|
145
|
+
it('leaves every other timeout action as the rule wrote it', () => {
|
|
146
|
+
for (const timeoutAction of ['deny', 'escalate', 'wait']) {
|
|
147
|
+
assert.equal(timeoutActionWithoutLocalPrompt({ mode: 'push_first', timeoutAction }), timeoutAction)
|
|
148
|
+
}
|
|
149
|
+
})
|
|
150
|
+
})
|
|
@@ -1,41 +1,41 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
handleBell
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-UK7OY3EJ.js";
|
|
5
5
|
import {
|
|
6
6
|
readHookInput
|
|
7
|
-
} from "../chunk-
|
|
8
|
-
import "../chunk-
|
|
7
|
+
} from "../chunk-2J2WFX7X.js";
|
|
8
|
+
import "../chunk-7UZD2F4Y.js";
|
|
9
9
|
import "../chunk-VTR4VRL2.js";
|
|
10
|
-
import "../chunk-
|
|
11
|
-
import "../chunk-
|
|
12
|
-
import "../chunk-
|
|
13
|
-
import "../chunk-
|
|
10
|
+
import "../chunk-PAMW5M53.js";
|
|
11
|
+
import "../chunk-FCXYDR62.js";
|
|
12
|
+
import "../chunk-FLC4TVXH.js";
|
|
13
|
+
import "../chunk-YD3DIFIU.js";
|
|
14
14
|
import "../chunk-XHKBHWLX.js";
|
|
15
|
-
import "../chunk-
|
|
16
|
-
import "../chunk-
|
|
17
|
-
import "../chunk-
|
|
18
|
-
import "../chunk-
|
|
19
|
-
import "../chunk-
|
|
15
|
+
import "../chunk-5WTEKIAS.js";
|
|
16
|
+
import "../chunk-ZLY7BHN4.js";
|
|
17
|
+
import "../chunk-KM7AEGKF.js";
|
|
18
|
+
import "../chunk-4KZP4YMV.js";
|
|
19
|
+
import "../chunk-ZNT4ZZXJ.js";
|
|
20
20
|
import "../chunk-GMXKITVA.js";
|
|
21
21
|
import "../chunk-6ICPEJY5.js";
|
|
22
|
-
import "../chunk-
|
|
23
|
-
import "../chunk-
|
|
24
|
-
import "../chunk-
|
|
25
|
-
import "../chunk-
|
|
22
|
+
import "../chunk-GC5HJE3T.js";
|
|
23
|
+
import "../chunk-AXB4ABUD.js";
|
|
24
|
+
import "../chunk-A3QQWXIE.js";
|
|
25
|
+
import "../chunk-NFH2H7PD.js";
|
|
26
26
|
import "../chunk-POFBE6ZY.js";
|
|
27
|
-
import "../chunk-
|
|
28
|
-
import "../chunk-
|
|
29
|
-
import "../chunk-
|
|
30
|
-
import "../chunk-
|
|
27
|
+
import "../chunk-7V6PJFDF.js";
|
|
28
|
+
import "../chunk-VEGS4NYF.js";
|
|
29
|
+
import "../chunk-ZV3262AA.js";
|
|
30
|
+
import "../chunk-ZLGCNHJG.js";
|
|
31
31
|
import "../chunk-7QLSKOSU.js";
|
|
32
32
|
import "../chunk-KZERVKTD.js";
|
|
33
|
-
import "../chunk-
|
|
34
|
-
import "../chunk-
|
|
33
|
+
import "../chunk-EJMXZH5E.js";
|
|
34
|
+
import "../chunk-2VQZC6DW.js";
|
|
35
35
|
import "../chunk-AQFEP65J.js";
|
|
36
|
-
import "../chunk-
|
|
37
|
-
import "../chunk-
|
|
38
|
-
import "../chunk-
|
|
36
|
+
import "../chunk-5Q2QJ2AL.js";
|
|
37
|
+
import "../chunk-OOKIWOMK.js";
|
|
38
|
+
import "../chunk-KGSN2SOL.js";
|
|
39
39
|
|
|
40
40
|
// bin/pushary-bell-hook.ts
|
|
41
41
|
var main = async () => {
|
package/dist/bin/pushary-bell.js
CHANGED
|
@@ -5,39 +5,39 @@ import {
|
|
|
5
5
|
liveAgentCount,
|
|
6
6
|
ring,
|
|
7
7
|
upgradeThreshold
|
|
8
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-UK7OY3EJ.js";
|
|
9
9
|
import {
|
|
10
10
|
createIo
|
|
11
11
|
} from "../chunk-FO3MDD26.js";
|
|
12
12
|
import {
|
|
13
13
|
exitOnHelpFlag
|
|
14
|
-
} from "../chunk-
|
|
14
|
+
} from "../chunk-KP4BIZLP.js";
|
|
15
15
|
import {
|
|
16
16
|
addBellHooks,
|
|
17
17
|
bellInstalled,
|
|
18
18
|
removeBellHooks
|
|
19
|
-
} from "../chunk-
|
|
19
|
+
} from "../chunk-ZNT4ZZXJ.js";
|
|
20
20
|
import {
|
|
21
21
|
parseFlags
|
|
22
22
|
} from "../chunk-GMXKITVA.js";
|
|
23
|
-
import "../chunk-
|
|
23
|
+
import "../chunk-GC5HJE3T.js";
|
|
24
24
|
import "../chunk-7QLSKOSU.js";
|
|
25
25
|
import {
|
|
26
26
|
EXIT
|
|
27
27
|
} from "../chunk-KZERVKTD.js";
|
|
28
|
-
import "../chunk-
|
|
28
|
+
import "../chunk-EJMXZH5E.js";
|
|
29
29
|
import {
|
|
30
30
|
claudeSettings
|
|
31
|
-
} from "../chunk-
|
|
31
|
+
} from "../chunk-2VQZC6DW.js";
|
|
32
32
|
import {
|
|
33
33
|
readJsonSafe,
|
|
34
34
|
writeJsonAtomic
|
|
35
35
|
} from "../chunk-AQFEP65J.js";
|
|
36
|
-
import "../chunk-
|
|
37
|
-
import "../chunk-
|
|
36
|
+
import "../chunk-5Q2QJ2AL.js";
|
|
37
|
+
import "../chunk-OOKIWOMK.js";
|
|
38
38
|
import {
|
|
39
39
|
isRecord
|
|
40
|
-
} from "../chunk-
|
|
40
|
+
} from "../chunk-KGSN2SOL.js";
|
|
41
41
|
|
|
42
42
|
// bin/pushary-bell.ts
|
|
43
43
|
exitOnHelpFlag("bell");
|
|
@@ -8,39 +8,39 @@ import {
|
|
|
8
8
|
describeIdleWindow,
|
|
9
9
|
startProcessOwnership,
|
|
10
10
|
withSpawnProcessOwnership
|
|
11
|
-
} from "../chunk-
|
|
11
|
+
} from "../chunk-HEJMZVJI.js";
|
|
12
12
|
import {
|
|
13
13
|
announceSubscriptionRequired,
|
|
14
14
|
isDeferAnswer
|
|
15
|
-
} from "../chunk-
|
|
15
|
+
} from "../chunk-SGGR5MN2.js";
|
|
16
16
|
import {
|
|
17
17
|
claudeTranscriptPath,
|
|
18
18
|
loadSessionKey,
|
|
19
19
|
registerTranscript,
|
|
20
20
|
registeredTranscriptEnabled
|
|
21
|
-
} from "../chunk-
|
|
21
|
+
} from "../chunk-7UZD2F4Y.js";
|
|
22
22
|
import "../chunk-VTR4VRL2.js";
|
|
23
23
|
import {
|
|
24
24
|
ensureDaemonRunning
|
|
25
|
-
} from "../chunk-
|
|
25
|
+
} from "../chunk-PAMW5M53.js";
|
|
26
26
|
import {
|
|
27
27
|
encryptRecord
|
|
28
|
-
} from "../chunk-
|
|
29
|
-
import "../chunk-
|
|
28
|
+
} from "../chunk-FCXYDR62.js";
|
|
29
|
+
import "../chunk-FLC4TVXH.js";
|
|
30
30
|
import {
|
|
31
31
|
transcriptsEnabled
|
|
32
|
-
} from "../chunk-
|
|
32
|
+
} from "../chunk-YD3DIFIU.js";
|
|
33
33
|
import {
|
|
34
34
|
needsShell,
|
|
35
35
|
spawnClaude
|
|
36
36
|
} from "../chunk-XHKBHWLX.js";
|
|
37
|
-
import "../chunk-
|
|
38
|
-
import "../chunk-
|
|
39
|
-
import "../chunk-
|
|
40
|
-
import "../chunk-
|
|
37
|
+
import "../chunk-ZLY7BHN4.js";
|
|
38
|
+
import "../chunk-KM7AEGKF.js";
|
|
39
|
+
import "../chunk-4KZP4YMV.js";
|
|
40
|
+
import "../chunk-ZNT4ZZXJ.js";
|
|
41
41
|
import "../chunk-GMXKITVA.js";
|
|
42
42
|
import "../chunk-6ICPEJY5.js";
|
|
43
|
-
import "../chunk-
|
|
43
|
+
import "../chunk-GC5HJE3T.js";
|
|
44
44
|
import {
|
|
45
45
|
DEFAULT_SESSION,
|
|
46
46
|
UNNAMED_ACTION,
|
|
@@ -58,8 +58,8 @@ import {
|
|
|
58
58
|
reportEvent,
|
|
59
59
|
savePendingCommand,
|
|
60
60
|
scopePathFor
|
|
61
|
-
} from "../chunk-
|
|
62
|
-
import "../chunk-
|
|
61
|
+
} from "../chunk-AXB4ABUD.js";
|
|
62
|
+
import "../chunk-A3QQWXIE.js";
|
|
63
63
|
import {
|
|
64
64
|
askUser,
|
|
65
65
|
cancelQuestion,
|
|
@@ -69,35 +69,36 @@ import {
|
|
|
69
69
|
waitForAnswer,
|
|
70
70
|
waitsForThePhone,
|
|
71
71
|
withdrawQuestion
|
|
72
|
-
} from "../chunk-
|
|
72
|
+
} from "../chunk-NFH2H7PD.js";
|
|
73
73
|
import "../chunk-POFBE6ZY.js";
|
|
74
74
|
import {
|
|
75
75
|
SubscriptionRequiredError
|
|
76
|
-
} from "../chunk-
|
|
77
|
-
import "../chunk-
|
|
78
|
-
import "../chunk-
|
|
76
|
+
} from "../chunk-7V6PJFDF.js";
|
|
77
|
+
import "../chunk-VEGS4NYF.js";
|
|
78
|
+
import "../chunk-ZV3262AA.js";
|
|
79
79
|
import {
|
|
80
80
|
getMachineId
|
|
81
|
-
} from "../chunk-
|
|
81
|
+
} from "../chunk-ZLGCNHJG.js";
|
|
82
82
|
import "../chunk-7QLSKOSU.js";
|
|
83
83
|
import "../chunk-KZERVKTD.js";
|
|
84
|
-
import "../chunk-
|
|
85
|
-
import "../chunk-
|
|
84
|
+
import "../chunk-EJMXZH5E.js";
|
|
85
|
+
import "../chunk-2VQZC6DW.js";
|
|
86
86
|
import "../chunk-AQFEP65J.js";
|
|
87
87
|
import {
|
|
88
88
|
getApiKey,
|
|
89
89
|
getBaseUrl
|
|
90
|
-
} from "../chunk-
|
|
90
|
+
} from "../chunk-5Q2QJ2AL.js";
|
|
91
91
|
import {
|
|
92
92
|
NPX_LATEST_COMMAND
|
|
93
|
-
} from "../chunk-
|
|
93
|
+
} from "../chunk-OOKIWOMK.js";
|
|
94
94
|
import {
|
|
95
95
|
DECISION_STOP_REASON,
|
|
96
96
|
KILL_REASON,
|
|
97
97
|
UNVERIFIABLE_APPROVAL_REASON,
|
|
98
98
|
redactSecretsFromContent,
|
|
99
|
-
resolveGate
|
|
100
|
-
|
|
99
|
+
resolveGate,
|
|
100
|
+
timeoutActionWithoutLocalPrompt
|
|
101
|
+
} from "../chunk-KGSN2SOL.js";
|
|
101
102
|
|
|
102
103
|
// src/wrapper/localPassthrough.ts
|
|
103
104
|
var SIGNAL_NUMBERS = {
|
|
@@ -454,7 +455,7 @@ var createRemoteApprover = (deps) => {
|
|
|
454
455
|
const ceiling = policy.timeoutAction === "wait" ? MAX_APPROVAL_WINDOW_MS : base;
|
|
455
456
|
return Math.min(Math.max(base, 15e3), Math.max(ceiling, 15e3));
|
|
456
457
|
};
|
|
457
|
-
const applyTimeout = (policy, input) => policy
|
|
458
|
+
const applyTimeout = (policy, input) => timeoutActionWithoutLocalPrompt(policy) === "approve" ? allow(input) : deny("No approval received in time");
|
|
458
459
|
const waitForPhone = async (entry, correlationId, windowMs) => {
|
|
459
460
|
const deadline = now() + windowMs;
|
|
460
461
|
while (now() < deadline && !entry.controller.signal.aborted) {
|
|
@@ -5,15 +5,16 @@ import {
|
|
|
5
5
|
createGuards
|
|
6
6
|
} from "../chunk-EUW7JL2K.js";
|
|
7
7
|
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
describeCliKeyRevocation,
|
|
9
|
+
planCliKeyRevocations,
|
|
10
|
+
readCliHeldKeys,
|
|
11
|
+
revokeCliKeys
|
|
12
|
+
} from "../chunk-UJB6HHP4.js";
|
|
12
13
|
import {
|
|
13
14
|
isCursorPluginLeftover,
|
|
14
15
|
releaseSoleGate,
|
|
15
16
|
withoutPusharyCursorHooks
|
|
16
|
-
} from "../chunk-
|
|
17
|
+
} from "../chunk-Q37XFSPO.js";
|
|
17
18
|
import {
|
|
18
19
|
HERMES_PIP_PACKAGE,
|
|
19
20
|
readHermesStatus,
|
|
@@ -22,27 +23,25 @@ import {
|
|
|
22
23
|
shortenHome,
|
|
23
24
|
unregisterPluginLocation,
|
|
24
25
|
vscodeSettingsTargets
|
|
25
|
-
} from "../chunk-
|
|
26
|
+
} from "../chunk-LDNKGG5G.js";
|
|
26
27
|
import {
|
|
27
28
|
planFxRemoval,
|
|
28
29
|
removeInstructionBlock
|
|
29
|
-
} from "../chunk-
|
|
30
|
-
import "../chunk-
|
|
30
|
+
} from "../chunk-KZLOVLA6.js";
|
|
31
|
+
import "../chunk-EJJNZYDS.js";
|
|
31
32
|
import {
|
|
32
33
|
disableDaemonService
|
|
33
|
-
} from "../chunk-
|
|
34
|
+
} from "../chunk-PAMW5M53.js";
|
|
34
35
|
import "../chunk-XHKBHWLX.js";
|
|
35
|
-
import
|
|
36
|
-
APPROVAL_SETTINGS_PATH
|
|
37
|
-
} from "../chunk-S2R2U5W5.js";
|
|
36
|
+
import "../chunk-RSENVGBQ.js";
|
|
38
37
|
import {
|
|
39
38
|
macAppKeepsMcpEntry,
|
|
40
39
|
mcpServerBearer,
|
|
41
40
|
pusharyKey,
|
|
42
41
|
readMacAppAgentKey,
|
|
43
42
|
setupReceiptKey
|
|
44
|
-
} from "../chunk-
|
|
45
|
-
import "../chunk-
|
|
43
|
+
} from "../chunk-WEKXYS2F.js";
|
|
44
|
+
import "../chunk-WKEP4JAW.js";
|
|
46
45
|
import {
|
|
47
46
|
OPENCODE_PLUGIN_SIBLING,
|
|
48
47
|
OPENCODE_PLUGIN_SIBLING_CONTENTS,
|
|
@@ -54,14 +53,14 @@ import {
|
|
|
54
53
|
openCodePluginDir,
|
|
55
54
|
openCodePluginFile,
|
|
56
55
|
removeOpenCodeMcpServer
|
|
57
|
-
} from "../chunk-
|
|
56
|
+
} from "../chunk-FJKV64M7.js";
|
|
58
57
|
import {
|
|
59
58
|
ansiPainter,
|
|
60
59
|
useColor
|
|
61
60
|
} from "../chunk-FO3MDD26.js";
|
|
62
61
|
import {
|
|
63
62
|
exitOnHelpFlag
|
|
64
|
-
} from "../chunk-
|
|
63
|
+
} from "../chunk-KP4BIZLP.js";
|
|
65
64
|
import {
|
|
66
65
|
compatibleConfigFile,
|
|
67
66
|
compatibleInstructionsFile,
|
|
@@ -74,7 +73,7 @@ import {
|
|
|
74
73
|
removePusharySettings,
|
|
75
74
|
removePusharyToolPermissions,
|
|
76
75
|
restoreClaudeMcpServer
|
|
77
|
-
} from "../chunk-
|
|
76
|
+
} from "../chunk-5WTEKIAS.js";
|
|
78
77
|
import {
|
|
79
78
|
hookOwnerOf,
|
|
80
79
|
isHookTakeoverReceipt,
|
|
@@ -82,42 +81,35 @@ import {
|
|
|
82
81
|
resolveBridgeStub,
|
|
83
82
|
restoreHookTakeover,
|
|
84
83
|
restoreMcpServer
|
|
85
|
-
} from "../chunk-
|
|
84
|
+
} from "../chunk-ZLY7BHN4.js";
|
|
86
85
|
import {
|
|
87
86
|
removeGeminiSettings
|
|
88
|
-
} from "../chunk-
|
|
89
|
-
import "../chunk-
|
|
90
|
-
import "../chunk-
|
|
87
|
+
} from "../chunk-KM7AEGKF.js";
|
|
88
|
+
import "../chunk-4KZP4YMV.js";
|
|
89
|
+
import "../chunk-ZNT4ZZXJ.js";
|
|
91
90
|
import {
|
|
92
91
|
rejectUnknownFlags
|
|
93
92
|
} from "../chunk-GMXKITVA.js";
|
|
94
93
|
import "../chunk-6ICPEJY5.js";
|
|
95
94
|
import {
|
|
96
95
|
CANDIDATE_RCS,
|
|
97
|
-
findExportedKeyLines,
|
|
98
|
-
isAdoptedMacAppKey,
|
|
99
96
|
isDisabledExport,
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
import "../chunk-GYP6DLA4.js";
|
|
107
|
-
import "../chunk-KJA6IGOZ.js";
|
|
108
|
-
import "../chunk-4GKQDFH6.js";
|
|
97
|
+
removeClaudeAlias,
|
|
98
|
+
shellProfileCandidates
|
|
99
|
+
} from "../chunk-GC5HJE3T.js";
|
|
100
|
+
import "../chunk-AXB4ABUD.js";
|
|
101
|
+
import "../chunk-A3QQWXIE.js";
|
|
102
|
+
import "../chunk-NFH2H7PD.js";
|
|
109
103
|
import "../chunk-POFBE6ZY.js";
|
|
110
|
-
import "../chunk-
|
|
111
|
-
import
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
import "../chunk-XBETSM5T.js";
|
|
115
|
-
import "../chunk-EDN4F6GX.js";
|
|
104
|
+
import "../chunk-7V6PJFDF.js";
|
|
105
|
+
import "../chunk-VEGS4NYF.js";
|
|
106
|
+
import "../chunk-ZV3262AA.js";
|
|
107
|
+
import "../chunk-ZLGCNHJG.js";
|
|
116
108
|
import "../chunk-7QLSKOSU.js";
|
|
117
109
|
import {
|
|
118
110
|
EXIT
|
|
119
111
|
} from "../chunk-KZERVKTD.js";
|
|
120
|
-
import "../chunk-
|
|
112
|
+
import "../chunk-EJMXZH5E.js";
|
|
121
113
|
import {
|
|
122
114
|
claudeJson,
|
|
123
115
|
claudeMcpReceipt,
|
|
@@ -154,14 +146,14 @@ import {
|
|
|
154
146
|
restoreCodexHookTrust,
|
|
155
147
|
vscodePluginDir,
|
|
156
148
|
vscodePluginMcp
|
|
157
|
-
} from "../chunk-
|
|
149
|
+
} from "../chunk-2VQZC6DW.js";
|
|
158
150
|
import "../chunk-AQFEP65J.js";
|
|
159
151
|
import {
|
|
160
152
|
getBaseUrl
|
|
161
|
-
} from "../chunk-
|
|
153
|
+
} from "../chunk-5Q2QJ2AL.js";
|
|
162
154
|
import {
|
|
163
155
|
NPX_LATEST_COMMAND
|
|
164
|
-
} from "../chunk-
|
|
156
|
+
} from "../chunk-OOKIWOMK.js";
|
|
165
157
|
import {
|
|
166
158
|
CLI_PACKAGE_NAMES,
|
|
167
159
|
HOOK_COMPATIBLE_PROFILES,
|
|
@@ -173,7 +165,7 @@ import {
|
|
|
173
165
|
globalRootFor,
|
|
174
166
|
isValidApiKey,
|
|
175
167
|
redactSecrets
|
|
176
|
-
} from "../chunk-
|
|
168
|
+
} from "../chunk-KGSN2SOL.js";
|
|
177
169
|
|
|
178
170
|
// bin/pushary-clean.ts
|
|
179
171
|
import { existsSync as existsSync6, readFileSync as readFileSync4, copyFileSync, readdirSync as readdirSync4 } from "fs";
|
|
@@ -599,43 +591,6 @@ var cleanCompatibleAgent = (profile, scope, io, home) => {
|
|
|
599
591
|
};
|
|
600
592
|
};
|
|
601
593
|
|
|
602
|
-
// src/cli/clean-key-revocation.ts
|
|
603
|
-
var isMacAppCurrentOrAdoptedKey = (key, keys) => key === keys.macAppKey || isAdoptedMacAppKey(key, keys.macAppKeyPrefix);
|
|
604
|
-
var revocationFor = (keys) => (key) => isMacAppCurrentOrAdoptedKey(key, keys) ? { kind: "mac_app_key", keyPrefix: keyPrefix(key) } : { kind: "revoke", key };
|
|
605
|
-
var validKeys = (keys) => [...new Set(keys)].filter((key) => key !== null && isValidApiKey(key));
|
|
606
|
-
var environmentOnlyKey = (keys, written) => validKeys([keys.envKey]).filter((key) => !written.includes(key)).map((key) => ({ kind: "environment_only", keyPrefix: keyPrefix(key) }));
|
|
607
|
-
var planCliKeyRevocations = (keys) => {
|
|
608
|
-
const written = validKeys([keys.configKey, ...keys.profileKeys]);
|
|
609
|
-
return [...written.map(revocationFor(keys)), ...environmentOnlyKey(keys, written)];
|
|
610
|
-
};
|
|
611
|
-
var runRevocation = async (revocation, run) => {
|
|
612
|
-
if (revocation.kind !== "revoke") return revocation;
|
|
613
|
-
if (run.dryRun) return { kind: "would_revoke", keyPrefix: keyPrefix(revocation.key) };
|
|
614
|
-
return { kind: "attempted", keyPrefix: keyPrefix(revocation.key), attempt: await revokeOwnKey(revocation.key, run.baseUrl) };
|
|
615
|
-
};
|
|
616
|
-
var revokeCliKeys = async (revocations, run) => {
|
|
617
|
-
const outcomes = [];
|
|
618
|
-
for (const revocation of revocations) outcomes.push(await runRevocation(revocation, run));
|
|
619
|
-
return outcomes;
|
|
620
|
-
};
|
|
621
|
-
var describeCliKeyRevocation = (outcome, baseUrl) => {
|
|
622
|
-
const label = `API key ${outcome.keyPrefix}`;
|
|
623
|
-
switch (outcome.kind) {
|
|
624
|
-
case "would_revoke":
|
|
625
|
-
return { tone: "skipped", line: `${label} (would revoke it on pushary.com)`, next: null };
|
|
626
|
-
case "mac_app_key":
|
|
627
|
-
return { tone: "skipped", line: `${label} (not revoked: it is the Pushary Mac app's key)`, next: null };
|
|
628
|
-
case "environment_only":
|
|
629
|
-
return { tone: "skipped", line: `${label} in PUSHARY_API_KEY (left alone: Pushary did not write it)`, next: null };
|
|
630
|
-
case "attempted":
|
|
631
|
-
return keyNoLongerAccepted(outcome.attempt) ? { tone: "done", line: `${label}: ${describeRevokeAttempt(outcome.attempt)}`, next: null } : {
|
|
632
|
-
tone: "warning",
|
|
633
|
-
line: `${label}: ${describeRevokeAttempt(outcome.attempt)}`,
|
|
634
|
-
next: `It may still be valid. Revoke it at ${absoluteUrl(baseUrl, APPROVAL_SETTINGS_PATH)}`
|
|
635
|
-
};
|
|
636
|
-
}
|
|
637
|
-
};
|
|
638
|
-
|
|
639
594
|
// bin/pushary-clean.ts
|
|
640
595
|
exitOnHelpFlag("clean");
|
|
641
596
|
var paint = ansiPainter(() => useColor());
|
|
@@ -870,18 +825,11 @@ var printKeyRevocation = (report) => {
|
|
|
870
825
|
console.log(` ${KEY_REVOCATION_ICONS[report.tone]} ${report.line}`);
|
|
871
826
|
if (report.next) console.log(` ${dim(report.next)}`);
|
|
872
827
|
};
|
|
873
|
-
var
|
|
874
|
-
const
|
|
875
|
-
const
|
|
876
|
-
const
|
|
877
|
-
|
|
878
|
-
profileKeys: findExportedKeyLines().map((line) => line.key),
|
|
879
|
-
envKey: source.kind === "env" ? source.key : null,
|
|
880
|
-
macAppKey: readMacAppAgentKey(),
|
|
881
|
-
macAppKeyPrefix: readMacAppKeyPrefix()
|
|
882
|
-
});
|
|
883
|
-
const outcomes = await revokeCliKeys(revocations, { dryRun, baseUrl });
|
|
884
|
-
for (const outcome of outcomes) printKeyRevocation(describeCliKeyRevocation(outcome, baseUrl));
|
|
828
|
+
var revokeKeysThisCliCreated = async () => {
|
|
829
|
+
const run = { dryRun, baseUrl: getBaseUrl() };
|
|
830
|
+
const revocations = planCliKeyRevocations(readCliHeldKeys(shellProfileCandidates()));
|
|
831
|
+
const outcomes = await revokeCliKeys(revocations, run);
|
|
832
|
+
for (const outcome of outcomes) printKeyRevocation(describeCliKeyRevocation(outcome, run));
|
|
885
833
|
};
|
|
886
834
|
var main = async () => {
|
|
887
835
|
console.log();
|
|
@@ -961,7 +909,7 @@ var main = async () => {
|
|
|
961
909
|
process.exit(EXIT.FAILED);
|
|
962
910
|
}
|
|
963
911
|
console.log(` ${check} Background service ${dim(did("uninstalled"))}`);
|
|
964
|
-
if (everything) await
|
|
912
|
+
if (everything) await revokeKeysThisCliCreated();
|
|
965
913
|
const claudeJson2 = readJson(CLAUDE_JSON);
|
|
966
914
|
const keepClaudeMcp = macAppKeeps("claude_code", mcpServerBearer(claudeJson2?.mcpServers));
|
|
967
915
|
const claudeHasPusharyEntry = () => Boolean(claudeJson2?.mcpServers?.pushary);
|
|
@@ -5,10 +5,10 @@ import {
|
|
|
5
5
|
postLiveSession,
|
|
6
6
|
postLiveSessionUntilAccepted,
|
|
7
7
|
startLiveSessionHeartbeat
|
|
8
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-5ETE7F45.js";
|
|
9
9
|
import {
|
|
10
10
|
resolveProviderBinary
|
|
11
|
-
} from "../chunk-
|
|
11
|
+
} from "../chunk-OWOSNGEQ.js";
|
|
12
12
|
import "../chunk-RIVNNBEK.js";
|
|
13
13
|
import {
|
|
14
14
|
SESSION_IDLE_TIMEOUT_MS,
|
|
@@ -16,50 +16,50 @@ import {
|
|
|
16
16
|
idleDeadlinePassed,
|
|
17
17
|
startProcessOwnership,
|
|
18
18
|
withSpawnProcessOwnership
|
|
19
|
-
} from "../chunk-
|
|
20
|
-
import "../chunk-
|
|
21
|
-
import "../chunk-
|
|
19
|
+
} from "../chunk-HEJMZVJI.js";
|
|
20
|
+
import "../chunk-FCXYDR62.js";
|
|
21
|
+
import "../chunk-FLC4TVXH.js";
|
|
22
22
|
import {
|
|
23
23
|
transcriptsEnabled
|
|
24
|
-
} from "../chunk-
|
|
24
|
+
} from "../chunk-YD3DIFIU.js";
|
|
25
25
|
import {
|
|
26
26
|
spawnClaude
|
|
27
27
|
} from "../chunk-XHKBHWLX.js";
|
|
28
28
|
import "../chunk-6ICPEJY5.js";
|
|
29
|
-
import "../chunk-
|
|
29
|
+
import "../chunk-GC5HJE3T.js";
|
|
30
30
|
import {
|
|
31
31
|
isAskUserResponse,
|
|
32
32
|
isDecisionStopped,
|
|
33
33
|
isWaitForAnswerResponse,
|
|
34
34
|
withdrawQuestion,
|
|
35
35
|
writeDegraded
|
|
36
|
-
} from "../chunk-
|
|
36
|
+
} from "../chunk-NFH2H7PD.js";
|
|
37
37
|
import "../chunk-POFBE6ZY.js";
|
|
38
38
|
import {
|
|
39
39
|
callMcpTool
|
|
40
|
-
} from "../chunk-
|
|
41
|
-
import "../chunk-
|
|
42
|
-
import "../chunk-
|
|
40
|
+
} from "../chunk-7V6PJFDF.js";
|
|
41
|
+
import "../chunk-VEGS4NYF.js";
|
|
42
|
+
import "../chunk-ZV3262AA.js";
|
|
43
43
|
import {
|
|
44
44
|
getMachineId
|
|
45
|
-
} from "../chunk-
|
|
45
|
+
} from "../chunk-ZLGCNHJG.js";
|
|
46
46
|
import "../chunk-7QLSKOSU.js";
|
|
47
47
|
import "../chunk-KZERVKTD.js";
|
|
48
|
-
import "../chunk-
|
|
49
|
-
import "../chunk-
|
|
48
|
+
import "../chunk-EJMXZH5E.js";
|
|
49
|
+
import "../chunk-2VQZC6DW.js";
|
|
50
50
|
import "../chunk-AQFEP65J.js";
|
|
51
51
|
import {
|
|
52
52
|
getApiKey,
|
|
53
53
|
getBaseUrl
|
|
54
|
-
} from "../chunk-
|
|
55
|
-
import "../chunk-
|
|
54
|
+
} from "../chunk-5Q2QJ2AL.js";
|
|
55
|
+
import "../chunk-OOKIWOMK.js";
|
|
56
56
|
import {
|
|
57
57
|
elicitationContent,
|
|
58
58
|
parseAgentQuestion,
|
|
59
59
|
parseAgentQuestionAnswers,
|
|
60
60
|
planElicitationAsk,
|
|
61
61
|
readElicitationFields
|
|
62
|
-
} from "../chunk-
|
|
62
|
+
} from "../chunk-KGSN2SOL.js";
|
|
63
63
|
|
|
64
64
|
// bin/pushary-codex-bridge.ts
|
|
65
65
|
import { existsSync } from "fs";
|