@ted-galago/wave-cli 0.1.18 → 0.1.19

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
@@ -348,7 +348,7 @@ Path and permission rules:
348
348
  - Agent Wiki `create` and `update` support only `index.md`; `log.md` cannot be overwritten.
349
349
  - Agent Wiki `append-log` supports only `log.md` and calls status first before appending.
350
350
  - The CLI uses backend GraphQL metadata directly and does not derive S3 paths, SHA paths, or backend storage conventions.
351
- - Atlas should inspect `path`, `source`, `access`, `owner`, `parentRef`, `exists`, `canCreate`, `canUpdate`, `canAppend`, `suggestedAction`, and `errorCode`.
351
+ - Atlas should inspect `path`, `source`, `access`, `owner`, `parentRef`, `exists`, `canCreate`, `canUpdate`, `canAppend`, `wikiRole`, `formatVersion`, `suggestedAction`, and `errorCode`.
352
352
  - Reads never create files.
353
353
  - Create/update/append-log flows call status first and inspect `exists`, `canCreate`, `canUpdate`, `canAppend`, `suggestedAction`, and `errorCode`.
354
354
  - `create` fails when `exists` is true.
@@ -357,6 +357,50 @@ Path and permission rules:
357
357
  - When `Agent Wiki/log.md` is missing and status reports `suggestedAction: "init"`, `append-log` returns a JSON error telling Atlas to run `wave osmd wiki init`.
358
358
  - Missing `Agent Wiki/index.md` is create-ready when status returns `exists: false`, `canCreate: true`, `canUpdate: false`, and `suggestedAction: "create"`.
359
359
 
360
+ Atlas Agent Wiki log flow:
361
+
362
+ 1. `status_log`: run `wave osmd wiki status log.md`.
363
+ 2. If `data.exists === false` and `data.suggestedAction === "init"`, run `wave osmd wiki init`.
364
+ 3. `status_log`: run `wave osmd wiki status log.md` again and require `data.canAppend === true`.
365
+ 4. `append_log`: run `wave osmd wiki append-log --content "<markdown log entry>"`.
366
+
367
+ Atlas must not skip the status checks. `append-log` never initializes files implicitly; backend `initAgentMarkdown` via `wave osmd wiki init` is the only supported initialization flow for Agent Wiki system files.
368
+
369
+ Atlas maintenance examples:
370
+
371
+ Update `Agent Wiki/index.md` after an entity `.agent/notes.md` change. Atlas should read the current index, compose the complete replacement markdown in memory, then update `index.md`; the CLI does not patch partial content:
372
+
373
+ ```bash
374
+ wave osmd agent update "directory/Wave Tools Team" notes.md --content "## Working notes\n\n- New durable entity note."
375
+ wave osmd wiki status index.md
376
+ wave osmd wiki read index.md
377
+ wave osmd wiki update index.md --content "# Agent Wiki\n\n## Entity Notes\n\n- directory/Wave Tools Team -> .agent/notes.md"
378
+ ```
379
+
380
+ Append a parseable log entry. Use a stable fenced block so Atlas or backend jobs can parse the chronology later:
381
+
382
+ ````bash
383
+ wave osmd wiki append-log --content "```yaml
384
+ event: entity_note_updated
385
+ parentRef: directory/Wave Tools Team
386
+ agentFile: .agent/notes.md
387
+ wikiPath: Agent Wiki/index.md
388
+ summary: Added durable working notes for the Wave Tools Team.
389
+ ```"
390
+ ````
391
+
392
+ `append-log` accepts multi-line markdown from `--content`, `--file`, or stdin. Use `--file` for larger structured entries:
393
+
394
+ ```bash
395
+ wave osmd wiki append-log --file ./agent-wiki-log-entry.md
396
+ ```
397
+
398
+ When not using `--token-stdin` or `--auth-json-stdin`, stdin may also provide the log body:
399
+
400
+ ````bash
401
+ printf '%s\n' '```yaml' 'event: wiki_maintenance' 'summary: Refreshed Agent Wiki index.' '```' | wave osmd wiki append-log
402
+ ````
403
+
360
404
  OSMD command envelopes keep the global CLI envelope and put the file metadata directly in `data`:
361
405
 
362
406
  ```json
