@oxygen-agent/cli 1.720.7 → 1.739.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.
Files changed (42) hide show
  1. package/README.md +1 -1
  2. package/dist/command-manifest.js +27 -12
  3. package/dist/index.js +227 -63
  4. package/dist/skills.js +2 -2
  5. package/node_modules/@oxygen/shared/dist/cli-result.js +2 -0
  6. package/node_modules/@oxygen/shared/dist/crm-activity-events.d.ts +20 -0
  7. package/node_modules/@oxygen/shared/dist/crm-activity-events.js +5 -0
  8. package/node_modules/@oxygen/shared/dist/future-signup-events.d.ts +27 -0
  9. package/node_modules/@oxygen/shared/dist/future-signup-events.js +90 -0
  10. package/node_modules/@oxygen/shared/dist/future-signup-lifecycle-projection.d.ts +320 -0
  11. package/node_modules/@oxygen/shared/dist/future-signup-lifecycle-projection.js +1233 -0
  12. package/node_modules/@oxygen/shared/dist/index.d.ts +6 -0
  13. package/node_modules/@oxygen/shared/dist/index.js +6 -0
  14. package/node_modules/@oxygen/shared/dist/notetaker-events.d.ts +4 -0
  15. package/node_modules/@oxygen/shared/dist/notetaker-events.js +23 -0
  16. package/node_modules/@oxygen/shared/dist/plain-support-events.d.ts +40 -0
  17. package/node_modules/@oxygen/shared/dist/plain-support-events.js +43 -0
  18. package/node_modules/@oxygen/shared/dist/redaction.js +6 -1
  19. package/node_modules/@oxygen/shared/dist/user-capability-routing.d.ts +2 -0
  20. package/node_modules/@oxygen/shared/dist/user-capability-routing.js +23 -0
  21. package/node_modules/@oxygen/shared/dist/version.d.ts +1 -1
  22. package/node_modules/@oxygen/shared/dist/version.js +1 -1
  23. package/node_modules/@oxygen/shared/dist/webhook-headers.d.ts +10 -0
  24. package/node_modules/@oxygen/shared/dist/webhook-headers.js +48 -0
  25. package/node_modules/@oxygen/shared/dist/workspace-event-catalog.d.ts +31 -1
  26. package/node_modules/@oxygen/shared/dist/workspace-event-catalog.js +112 -1
  27. package/node_modules/@oxygen/workflows/dist/graph/expression.js +7 -5
  28. package/node_modules/@oxygen/workflows/dist/graph/lint.d.ts +9 -0
  29. package/node_modules/@oxygen/workflows/dist/graph/lint.js +409 -7
  30. package/node_modules/@oxygen/workflows/dist/graph/manifest-schema.d.ts +513 -0
  31. package/node_modules/@oxygen/workflows/dist/graph/manifest-schema.js +104 -1
  32. package/node_modules/@oxygen/workflows/dist/graph/params.d.ts +2 -0
  33. package/node_modules/@oxygen/workflows/dist/graph/params.js +15 -0
  34. package/node_modules/@oxygen/workflows/dist/graph/remap.js +12 -3
  35. package/node_modules/@oxygen/workflows/dist/graph/topology.d.ts +9 -0
  36. package/node_modules/@oxygen/workflows/dist/graph/topology.js +33 -1
  37. package/node_modules/@oxygen/workflows/dist/graph/types.d.ts +123 -16
  38. package/node_modules/@oxygen/workflows/dist/graph/types.js +45 -0
  39. package/node_modules/@oxygen/workflows/dist/index.d.ts +94 -2
  40. package/node_modules/@oxygen/workflows/dist/index.js +169 -26
  41. package/node_modules/@oxygen/workflows/dist/portable.js +3 -1
  42. package/package.json +1 -1
package/README.md CHANGED
@@ -34,4 +34,4 @@ oxygen update
34
34
 
35
35
  For product documentation, visit https://oxygen-agent.com/docs. For support, visit https://oxygen-agent.com.
36
36
 
37
- Version: 1.720.7
37
+ Version: 1.739.0
@@ -1,4 +1,4 @@
1
- import { CLI_EXIT_CODE_TABLE, OXYGEN_VERSION, inferCapabilityRoute, serializeCapabilityRoute, } from "@oxygen/shared";
1
+ import { CLI_EXIT_CODE_TABLE, OXYGEN_VERSION, inferUserCapabilityRoute, serializeCapabilityRoute, } from "@oxygen/shared";
2
2
  const DEFAULT_COMMAND_SEARCH_LIMIT = 10;
3
3
  const MAX_COMMAND_SEARCH_LIMIT = 25;
