@oxygen-agent/cli 1.717.11 → 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.
- package/README.md +1 -1
- package/dist/command-manifest.js +27 -12
- package/dist/index.js +243 -72
- package/dist/skills.js +2 -2
- package/node_modules/@oxygen/shared/dist/axiom-field-budget.d.ts +99 -0
- package/node_modules/@oxygen/shared/dist/axiom-field-budget.js +112 -17
- package/node_modules/@oxygen/shared/dist/cli-result.js +2 -0
- package/node_modules/@oxygen/shared/dist/crm-activity-events.d.ts +20 -0
- package/node_modules/@oxygen/shared/dist/crm-activity-events.js +5 -0
- package/node_modules/@oxygen/shared/dist/future-signup-events.d.ts +27 -0
- package/node_modules/@oxygen/shared/dist/future-signup-events.js +90 -0
- package/node_modules/@oxygen/shared/dist/future-signup-lifecycle-projection.d.ts +320 -0
- package/node_modules/@oxygen/shared/dist/future-signup-lifecycle-projection.js +1233 -0
- package/node_modules/@oxygen/shared/dist/index.d.ts +7 -1
- package/node_modules/@oxygen/shared/dist/index.js +14 -1
- package/node_modules/@oxygen/shared/dist/notetaker-events.d.ts +4 -0
- package/node_modules/@oxygen/shared/dist/notetaker-events.js +23 -0
- package/node_modules/@oxygen/shared/dist/plain-support-events.d.ts +40 -0
- package/node_modules/@oxygen/shared/dist/plain-support-events.js +43 -0
- package/node_modules/@oxygen/shared/dist/redaction.js +6 -1
- package/node_modules/@oxygen/shared/dist/user-capability-routing.d.ts +2 -0
- package/node_modules/@oxygen/shared/dist/user-capability-routing.js +23 -0
- package/node_modules/@oxygen/shared/dist/version.d.ts +1 -1
- package/node_modules/@oxygen/shared/dist/version.js +1 -1
- package/node_modules/@oxygen/shared/dist/webhook-headers.d.ts +10 -0
- package/node_modules/@oxygen/shared/dist/webhook-headers.js +48 -0
- package/node_modules/@oxygen/shared/dist/workspace-event-catalog.d.ts +31 -1
- package/node_modules/@oxygen/shared/dist/workspace-event-catalog.js +112 -1
- package/node_modules/@oxygen/workflows/dist/graph/expression.js +7 -5
- package/node_modules/@oxygen/workflows/dist/graph/lint.d.ts +9 -0
- package/node_modules/@oxygen/workflows/dist/graph/lint.js +409 -7
- package/node_modules/@oxygen/workflows/dist/graph/manifest-schema.d.ts +513 -0
- package/node_modules/@oxygen/workflows/dist/graph/manifest-schema.js +104 -1
- package/node_modules/@oxygen/workflows/dist/graph/params.d.ts +2 -0
- package/node_modules/@oxygen/workflows/dist/graph/params.js +15 -0
- package/node_modules/@oxygen/workflows/dist/graph/remap.js +12 -3
- package/node_modules/@oxygen/workflows/dist/graph/topology.d.ts +9 -0
- package/node_modules/@oxygen/workflows/dist/graph/topology.js +33 -1
- package/node_modules/@oxygen/workflows/dist/graph/types.d.ts +123 -16
- package/node_modules/@oxygen/workflows/dist/graph/types.js +45 -0
- package/node_modules/@oxygen/workflows/dist/index.d.ts +94 -2
- package/node_modules/@oxygen/workflows/dist/index.js +169 -26
- package/node_modules/@oxygen/workflows/dist/portable.js +3 -1
- package/package.json +1 -1
package/README.md
CHANGED
package/dist/command-manifest.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CLI_EXIT_CODE_TABLE, OXYGEN_VERSION,
|
|
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([
|
|
53
|
-
|
|
54
|
-
//
|
|
55
|
-
|
|
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 =
|
|
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:
|
|
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
|
-
|
|
227
|
+
PREVIEW_BY_DEFAULT_COMMANDS.has(commandName),
|
|
213
228
|
json_supported: flagStrings.some((flags) => flags.includes("--json")),
|
|
214
229
|
hidden: isHiddenCommand(command),
|
|
215
230
|
};
|