@wave-ai-os/wave-cli 0.1.65 → 0.1.67

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 CHANGED
@@ -69,7 +69,10 @@ Notes:
69
69
  Required (from flags, stdin, env, config, or stored credentials):
70
70
 
71
71
  - `WAVE_API_TOKEN`
72
- - `WAVE_API_BASE_URL`
72
+
73
+ The API base defaults to production: `https://api.ourwave.io`. Supply
74
+ `--base-url`, stdin context, `WAVE_API_BASE_URL`/`WAVE_API_URL`, or config only
75
+ when using a non-production environment.
73
76
 
74
77
  Organization-scoped data commands use the organization certified by the
75
78
  authenticated CLI token. `--organization-id` is the only local override.
@@ -92,7 +95,7 @@ Deterministic precedence:
92
95
  - stdin context (`--token-stdin` or `--auth-json-stdin`)
93
96
  - env vars (`WAVE_*`)
94
97
  - config file (`--config`, `WAVE_CONFIG_PATH`, or `~/.wave/config.json` when present)
95
- - failure with structured JSON error
98
+ - production API default (`https://api.ourwave.io`)
96
99
 
97
100
  Config files are JSON objects using the same keys accepted by `--auth-json-stdin`, for example:
98
101
 
@@ -104,12 +107,12 @@ Config files are JSON objects using the same keys accepted by `--auth-json-stdin
104
107
  }
105
108
  ```
106
109
 
107
- For a persistent production login, configure `https://api.ourwave.io` as the
108
- GraphQL/API base and save only that API endpoint to the local CLI config. The
109
- token remains in the configured credential store, not in `config.json`:
110
+ For a persistent production login, `wave login --save-base-url` saves the
111
+ default production GraphQL/API base to the local CLI config. The token remains
112
+ in the configured credential store, not in `config.json`:
110
113
 
111
114
  ```bash
112
- wave --base-url https://api.ourwave.io login --save-base-url
115
+ wave login --save-base-url
113
116
  ```
114
117
 
115
118
  The API host is not the browser-login destination. When production returns a
package/dist/index.cjs CHANGED
@@ -58,6 +58,9 @@ function mapStatusToExitCode(status) {
58
58
  return EXIT_CODES.generic;
59
59
  }
60
60
 
61
+ // src/runtimeDefaults.ts
62
+ var DEFAULT_PRODUCTION_API_BASE_URL = "https://api.ourwave.io";
63
+
61
64
  // src/config.ts
62
65
  var DEFAULT_TIMEOUT_MS = 1e4;
63
66
  var configSchema = import_zod.z.object({
@@ -116,15 +119,7 @@ function getConfig(options) {
116
119
  exitCode: EXIT_CODES.missingOrInvalidAuth
117
120
  });
118
121
  }
119
- const baseUrl = options.baseUrl ?? process.env.WAVE_API_BASE_URL ?? process.env.WAVE_API_URL;
120
- if (!baseUrl) {
121
- throw new CliError({
122
- message: "Missing API base URL. Pass --base-url, provide via --auth-json-stdin, or set WAVE_API_BASE_URL/WAVE_API_URL.",
123
- kind: "invalid_args",
124
- status: 400,
125
- exitCode: EXIT_CODES.invalidArgs
126
- });
127
- }
122
+ const baseUrl = options.baseUrl ?? process.env.WAVE_API_BASE_URL ?? process.env.WAVE_API_URL ?? DEFAULT_PRODUCTION_API_BASE_URL;
128
123
  const parsed = configSchema.safeParse({
129
124
  baseUrl,
130
125
  token,
@@ -2277,7 +2272,8 @@ function resolveFromSources(options, stdin, config, env) {
2277
2272
  normalize3(stdin.baseUrl),
2278
2273
  normalize3(env.WAVE_API_BASE_URL),
2279
2274
  normalize3(env.WAVE_API_URL),
2280
- normalize3(config.baseUrl)
2275
+ normalize3(config.baseUrl),
2276
+ DEFAULT_PRODUCTION_API_BASE_URL
2281
2277
  );
2282
2278
  const organizationId = normalize3(options.organizationId);
2283
2279
  const organizationIdSource = organizationId ? "flag" : "none";
@@ -14777,115 +14773,6 @@ function registerDatasheetsCommands(program) {
14777
14773
  });
14778
14774
  }