4
4
  const COMMAND_SEARCH_STOP_WORDS = new Set([
@@ -30,16 +30,16 @@ const MUTATING_VERBS = new Set([
30
30
  // Exact leaves, not the `billing` prefix — `orgs billing-owners` is a read.
31
31
  // Both move a workspace's billing owner, so an agent must treat them as writes.
32
32
  "billing-link", "billing-unlink",
33
- "bind", "buy", "call", "cancel", "chat-action", "clear",
33
+ "bind", "buy", "call", "cancel", "chat-action", "claim", "clear",
34
34
  "comment", "configure", "connect", "create", "decide", "delete", "delist", "disable",
35
35
  "disconnect", "dispatch", "draft", "duplicate", "edit", "emit", "enable", "enroll",
36
36
  "file", "forward", "grant", "harvest", "history", "import", "insert", "interrupt", "invite",
37
- "launch", "log", "login", "logout", "mark-all-read", "mark-read", "materialize", "merge",
37
+ "label-add", "label-remove", "launch", "log", "login", "logout", "mark-all-read", "mark-read", "materialize", "merge",
38
38
  "migrate",
39
- "move", "note", "off", "onboard", "order", "pause", "pin", "provision",
39
+ "move", "note", "off", "onboard", "order", "pause", "pin", "priority", "provision",
40
40
  "publish", "purchase", "purge", "push", "react", "reconcile", "record", "recover-pending",
41
41
  "register", "reject", "relink", "remove", "rename", "reorder", "reply", "request",
42
- "rerun", "rescan", "resend", "reset", "resolve", "restore", "resume",
42
+ "replay", "rerun", "rescan", "resend", "reset", "resolve", "restore", "resume",
43
43
  "retry", "retype", "revoke", "rotate", "run", "save", "schedule",
44
44
  "seed", "select", "send", "set", "setup", "share", "solve",
45
45
  "start", "stop", "subscribe", "sync", "synthesize", "tag", "unarchive", "unpublish", "unshare",
@@ -49,10 +49,24 @@ const MUTATING_VERBS = new Set([
49
49
  // `--approved` usually identifies a paid or externally mutating execution
50
50
  // mode, but a small number of destructive local operations are explicitly
51
51
  // zero-credit. Keep those exceptions exact so discovery never invents spend.
52
- const ZERO_CREDIT_APPROVAL_COMMANDS = new Set(["mailboxes delete"]);
53
- // These commands preview when the execution approval is omitted even though
54
- // their gate is named `--approved` rather than `--live`.
55
- const APPROVAL_PREVIEW_COMMANDS = new Set(["mailboxes delete"]);
52
+ const ZERO_CREDIT_APPROVAL_COMMANDS = new Set([
53
+ "mailboxes delete",
54
+ // Credential replacement is destructive but does not execute the graph,
55
+ // call a provider, or spend Oxygen credits.
56
+ "workflows webhooks rotate",
57
+ ]);
58
+ // Exact noun-style reads whose leaf happens to look like a mutating verb.
59
+ // `workflows run <id>` gets an existing Workflow run; `workflows call` creates
60
+ // one. Keep the exception exact so genuine `run` actions remain mutations.
61
+ const READ_ONLY_COMMANDS = new Set(["workflows run"]);
62
+ // Exact commands whose execution fence is not named `--live`. A bare
63
+ // invocation still previews, so machine-readable discovery must not imply that
64
+ // calling the command without its confirmation flag writes anything.
65
+ const PREVIEW_BY_DEFAULT_COMMANDS = new Set([
66
+ "mailboxes delete",
67
+ "support admin reply",
68
+ "workflows webhooks rotate",
69
+ ]);
56
70
  export function buildCommandManifest(program, binaryName) {
57
71
  const commands = [];
58
72
  for (const child of program.commands) {
@@ -71,7 +85,7 @@ export function buildCommandManifest(program, binaryName) {
71
85
  export function searchCommandManifest(manifest, query, requestedLimit = DEFAULT_COMMAND_SEARCH_LIMIT) {
72
86
  const normalized = query.trim();
73
87
  const tokens = tokenizeCommandQuery(normalized);
74
- const route = inferCapabilityRoute(normalized);
88
+ const route = inferUserCapabilityRoute(normalized);
75
89
  const limit = Math.min(MAX_COMMAND_SEARCH_LIMIT, Math.max(1, Math.floor(requestedLimit)));
76
90
  const matches = tokens.length === 0
77
91
  ? []
@@ -207,9 +221,10 @@ function toManifestEntry(command, path) {
207
221
  // them as free.
208
222
  (path[0] === "copilot" &&
209
223
  (leafVerb === "send" || leafVerb === "approve"))),
210
- mutates: MUTATING_VERBS.has(leafVerb) || MUTATING_VERBS.has(verbPrefix),
224
+ mutates: !READ_ONLY_COMMANDS.has(commandName)
225
+ && (MUTATING_VERBS.has(leafVerb) || MUTATING_VERBS.has(verbPrefix)),
211
226
  preview_by_default: flagStrings.some((flags) => flags.includes("--live")) ||
212
- APPROVAL_PREVIEW_COMMANDS.has(commandName),
227
+ PREVIEW_BY_DEFAULT_COMMANDS.has(commandName),
213
228
  json_supported: flagStrings.some((flags) => flags.includes("--json")),
214
229
  hidden: isHiddenCommand(command),
215
230
  };