@@ -373,7 +417,11 @@ OSMD command envelopes keep the global CLI envelope and put the file metadata di
373
417
  "canCreate": false,
374
418
  "canUpdate": true,
375
419
  "canAppend": false,
420
+ "wikiRole": "notes",
421
+ "formatVersion": "agent_markdown_v1",
376
422
  "parentRef": "projects/Wave Tools",
423
+ "suggestedAction": "update",
424
+ "errorCode": null,
377
425
  "content": "..."
378
426
  },
379
427
  "error": null,
@@ -397,6 +445,8 @@ On write preflight errors, `data` contains the status metadata and `error.sugges
397
445
  "canCreate": true,
398
446
  "canUpdate": false,
399
447
  "canAppend": false,
448
+ "wikiRole": "index",
449
+ "formatVersion": "agent_markdown_v1",
400
450
  "parentRef": null,
401
451
  "suggestedAction": "create",
402
452
  "errorCode": null
package/dist/index.cjs CHANGED
@@ -6156,6 +6156,8 @@ var agentMarkdownFileSchema = import_zod16.z.object({
6156
6156
  canCreate: import_zod16.z.boolean(),
6157
6157
  canUpdate: import_zod16.z.boolean(),
6158
6158
  canAppend: import_zod16.z.boolean(),
6159
+ wikiRole: import_zod16.z.string().nullable().optional(),
6160
+ formatVersion: import_zod16.z.string().nullable().optional(),
6159
6161
  parentRef: import_zod16.z.string().nullable().optional(),
6160
6162
  agentChildrenAllowed: import_zod16.z.boolean(),
6161
6163
  suggestedAction: suggestedActionSchema,
@@ -6164,6 +6166,8 @@ var agentMarkdownFileSchema = import_zod16.z.object({
6164
6166
  url: import_zod16.z.string().nullable().optional()
6165
6167
  }).transform((value) => ({
6166
6168
  ...value,
6169
+ wikiRole: value.wikiRole ?? null,
6170
+ formatVersion: value.formatVersion ?? null,
6167
6171
  parentRef: value.parentRef ?? null,
6168
6172
  errorCode: value.errorCode ?? null,
6169
6173
  content: value.content ?? null,
@@ -6216,6 +6220,8 @@ var AGENT_MARKDOWN_FILE_SELECTION = `{
6216
6220
  canCreate
6217
6221
  canUpdate
6218
6222
  canAppend
6223
+ wikiRole
6224
+ formatVersion
6219
6225
  parentRef
6220
6226
  agentChildrenAllowed
6221
6227
  suggestedAction
@@ -6228,6 +6234,8 @@ var AGENT_JSON_KEY_ALIASES = {
6228
6234
  can_create: "canCreate",
6229
6235
  can_update: "canUpdate",
6230
6236
  can_append: "canAppend",
6237
+ wiki_role: "wikiRole",
6238
+ format_version: "formatVersion",
6231
6239
  parent_ref: "parentRef",
6232
6240
  agent_children_allowed: "agentChildrenAllowed",
6233
6241
  suggested_action: "suggestedAction",
package/dist/index.js CHANGED
@@ -6155,6 +6155,8 @@ var agentMarkdownFileSchema = z16.object({
6155
6155
  canCreate: z16.boolean(),
6156
6156
  canUpdate: z16.boolean(),
6157
6157
  canAppend: z16.boolean(),
6158
+ wikiRole: z16.string().nullable().optional(),
6159
+ formatVersion: z16.string().nullable().optional(),
6158
6160
  parentRef: z16.string().nullable().optional(),
6159
6161
  agentChildrenAllowed: z16.boolean(),
6160
6162
  suggestedAction: suggestedActionSchema,
@@ -6163,6 +6165,8 @@ var agentMarkdownFileSchema = z16.object({
6163
6165
  url: z16.string().nullable().optional()
6164
6166
  }).transform((value) => ({
6165
6167
  ...value,
6168
+ wikiRole: value.wikiRole ?? null,
6169
+ formatVersion: value.formatVersion ?? null,
6166
6170
  parentRef: value.parentRef ?? null,
6167
6171
  errorCode: value.errorCode ?? null,
6168
6172
  content: value.content ?? null,
@@ -6215,6 +6219,8 @@ var AGENT_MARKDOWN_FILE_SELECTION = `{
6215
6219
  canCreate
6216
6220
  canUpdate
6217
6221
  canAppend
6222
+ wikiRole
6223
+ formatVersion
6218
6224
  parentRef
6219
6225
  agentChildrenAllowed
6220
6226
  suggestedAction
@@ -6227,6 +6233,8 @@ var AGENT_JSON_KEY_ALIASES = {
6227
6233
  can_create: "canCreate",
6228
6234
  can_update: "canUpdate",
6229
6235
  can_append: "canAppend",
6236
+ wiki_role: "wikiRole",
6237
+ format_version: "formatVersion",
6230
6238
  parent_ref: "parentRef",
6231
6239
  agent_children_allowed: "agentChildrenAllowed",
6232
6240
  suggested_action: "suggestedAction",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ted-galago/wave-cli",
3
- "version": "0.1.18",
3
+ "version": "0.1.19",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "wave": "dist/index.js"
@@ -1182,6 +1182,8 @@ function runOsmdLiveVerification() {
1182
1182
  wikiStatus.parsed?.ok === true &&
1183
1183
  wikiStatus.parsed?.data?.path === "Agent Wiki/index.md" &&
1184
1184
  wikiStatus.parsed?.data?.source === "agent_wiki" &&
1185
+ wikiStatus.parsed?.data?.wikiRole === "index" &&
1186
+ typeof wikiStatus.parsed?.data?.formatVersion === "string" &&
1185
1187
  (wikiStatus.parsed?.data?.exists !== false ||
1186
1188
  (wikiStatus.parsed?.data?.canCreate === true &&
1187
1189
  wikiStatus.parsed?.data?.canUpdate === false &&
@@ -1210,6 +1212,8 @@ function runOsmdLiveVerification() {
1210
1212
  wikiLogStatus.parsed?.data?.path === "Agent Wiki/log.md" &&
1211
1213
  wikiLogStatus.parsed?.data?.source === "agent_wiki" &&
1212
1214
  wikiLogStatus.parsed?.data?.access === "append_only" &&
1215
+ wikiLogStatus.parsed?.data?.wikiRole === "log" &&
1216
+ typeof wikiLogStatus.parsed?.data?.formatVersion === "string" &&
1213
1217
  typeof wikiLogStatus.parsed?.data?.canAppend === "boolean",
1214
1218
  reason: "agent_wiki_log_status"
1215
1219
  });
@@ -1224,6 +1228,8 @@ function runOsmdLiveVerification() {
1224
1228
  wikiLogRead.parsed?.ok === true &&
1225
1229
  wikiLogRead.parsed?.data?.path === "Agent Wiki/log.md" &&
1226
1230
  wikiLogRead.parsed?.data?.access === "append_only" &&
1231
+ wikiLogRead.parsed?.data?.wikiRole === "log" &&
1232
+ typeof wikiLogRead.parsed?.data?.formatVersion === "string" &&
1227
1233
  wikiLogRead.parsed?.data?.exists === wikiLogStatus.parsed?.data?.exists,
1228
1234
  reason: "agent_wiki_log_read"
1229
1235
  });
@@ -1245,6 +1251,8 @@ function runOsmdLiveVerification() {
1245
1251
  missingWikiLogAppend.parsed?.error?.suggestedAction === "init" &&
1246
1252
  String(missingWikiLogAppend.parsed?.error?.message ?? "").includes("wave osmd wiki init") &&
1247
1253
  missingWikiLogAppend.parsed?.data?.path === "Agent Wiki/log.md" &&
1254
+ missingWikiLogAppend.parsed?.data?.wikiRole === "log" &&
1255
+ typeof missingWikiLogAppend.parsed?.data?.formatVersion === "string" &&
1248
1256
  missingWikiLogAppend.parsed?.data?.canAppend === false,
1249
1257
  reason: "agent_wiki_log_missing_init_guidance"
1250
1258
  });
@@ -1267,6 +1275,8 @@ function runOsmdLiveVerification() {
1267
1275
  (file) =>
1268
1276
  file?.path === "Agent Wiki/log.md" &&
1269
1277
  file?.access === "append_only" &&
1278
+ file?.wikiRole === "log" &&
1279
+ typeof file?.formatVersion === "string" &&
1270
1280
  file?.exists === true &&
1271
1281
  file?.canAppend === true
1272
1282
  ),
@@ -1286,6 +1296,8 @@ function runOsmdLiveVerification() {
1286
1296
  wikiLogAppend.parsed?.ok === true &&
1287
1297
  wikiLogAppend.parsed?.data?.path === "Agent Wiki/log.md" &&
1288
1298
  wikiLogAppend.parsed?.data?.access === "append_only" &&
1299
+ wikiLogAppend.parsed?.data?.wikiRole === "log" &&
1300
+ typeof wikiLogAppend.parsed?.data?.formatVersion === "string" &&
1289
1301
  wikiLogAppend.parsed?.data?.canAppend === true,
1290
1302
  reason: "agent_wiki_log_append_after_init"
1291
1303
  });
@@ -1336,6 +1348,8 @@ function runOsmdLiveVerification() {
1336
1348
  ok:
1337
1349
  agentStatus.parsed?.ok === true &&
1338
1350
  agentStatus.parsed?.data?.source === "agent_overlay" &&
1351
+ agentStatus.parsed?.data?.wikiRole === "notes" &&
1352
+ typeof agentStatus.parsed?.data?.formatVersion === "string" &&
1339
1353
  agentStatus.parsed?.data?.parentRef === parentRef,
1340
1354
  reason: "agent_overlay_status"
1341
1355
  });
@@ -1349,7 +1363,12 @@ function runOsmdLiveVerification() {
1349
1363
  result: agentInit,
1350
1364
  ok:
1351
1365
  agentInit.parsed?.ok === true &&
1352
- (initFiles.some((file) => file?.path?.endsWith("/.agent/notes.md")) ||
1366
+ (initFiles.some(
1367
+ (file) =>
1368
+ file?.path?.endsWith("/.agent/notes.md") &&
1369
+ file?.wikiRole === "notes" &&
1370
+ typeof file?.formatVersion === "string"
1371
+ ) ||
1353
1372
  agentInit.parsed?.data?.path?.endsWith("/.agent/notes.md")),
1354
1373
  reason: "agent_overlay_init"
1355
1374
  });
@@ -1367,6 +1386,8 @@ function runOsmdLiveVerification() {
1367
1386
  ok:
1368
1387
  agentUpdate.parsed?.ok === true &&
1369
1388
  agentUpdate.parsed?.data?.access === "read_write" &&
1389
+ agentUpdate.parsed?.data?.wikiRole === "notes" &&
1390
+ typeof agentUpdate.parsed?.data?.formatVersion === "string" &&
1370
1391
  agentUpdate.parsed?.data?.content === notesContent,
1371
1392
  reason: "agent_overlay_update"
1372
1393
  });