@ory/argus 1.4.8 → 1.5.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.
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "repo": "ory-agent-plugins",
3
- "commit": "f14820b9faf5afff350e254d7c0418af685fe9cf",
4
- "commitShort": "f14820b",
3
+ "commit": "a2af20a51c7a79e43ee4074f1c92b0d3f4b0e896",
4
+ "commitShort": "a2af20a5",
5
5
  "branch": "main",
6
- "commitDate": "2026-10-03T18:01:27-07:00",
6
+ "commitDate": "2026-10-07T16:14:12-07:00",
7
7
  "dirty": false,
8
- "builtAt": "2026-10-04T01:05:58.883Z"
8
+ "builtAt": "2026-10-07T23:17:51.479Z"
9
9
  }
@@ -37,6 +37,7 @@ const BIN_TO_PACKAGE = {
37
37
  "ory-pi": "@ory/pi",
38
38
  "ory-agy": "@ory/antigravity",
39
39
  "ory-cursor": "@ory/cursor",
40
+ "ory-copilot": "@ory/github-copilot",
40
41
  };
41
42
  /**
42
43
  * Render a copy-pasteable `npx` invocation prefix for a harness bin.
@@ -24,6 +24,7 @@
24
24
  * | cursor | seconds | documented per-hook timeout |
25
25
  * | gemini-cli | milliseconds | `DEFAULT_HOOK_TIMEOUT = 6e4`; `Hook timed out after ${timeout}ms` |
26
26
  * | antigravity | seconds | `timeout_seconds`; validated `"must be between 5 and 120 seconds"` |
27
+ * | github-copilot | seconds | `timeoutSec`; Copilot command hooks are fail-open on timeout |
27
28
  *
28
29
  * Antigravity additionally **validates** its range, so it caps what any harness
29
30
  * can be given — which is why the login window has to fit inside 120s.
@@ -25,6 +25,7 @@
25
25
  * | cursor | seconds | documented per-hook timeout |
26
26
  * | gemini-cli | milliseconds | `DEFAULT_HOOK_TIMEOUT = 6e4`; `Hook timed out after ${timeout}ms` |
27
27
  * | antigravity | seconds | `timeout_seconds`; validated `"must be between 5 and 120 seconds"` |
28
+ * | github-copilot | seconds | `timeoutSec`; Copilot command hooks are fail-open on timeout |
28
29
  *
29
30
  * Antigravity additionally **validates** its range, so it caps what any harness
30
31
  * can be given — which is why the login window has to fit inside 120s.
package/dist/lifecycle.js CHANGED
@@ -158,6 +158,20 @@ exports.HARNESS_LIFECYCLE_MAP = {
158
158
  PostToolUse: "tool.after",
159
159
  Notification: "user.interaction",
160
160
  },
161
+ // GitHub Copilot CLI and cloud agent use the native camelCase hook contract.
162
+ // preToolUse remains the enforcement boundary in both surfaces; cloud agent
163
+ // pre-approves permissionRequest and therefore cannot enforce there.
164
+ "github-copilot": {
165
+ sessionStart: "session.start",
166
+ sessionEnd: "session.stop",
167
+ userPromptSubmitted: "user.prompt",
168
+ preToolUse: "tool.before",
169
+ postToolUse: "tool.after",
170
+ postToolUseFailure: "tool.failure",
171
+ errorOccurred: "tool.failure",
172
+ subagentStart: "subagent.start",
173
+ subagentStop: "subagent.stop",
174
+ },
161
175
  // Cursor (editor + CLI). Subprocess hooks read from `.cursor/hooks.json`.
162
176
  // `preToolUse` is the single permission gate — it already fires for every
163
177
  // documented tool category (Shell, Read, Write, Grep, Delete, Task) and
@@ -27,6 +27,7 @@ export declare const HARNESS_TOOL_CATALOG: {
27
27
  readonly pi: readonly ["read", "write", "edit", "bash", "grep", "find", "ls"];
28
28
  readonly antigravity: readonly ["run_command", "view_file", "write_to_file", "replace_file_content", "multi_replace_file_content", "list_directory", "grep_search", "find", "read_url_content", "search_web", "call_mcp_tool"];
29
29
  readonly cursor: readonly ["Read", "Write", "Grep", "Delete", "Shell", "Task"];
30
+ readonly "github-copilot": readonly ["ask_user", "bash", "powershell", "view", "create", "edit", "str_replace_editor", "apply_patch", "grep", "rg", "glob", "web_fetch", "web_search", "task", "update_todo"];
30
31
  };
31
32
  /** Names of the harnesses with a known tool catalog. */
32
33
  export type KnownHarness = keyof typeof HARNESS_TOOL_CATALOG;
@@ -321,6 +321,23 @@ exports.HARNESS_TOOL_CATALOG = {
321
321
  // Cursor's documented `preToolUse` matcher categories. MCP calls arrive as
322
322
  // dynamic `MCP:<tool_name>` values and are intentionally omitted here.
323
323
  cursor: ["Read", "Write", "Grep", "Delete", "Shell", "Task"],
324
+ "github-copilot": [
325
+ "ask_user",
326
+ "bash",
327
+ "powershell",
328
+ "view",
329
+ "create",
330
+ "edit",
331
+ "str_replace_editor",
332
+ "apply_patch",
333
+ "grep",
334
+ "rg",
335
+ "glob",
336
+ "web_fetch",
337
+ "web_search",
338
+ "task",
339
+ "update_todo",
340
+ ],
324
341
  };
325
342
  exports.KNOWN_HARNESSES = Object.keys(exports.HARNESS_TOOL_CATALOG);
326
343
  /**
@@ -369,6 +386,7 @@ exports.INTERACTIVE_TOOL_CATALOG = {
369
386
  pi: [],
370
387
  antigravity: ["ask_question"],
371
388
  cursor: [],
389
+ "github-copilot": ["ask_user"],
372
390
  };
373
391
  function parseEnvInteractiveTools() {
374
392
  const raw = process.env.ORY_INTERACTIVE_TOOLS;
@@ -424,6 +442,7 @@ exports.SHELL_TOOL_CATALOG = {
424
442
  pi: ["bash"],
425
443
  antigravity: ["run_command"],
426
444
  cursor: ["Shell"],
445
+ "github-copilot": ["bash", "powershell"],
427
446
  };
428
447
  function parseEnvList(raw) {
429
448
  if (!raw)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ory/argus",
3
- "version": "1.4.8",
3
+ "version": "1.5.0",
4
4
  "description": "Ory Argus: the core API for building authentication, authorization, and audit into AI agent harness plugins, extensions, and custom integrations",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://ory.com",