@wave-ai-os/wave-cli 0.1.68 → 0.1.71

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/dist/index.cjs CHANGED
@@ -14779,6 +14779,33 @@ var idSchema14 = import_zod19.z.string().trim().min(1);
14779
14779
  var idempotencyKeySchema = import_zod19.z.string().min(1).refine((value) => value.trim() === value, "Idempotency key must not have leading or trailing whitespace.");
14780
14780
  var skillScopeSchema = import_zod19.z.enum(["ADMIN_GLOBAL", "MEMBER_PERSONAL"]);
14781
14781
  var isoDateSchema = import_zod19.z.iso.date();
14782
+ var nonEmptyStringSchema = import_zod19.z.string().trim().min(1);
14783
+ var agentToolAccessSchema = import_zod19.z.array(
14784
+ import_zod19.z.object({
14785
+ tool_key: nonEmptyStringSchema,
14786
+ scope_value: nonEmptyStringSchema
14787
+ }).strict()
14788
+ ).min(1);
14789
+ var agentPluginConnectionsSchema = import_zod19.z.array(
14790
+ import_zod19.z.object({
14791
+ external_tool_connection_id: nonEmptyStringSchema,
14792
+ tool_key: nonEmptyStringSchema,
14793
+ scope_value: nonEmptyStringSchema.optional(),
14794
+ allowed_tools: import_zod19.z.array(nonEmptyStringSchema).optional(),
14795
+ allowed_scopes: import_zod19.z.array(nonEmptyStringSchema).optional(),
14796
+ requires_confirmation: import_zod19.z.boolean().optional(),
14797
+ enabled: import_zod19.z.boolean().optional()
14798
+ }).strict()
14799
+ ).min(1);
14800
+ var agentTriggerSchema = import_zod19.z.object({
14801
+ trigger_type: import_zod19.z.literal("cron"),
14802
+ cron_expression: nonEmptyStringSchema,
14803
+ timezone: nonEmptyStringSchema,
14804
+ starts_at: import_zod19.z.iso.datetime({ offset: true }).nullable().optional(),
14805
+ ends_at: import_zod19.z.iso.datetime({ offset: true }).nullable().optional(),
14806
+ max_runs: import_zod19.z.number().int().positive().nullable().optional(),
14807
+ enabled: import_zod19.z.boolean().optional()
14808
+ }).strict();
14782
14809
  var AGENT_SELECTION = `{
14783
14810
  id
14784
14811
  type
@@ -14791,11 +14818,56 @@ var AGENT_SELECTION = `{
14791
14818
  model
14792
14819
  runWhenMentioned
14793
14820
  webAccessEnabled
14821
+ webFetchEnabled
14822
+ searchPastConversationsEnabled
14823
+ appRulesCreationEnabled
14824
+ toolDiscoveryEnabled
14825
+ selfUpdatesEnabled
14826
+ trustedUrls
14827
+ toolAccess
14828
+ agentToolConnections {
14829
+ id
14830
+ type
14831
+ attributes {
14832
+ agentId
14833
+ externalToolConnectionId
14834
+ toolKey
14835
+ scopeValue
14836
+ allowedTools
14837
+ allowedScopes
14838
+ requiresConfirmation
14839
+ enabled
14840
+ provider
14841
+ service
14842
+ }
14843
+ }
14844
+ triggers {
14845
+ id
14846
+ triggerType
14847
+ cronExpression
14848
+ timezone
14849
+ startsAt
14850
+ endsAt
14851
+ maxRuns
14852
+ enabled
14853
+ nextOccurrenceAt
14854
+ }
14794
14855
  organizationId
14795
14856
  memberId
14796
14857
  createdAt
14797
14858
  updatedAt
14798
14859
  }`;
14860
+ var AGENT_PLUGIN_CATALOG_SELECTION = `{
14861
+ externalToolConnectionId
14862
+ provider
14863
+ service
14864
+ toolKey
14865
+ displayName
14866
+ requiredScopes
14867
+ defaultConfirmationPolicy
14868
+ connectionState
14869
+ status
14870
+ }`;
14799
14871
  var AUTOMATION_SELECTION = `{
14800
14872
  id
14801
14873
  type
@@ -14856,6 +14928,10 @@ function parseJson(value, optionName) {
14856
14928
  });
