@productbrain/cli 0.1.0-beta.8252 → 0.1.0-beta.8256
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 +2 -1
- package/dist/__tests__/entryDiscardResolve.test.d.ts +2 -0
- package/dist/__tests__/entryDiscardResolve.test.d.ts.map +1 -0
- package/dist/__tests__/entryDiscardResolve.test.js +28 -0
- package/dist/__tests__/entryDiscardResolve.test.js.map +1 -0
- package/dist/commands/entryDiscardResolve.d.ts +9 -0
- package/dist/commands/entryDiscardResolve.d.ts.map +1 -0
- package/dist/commands/entryDiscardResolve.js +27 -0
- package/dist/commands/entryDiscardResolve.js.map +1 -0
- package/dist/commands/update.d.ts +2 -0
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +2 -0
- package/dist/commands/update.js.map +1 -1
- package/dist/registerEntryCommands.d.ts +4 -4
- package/dist/registerEntryCommands.d.ts.map +1 -1
- package/dist/registerEntryCommands.js +14 -6
- package/dist/registerEntryCommands.js.map +1 -1
- package/package.json +1 -1
- package/dist/__tests__/entryArchive.test.d.ts +0 -2
- package/dist/__tests__/entryArchive.test.d.ts.map +0 -1
- package/dist/__tests__/entryArchive.test.js +0 -30
- package/dist/__tests__/entryArchive.test.js.map +0 -1
- package/dist/commands/entryArchive.d.ts +0 -8
- package/dist/commands/entryArchive.d.ts.map +0 -1
- package/dist/commands/entryArchive.js +0 -31
- package/dist/commands/entryArchive.js.map +0 -1
package/README.md
CHANGED
|
@@ -91,7 +91,8 @@ Running `pb` with no arguments shows contextual guidance based on your setup sta
|
|
|
91
91
|
| `pb update <id>` | Update fields on an existing entry. |
|
|
92
92
|
| `pb relate <from> <type> <to>` | Add a typed relation between entries. |
|
|
93
93
|
| `pb entry accept <id>` | Accept a draft entry onto the Chain (commit to SSOT). |
|
|
94
|
-
| `pb entry
|
|
94
|
+
| `pb entry discard <id> [--reason <text>]` | Discard a draft or current entry; `--reason` is free text in its history note. |
|
|
95
|
+
| `pb entry resolve <id> [--reason <text>]` | Resolve a current entry (moves to Past); `--reason` is free text in its history note. |
|
|
95
96
|
| `pb session close` | Close session, show summary. |
|
|
96
97
|
|
|
97
98
|
### Profile Management
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entryDiscardResolve.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/entryDiscardResolve.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* pb entry discard / pb entry resolve (TASK-400, WP-779, DEC-1814) — the verb decides the category by
|
|
3
|
+
* sending an archiveIntent to the one archive door; `--reason` is free text into the history note. The
|
|
4
|
+
* refusals (resolve on a draft, an already-retired entry) live server-side: see
|
|
5
|
+
* convex/agentKnowledge/entries.archiveIntent.test.ts.
|
|
6
|
+
*/
|
|
7
|
+
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
8
|
+
import { runEntryDiscard, runEntryResolve } from '../commands/entryDiscardResolve.js';
|
|
9
|
+
const runUpdateMock = vi.fn((_options) => Promise.resolve());
|
|
10
|
+
vi.mock('../commands/update.js', () => ({ runUpdate: (options) => runUpdateMock(options) }));
|
|
11
|
+
beforeEach(() => runUpdateMock.mockClear());
|
|
12
|
+
describe('pb entry discard', () => {
|
|
13
|
+
it('sends the discard intent to the archive door and names no status word', async () => {
|
|
14
|
+
await runEntryDiscard({ entryId: ' TEN-1 ' });
|
|
15
|
+
expect(runUpdateMock).toHaveBeenCalledWith({ entryId: 'TEN-1', status: 'archived', archiveIntent: 'discard', note: undefined });
|
|
16
|
+
});
|
|
17
|
+
it('folds --reason and --note into the change note as free text', async () => {
|
|
18
|
+
await runEntryDiscard({ entryId: 'TEN-1', reason: 'dup of TEN-9', note: 'sweep' });
|
|
19
|
+
expect(runUpdateMock).toHaveBeenCalledWith({ entryId: 'TEN-1', status: 'archived', archiveIntent: 'discard', note: 'dup of TEN-9 — sweep' });
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
describe('pb entry resolve', () => {
|
|
23
|
+
it('sends the resolve intent', async () => {
|
|
24
|
+
await runEntryResolve({ entryId: 'TEN-1', reason: 'fixed in #12' });
|
|
25
|
+
expect(runUpdateMock).toHaveBeenCalledWith({ entryId: 'TEN-1', status: 'archived', archiveIntent: 'resolve', note: 'fixed in #12' });
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=entryDiscardResolve.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entryDiscardResolve.test.js","sourceRoot":"","sources":["../../src/__tests__/entryDiscardResolve.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAEtF,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,QAAiB,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AACtE,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,OAAgB,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AAEtG,UAAU,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC;AAE5C,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,MAAM,eAAe,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;QAC9C,MAAM,CAAC,aAAa,CAAC,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAClI,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,eAAe,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACnF,MAAM,CAAC,aAAa,CAAC,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC;IAC/I,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,eAAe,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;QACpE,MAAM,CAAC,aAAa,CAAC,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;IACvI,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
interface EntryCategoryVerbOptions {
|
|
2
|
+
entryId: string;
|
|
3
|
+
reason?: string;
|
|
4
|
+
note?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare const runEntryDiscard: (options: EntryCategoryVerbOptions) => Promise<void>;
|
|
7
|
+
export declare const runEntryResolve: (options: EntryCategoryVerbOptions) => Promise<void>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=entryDiscardResolve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entryDiscardResolve.d.ts","sourceRoot":"","sources":["../../src/commands/entryDiscardResolve.ts"],"names":[],"mappings":"AAgBA,UAAU,wBAAwB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAYD,eAAO,MAAM,eAAe,GAAI,SAAS,wBAAwB,KAAG,OAAO,CAAC,IAAI,CAAwC,CAAC;AACzH,eAAO,MAAM,eAAe,GAAI,SAAS,wBAAwB,KAAG,OAAO,CAAC,IAAI,CAAwC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* pb entry discard <id> [--reason <text>]
|
|
3
|
+
* pb entry resolve <id> [--reason <text>]
|
|
4
|
+
* (TASK-400, WP-779, DEC-1814) — the two category verbs that replace `pb entry archive`.
|
|
5
|
+
*
|
|
6
|
+
* The VERB decides the category; there is no reason enum. Both relay to the ONE status door
|
|
7
|
+
* `pb update --status archived` uses (chain.updateEntry via runUpdate), sending an `archiveIntent`
|
|
8
|
+
* ('discard' | 'resolve'), never a status word. The server owns the rule
|
|
9
|
+
* (convex/lib/archiveWorkflowStatus.ts): discard -> the collection's Discarded word for a draft or
|
|
10
|
+
* current entry; resolve -> its Past archive word for a current entry only; either verb on an entry
|
|
11
|
+
* already Past or Discarded, and resolve on a draft, are refused in the same transaction as the
|
|
12
|
+
* write, so there is no read-then-write race and the rule works on collections with no statusList.
|
|
13
|
+
* `--reason` is FREE TEXT folded into the change note the archive's history event records.
|
|
14
|
+
*/
|
|
15
|
+
import { runUpdate } from './update.js';
|
|
16
|
+
async function runCategoryVerb(intent, options) {
|
|
17
|
+
const note = [options.reason, options.note].filter((part) => typeof part === 'string' && part.length > 0).join(' — ');
|
|
18
|
+
await runUpdate({
|
|
19
|
+
entryId: options.entryId.trim(),
|
|
20
|
+
status: 'archived',
|
|
21
|
+
archiveIntent: intent,
|
|
22
|
+
note: note.length > 0 ? note : undefined,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
export const runEntryDiscard = (options) => runCategoryVerb('discard', options);
|
|
26
|
+
export const runEntryResolve = (options) => runCategoryVerb('resolve', options);
|
|
27
|
+
//# sourceMappingURL=entryDiscardResolve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entryDiscardResolve.js","sourceRoot":"","sources":["../../src/commands/entryDiscardResolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAQxC,KAAK,UAAU,eAAe,CAAC,MAA6B,EAAE,OAAiC;IAC7F,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtI,MAAM,SAAS,CAAC;QACd,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE;QAC/B,MAAM,EAAE,UAAU;QAClB,aAAa,EAAE,MAAM;QACrB,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;KACzC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAiC,EAAiB,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACzH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAiC,EAAiB,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC"}
|
|
@@ -30,6 +30,8 @@ interface UpdateOptions {
|
|
|
30
30
|
ackEntry?: string;
|
|
31
31
|
/** Divergence rationale for --acknowledge diverged. */
|
|
32
32
|
ackReason?: string;
|
|
33
|
+
/** TASK-400 (`pb entry discard` / `resolve`): the category INTENT of an archive, validated and resolved server-side. */
|
|
34
|
+
archiveIntent?: 'discard' | 'resolve';
|
|
33
35
|
}
|
|
34
36
|
export declare function runUpdate(options: UpdateOptions): Promise<void>;
|
|
35
37
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiBH,UAAU,aAAa;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kGAAkG;IAClG,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,oFAAoF;IACpF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2FAA2F;IAC3F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiBH,UAAU,aAAa;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kGAAkG;IAClG,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,oFAAoF;IACpF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2FAA2F;IAC3F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wHAAwH;IACxH,aAAa,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CACvC;AAgCD,wBAAsB,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAoSrE"}
|
package/dist/commands/update.js
CHANGED
|
@@ -92,6 +92,8 @@ export async function runUpdate(options) {
|
|
|
92
92
|
if (options.field && options.field.length > 0) {
|
|
93
93
|
args.data = parseFields(options.field);
|
|
94
94
|
}
|
|
95
|
+
if (options.archiveIntent)
|
|
96
|
+
args.archiveIntent = options.archiveIntent;
|
|
95
97
|
if (options.note) {
|
|
96
98
|
args.changeNote = options.note;
|
|
97
99
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAErE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,WAAW,EAAqB,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC,CAAC,2EAA2E;
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `pb entry propose|accept|
|
|
2
|
+
* `pb entry propose|accept|discard|resolve` — the entry-lifecycle verbs, noun-scoped per
|
|
3
3
|
* DEC-1574 (WP-640 S4). Split out of index.ts (STD-2/DEC-1504: index.ts is
|
|
4
4
|
* grandfathered over-budget and shrink-only) — same "own every command group in
|
|
5
5
|
* its own file" split index.ts's other multi-command surfaces would benefit from.
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
* already uses (DEC-1583: capturing creates a draft, which IS the propose act —
|
|
9
9
|
* both roads lead to one draft door; capture is NOT renamed or removed). `accept`
|
|
10
10
|
* is `pb promote`'s exact server route (chain.commitEntry) under its new name —
|
|
11
|
-
* pure rename, zero behavior change. `
|
|
12
|
-
* `pb update --status archived
|
|
13
|
-
* note (DEC-1814), never a data field.
|
|
11
|
+
* pure rename, zero behavior change. `discard` and `resolve` are the two
|
|
12
|
+
* category verbs over `pb update --status archived` (TASK-400): the verb decides Discarded or Past;
|
|
13
|
+
* the optional `--reason` is free text recorded in the history note (DEC-1814), never a data field.
|
|
14
14
|
*/
|
|
15
15
|
import type { Command } from 'commander';
|
|
16
16
|
export declare function registerEntryCommands(program: Command): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerEntryCommands.d.ts","sourceRoot":"","sources":["../src/registerEntryCommands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"registerEntryCommands.d.ts","sourceRoot":"","sources":["../src/registerEntryCommands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqG5D;AAOD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgB7D"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { runCapture } from './commands/capture.js';
|
|
2
2
|
import { runEntryAccept } from './commands/entryAccept.js';
|
|
3
|
-
import {
|
|
3
|
+
import { runEntryDiscard, runEntryResolve } from './commands/entryDiscardResolve.js';
|
|
4
4
|
import { runEntryOwn } from './commands/entryOwn.js';
|
|
5
5
|
import { runEntryPreflight } from './commands/entryPreflight.js';
|
|
6
6
|
import { runEntryTick } from './commands/entryTick.js';
|
|
@@ -8,7 +8,7 @@ import { runRelate, runUnrelate } from './commands/relate.js';
|
|
|
8
8
|
export function registerEntryCommands(program) {
|
|
9
9
|
const entryCmd = program
|
|
10
10
|
.command('entry')
|
|
11
|
-
.description('Entry-lifecycle commands — noun-scoped per DEC-1574 (propose | accept |
|
|
11
|
+
.description('Entry-lifecycle commands — noun-scoped per DEC-1574 (propose | accept | discard | resolve | tick)');
|
|
12
12
|
entryCmd
|
|
13
13
|
.command('preflight')
|
|
14
14
|
.description('Read structural requirements before composing an entry; saves nothing')
|
|
@@ -65,12 +65,20 @@ export function registerEntryCommands(program) {
|
|
|
65
65
|
await runEntryAccept({ entryIds, message: opts.message, overrideReason: opts.overrideReason, acknowledge: opts.acknowledge, ackEntry: opts.ackEntry, ackReason: opts.ackReason });
|
|
66
66
|
});
|
|
67
67
|
entryCmd
|
|
68
|
-
.command('
|
|
69
|
-
.description('
|
|
70
|
-
.option('--reason <text>', '
|
|
68
|
+
.command('discard <entry-id>')
|
|
69
|
+
.description('Discard a draft or current entry: it moves to the collection\'s Discarded word (TASK-400)')
|
|
70
|
+
.option('--reason <text>', 'Free text recorded in the history note')
|
|
71
71
|
.option('--note <text>', 'Change note for history')
|
|
72
72
|
.action(async (entryId, opts) => {
|
|
73
|
-
await
|
|
73
|
+
await runEntryDiscard({ entryId, reason: opts.reason, note: opts.note });
|
|
74
|
+
});
|
|
75
|
+
entryCmd
|
|
76
|
+
.command('resolve <entry-id>')
|
|
77
|
+
.description('Resolve a current entry: it moves to the collection\'s Past archive word (TASK-400)')
|
|
78
|
+
.option('--reason <text>', 'Free text recorded in the history note')
|
|
79
|
+
.option('--note <text>', 'Change note for history')
|
|
80
|
+
.action(async (entryId, opts) => {
|
|
81
|
+
await runEntryResolve({ entryId, reason: opts.reason, note: opts.note });
|
|
74
82
|
});
|
|
75
83
|
// TASK-382 (WP-770 K4): ticking a Done-when item records who/when and mints no version.
|
|
76
84
|
entryCmd
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerEntryCommands.js","sourceRoot":"","sources":["../src/registerEntryCommands.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"registerEntryCommands.js","sourceRoot":"","sources":["../src/registerEntryCommands.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entryArchive.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/entryArchive.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* pb entry archive — verify it relays to runUpdate with status:'archived' and nothing else but the
|
|
3
|
-
* history note (DEC-1814, TASK-466): the archive carries no reason field, `--reason` is free text
|
|
4
|
-
* folded into the change note. Thin client (BR-104): the archive's category is derived server-side.
|
|
5
|
-
*/
|
|
6
|
-
import { describe, expect, it, vi } from 'vitest';
|
|
7
|
-
import { runEntryArchive } from '../commands/entryArchive.js';
|
|
8
|
-
const runUpdateMock = vi.fn((_options) => Promise.resolve());
|
|
9
|
-
vi.mock('../commands/update.js', () => ({
|
|
10
|
-
runUpdate: (options) => runUpdateMock(options),
|
|
11
|
-
}));
|
|
12
|
-
describe('runEntryArchive', () => {
|
|
13
|
-
it('archives with no reason and no note: status:archived only', async () => {
|
|
14
|
-
runUpdateMock.mockClear();
|
|
15
|
-
await runEntryArchive({ entryId: 'STD-1' });
|
|
16
|
-
expect(runUpdateMock).toHaveBeenCalledWith({ entryId: 'STD-1', status: 'archived', note: undefined });
|
|
17
|
-
});
|
|
18
|
-
it('records --reason as the history note text, never as a data field', async () => {
|
|
19
|
-
runUpdateMock.mockClear();
|
|
20
|
-
await runEntryArchive({ entryId: 'STD-1', reason: 'superseded by STD-9' });
|
|
21
|
-
expect(runUpdateMock).toHaveBeenCalledWith({ entryId: 'STD-1', status: 'archived', note: 'superseded by STD-9' });
|
|
22
|
-
expect(runUpdateMock.mock.calls[0][0]).not.toHaveProperty('archivedReason');
|
|
23
|
-
});
|
|
24
|
-
it('joins --reason and --note into the one history note', async () => {
|
|
25
|
-
runUpdateMock.mockClear();
|
|
26
|
-
await runEntryArchive({ entryId: 'STD-1', reason: 'duplicate', note: 'dup of STD-9' });
|
|
27
|
-
expect(runUpdateMock).toHaveBeenCalledWith({ entryId: 'STD-1', status: 'archived', note: 'duplicate — dup of STD-9' });
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
//# sourceMappingURL=entryArchive.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entryArchive.test.js","sourceRoot":"","sources":["../../src/__tests__/entryArchive.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,QAAiB,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AACtE,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE,CAAC,CAAC;IACtC,SAAS,EAAE,CAAC,OAAgB,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC;CACxD,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,aAAa,CAAC,SAAS,EAAE,CAAC;QAC1B,MAAM,eAAe,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QAC5C,MAAM,CAAC,aAAa,CAAC,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IACxG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,aAAa,CAAC,SAAS,EAAE,CAAC;QAC1B,MAAM,eAAe,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAAC;QAC3E,MAAM,CAAC,aAAa,CAAC,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC;QAClH,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,aAAa,CAAC,SAAS,EAAE,CAAC;QAC1B,MAAM,eAAe,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QACvF,MAAM,CAAC,aAAa,CAAC,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC,CAAC;IACzH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entryArchive.d.ts","sourceRoot":"","sources":["../../src/commands/entryArchive.ts"],"names":[],"mappings":"AAuBA,UAAU,mBAAmB;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAOjF"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* pb entry archive <entry-id> [--reason <text>] [--note <text>] — noun-scoped archive verb
|
|
3
|
-
* (DEC-1574, WP-640 S4).
|
|
4
|
-
*
|
|
5
|
-
* There is no dedicated archive mutation — archiving an entry IS a status
|
|
6
|
-
* transition (`chain.updateEntry` with status:'archived'), same door
|
|
7
|
-
* `pb update --status archived` already used. This command is a friendlier,
|
|
8
|
-
* discoverable front end over that SAME door.
|
|
9
|
-
*
|
|
10
|
-
* An archive carries no reason field (DEC-1814, TASK-466): the status word carries only its
|
|
11
|
-
* category, which the server derives. `--reason` stays as FREE TEXT only, folded into the change
|
|
12
|
-
* note that the archive's history event records (`--note` is the same slot) — never a data field,
|
|
13
|
-
* never validated.
|
|
14
|
-
*
|
|
15
|
-
* NO --superseded-by flag: `entries.supersededById` is a top-level column
|
|
16
|
-
* guardEntryWrite explicitly refuses to set outside `chainCore.setSupersededBy`
|
|
17
|
-
* (guards.ts: "supersededById cannot be set directly"), an atomic two-entry
|
|
18
|
-
* mutation with no CLI door today. Wiring that in is a separate, larger
|
|
19
|
-
* feature (a real "pb entry supersede <old> <new>" verb) — out of this slice's
|
|
20
|
-
* scope, named here as a known gap rather than silently dropped.
|
|
21
|
-
*/
|
|
22
|
-
import { runUpdate } from './update.js';
|
|
23
|
-
export async function runEntryArchive(options) {
|
|
24
|
-
const note = [options.reason, options.note].filter((part) => typeof part === 'string' && part.length > 0).join(' — ');
|
|
25
|
-
await runUpdate({
|
|
26
|
-
entryId: options.entryId,
|
|
27
|
-
status: 'archived',
|
|
28
|
-
note: note.length > 0 ? note : undefined,
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=entryArchive.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entryArchive.js","sourceRoot":"","sources":["../../src/commands/entryArchive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAQxC,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAA4B;IAChE,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtI,MAAM,SAAS,CAAC;QACd,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM,EAAE,UAAU;QAClB,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;KACzC,CAAC,CAAC;AACL,CAAC"}
|