@koda-sl/baker-cli 0.277.0-dev.b34dd6132 → 0.277.0-dev.fc47c292d
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 +9 -6
- package/dist/cli.js +32 -19
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1560,8 +1560,8 @@ and how outcomes travel back to the ad platforms. Their answers add up to one Op
|
|
|
1560
1560
|
**The agent proposes; a person answers.** Use this when the client has *already* told us something
|
|
1561
1561
|
the assessment asks about — a call transcript, an architecture document, a security questionnaire, a
|
|
1562
1562
|
thread — so nobody is asked twice for something they already said. A proposal carries the sentence it
|
|
1563
|
-
came from, is never scored, never counts as progress, and
|
|
1564
|
-
somebody accepts or corrects it.
|
|
1563
|
+
came from, is never scored, never counts as progress, and reaches the client's Readiness page only
|
|
1564
|
+
when the Session publishes, where somebody accepts or corrects it.
|
|
1565
1565
|
|
|
1566
1566
|
#### `baker readiness questions`
|
|
1567
1567
|
|
|
@@ -1583,7 +1583,7 @@ Propose one answer.
|
|
|
1583
1583
|
```bash
|
|
1584
1584
|
baker readiness suggest --question B2.6 --value drops-fixable \
|
|
1585
1585
|
--quote "Unknown fields get dropped today, but Luisa can add them to the schema in a sprint" \
|
|
1586
|
-
--said-by "Ana (client)" --source "Discovery call, 12 March" --confidence stated
|
|
1586
|
+
--said-by "Ana (client)" --source-kind call --source "Discovery call, 12 March" --confidence stated
|
|
1587
1587
|
```
|
|
1588
1588
|
|
|
1589
1589
|
| Flag | Required | |
|
|
@@ -1592,13 +1592,16 @@ baker readiness suggest --question B2.6 --value drops-fixable \
|
|
|
1592
1592
|
| `--value` | | Option value for a one-answer question, or their own words for a written one |
|
|
1593
1593
|
| `--selections` | | Option values for a multi-select, comma separated |
|
|
1594
1594
|
| `--other-text` | | Free text for the option that opens a box; only valid when that option is chosen |
|
|
1595
|
+
| `--owner` | | Who owns it on their side; only the four questions that ask accept one |
|
|
1595
1596
|
| `--quote` | yes | Their sentence, verbatim |
|
|
1596
|
-
| `--said-by` |
|
|
1597
|
+
| `--said-by` | | Who said it |
|
|
1598
|
+
| `--source-kind` | yes | `call`, `document`, `message`, `email`, `crm`, `site` |
|
|
1597
1599
|
| `--source` | yes | How a person would name it: "Call with Marc, 12 March" |
|
|
1600
|
+
| `--source-url` | | A link a reviewer can open |
|
|
1598
1601
|
| `--confidence` | yes | `stated` (they said this) or `implied` (you are inferring it) |
|
|
1599
1602
|
|
|
1600
|
-
Proposing twice against the same question replaces the first.
|
|
1601
|
-
|
|
1603
|
+
Proposing twice against the same question replaces the first. Staged proposals are reversed by
|
|
1604
|
+
discarding the Session.
|
|
1602
1605
|
|
|
1603
1606
|
#### `baker readiness status`
|
|
1604
1607
|
|
package/dist/cli.js
CHANGED
|
@@ -6409,6 +6409,7 @@ var marketplaceRemoveResponseSchema = z19.object({
|
|
|
6409
6409
|
|
|
6410
6410
|
// ../api/src/readiness.ts
|
|
6411
6411
|
import { z as z20 } from "zod";
|
|
6412
|
+
var READINESS_SOURCE_KINDS = ["call", "document", "message", "email", "crm", "site"];
|
|
6412
6413
|
var READINESS_CONFIDENCES = ["stated", "implied"];
|
|
6413
6414
|
var readinessQuestionsRequestSchema = z20.strictObject({
|
|
6414
6415
|
/** One section, or every section when omitted. */
|
|
@@ -6445,28 +6446,26 @@ var readinessSuggestRequestSchema = z20.strictObject({
|
|
|
6445
6446
|
selections: z20.array(z20.string().min(1)).optional(),
|
|
6446
6447
|
/** What they typed into an option that opens a box. */
|
|
6447
6448
|
otherText: z20.string().min(1).optional(),
|
|
6449
|
+
/** Whoever on their side owns this, when the question asks. */
|
|
6450
|
+
owner: z20.string().min(1).optional(),
|
|
6448
6451
|
quote: z20.string().min(1),
|
|
6449
|
-
/**
|
|
6450
|
-
|
|
6451
|
-
|
|
6452
|
-
* the client's consent the moment it is recorded as one. Nothing in the text
|
|
6453
|
-
* can tell the two apart, so the only defence is making the agent name the
|
|
6454
|
-
* speaker every time.
|
|
6455
|
-
*/
|
|
6456
|
-
saidBy: z20.string().min(1),
|
|
6452
|
+
/** Who said it. A transcript carries both sides, and ours is not an answer. */
|
|
6453
|
+
saidBy: z20.string().min(1).optional(),
|
|
6454
|
+
sourceKind: z20.enum(READINESS_SOURCE_KINDS),
|
|
6457
6455
|
/** How a person would name it: "Call with Marc, 12 March". */
|
|
6458
6456
|
source: z20.string().min(1),
|
|
6457
|
+
sourceUrl: z20.string().url().optional(),
|
|
6459
6458
|
confidence: z20.enum(READINESS_CONFIDENCES)
|
|
6460
6459
|
});
|
|
6461
6460
|
var readinessSuggestResponseSchema = z20.object({
|
|
6462
6461
|
questionId: z20.string(),
|
|
6463
|
-
/** How many proposals this Session
|
|
6464
|
-
|
|
6462
|
+
/** How many proposals this Session is holding, so the agent can pace itself. */
|
|
6463
|
+
staged: z20.number(),
|
|
6465
6464
|
replaced: z20.boolean()
|
|
6466
6465
|
});
|
|
6467
6466
|
var readinessStatusRequestSchema = z20.strictObject({});
|
|
6468
6467
|
var readinessStatusResponseSchema = z20.object({
|
|
6469
|
-
|
|
6468
|
+
staged: z20.array(
|
|
6470
6469
|
z20.object({
|
|
6471
6470
|
questionId: z20.string(),
|
|
6472
6471
|
value: z20.string().optional(),
|
|
@@ -49922,6 +49921,11 @@ var suggestArgs = {
|
|
|
49922
49921
|
description: "What they said for the option that opens a box. Only valid when that option is chosen",
|
|
49923
49922
|
required: false
|
|
49924
49923
|
},
|
|
49924
|
+
owner: {
|
|
49925
|
+
type: "string",
|
|
49926
|
+
description: "Who on their side owns this. Only the four questions that ask for one accept it",
|
|
49927
|
+
required: false
|
|
49928
|
+
},
|
|
49925
49929
|
quote: {
|
|
49926
49930
|
type: "string",
|
|
49927
49931
|
description: "Their sentence, verbatim. Required: a proposal is only as good as the words behind it",
|
|
@@ -49929,7 +49933,12 @@ var suggestArgs = {
|
|
|
49929
49933
|
},
|
|
49930
49934
|
"said-by": {
|
|
49931
49935
|
type: "string",
|
|
49932
|
-
description: "Who said it.
|
|
49936
|
+
description: "Who said it. On a call transcript this is not optional in practice: half of it is us, and our own proposal is not their answer",
|
|
49937
|
+
required: false
|
|
49938
|
+
},
|
|
49939
|
+
"source-kind": {
|
|
49940
|
+
type: "string",
|
|
49941
|
+
description: `Where it came from: ${READINESS_SOURCE_KINDS.join(" | ")}`,
|
|
49933
49942
|
required: true
|
|
49934
49943
|
},
|
|
49935
49944
|
source: {
|
|
@@ -49937,6 +49946,7 @@ var suggestArgs = {
|
|
|
49937
49946
|
description: 'How a person would name it: "Call with Marc, 12 March"',
|
|
49938
49947
|
required: true
|
|
49939
49948
|
},
|
|
49949
|
+
"source-url": { type: "string", description: "A link a reviewer can open to check it", required: false },
|
|
49940
49950
|
confidence: {
|
|
49941
49951
|
type: "string",
|
|
49942
49952
|
description: "stated = they said this; implied = you are reading it off something adjacent. Say implied when you mean implied",
|
|
@@ -49945,7 +49955,7 @@ var suggestArgs = {
|
|
|
49945
49955
|
};
|
|
49946
49956
|
registerSchema({
|
|
49947
49957
|
command: "readiness.suggest",
|
|
49948
|
-
description: "Propose one assessment answer from something the client already told us, with the sentence it came from.
|
|
49958
|
+
description: "Propose one assessment answer from something the client already told us, with the sentence it came from. Staged on the Session; a person accepts it.",
|
|
49949
49959
|
args: suggestArgs
|
|
49950
49960
|
});
|
|
49951
49961
|
var suggestCommand = defineCommand175({
|
|
@@ -49953,14 +49963,14 @@ var suggestCommand = defineCommand175({
|
|
|
49953
49963
|
name: "suggest",
|
|
49954
49964
|
description: `Propose one answer to an assessment question, from something the client already told us.
|
|
49955
49965
|
|
|
49956
|
-
This does NOT answer the question. It
|
|
49957
|
-
or corrects it. Nothing you
|
|
49966
|
+
This does NOT answer the question. It stages a proposal that reaches the Readiness page when the
|
|
49967
|
+
Session publishes, where a person accepts or corrects it. Nothing you stage here moves the verdict.
|
|
49958
49968
|
|
|
49959
49969
|
Two rules worth more than the rest:
|
|
49960
49970
|
- Quote them. --quote takes their sentence, not your summary of it. A reviewer checks the claim
|
|
49961
49971
|
against the words, and a paraphrase gives them nothing to check.
|
|
49962
49972
|
- A transcript carries both sides. "We would need write access to Tag Manager" said by US is not
|
|
49963
|
-
their consent. --said-by
|
|
49973
|
+
their consent. Pass --said-by, and drop the proposal when the speaker was us.
|
|
49964
49974
|
|
|
49965
49975
|
Say --confidence implied when you are inferring rather than repeating. The questions that cost the
|
|
49966
49976
|
most to get wrong \u2014 what legal permits, what access is grantable \u2014 are the ones an eager reader
|
|
@@ -49969,12 +49979,12 @@ infers from a passing remark.
|
|
|
49969
49979
|
Examples:
|
|
49970
49980
|
baker readiness suggest --question B2.6 --value drops-fixable \\
|
|
49971
49981
|
--quote "Unknown fields get dropped today, but Luisa can add them to the schema in a sprint" \\
|
|
49972
|
-
--said-by "Ana (client)" --source "Discovery call, 12 March" --confidence stated
|
|
49982
|
+
--said-by "Ana (client)" --source-kind call --source "Discovery call, 12 March" --confidence stated
|
|
49973
49983
|
|
|
49974
49984
|
baker readiness suggest --question A1 --selections google-ads,meta,other \\
|
|
49975
49985
|
--other-text "A Q4 burst on Spotify through a media agency" \\
|
|
49976
49986
|
--quote "We run Google and Meta, plus a Spotify burst in Q4 that the agency buys" \\
|
|
49977
|
-
--said-by "Ana (client)" --source "Media plan 2026.pdf" --confidence stated`
|
|
49987
|
+
--said-by "Ana (client)" --source-kind document --source "Media plan 2026.pdf" --confidence stated`
|
|
49978
49988
|
},
|
|
49979
49989
|
args: suggestArgs,
|
|
49980
49990
|
run: async ({ args }) => {
|
|
@@ -49984,9 +49994,12 @@ Examples:
|
|
|
49984
49994
|
value: args.value === void 0 ? void 0 : String(args.value),
|
|
49985
49995
|
selections: parseList2(args.selections),
|
|
49986
49996
|
otherText: args["other-text"] === void 0 ? void 0 : String(args["other-text"]),
|
|
49997
|
+
owner: args.owner === void 0 ? void 0 : String(args.owner),
|
|
49987
49998
|
quote: String(args.quote),
|
|
49988
|
-
saidBy: String(args["said-by"]),
|
|
49999
|
+
saidBy: args["said-by"] === void 0 ? void 0 : String(args["said-by"]),
|
|
50000
|
+
sourceKind: parseEnum(args["source-kind"], READINESS_SOURCE_KINDS, "source-kind"),
|
|
49989
50001
|
source: String(args.source),
|
|
50002
|
+
sourceUrl: args["source-url"] === void 0 ? void 0 : String(args["source-url"]),
|
|
49990
50003
|
confidence: parseEnum(args.confidence, READINESS_CONFIDENCES, "confidence")
|
|
49991
50004
|
};
|
|
49992
50005
|
const response = await apiPost("/api/readiness/suggest", body);
|