You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 64694ed
Browse filesBrowse the repository at this point in the historyBrowse files
authored
[patch] agent-hooks v0.12.1: Add Codex SessionStart support (#29)
* [patch] chore: sync modules to v0.12.1
* Add Agent Package Resolution SessionStart hook assembly
Co-authored-by: Cursor <cursoragent@cursor.com>
* Align Verify and Recovery wording with Claude plugin README.
Drop the routing-mode qualifier on jf rt ping and the modules/ recovery row so the two plugin READMEs stay in lockstep.
Co-authored-by: Cursor <cursoragent@cursor.com>
---------
Co-authored-by: jfrog-skills-release-bot[bot] <276080306+jfrog-skills-release-bot[bot]@users.noreply.github.com>
Co-authored-by: Roee Sanker <roees@jfrog.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Copy file name to clipboardExpand all lines: README.md
+50-2Lines changed: 50 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,6 +12,7 @@ The JFrog plugin provides the following capabilities, grouped by component:
12
12
|**MCP**| JFrog MCP server | Bundled `jfrog` MCP server ([`.mcp.json`](.mcp.json)) at `https://<JFROG_PLATFORM_URL>/mcp`; this server signs in via OAuth (`codex mcp login jfrog`), so it needs no API key. |
13
13
|**Skill**| JFrog Platform | Interact with Artifactory repositories, builds, permissions, users, access tokens, projects, release bundles, and platform administration via the JFrog CLI and REST/GraphQL APIs. Also covers security audits, CVE lookups, and Advanced Security exposure queries. |
14
14
|**Skill**| Package curation | Check whether npm, Maven, PyPI, Go, and other packages are safe, curated, or allowed, then download them through Artifactory remote caches or curation-aware package managers. |
15
+
|**Hook + Skill**| Agent Package Resolution (Preview) | Automatically route packages installed by the AI agent through your organization's JFrog Artifactory, keeping agent-driven installs inside your Curation, Xray, and governance perimeter. |
15
16
|**Skill**| Agent Guard | Codex manages MCPs through the JFrog Agent Guard. Through the Agent Guard you can discover, install, configure, update, and remove MCP servers from the JFrog AI Catalog approved for your project, and authenticate to remote HTTP MCPs via OAuth, API key, or bearer token. |
Browse installed plugins in the Codex TUI with `/plugins`.
45
+
Browse installed plugins in the Codex TUI with `/plugins`. Installing the plugin
46
+
does **not** trust the SessionStart hook — restart Codex, run `/hooks`, and
47
+
trust the JFrog Package Resolution command. ChatGPT **web** does not run hook
48
+
scripts.
45
49
46
50
### Local development
47
51
@@ -116,9 +120,13 @@ restarting Codex, confirm:
116
120
JFrog skills appear. See [Discovering and invoking skills](#discovering-and-invoking-skills).
117
121
3.**MCP server is connected** — run `codex mcp list` and confirm `jfrog` is
118
122
connected (after `codex mcp login jfrog`).
123
+
4.**SessionStart hook is trusted** — `/hooks` lists the JFrog Package Resolution
124
+
command as trusted. Without that, Agent Package Resolution does not inject.
125
+
5.`jf rt ping` — succeeds against your configured server.
119
126
120
127
If any check fails, see [Recovery](#recovery). Setting MCP environment variables
121
-
by hand does not repair a failed initialization — re-run `jfrog-init` instead.
128
+
by hand does not repair a failed MCP initialization — re-run `jfrog-init`
129
+
instead. An untrusted SessionStart hook is a `/hooks` step, not an init failure.
122
130
123
131
---
124
132
@@ -130,6 +138,23 @@ by hand does not repair a failed initialization — re-run `jfrog-init` instead.
130
138
|`jfrog-init` stopped at CLI/auth | Follow the skill prompt (`jf config add`, web login, or token path), then **re-run `jfrog-init`**. | Skip init and only export env vars. |
131
139
| Placeholder still in `.mcp.json`| Set the host in `<install-path>/.mcp.json`, run `codex mcp login jfrog`, restart Codex. | Reinstall the plugin when only the host placeholder is wrong. |
132
140
| Plugin not listed | Re-run `codex plugin add jfrog@codex-plugin` outside Codex, then restart Codex. | Run install commands from inside the Codex TUI. |
141
+
|`/hooks` shows the Package Resolution command as untrusted, or no Artifactory routing in a new session | Restart Codex, open `/hooks`, and trust the exact command. A later change to the hook definition requires trust again. | Assume `codex plugin add` approved the hook. Do not use `--dangerously-bypass-hook-trust` as the normal path. |
142
+
| ChatGPT web never routes installs | Use Codex CLI or the ChatGPT desktop Codex surface. | Expect hook scripts to run on ChatGPT web. |
143
+
144
+
---
145
+
146
+
## Agent Package Resolution (Preview)
147
+
148
+
> **Preview Notice:** This feature is in preview and licensed under the Apache License 2.0. For clarity: This software is provided "as-is" without warranty of any kind, and without support obligations or service level commitments. Behavior, APIs, conventions, and structure may change without notice between releases. JFrog makes no guarantees of backward compatibility during the preview release cycle. Use in production environments is at your own risk.
149
+
150
+
The plugin can now automatically route the packages your AI agent installs (npm, PyPI, Maven, Go, Docker, Helm, and NuGet) through your organization's JFrog Artifactory instead of public registries. This keeps agent-driven dependency installs inside your organization's governance perimeter.
151
+
152
+
Agent Package Resolution is in preview. The shipped template enables it with empty repository bindings (nothing is routed until Consent Enable or an admin adds `defaultGlobalRepos`). To get started:
153
+
154
+
-**Users:** see the [User Guide](docs/package-resolution-user-guide.md).
155
+
-**Admins:** see the [Admin Guide](docs/package-resolution-admin-guide.md).
156
+
157
+
Installing the plugin does not skip `/hooks` trust. ChatGPT **web** does not run the SessionStart hook.
133
158
134
159
---
135
160
@@ -170,6 +195,16 @@ If a newly installed skill doesn't show up, restart Codex so it re-scans plugins
170
195
| "Is this Maven package approved for use?" | Checks curation entitlement and policy for the requested package. |
171
196
| "Download `requests` via JFrog." | Resolves the package through an Artifactory remote cache or curation-aware package manager. |
172
197
198
+
### Agent Package Resolution
199
+
200
+
When Agent Package Resolution is enabled and configured, no special prompt syntax is required. Ask the agent to install or use a package as you normally would, and the plugin routes supported package operations through your organization's Artifactory.
Copy file name to clipboardExpand all lines: VENDOR.md
+23Lines changed: 23 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -32,3 +32,26 @@ node scripts/sync-skills.mjs
32
32
```
33
33
34
34
The script reads its sibling [`sync-skills-vendor.json`](scripts/sync-skills-vendor.json), downloads the pinned upstream tarball from `codeload.github.com`, and replaces the directories listed in `paths` (today: `skills/`).
35
+
36
+
---
37
+
38
+
# Vendored modules
39
+
40
+
The `modules/` bundle is vendored from **jfrog-agent-hooks** (GHE) and committed to `main`.
|**Pinned release**| see `pin` in [`.github/scripts/sync-modules-vendor.json`](.github/scripts/sync-modules-vendor.json)|
46
+
47
+
The bundle contains harness runners (`core/`, `*-session-start.mjs`), the `package-resolution/` capability, and `assets/agents-default-conf.json`. Automated sync PRs (`chore/sync-modules-v*`) update this tree on each `jfrog-agent-hooks` release.
48
+
49
+
`hooks/hooks.json` is **not** part of the vendor slice. Sync replaces `modules/` only; this plugin owns the Codex SessionStart assembly (APR only — no Agent Guard / MCP-align scripts).
The script reads `paths` from `sync-modules-vendor.json` (today: `["modules"]`) and replaces the whole `modules/` tree. After a local refresh, stamp `PKG_VERSION` and the pin with the official copy script if you are matching a Sync Plugins drop. A hand refresh copies bytes only; it does not bump plugin versions.
0 commit comments