@ory/continue 0.10.0 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/cli/assets.js +4 -1
- package/dist/handlers.js +8 -3
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -33,7 +33,7 @@ Two independent things, and you can use either on its own:
|
|
|
33
33
|
npx -y -p @ory/continue ory-continue install
|
|
34
34
|
```
|
|
35
35
|
|
|
36
|
-
Continue has no native extension-install command, so `install` writes the Ory hooks directly into `<project>/.continue/settings.json` and materializes the Ory skills under `<project>/.continue/skills/`. Continue surfaces each skill as a slash command automatically, so the local-stack commands
|
|
36
|
+
Continue has no native extension-install command, so `install` writes the Ory hooks directly into `<project>/.continue/settings.json` and materializes the Ory skills under `<project>/.continue/skills/`. Continue surfaces each skill as a slash command automatically, so the local-stack commands ship as skills too and surface as `/ory-local-up`, `/ory-local-down`, and `/ory-temporal-up`. Confirm everything landed:
|
|
37
37
|
|
|
38
38
|
```bash
|
|
39
39
|
npx -y -p @ory/continue ory-continue status
|
|
@@ -51,7 +51,7 @@ npx -y -p @ory/continue ory-continue uninstall
|
|
|
51
51
|
|
|
52
52
|
From any project where you'd like Ory authentication, inside Continue:
|
|
53
53
|
|
|
54
|
-
1. **Start a local Ory instance.** Ask Continue *"start the local Ory stack"* or run `/local-up`. A banner prints the seeded test user's email and password — note them.
|
|
54
|
+
1. **Start a local Ory instance.** Ask Continue *"start the local Ory stack"* or run `/ory-local-up`. A banner prints the seeded test user's email and password — note them.
|
|
55
55
|
2. **Scaffold Ory into your project.** Ask Continue *"add Ory auth to this app"* (the `ory-auth-setup` skill). It installs Ory Elements, wires the SDK, and generates the login / registration / recovery / settings pages, all targeting the local stack.
|
|
56
56
|
3. **Sign in.** Start your app, visit the login page, and sign in with the seeded credentials. You now have a real Ory session backed by a real Ory stack — locally, offline, zero configuration.
|
|
57
57
|
|
|
@@ -64,7 +64,7 @@ Continue runs the Ory plugin as a **subprocess hook**, the same way [Claude Code
|
|
|
64
64
|
The hooks wire into these phases:
|
|
65
65
|
|
|
66
66
|
- **SessionStart** — run the user and agent auth gates.
|
|
67
|
-
- **PreToolUse / PermissionRequest** — check the tool against Ory Permissions
|
|
67
|
+
- **PreToolUse / PermissionRequest** — check the tool against Ory Permissions. In enforce mode a `PreToolUse` deny blocks the call with exit code 2, while a `PermissionRequest` deny is returned as a structured deny decision in the hook output. In observe mode a permission-request deny is recorded as an audit span and falls through to Continue's native user prompt — it is never pre-approved on the user's behalf.
|
|
68
68
|
- **SubagentStart / SubagentStop** — resolve a distinct identity for typed sub-agents and record their lifecycle.
|
|
69
69
|
- **PostToolUse / Stop / SessionEnd** — trace-only audit spans.
|
|
70
70
|
|
package/dist/cli/assets.js
CHANGED
|
@@ -76,8 +76,11 @@ function safeRmEmpty(dir) {
|
|
|
76
76
|
*/
|
|
77
77
|
function installContinueOryAssets(root) {
|
|
78
78
|
fs.mkdirSync(root, { recursive: true });
|
|
79
|
+
// `skills/` is shared with user-authored skills, so never wipe the whole
|
|
80
|
+
// directory — surgically remove only the Ory-owned skill dirs (same list
|
|
81
|
+
// the uninstall path uses) before re-writing them fresh.
|
|
79
82
|
const skillsDir = path.join(root, "skills");
|
|
80
|
-
|
|
83
|
+
(0, argus_1.removeSkillDirs)(skillsDir, [...argus_1.ORY_SKILL_NAMES, ...argus_1.ORY_COMMAND_SKILL_NAMES]);
|
|
81
84
|
const guideSkills = (0, argus_1.renderOrySkills)(HARNESS, RENDER_OPTS);
|
|
82
85
|
const commandSkills = (0, argus_1.renderOryCommands)(HARNESS, RENDER_OPTS).map(argus_1.commandToSkill);
|
|
83
86
|
(0, argus_1.writeSkillTree)(skillsDir, [...guideSkills, ...commandSkills]);
|
package/dist/handlers.js
CHANGED
|
@@ -412,9 +412,14 @@ async function handlePermissionRequest(input, client) {
|
|
|
412
412
|
if (decision.kind === "deny") {
|
|
413
413
|
return permissionRequestDecision("deny", (0, argus_1.formatDenialMessage)({ tool: toolName, subjectId, namespace }));
|
|
414
414
|
}
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
415
|
+
if (decision.kind === "observe") {
|
|
416
|
+
// Observe-mode deny: the permission.observe_deny audit span is already
|
|
417
|
+
// recorded by the gate. Omit `decision` so Continue falls through to
|
|
418
|
+
// its native user prompt — observe mode must never escalate a
|
|
419
|
+
// policy-denied tool into an auto-approval.
|
|
420
|
+
return permissionRequestFallback("Ory observe mode — denied by policy, deferring to user");
|
|
421
|
+
}
|
|
422
|
+
return permissionRequestDecision("allow", "Ory permission granted");
|
|
418
423
|
}
|
|
419
424
|
catch (err) {
|
|
420
425
|
const oryErr = err;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ory/continue",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"description": "Ory plugin for Continue CLI (cn): 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",
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
"!dist/**/*.tsbuildinfo"
|
|
68
68
|
],
|
|
69
69
|
"dependencies": {
|
|
70
|
-
"@ory/argus": "0.
|
|
70
|
+
"@ory/argus": "0.11.0"
|
|
71
71
|
},
|
|
72
72
|
"engines": {
|
|
73
73
|
"node": ">=22"
|