14857
14929
  }
14858
14930
  }
14931
+ function parseJsonOption(value, optionName, schema) {
14932
+ if (value === void 0) return void 0;
14933
+ return schema.parse(parseJson(String(value), optionName));
14934
+ }
14859
14935
  function normalizePersistedCreatePayload(payload) {
14860
14936
  const mutation = asRecord8(payload);
14861
14937
  const mutationData = asRecord8(mutation?.data);
@@ -14893,11 +14969,42 @@ function normalizePersistedCreatePayload(payload) {
14893
14969
  }
14894
14970
  function registerAtlasAuthoringCommands(program) {
14895
14971
  const agents = program.command("agents").description("Bounded Agent authoring operations");
14896
- agents.command("create").description("Create an Agent through the API-owned createAgent contract").requiredOption("--idempotency-key <key>", "Required create idempotency key").option("--name <name>").option("--description <description>").option("--notes <notes>").option("--member-id <memberId>").option("--status <status>").option("--visibility <visibility>").option("--model <model>").option("--run-when-mentioned <boolean>", "true or false").option("--web-access-enabled <boolean>", "true or false").option("--trusted-urls <urls>", "Comma-separated trusted URLs").action(async (opts, cmd) => {
14972
+ agents.command("create").description("Create an Agent through the API-owned createAgent contract").requiredOption("--idempotency-key <key>", "Required create idempotency key").option("--name <name>").option("--description <description>").option("--notes <notes>").option("--member-id <memberId>").option("--status <status>").option("--visibility <visibility>").option("--model <model>").option("--run-when-mentioned <boolean>", "true or false").option("--web-access-enabled <boolean>", "true or false").option("--web-fetch-enabled <boolean>", "true or false").option("--search-past-conversations-enabled <boolean>", "true or false").option("--app-rules-creation-enabled <boolean>", "true or false").option("--tool-discovery-enabled <boolean>", "true or false").option("--self-updates-enabled <boolean>", "true or false").option("--trusted-urls <urls>", "Comma-separated trusted URLs").option("--tool-access <json>", "JSON array of canonical native Agent tool scopes").option(
14973
+ "--plugin-connections <json>",
14974
+ "JSON array of persisted Agent connector grants"
14975
+ ).option("--trigger <json>", "Canonical cron Agent trigger JSON").action(async (opts, cmd) => {
14897
14976
  const idempotencyKey = idempotencyKeySchema.parse(opts.idempotencyKey);
14898
14977
  const runWhenMentioned = parseBooleanOption(opts.runWhenMentioned, "--run-when-mentioned");
14899
14978
  const webAccessEnabled = parseBooleanOption(opts.webAccessEnabled, "--web-access-enabled");
14979
+ const webFetchEnabled = parseBooleanOption(opts.webFetchEnabled, "--web-fetch-enabled");
14980
+ const searchPastConversationsEnabled = parseBooleanOption(
14981
+ opts.searchPastConversationsEnabled,
14982
+ "--search-past-conversations-enabled"
14983
+ );
14984
+ const appRulesCreationEnabled = parseBooleanOption(
14985
+ opts.appRulesCreationEnabled,
14986
+ "--app-rules-creation-enabled"
14987
+ );
14988
+ const toolDiscoveryEnabled = parseBooleanOption(
14989
+ opts.toolDiscoveryEnabled,
14990
+ "--tool-discovery-enabled"
14991
+ );
14992
+ const selfUpdatesEnabled = parseBooleanOption(
14993
+ opts.selfUpdatesEnabled,
14994
+ "--self-updates-enabled"
14995
+ );
14900
14996
  const trustedUrls = parseCommaSeparatedStrings(opts.trustedUrls);
14997
+ const toolAccess = parseJsonOption(
14998
+ opts.toolAccess,
14999
+ "--tool-access",
15000
+ agentToolAccessSchema
15001
+ );
15002
+ const pluginConnections = parseJsonOption(
15003
+ opts.pluginConnections,
15004
+ "--plugin-connections",
15005
+ agentPluginConnectionsSchema
15006
+ );
15007
+ const trigger = parseJsonOption(opts.trigger, "--trigger", agentTriggerSchema);
14901
15008
  const context = await resolveCommandContext(cmd.optsWithGlobals());
14902
15009
  const organizationId = resolveOrganizationId(context.organizationId);
14903
15010
  await runGraphqlMutationCommand({
@@ -14923,7 +15030,15 @@ function registerAtlasAuthoringCommands(program) {
14923
15030
  ...opts.model !== void 0 ? { model: String(opts.model) } : {},
14924
15031
  ...runWhenMentioned !== void 0 ? { run_when_mentioned: runWhenMentioned } : {},
14925
15032
  ...webAccessEnabled !== void 0 ? { web_access_enabled: webAccessEnabled } : {},
14926
- ...trustedUrls !== void 0 ? { trusted_urls: trustedUrls } : {}
15033
+ ...webFetchEnabled !== void 0 ? { web_fetch_enabled: webFetchEnabled } : {},
15034
+ ...searchPastConversationsEnabled !== void 0 ? { search_past_conversations_enabled: searchPastConversationsEnabled } : {},
15035
+ ...appRulesCreationEnabled !== void 0 ? { app_rules_creation_enabled: appRulesCreationEnabled } : {},
15036
+ ...toolDiscoveryEnabled !== void 0 ? { tool_discovery_enabled: toolDiscoveryEnabled } : {},
15037
+ ...selfUpdatesEnabled !== void 0 ? { self_updates_enabled: selfUpdatesEnabled } : {},
15038
+ ...trustedUrls !== void 0 ? { trusted_urls: trustedUrls } : {},
15039
+ ...toolAccess !== void 0 ? { tool_access: toolAccess } : {},
15040
+ ...pluginConnections !== void 0 ? { agent_tool_connections_attributes: pluginConnections } : {},
15041
+ ...trigger !== void 0 ? { trigger_attributes: trigger } : {}
14927
15042
  }
14928
15043
  },
14929
15044
  idempotency_key: idempotencyKey
@@ -14946,6 +15061,23 @@ function registerAtlasAuthoringCommands(program) {
14946
15061
  isShow: true
14947
15062
  });
14948
15063
  });
15064
+ agents.command("plugin-catalog").description("Read connected Agent plugin capabilities for one supported service").requiredOption(
15065
+ "--service <service>",
15066
+ "Supported service: gmail, calendar, slack, or stripe"
15067
+ ).action(async (opts, cmd) => {
15068
+ const service = import_zod19.z.enum(["gmail", "calendar", "slack", "stripe"]).parse(opts.service);
15069
+ const context = await resolveCommandContext(cmd.optsWithGlobals());
15070
+ const organizationId = resolveOrganizationId(context.organizationId);
15071
+ await runGraphqlQueryCommand({
15072
+ command: "agents.plugin-catalog",
15073
+ operationName: "AgentsPluginCatalog",
15074
+ runtimeOptions: context.runtimeOptions,
15075
+ field: "external_tool_catalog",
15076
+ variables: { organization_id: organizationId, service },
15077
+ variableTypes: { organization_id: "ID!", service: "String!" },
15078
+ selectionSet: AGENT_PLUGIN_CATALOG_SELECTION
15079
+ });
15080
+ });
14949
15081
  const automations = program.command("automations").description("Bounded Automation authoring operations");
14950
15082
  automations.command("create").description("Create an Automation through the API-owned createAutomation contract").requiredOption("--summary <summary>").requiredOption("--ai-task-config <json>", "Valid JSON for the API-owned ai_task_config field").requiredOption("--idempotency-key <key>", "Required create idempotency key").option("--description <description>").option("--notes <notes>").option("--member-id <memberId>").option("--agent-id <agentId>", "Optional executor Agent id for a repeat Automation").option("--status <status>").option("--priority <priority>").option("--due-date <date>", "ISO-8601 date (YYYY-MM-DD)").action(async (opts, cmd) => {
14951
15083
  const idempotencyKey = idempotencyKeySchema.parse(opts.idempotencyKey);
@@ -15035,7 +15167,7 @@ var import_node_path4 = require("path");
15035
15167
  var import_node_crypto3 = require("crypto");
15036
15168
 
15037
15169
  // src/version.ts
15038
- var CLI_VERSION = "0.1.68";
15170
+ var CLI_VERSION = "0.1.71";
15039
15171
 
15040
15172
  // src/operationMetadata.ts
15041
15173
  var DISCOVERY_OPERATION_IDS = [
@@ -15154,6 +15286,7 @@ var READ_OPERATION_IDS = [
15154
15286
  "accountability.list",
15155
15287
  "accountability.search",
15156
15288
  "accountability.show",
15289
+ "agents.plugin-catalog",
15157
15290
  "agents.show",
15158
15291
  "auth.status",
15159
15292
  "automations.show",
@@ -15829,6 +15962,7 @@ var NAMESPACE_DOCS = {
15829
15962
  description: "Bounded Agent create and persisted readback operations.",
15830
15963
  examples: [
15831
15964
  'wave agents create --name "Planning helper" --idempotency-key agent-create-001',
15965
+ `wave agents create --name "Project summary" --notes "Summarize my projects." --tool-access '[{"tool_key":"projects","scope_value":"all"}]' --trigger '{"trigger_type":"cron","cron_expression":"0 14 * * 2","timezone":"America/Phoenix","enabled":true}' --idempotency-key agent-create-002`,
15832
15966
  "wave agents show --id 123"
15833
15967
  ],
15834
15968
  schema: {
@@ -15837,6 +15971,8 @@ var NAMESPACE_DOCS = {
15837
15971
  safety: [
15838
15972
  "Create calls only createAgent with an explicit idempotency key.",
15839
15973
  "Create preserves API-owned defaults by sending only supplied typed Agent fields.",
15974
+ "Native tools, plugin connector grants, and the cron trigger use strict canonical JSON shapes.",
15975
+ "Outlook Calendar and Outlook Mail are not supported Agent plugin families in this release.",
15840
15976
  "Show uses the API-owned agent query by id; no slug fallback is implemented."
15841
15977
  ],
15842
15978
  commands: ["create", "show"]
package/dist/index.js CHANGED
@@ -14778,6 +14778,33 @@ var idSchema14 = z19.string().trim().min(1);
14778
14778
  var idempotencyKeySchema = z19.string().min(1).refine((value) => value.trim() === value, "Idempotency key must not have leading or trailing whitespace.");
14779
14779
  var skillScopeSchema = z19.enum(["ADMIN_GLOBAL", "MEMBER_PERSONAL"]);
14780
14780
  var isoDateSchema = z19.iso.date();
14781
+ var nonEmptyStringSchema = z19.string().trim().min(1);
14782
+ var agentToolAccessSchema = z19.array(
14783
+ z19.object({
14784
+ tool_key: nonEmptyStringSchema,
14785
+ scope_value: nonEmptyStringSchema
14786
+ }).strict()
14787
+ ).min(1);
14788
+ var agentPluginConnectionsSchema = z19.array(
14789
+ z19.object({
14790
+ external_tool_connection_id: nonEmptyStringSchema,
14791
+ tool_key: nonEmptyStringSchema,
14792
+ scope_value: nonEmptyStringSchema.optional(),
14793
+ allowed_tools: z19.array(nonEmptyStringSchema).optional(),
14794
+ allowed_scopes: z19.array(nonEmptyStringSchema).optional(),
14795
+ requires_confirmation: z19.boolean().optional(),
14796
+ enabled: z19.boolean().optional()
14797
+ }).strict()
14798
+ ).min(1);
14799
+ var agentTriggerSchema = z19.object({
14800
+ trigger_type: z19.literal("cron"),
14801
+ cron_expression: nonEmptyStringSchema,
14802
+ timezone: nonEmptyStringSchema,
14803
+ starts_at: z19.iso.datetime({ offset: true }).nullable().optional(),
14804
+ ends_at: z19.iso.datetime({ offset: true }).nullable().optional(),
14805
+ max_runs: z19.number().int().positive().nullable().optional(),
14806
+ enabled: z19.boolean().optional()
14807
+ }).strict();
14781
14808
  var AGENT_SELECTION = `{
14782
14809
  id
14783
14810
  type
@@ -14790,11 +14817,56 @@ var AGENT_SELECTION = `{
14790
14817
  model
14791
14818
  runWhenMentioned
14792
14819
  webAccessEnabled
14820
+ webFetchEnabled
14821
+ searchPastConversationsEnabled
14822
+ appRulesCreationEnabled
14823
+ toolDiscoveryEnabled
14824
+ selfUpdatesEnabled
14825
+ trustedUrls
14826
+ toolAccess
14827
+ agentToolConnections {
14828
+ id
14829
+ type
14830
+ attributes {
14831
+ agentId
14832
+ externalToolConnectionId
14833
+ toolKey
14834
+ scopeValue
14835
+ allowedTools
14836
+ allowedScopes
14837
+ requiresConfirmation
14838
+ enabled
14839
+ provider
14840
+ service
14841
+ }
14842
+ }
14843
+ triggers {
14844
+ id
14845
+ triggerType
14846
+ cronExpression
14847
+ timezone
14848
+ startsAt
14849
+ endsAt
14850
+ maxRuns
14851
+ enabled
14852
+ nextOccurrenceAt
14853
+ }
14793
14854
  organizationId
14794
14855
  memberId
14795
14856
  createdAt
14796
14857
  updatedAt
14797
14858
  }`;
14859
+ var AGENT_PLUGIN_CATALOG_SELECTION = `{
14860
+ externalToolConnectionId
14861
+ provider
14862
+ service
14863
+ toolKey
14864
+ displayName
14865
+ requiredScopes
14866
+ defaultConfirmationPolicy
14867
+ connectionState
14868
+ status
14869
+ }`;
14798
14870
  var AUTOMATION_SELECTION = `{
14799
14871
  id
14800
14872
  type
@@ -14855,6 +14927,10 @@ function parseJson(value, optionName) {
14855
14927
  });
14856
14928
  }
14857
14929
  }
14930
+ function parseJsonOption(value, optionName, schema) {
14931
+ if (value === void 0) return void 0;
14932
+ return schema.parse(parseJson(String(value), optionName));
14933
+ }
14858
14934
  function normalizePersistedCreatePayload(payload) {
14859
14935
  const mutation = asRecord8(payload);
14860
14936
  const mutationData = asRecord8(mutation?.data);
@@ -14892,11 +14968,42 @@ function normalizePersistedCreatePayload(payload) {
14892
14968
  }
14893
14969
  function registerAtlasAuthoringCommands(program) {
14894
14970
  const agents = program.command("agents").description("Bounded Agent authoring operations");
14895
- agents.command("create").description("Create an Agent through the API-owned createAgent contract").requiredOption("--idempotency-key <key>", "Required create idempotency key").option("--name <name>").option("--description <description>").option("--notes <notes>").option("--member-id <memberId>").option("--status <status>").option("--visibility <visibility>").option("--model <model>").option("--run-when-mentioned <boolean>", "true or false").option("--web-access-enabled <boolean>", "true or false").option("--trusted-urls <urls>", "Comma-separated trusted URLs").action(async (opts, cmd) => {
14971
+ agents.command("create").description("Create an Agent through the API-owned createAgent contract").requiredOption("--idempotency-key <key>", "Required create idempotency key").option("--name <name>").option("--description <description>").option("--notes <notes>").option("--member-id <memberId>").option("--status <status>").option("--visibility <visibility>").option("--model <model>").option("--run-when-mentioned <boolean>", "true or false").option("--web-access-enabled <boolean>", "true or false").option("--web-fetch-enabled <boolean>", "true or false").option("--search-past-conversations-enabled <boolean>", "true or false").option("--app-rules-creation-enabled <boolean>", "true or false").option("--tool-discovery-enabled <boolean>", "true or false").option("--self-updates-enabled <boolean>", "true or false").option("--trusted-urls <urls>", "Comma-separated trusted URLs").option("--tool-access <json>", "JSON array of canonical native Agent tool scopes").option(
14972
+ "--plugin-connections <json>",
14973
+ "JSON array of persisted Agent connector grants"
14974
+ ).option("--trigger <json>", "Canonical cron Agent trigger JSON").action(async (opts, cmd) => {
14896
14975
  const idempotencyKey = idempotencyKeySchema.parse(opts.idempotencyKey);
14897
14976
  const runWhenMentioned = parseBooleanOption(opts.runWhenMentioned, "--run-when-mentioned");
14898
14977
  const webAccessEnabled = parseBooleanOption(opts.webAccessEnabled, "--web-access-enabled");
14978
+ const webFetchEnabled = parseBooleanOption(opts.webFetchEnabled, "--web-fetch-enabled");
14979
+ const searchPastConversationsEnabled = parseBooleanOption(
14980
+ opts.searchPastConversationsEnabled,
14981
+ "--search-past-conversations-enabled"
14982
+ );
14983
+ const appRulesCreationEnabled = parseBooleanOption(
14984
+ opts.appRulesCreationEnabled,
14985
+ "--app-rules-creation-enabled"
14986
+ );
14987
+ const toolDiscoveryEnabled = parseBooleanOption(
14988
+ opts.toolDiscoveryEnabled,
14989
+ "--tool-discovery-enabled"
14990
+ );
14991
+ const selfUpdatesEnabled = parseBooleanOption(
14992
+ opts.selfUpdatesEnabled,
14993
+ "--self-updates-enabled"
14994
+ );
14899
14995
  const trustedUrls = parseCommaSeparatedStrings(opts.trustedUrls);
14996
+ const toolAccess = parseJsonOption(
14997
+ opts.toolAccess,
14998
+ "--tool-access",
14999
+ agentToolAccessSchema
15000
+ );
15001
+ const pluginConnections = parseJsonOption(
15002
+ opts.pluginConnections,
15003
+ "--plugin-connections",
15004
+ agentPluginConnectionsSchema
15005
+ );
15006
+ const trigger = parseJsonOption(opts.trigger, "--trigger", agentTriggerSchema);
14900
15007
  const context = await resolveCommandContext(cmd.optsWithGlobals());
14901
15008
  const organizationId = resolveOrganizationId(context.organizationId);
14902
15009
  await runGraphqlMutationCommand({
@@ -14922,7 +15029,15 @@ function registerAtlasAuthoringCommands(program) {
14922
15029
  ...opts.model !== void 0 ? { model: String(opts.model) } : {},
14923
15030
  ...runWhenMentioned !== void 0 ? { run_when_mentioned: runWhenMentioned } : {},
14924
15031
  ...webAccessEnabled !== void 0 ? { web_access_enabled: webAccessEnabled } : {},
14925
- ...trustedUrls !== void 0 ? { trusted_urls: trustedUrls } : {}
15032
+ ...webFetchEnabled !== void 0 ? { web_fetch_enabled: webFetchEnabled } : {},
15033
+ ...searchPastConversationsEnabled !== void 0 ? { search_past_conversations_enabled: searchPastConversationsEnabled } : {},
15034
+ ...appRulesCreationEnabled !== void 0 ? { app_rules_creation_enabled: appRulesCreationEnabled } : {},
15035
+ ...toolDiscoveryEnabled !== void 0 ? { tool_discovery_enabled: toolDiscoveryEnabled } : {},
15036
+ ...selfUpdatesEnabled !== void 0 ? { self_updates_enabled: selfUpdatesEnabled } : {},
15037
+ ...trustedUrls !== void 0 ? { trusted_urls: trustedUrls } : {},
15038
+ ...toolAccess !== void 0 ? { tool_access: toolAccess } : {},
15039
+ ...pluginConnections !== void 0 ? { agent_tool_connections_attributes: pluginConnections } : {},
15040
+ ...trigger !== void 0 ? { trigger_attributes: trigger } : {}
14926
15041
  }
14927
15042
  },
14928
15043
  idempotency_key: idempotencyKey
@@ -14945,6 +15060,23 @@ function registerAtlasAuthoringCommands(program) {
14945
15060
  isShow: true
14946
15061
  });
14947
15062
  });
15063
+ agents.command("plugin-catalog").description("Read connected Agent plugin capabilities for one supported service").requiredOption(
15064
+ "--service <service>",
15065
+ "Supported service: gmail, calendar, slack, or stripe"
15066
+ ).action(async (opts, cmd) => {
15067
+ const service = z19.enum(["gmail", "calendar", "slack", "stripe"]).parse(opts.service);
15068
+ const context = await resolveCommandContext(cmd.optsWithGlobals());
15069
+ const organizationId = resolveOrganizationId(context.organizationId);
15070
+ await runGraphqlQueryCommand({
15071
+ command: "agents.plugin-catalog",
15072
+ operationName: "AgentsPluginCatalog",
15073
+ runtimeOptions: context.runtimeOptions,
15074
+ field: "external_tool_catalog",
15075
+ variables: { organization_id: organizationId, service },
15076
+ variableTypes: { organization_id: "ID!", service: "String!" },
15077
+ selectionSet: AGENT_PLUGIN_CATALOG_SELECTION
15078
+ });
15079
+ });
14948
15080
  const automations = program.command("automations").description("Bounded Automation authoring operations");
14949
15081
  automations.command("create").description("Create an Automation through the API-owned createAutomation contract").requiredOption("--summary <summary>").requiredOption("--ai-task-config <json>", "Valid JSON for the API-owned ai_task_config field").requiredOption("--idempotency-key <key>", "Required create idempotency key").option("--description <description>").option("--notes <notes>").option("--member-id <memberId>").option("--agent-id <agentId>", "Optional executor Agent id for a repeat Automation").option("--status <status>").option("--priority <priority>").option("--due-date <date>", "ISO-8601 date (YYYY-MM-DD)").action(async (opts, cmd) => {
14950
15082
  const idempotencyKey = idempotencyKeySchema.parse(opts.idempotencyKey);
@@ -15034,7 +15166,7 @@ import { join as join3 } from "path";
15034
15166
  import { createHash } from "crypto";
15035
15167
 
15036
15168
  // src/version.ts
15037
- var CLI_VERSION = "0.1.68";
15169
+ var CLI_VERSION = "0.1.71";
15038
15170
 
15039
15171
  // src/operationMetadata.ts
15040
15172
  var DISCOVERY_OPERATION_IDS = [
@@ -15153,6 +15285,7 @@ var READ_OPERATION_IDS = [
15153
15285
  "accountability.list",
15154
15286
  "accountability.search",
15155
15287
  "accountability.show",
15288
+ "agents.plugin-catalog",
15156
15289
  "agents.show",
15157
15290
  "auth.status",
15158
15291
  "automations.show",
@@ -15828,6 +15961,7 @@ var NAMESPACE_DOCS = {
15828
15961
  description: "Bounded Agent create and persisted readback operations.",
15829
15962
  examples: [
15830
15963
  'wave agents create --name "Planning helper" --idempotency-key agent-create-001',
15964
+ `wave agents create --name "Project summary" --notes "Summarize my projects." --tool-access '[{"tool_key":"projects","scope_value":"all"}]' --trigger '{"trigger_type":"cron","cron_expression":"0 14 * * 2","timezone":"America/Phoenix","enabled":true}' --idempotency-key agent-create-002`,
15831
15965
  "wave agents show --id 123"
15832
15966
  ],
15833
15967
  schema: {
@@ -15836,6 +15970,8 @@ var NAMESPACE_DOCS = {
15836
15970
  safety: [
15837
15971
  "Create calls only createAgent with an explicit idempotency key.",
15838
15972
  "Create preserves API-owned defaults by sending only supplied typed Agent fields.",
15973
+ "Native tools, plugin connector grants, and the cron trigger use strict canonical JSON shapes.",
15974
+ "Outlook Calendar and Outlook Mail are not supported Agent plugin families in this release.",
15839
15975
  "Show uses the API-owned agent query by id; no slug fallback is implemented."
15840
15976
  ],
15841
15977
  commands: ["create", "show"]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wave-ai-os/wave-cli",
3
- "version": "0.1.68",
3
+ "version": "0.1.71",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "wave": "dist/index.js"