14779
14775
 
14780
- // src/commands/aiNotes.ts
14781
- var AI_NOTE_SAFE_FIELDS = [
14782
- "id",
14783
- "slug",
14784
- "title",
14785
- "status",
14786
- "visibility",
14787
- "sourceType",
14788
- "sourceReference",
14789
- "ownerMemberId",
14790
- "scheduledStartAt",
14791
- "scheduledEndAt",
14792
- "createdAt",
14793
- "updatedAt"
14794
- ];
14795
- var AI_NOTE_SELECTION = `{ ${AI_NOTE_SAFE_FIELDS.join(" ")} }`;
14796
- var AI_NOTES_SELECTION = AI_NOTE_SELECTION;
14797
- function pickSafeAiNoteFields(value) {
14798
- if (!value || typeof value !== "object" || Array.isArray(value)) {
14799
- return null;
14800
- }
14801
- const record = value;
14802
- const safe = {};
14803
- for (const field of AI_NOTE_SAFE_FIELDS) {
14804
- if (Object.prototype.hasOwnProperty.call(record, field)) {
14805
- safe[field] = record[field];
14806
- }
14807
- }
14808
- return safe;
14809
- }
14810
- function projectAiNotesPayload(payload) {
14811
- if (Array.isArray(payload)) {
14812
- return payload.map((item) => pickSafeAiNoteFields(item)).filter(Boolean);
14813
- }
14814
- if (!payload || typeof payload !== "object") {
14815
- return payload;
14816
- }
14817
- return pickSafeAiNoteFields(payload);
14818
- }
14819
- function showVariables(opts) {
14820
- const id = typeof opts.id === "string" && opts.id.trim() !== "" ? opts.id.trim() : void 0;
14821
- const slug = typeof opts.slug === "string" && opts.slug.trim() !== "" ? opts.slug.trim() : void 0;
14822
- if (!id && !slug || id && slug) {
14823
- throw new CliError({
14824
- message: "Provide exactly one AI Note identifier: --id or --slug.",
14825
- kind: "invalid_args",
14826
- status: 400,
14827
- exitCode: EXIT_CODES.invalidArgs,
14828
- details: { requiredOneOf: ["--id", "--slug"] }
14829
- });
14830
- }
14831
- return id ? { id } : { slug };
14832
- }
14833
- async function runAiNotesQuery(cmd, config) {
14834
- const context = await resolveCommandContext(cmd.optsWithGlobals());
14835
- await runGraphqlQueryCommand({
14836
- command: config.command,
14837
- operationName: config.operationName,
14838
- runtimeOptions: context.runtimeOptions,
14839
- field: config.field,
14840
- variables: normalizeGraphqlVariables2({
14841
- organization_id: resolveOrganizationId(context.organizationId),
14842
- ...config.variables
14843
- }),
14844
- variableTypes: config.variableTypes,
14845
- selectionSet: config.selectionSet,
14846
- isList: config.isList,
14847
- isShow: config.isShow,
14848
- transformData: projectAiNotesPayload
14849
- });
14850
- }
14851
- function registerAiNotesCommands(program) {
14852
- const aiNotes = program.command("ai-notes").description("AI Notes read-only list and detail metadata");
14853
- aiNotes.command("list").description("Read safe AI Note metadata without transcripts or provider payloads").option("--page <page>").option("--per <per>").action(async (opts, cmd) => {
14854
- await runAiNotesQuery(cmd, {
14855
- command: "ai-notes.list",
14856
- operationName: "AiNotes",
14857
- field: "ai_notes",
14858
- variables: {
14859
- page: opts.page,
14860
- per: opts.per
14861
- },
14862
- variableTypes: {
14863
- organization_id: "ID!",
14864
- page: "Int",
14865
- per: "Int"
14866
- },
14867
- selectionSet: AI_NOTES_SELECTION,
14868
- isList: true
14869
- });
14870
- });
14871
- aiNotes.command("show").description("Read safe AI Note detail metadata by id or slug").option("--id <id>").option("--slug <slug>").action(async (opts, cmd) => {
14872
- const variables = showVariables(opts);
14873
- await runAiNotesQuery(cmd, {
14874
- command: "ai-notes.show",
14875
- operationName: "AiNote",
14876
- field: "ai_note",
14877
- variables,
14878
- variableTypes: {
14879
- organization_id: "ID!",
14880
- ...variables.id ? { id: "ID!" } : {},
14881
- ...variables.slug ? { slug: "String!" } : {}
14882
- },
14883
- selectionSet: AI_NOTE_SELECTION,
14884
- isShow: true
14885
- });
14886
- });
14887
- }
14888
-
14889
14776
  // src/commands/atlasAuthoring.ts
