@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 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 sits on the client's Readiness page until
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` | yes | Who said it — a transcript carries both sides, and ours is not their answer |
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. A batch read wrong is cleared from the
1601
- Readiness page in one click.
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
- * Who said it. Required, not optional: a transcript carries both sides, and
6451
- * ours is not an answer — "we would need write access", said by us, becomes
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 has made, so the agent can pace itself. */
6464
- proposed: z20.number(),
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
- proposed: z20.array(
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. Required: a transcript carries both sides, and our own words are not their answer \u2014 drop the proposal when the speaker was us",
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. A person accepts it; it is never an answer on its own.",
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 records a proposal on the Readiness page, where a person accepts
49957
- or corrects it. Nothing you propose counts as an answer, as progress, or moves the verdict.
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 is required for exactly that reason: drop the proposal when it was us.
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);