@ory/gemini-cli 0.7.1 → 0.7.3
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 +3 -0
- package/dist/cli/main.js +15 -5
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -81,6 +81,8 @@ The extension bundles a catalog of skills that Gemini auto-invokes by descriptio
|
|
|
81
81
|
- **`ory-build-integration`** — pull the runnable subset of an `ory/integrates` template (webhook / config / http-event) into your own app and wire it to your Ory project — no contribution/registry concerns.
|
|
82
82
|
- **`ory-contribute-integration`** — author a brand-new integration as a contribution to `ory/integrates`, including `registry.entry.yaml`, the `Maintained by:` footer, DCO sign-off, and registry regeneration.
|
|
83
83
|
- **`ory-e2b-sandbox`** — scaffold an [E2B](https://e2b.dev) sandbox template that boots with this extension preinstalled and registered, so every sandbox session is gated by Ory auth, permissions, and tracing without any per-sandbox setup.
|
|
84
|
+
- **`ory-build-agent`** — drop `@ory/argus` directly into a custom agent you own (Claude Agent SDK, OpenAI Agents SDK, Mastra, Vercel AI SDK, PydanticAI, LangGraph, Mistral AI, or Salesforce Agentforce) so the user is authenticated, every tool call is authorized against Ory Permissions, and the lifecycle emits trace spans.
|
|
85
|
+
- **`ory-temporal-worker`** — scaffold a [Temporal](https://temporal.io) TypeScript worker per the [official local-dev guide](https://docs.temporal.io/develop/typescript/set-up-your-local-typescript), with every Activity gated by an Ory permission check, the worker's agent identity resolved via DCR, and the full lifecycle emitting trace spans.
|
|
84
86
|
|
|
85
87
|
### Ory MCP server
|
|
86
88
|
|
|
@@ -91,6 +93,7 @@ Bundled and registered automatically. Exposes the Ory CLI and the Ory Network RE
|
|
|
91
93
|
```
|
|
92
94
|
/ory:local-up # start a local Ory instance in Docker
|
|
93
95
|
/ory:local-down # tear it all down
|
|
96
|
+
/ory:temporal-up # start a local Temporal dev server (for ory-temporal-worker)
|
|
94
97
|
```
|
|
95
98
|
|
|
96
99
|
`local-up` brings up Ory Identities, OAuth2, and Permissions, plus a login UI on `:3000` and Jaeger on `:16686`, all reachable through `http://localhost:4000`. A test user identity is seeded and the credentials are printed for you. Use it to:
|
package/dist/cli/main.js
CHANGED
|
@@ -46,11 +46,17 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
46
46
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
47
47
|
const path = __importStar(require("node:path"));
|
|
48
48
|
const fs = __importStar(require("node:fs"));
|
|
49
|
+
const os = __importStar(require("node:os"));
|
|
49
50
|
const node_child_process_1 = require("node:child_process");
|
|
50
51
|
const argus_1 = require("@ory/argus");
|
|
51
52
|
const assets_js_1 = require("./assets.js");
|
|
52
53
|
const EXTENSION_DIR = path.resolve(__dirname, "..", "..", "gemini-extension");
|
|
53
54
|
const PACKAGE_ROOT = path.resolve(__dirname, "..", "..");
|
|
55
|
+
/**
|
|
56
|
+
* On Windows, npm-installed CLIs are `.cmd` shims that Node's spawn only
|
|
57
|
+
* finds via the shell. POSIX shells resolve the bare name directly.
|
|
58
|
+
*/
|
|
59
|
+
const SPAWN_VIA_SHELL = process.platform === "win32";
|
|
54
60
|
function main() {
|
|
55
61
|
const [command, ...args] = process.argv.slice(2);
|
|
56
62
|
switch (command) {
|
|
@@ -115,11 +121,12 @@ function install(args) {
|
|
|
115
121
|
(0, assets_js_1.installGeminiOryAssets)(EXTENSION_DIR);
|
|
116
122
|
const geminiAvailable = (0, node_child_process_1.spawnSync)("gemini", ["--version"], {
|
|
117
123
|
stdio: "pipe",
|
|
124
|
+
shell: SPAWN_VIA_SHELL,
|
|
118
125
|
}).status === 0;
|
|
119
126
|
if (geminiAvailable) {
|
|
120
127
|
if (isLink) {
|
|
121
128
|
console.log("Linking Ory extension for development...");
|
|
122
|
-
const result = (0, node_child_process_1.spawnSync)("gemini", ["extensions", "link", EXTENSION_DIR], { stdio: "inherit" });
|
|
129
|
+
const result = (0, node_child_process_1.spawnSync)("gemini", ["extensions", "link", EXTENSION_DIR], { stdio: "inherit", shell: SPAWN_VIA_SHELL });
|
|
123
130
|
if (result.status === 0) {
|
|
124
131
|
console.log("");
|
|
125
132
|
console.log("Ory extension linked for development.");
|
|
@@ -133,7 +140,7 @@ function install(args) {
|
|
|
133
140
|
}
|
|
134
141
|
else {
|
|
135
142
|
console.log("Installing Ory extension...");
|
|
136
|
-
const result = (0, node_child_process_1.spawnSync)("gemini", ["extensions", "install", EXTENSION_DIR], { stdio: "inherit" });
|
|
143
|
+
const result = (0, node_child_process_1.spawnSync)("gemini", ["extensions", "install", EXTENSION_DIR], { stdio: "inherit", shell: SPAWN_VIA_SHELL });
|
|
137
144
|
if (result.status === 0) {
|
|
138
145
|
console.log("");
|
|
139
146
|
console.log("Ory extension installed.");
|
|
@@ -155,10 +162,14 @@ function install(args) {
|
|
|
155
162
|
function uninstall(args) {
|
|
156
163
|
const geminiAvailable = (0, node_child_process_1.spawnSync)("gemini", ["--version"], {
|
|
157
164
|
stdio: "pipe",
|
|
165
|
+
shell: SPAWN_VIA_SHELL,
|
|
158
166
|
}).status === 0;
|
|
159
167
|
if (geminiAvailable) {
|
|
160
168
|
console.log("Uninstalling Ory extension...");
|
|
161
|
-
(0, node_child_process_1.spawnSync)("gemini", ["extensions", "uninstall", "ory"], {
|
|
169
|
+
(0, node_child_process_1.spawnSync)("gemini", ["extensions", "uninstall", "ory"], {
|
|
170
|
+
stdio: "inherit",
|
|
171
|
+
shell: SPAWN_VIA_SHELL,
|
|
172
|
+
});
|
|
162
173
|
}
|
|
163
174
|
else {
|
|
164
175
|
const setupArgs = ["--uninstall", ...args];
|
|
@@ -196,8 +207,7 @@ async function status() {
|
|
|
196
207
|
console.log(` Directory: ${EXTENSION_DIR}`);
|
|
197
208
|
console.log(` Manifest: ${fs.existsSync(path.join(EXTENSION_DIR, "gemini-extension.json")) ? "found" : "MISSING"}`);
|
|
198
209
|
console.log(` Hook script: ${fs.existsSync(path.join(PACKAGE_ROOT, "dist", "hook.js")) ? "built" : "NOT BUILT (run pnpm build)"}`);
|
|
199
|
-
const
|
|
200
|
-
const extensionInstalled = fs.existsSync(path.join(home, ".gemini", "extensions", "ory"));
|
|
210
|
+
const extensionInstalled = fs.existsSync(path.join(os.homedir(), ".gemini", "extensions", "ory"));
|
|
201
211
|
console.log(` Installed: ${extensionInstalled ? "yes (~/.gemini/extensions/ory)" : "no"}`);
|
|
202
212
|
},
|
|
203
213
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ory/gemini-cli",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.3",
|
|
4
4
|
"description": "Ory extension for Gemini CLI: scaffolding skills, a local Ory instance, and authentication, authorization, and audit for every tool call",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"homepage": "https://ory.com",
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
"gemini-extension"
|
|
69
69
|
],
|
|
70
70
|
"dependencies": {
|
|
71
|
-
"@ory/argus": "0.7.
|
|
71
|
+
"@ory/argus": "0.7.3"
|
|
72
72
|
},
|
|
73
73
|
"engines": {
|
|
74
74
|
"node": ">=22"
|