14890
14777
  var import_zod19 = require("zod");
14891
14778
  var idSchema14 = import_zod19.z.string().trim().min(1);
@@ -15060,7 +14947,7 @@ function registerAtlasAuthoringCommands(program) {
15060
14947
  });
15061
14948
  });
15062
14949
  const automations = program.command("automations").description("Bounded Automation authoring operations");
15063
- 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("--status <status>").option("--priority <priority>").option("--due-date <date>", "ISO-8601 date (YYYY-MM-DD)").action(async (opts, cmd) => {
14950
+ 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) => {
15064
14951
  const idempotencyKey = idempotencyKeySchema.parse(opts.idempotencyKey);
15065
14952
  const context = await resolveCommandContext(cmd.optsWithGlobals());
15066
14953
  const organizationId = resolveOrganizationId(context.organizationId);
@@ -15082,6 +14969,7 @@ function registerAtlasAuthoringCommands(program) {
15082
14969
  ...opts.description !== void 0 ? { description: String(opts.description) } : {},
15083
14970
  ...opts.notes !== void 0 ? { notes: String(opts.notes) } : {},
15084
14971
  ...opts.memberId !== void 0 ? { member_id: idSchema14.parse(opts.memberId) } : {},
14972
+ ...opts.agentId !== void 0 ? { agentId: idSchema14.parse(opts.agentId) } : {},
15085
14973
  ...opts.status !== void 0 ? { status: String(opts.status) } : {},
15086
14974
  ...opts.priority !== void 0 ? { priority: String(opts.priority) } : {},
15087
14975
  ...opts.dueDate !== void 0 ? { due_date: isoDateSchema.parse(opts.dueDate) } : {}
@@ -15152,7 +15040,6 @@ var PRIMARY_NAMESPACES = [
15152
15040
  "planner",
15153
15041
  "mail",
15154
15042
  "datasheets",
15155
- "ai-notes",
15156
15043
  "phantom",
15157
15044
  "tasks",
15158
15045
  "projects",
@@ -15317,7 +15204,7 @@ var NAMESPACE_DOCS = {
15317
15204
  tier: "primary",
15318
15205
  description: "Bounded Automation create and persisted readback operations.",
15319
15206
  examples: [
15320
- `wave automations create --summary "Weekly review" --ai-task-config '{"prompt":"Review tasks"}' --idempotency-key automation-create-001`,
15207
+ `wave automations create --summary "Weekly review" --agent-id 123 --ai-task-config '{"cycle":"repeat","repeatSchedule":{"interval":1,"frequency":"week","weekdays":[1,3],"at":"2:30 PM","starting":"2026-07-20T00:00:00.000Z","ending":"never","endingRuns":1,"endingDate":null,"timezone":"America/Phoenix"}}' --idempotency-key automation-create-001`,
15321
15208
  "wave automations show --id 123"
15322
15209
  ],
15323
15210
  schema: {
@@ -15326,6 +15213,7 @@ var NAMESPACE_DOCS = {
15326
15213
  safety: [
15327
15214
  "Create calls only createAutomation with an explicit idempotency key.",
15328
15215
  "Only the API-defined ai_task_config field accepts validated JSON.",
15216
+ "Optional executor Agent linkage is sent only through the API-defined top-level agentId input.",
15329
15217
  "Does not create a project Task, run an Automation, or invoke AI OS actions.",
15330
15218
  "Show uses the API-owned automation query by id; no slug fallback is implemented."
15331
15219
  ],
@@ -15587,26 +15475,6 @@ var NAMESPACE_DOCS = {
15587
15475
  ]
15588
15476
  }
15589
15477
  },
15590
- "ai-notes": {
15591
- name: "ai-notes",
15592
- tier: "primary",
15593
- description: "AI Notes read-only list and detail metadata for CLI-backed Atlas and harness inspection.",
15594
- examples: [
15595
- "wave ai-notes list --page 1 --per 20",
15596
- "wave ai-notes show --id note_123",
15597
- "wave ai-notes show --slug weekly-summary"
15598
- ],
15599
- schema: {
15600
- output: "json-envelope-default",
15601
- readOnly: true,
15602
- safety: [
15603
- "Uses API-owned GraphQL read fields aiNotes and aiNote.",
15604
- "List/show output is limited to safe AI Note identifiers, title, status, visibility, source reference, owner member id, schedule timestamps, and record timestamps.",
15605
- "Does not expose transcript upload, transcription finalize, consent grant, create, update, delete, transcript text, segment text, client secrets, unsafe metadata, raw provider payloads, credentials, tokens, or secrets by default."
15606
- ],
15607
- commands: ["list", "show"]
15608
- }
15609
- },
15610
15478
  "markdown-tree": {
15611
15479
  name: "markdown-tree",
15612
15480
  tier: "advanced",
@@ -16124,7 +15992,7 @@ function attachDiscoveryHelp(program) {
16124
15992
  }
16125
15993
 
16126
15994
  // src/version.ts
16127
- var CLI_VERSION = "0.1.65";
15995
+ var CLI_VERSION = "0.1.67";
16128
15996
 
16129
15997
  // src/cli.ts
16130
15998
  function buildCli(options) {
@@ -16134,7 +16002,7 @@ function buildCli(options) {
16134
16002
  "Read auth/runtime context JSON from stdin (token, baseUrl, tracing fields, ...)"
16135
16003
  ).option(
16136
16004
  "--base-url <baseUrl>",
16137
- "API base URL (prefer WAVE_API_BASE_URL env var)"
16005
+ "API base URL (defaults to production; WAVE_API_BASE_URL overrides it)"
16138
16006
  ).option(
16139
16007
  "--organization-id <organizationId>",
16140
16008
  "Explicit organization ID override"
@@ -16200,7 +16068,6 @@ function buildCli(options) {
16200
16068
  registerMailCommands(program);
16201
16069
  registerPhantomCommands(program);
16202
16070
  registerDatasheetsCommands(program);
16203
- registerAiNotesCommands(program);
16204
16071
  registerAuthCommands(program);
16205
16072
  registerDiscoveryCommands(program);
16206
16073
  attachNamespaceDiscovery(program);
package/dist/index.js CHANGED
@@ -57,6 +57,9 @@ function mapStatusToExitCode(status) {
57
57
  return EXIT_CODES.generic;
58
58
  }
59
59
 
60
+ // src/runtimeDefaults.ts
61
+ var DEFAULT_PRODUCTION_API_BASE_URL = "https://api.ourwave.io";
62
+
60
63
  // src/config.ts
61
64
  var DEFAULT_TIMEOUT_MS = 1e4;
62
65
  var configSchema = z.object({
@@ -115,15 +118,7 @@ function getConfig(options) {
115
118
  exitCode: EXIT_CODES.missingOrInvalidAuth
116
119
  });
117
120
  }
118
- const baseUrl = options.baseUrl ?? process.env.WAVE_API_BASE_URL ?? process.env.WAVE_API_URL;
119
- if (!baseUrl) {
120
- throw new CliError({
121
- message: "Missing API base URL. Pass --base-url, provide via --auth-json-stdin, or set WAVE_API_BASE_URL/WAVE_API_URL.",
122
- kind: "invalid_args",
123
- status: 400,
124
- exitCode: EXIT_CODES.invalidArgs
125
- });
126
- }
121
+ const baseUrl = options.baseUrl ?? process.env.WAVE_API_BASE_URL ?? process.env.WAVE_API_URL ?? DEFAULT_PRODUCTION_API_BASE_URL;
127
122
  const parsed = configSchema.safeParse({
128
123
  baseUrl,
129
124
  token,
@@ -2276,7 +2271,8 @@ function resolveFromSources(options, stdin, config, env) {
2276
2271
  normalize3(stdin.baseUrl),
2277
2272
  normalize3(env.WAVE_API_BASE_URL),
2278
2273
  normalize3(env.WAVE_API_URL),
2279
- normalize3(config.baseUrl)
2274
+ normalize3(config.baseUrl),
2275
+ DEFAULT_PRODUCTION_API_BASE_URL
2280
2276
  );
2281
2277
  const organizationId = normalize3(options.organizationId);
2282
2278
  const organizationIdSource = organizationId ? "flag" : "none";
@@ -14776,115 +14772,6 @@ function registerDatasheetsCommands(program) {
14776
14772
  });
14777
14773
  }
14778
14774
 
14779
- // src/commands/aiNotes.ts
14780
- var AI_NOTE_SAFE_FIELDS = [
14781
- "id",
14782
- "slug",
14783
- "title",
14784
- "status",
14785
- "visibility",
14786
- "sourceType",
14787
- "sourceReference",
14788
- "ownerMemberId",
14789
- "scheduledStartAt",
14790
- "scheduledEndAt",
14791
- "createdAt",
14792
- "updatedAt"
14793
- ];
14794
- var AI_NOTE_SELECTION = `{ ${AI_NOTE_SAFE_FIELDS.join(" ")} }`;
14795
- var AI_NOTES_SELECTION = AI_NOTE_SELECTION;
14796
- function pickSafeAiNoteFields(value) {
14797
- if (!value || typeof value !== "object" || Array.isArray(value)) {
14798
- return null;
14799
- }
14800
- const record = value;
14801
- const safe = {};
14802
- for (const field of AI_NOTE_SAFE_FIELDS) {
14803
- if (Object.prototype.hasOwnProperty.call(record, field)) {
14804
- safe[field] = record[field];
14805
- }
14806
- }
14807
- return safe;
14808
- }
14809
- function projectAiNotesPayload(payload) {
14810
- if (Array.isArray(payload)) {
14811
- return payload.map((item) => pickSafeAiNoteFields(item)).filter(Boolean);
14812
- }
14813
- if (!payload || typeof payload !== "object") {
14814
- return payload;
14815
- }
14816
- return pickSafeAiNoteFields(payload);
14817
- }
14818
- function showVariables(opts) {
14819
- const id = typeof opts.id === "string" && opts.id.trim() !== "" ? opts.id.trim() : void 0;
14820
- const slug = typeof opts.slug === "string" && opts.slug.trim() !== "" ? opts.slug.trim() : void 0;
14821
- if (!id && !slug || id && slug) {
14822
- throw new CliError({
14823
- message: "Provide exactly one AI Note identifier: --id or --slug.",
14824
- kind: "invalid_args",
14825
- status: 400,
14826
- exitCode: EXIT_CODES.invalidArgs,
14827
- details: { requiredOneOf: ["--id", "--slug"] }
14828
- });
14829
- }
14830
- return id ? { id } : { slug };
14831
- }
14832
- async function runAiNotesQuery(cmd, config) {
14833
- const context = await resolveCommandContext(cmd.optsWithGlobals());
14834
- await runGraphqlQueryCommand({
14835
- command: config.command,
14836
- operationName: config.operationName,
14837
- runtimeOptions: context.runtimeOptions,
14838
- field: config.field,
14839
- variables: normalizeGraphqlVariables2({
14840
- organization_id: resolveOrganizationId(context.organizationId),
14841
- ...config.variables
14842
- }),
14843
- variableTypes: config.variableTypes,
14844
- selectionSet: config.selectionSet,
14845
- isList: config.isList,
14846
- isShow: config.isShow,
14847
- transformData: projectAiNotesPayload
14848
- });
14849
- }
14850
- function registerAiNotesCommands(program) {
14851
- const aiNotes = program.command("ai-notes").description("AI Notes read-only list and detail metadata");
14852
- aiNotes.command("list").description("Read safe AI Note metadata without transcripts or provider payloads").option("--page <page>").option("--per <per>").action(async (opts, cmd) => {
14853
- await runAiNotesQuery(cmd, {
14854
- command: "ai-notes.list",
14855
- operationName: "AiNotes",
14856
- field: "ai_notes",
14857
- variables: {
14858
- page: opts.page,
14859
- per: opts.per
14860
- },
14861
- variableTypes: {
14862
- organization_id: "ID!",
14863
- page: "Int",
14864
- per: "Int"
14865
- },
14866
- selectionSet: AI_NOTES_SELECTION,
14867
- isList: true
14868
- });
14869
- });
14870
- aiNotes.command("show").description("Read safe AI Note detail metadata by id or slug").option("--id <id>").option("--slug <slug>").action(async (opts, cmd) => {
14871
- const variables = showVariables(opts);
14872
- await runAiNotesQuery(cmd, {
14873
- command: "ai-notes.show",
14874
- operationName: "AiNote",
14875
- field: "ai_note",
14876
- variables,
14877
- variableTypes: {
14878
- organization_id: "ID!",
14879
- ...variables.id ? { id: "ID!" } : {},
14880
- ...variables.slug ? { slug: "String!" } : {}
14881
- },
14882
- selectionSet: AI_NOTE_SELECTION,
14883
- isShow: true
14884
- });
14885
- });
14886
- }
14887
-
14888
14775
  // src/commands/atlasAuthoring.ts
14889
14776
  import { z as z19 } from "zod";
14890
14777
  var idSchema14 = z19.string().trim().min(1);
@@ -15059,7 +14946,7 @@ function registerAtlasAuthoringCommands(program) {
15059
14946
  });
15060
14947
  });
15061
14948
  const automations = program.command("automations").description("Bounded Automation authoring operations");
15062
- 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("--status <status>").option("--priority <priority>").option("--due-date <date>", "ISO-8601 date (YYYY-MM-DD)").action(async (opts, cmd) => {
14949
+ 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) => {
15063
14950
  const idempotencyKey = idempotencyKeySchema.parse(opts.idempotencyKey);
15064
14951
  const context = await resolveCommandContext(cmd.optsWithGlobals());
15065
14952
  const organizationId = resolveOrganizationId(context.organizationId);
@@ -15081,6 +14968,7 @@ function registerAtlasAuthoringCommands(program) {
15081
14968
  ...opts.description !== void 0 ? { description: String(opts.description) } : {},
15082
14969
  ...opts.notes !== void 0 ? { notes: String(opts.notes) } : {},
15083
14970
  ...opts.memberId !== void 0 ? { member_id: idSchema14.parse(opts.memberId) } : {},
14971
+ ...opts.agentId !== void 0 ? { agentId: idSchema14.parse(opts.agentId) } : {},
15084
14972
  ...opts.status !== void 0 ? { status: String(opts.status) } : {},
15085
14973
  ...opts.priority !== void 0 ? { priority: String(opts.priority) } : {},
15086
14974
  ...opts.dueDate !== void 0 ? { due_date: isoDateSchema.parse(opts.dueDate) } : {}
@@ -15151,7 +15039,6 @@ var PRIMARY_NAMESPACES = [
15151
15039
  "planner",
15152
15040
  "mail",
15153
15041
  "datasheets",
15154
- "ai-notes",
15155
15042
  "phantom",
15156
15043
  "tasks",
15157
15044
  "projects",
@@ -15316,7 +15203,7 @@ var NAMESPACE_DOCS = {
15316
15203
  tier: "primary",
15317
15204
  description: "Bounded Automation create and persisted readback operations.",
15318
15205
  examples: [
15319
- `wave automations create --summary "Weekly review" --ai-task-config '{"prompt":"Review tasks"}' --idempotency-key automation-create-001`,
15206
+ `wave automations create --summary "Weekly review" --agent-id 123 --ai-task-config '{"cycle":"repeat","repeatSchedule":{"interval":1,"frequency":"week","weekdays":[1,3],"at":"2:30 PM","starting":"2026-07-20T00:00:00.000Z","ending":"never","endingRuns":1,"endingDate":null,"timezone":"America/Phoenix"}}' --idempotency-key automation-create-001`,
15320
15207
  "wave automations show --id 123"
15321
15208
  ],
15322
15209
  schema: {
@@ -15325,6 +15212,7 @@ var NAMESPACE_DOCS = {
15325
15212
  safety: [
15326
15213
  "Create calls only createAutomation with an explicit idempotency key.",
15327
15214
  "Only the API-defined ai_task_config field accepts validated JSON.",
15215
+ "Optional executor Agent linkage is sent only through the API-defined top-level agentId input.",
15328
15216
  "Does not create a project Task, run an Automation, or invoke AI OS actions.",
15329
15217
  "Show uses the API-owned automation query by id; no slug fallback is implemented."
15330
15218
  ],
@@ -15586,26 +15474,6 @@ var NAMESPACE_DOCS = {
15586
15474
  ]
15587
15475
  }
15588
15476
  },
15589
- "ai-notes": {
15590
- name: "ai-notes",
15591
- tier: "primary",
15592
- description: "AI Notes read-only list and detail metadata for CLI-backed Atlas and harness inspection.",
15593
- examples: [
15594
- "wave ai-notes list --page 1 --per 20",
15595
- "wave ai-notes show --id note_123",
15596
- "wave ai-notes show --slug weekly-summary"
15597
- ],
15598
- schema: {
15599
- output: "json-envelope-default",
15600
- readOnly: true,
15601
- safety: [
15602
- "Uses API-owned GraphQL read fields aiNotes and aiNote.",
15603
- "List/show output is limited to safe AI Note identifiers, title, status, visibility, source reference, owner member id, schedule timestamps, and record timestamps.",
15604
- "Does not expose transcript upload, transcription finalize, consent grant, create, update, delete, transcript text, segment text, client secrets, unsafe metadata, raw provider payloads, credentials, tokens, or secrets by default."
15605
- ],
15606
- commands: ["list", "show"]
15607
- }
15608
- },
15609
15477
  "markdown-tree": {
15610
15478
  name: "markdown-tree",
15611
15479
  tier: "advanced",
@@ -16123,7 +15991,7 @@ function attachDiscoveryHelp(program) {
16123
15991
  }
16124
15992
 
16125
15993
  // src/version.ts
16126
- var CLI_VERSION = "0.1.65";
15994
+ var CLI_VERSION = "0.1.67";
16127
15995
 
16128
15996
  // src/cli.ts
16129
15997
  function buildCli(options) {
@@ -16133,7 +16001,7 @@ function buildCli(options) {
16133
16001
  "Read auth/runtime context JSON from stdin (token, baseUrl, tracing fields, ...)"
16134
16002
  ).option(
16135
16003
  "--base-url <baseUrl>",
16136
- "API base URL (prefer WAVE_API_BASE_URL env var)"
16004
+ "API base URL (defaults to production; WAVE_API_BASE_URL overrides it)"
16137
16005
  ).option(
16138
16006
  "--organization-id <organizationId>",
16139
16007
  "Explicit organization ID override"
@@ -16199,7 +16067,6 @@ function buildCli(options) {
16199
16067
  registerMailCommands(program);
16200
16068
  registerPhantomCommands(program);
16201
16069
  registerDatasheetsCommands(program);
16202
- registerAiNotesCommands(program);
16203
16070
  registerAuthCommands(program);
16204
16071
  registerDiscoveryCommands(program);
16205
16072
  attachNamespaceDiscovery(program);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wave-ai-os/wave-cli",
3
- "version": "0.1.65",
3
+ "version": "0.1.67",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "wave": "dist/index.js"