@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 +51 -1
- package/dist/index.cjs +8 -0
- package/dist/index.js +8 -0
- package/package.json +1 -1
- package/scripts/verify-dev-api.mjs +22 -1
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
|
@@ -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(
|
|
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
|
});
|