@telora/mcp-products 0.22.169 → 0.22.171
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/dist/affordances.js +3 -3
- package/dist/affordances.js.map +1 -1
- package/dist/handlers/auditTreeAuthoringGuide.d.ts +1 -1
- package/dist/handlers/auditTreeAuthoringGuide.js +23 -15
- package/dist/handlers/auditTreeAuthoringGuide.js.map +1 -1
- package/dist/handlers/connectorHandlers.js +2 -1
- package/dist/handlers/connectorHandlers.js.map +1 -1
- package/dist/handlers/deliveryHandlers.d.ts +17 -0
- package/dist/handlers/deliveryHandlers.js +31 -14
- package/dist/handlers/deliveryHandlers.js.map +1 -1
- package/dist/handlers/focusHandlers.d.ts +8 -0
- package/dist/handlers/focusHandlers.js +33 -8
- package/dist/handlers/focusHandlers.js.map +1 -1
- package/dist/handlers/organizationHandlers.js +3 -2
- package/dist/handlers/organizationHandlers.js.map +1 -1
- package/dist/handlers/realityTreeHandlers.d.ts +2 -1
- package/dist/handlers/realityTreeHandlers.js +19 -17
- package/dist/handlers/realityTreeHandlers.js.map +1 -1
- package/dist/handlers/realityTreeInjectionVerifyHandler.js +16 -11
- package/dist/handlers/realityTreeInjectionVerifyHandler.js.map +1 -1
- package/dist/shared.js +2 -2
- package/dist/shared.js.map +1 -1
- package/package.json +2 -2
package/dist/affordances.js
CHANGED
|
@@ -29,16 +29,16 @@ const FOCUS_AFFORDANCES = [
|
|
|
29
29
|
},
|
|
30
30
|
{
|
|
31
31
|
name: 'review_complete',
|
|
32
|
-
description: 'Terminal action for a review agent. Writes a focus_reviews row with outcome + summary + created issue references and stamps focus.last_reviewed_at and focus.last_review_outcome atomically. A finding blocks only when a not_met criterion names it (acVerdicts[].issueIds); everything else the review files is recorded as a concern; a review whose verdicts cover every criterion with none not_met is recorded as approved. Every met in an approved review names its evidence (acVerdicts[].evidence: path, path::test name or path:LINE).',
|
|
32
|
+
description: 'Terminal action for a review agent. Writes a focus_reviews row with outcome + summary + created issue references and stamps focus.last_reviewed_at and focus.last_review_outcome atomically. A finding blocks only when a not_met criterion names it (acVerdicts[].issueIds); everything else the review files is recorded as a concern; a review whose verdicts cover every criterion with none not_met is recorded as approved. Every met in an approved review names its evidence (acVerdicts[].evidence: path, path::test name or path:LINE). A not_met on a criterion an earlier review under the same arm judged met with evidence blocks only when its acVerdicts[].falsifier (a test committed on the focus branch) fails at the judged commit; otherwise its issues are recorded as concerns.',
|
|
33
33
|
primary: {
|
|
34
34
|
tool: 'telora_product_focus',
|
|
35
35
|
action: 'review_complete',
|
|
36
|
-
bodyShape: '{ focusId: string; action: "review_complete"; outcome: "approved" | "gaps_found"; summary: string; agentSessionId: string; acVerdicts?: { criterion: string; verdict: "met" | "not_met" | "excused"; rationale?: string; reviewSessionId?: string; issueIds?: string[]; evidence?: string[] }[]; createdIssueIds?: string[]; startedAt?: string }',
|
|
36
|
+
bodyShape: '{ focusId: string; action: "review_complete"; outcome: "approved" | "gaps_found"; summary: string; agentSessionId: string; acVerdicts?: { criterion: string; verdict: "met" | "not_met" | "excused"; rationale?: string; reviewSessionId?: string; issueIds?: string[]; evidence?: string[]; falsifier?: { testPath: string; testName?: string } }[]; createdIssueIds?: string[]; startedAt?: string }',
|
|
37
37
|
},
|
|
38
38
|
fallback: {
|
|
39
39
|
endpoint: PRODUCT_API_ENDPOINT,
|
|
40
40
|
action: 'focus_review_complete',
|
|
41
|
-
bodyShape: '{ action: "focus_review_complete"; focusId: string; fields: { outcome: "approved" | "gaps_found"; summary: string; agentSessionId: string; acVerdicts?: { criterion: string; verdict: "met" | "not_met" | "excused"; rationale?: string; reviewSessionId?: string; issueIds?: string[]; evidence?: string[] }[]; createdIssueIds?: string[]; startedAt?: string } }',
|
|
41
|
+
bodyShape: '{ action: "focus_review_complete"; focusId: string; fields: { outcome: "approved" | "gaps_found"; summary: string; agentSessionId: string; acVerdicts?: { criterion: string; verdict: "met" | "not_met" | "excused"; rationale?: string; reviewSessionId?: string; issueIds?: string[]; evidence?: string[]; falsifier?: { testPath: string; testName?: string } }[]; createdIssueIds?: string[]; startedAt?: string } }',
|
|
42
42
|
},
|
|
43
43
|
},
|
|
44
44
|
{
|
package/dist/affordances.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"affordances.js","sourceRoot":"","sources":["../src/affordances.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,qEAAqE;AACrE,yEAAyE;AACzE,qDAAqD;AACrD,EAAE;AACF,0EAA0E;AAC1E,2EAA2E;AAC3E,qEAAqE;AACrE,EAAE;AACF,uEAAuE;AACvE,2EAA2E;AAC3E,qDAAqD;AACrD,8EAA8E;AAE9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAuBnD,MAAM,iBAAiB,GAAiB;IACtC;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,2LAA2L;QACxM,OAAO,EAAE;YACP,IAAI,EAAE,4BAA4B;YAClC,MAAM,EAAE,mBAAmB;YAC3B,SAAS,EAAE,yLAAyL;SACrM;QACD,QAAQ,EAAE;YACR,QAAQ,EAAE,oBAAoB;YAC9B,MAAM,EAAE,uDAAuD;YAC/D,SAAS,EAAE,sNAAsN;SAClO;KACF;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"affordances.js","sourceRoot":"","sources":["../src/affordances.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,qEAAqE;AACrE,yEAAyE;AACzE,qDAAqD;AACrD,EAAE;AACF,0EAA0E;AAC1E,2EAA2E;AAC3E,qEAAqE;AACrE,EAAE;AACF,uEAAuE;AACvE,2EAA2E;AAC3E,qDAAqD;AACrD,8EAA8E;AAE9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAuBnD,MAAM,iBAAiB,GAAiB;IACtC;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,2LAA2L;QACxM,OAAO,EAAE;YACP,IAAI,EAAE,4BAA4B;YAClC,MAAM,EAAE,mBAAmB;YAC3B,SAAS,EAAE,yLAAyL;SACrM;QACD,QAAQ,EAAE;YACR,QAAQ,EAAE,oBAAoB;YAC9B,MAAM,EAAE,uDAAuD;YAC/D,SAAS,EAAE,sNAAsN;SAClO;KACF;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,wwBAAwwB;QACrxB,OAAO,EAAE;YACP,IAAI,EAAE,sBAAsB;YAC5B,MAAM,EAAE,iBAAiB;YACzB,SAAS,EAAE,wYAAwY;SACpZ;QACD,QAAQ,EAAE;YACR,QAAQ,EAAE,oBAAoB;YAC9B,MAAM,EAAE,uBAAuB;YAC/B,SAAS,EAAE,0ZAA0Z;SACta;KACF;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EAAE,oGAAoG;QACjH,OAAO,EAAE;YACP,IAAI,EAAE,sBAAsB;YAC5B,MAAM,EAAE,uBAAuB;YAC/B,SAAS,EAAE,sDAAsD;SAClE;QACD,QAAQ,EAAE;YACR,QAAQ,EAAE,oBAAoB;YAC9B,MAAM,EAAE,6BAA6B;YACrC,SAAS,EAAE,4DAA4D;SACxE;KACF;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,gFAAgF;QAC7F,OAAO,EAAE;YACP,IAAI,EAAE,sBAAsB;YAC5B,MAAM,EAAE,mBAAmB;YAC3B,SAAS,EAAE,0DAA0D;SACtE;QACD,QAAQ,EAAE;YACR,QAAQ,EAAE,oBAAoB;YAC9B,MAAM,EAAE,yBAAyB;YACjC,SAAS,EAAE,qEAAqE;SACjF;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAA0C;IACxE,OAAO,EAAE,EAAE;IACX,KAAK,EAAE,iBAAiB;IACxB,QAAQ,EAAE,EAAE;CACb,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,KAAsB;IACnD,OAAO,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAC1C,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAa;IACrC,OAAO;QACL,OAAO,CAAC,CAAC,IAAI,EAAE;QACf,CAAC,CAAC,WAAW;QACb,EAAE;QACF,kBAAkB,CAAC,CAAC,OAAO,CAAC,IAAI,eAAe,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI;QACnE,OAAO;QACP,CAAC,CAAC,OAAO,CAAC,SAAS;QACnB,KAAK;QACL,wBAAwB,CAAC,CAAC,QAAQ,CAAC,QAAQ,eAAe,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI;QAC/E,OAAO;QACP,CAAC,CAAC,QAAQ,CAAC,SAAS;QACpB,KAAK;KACN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAsB;IAC5D,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,sBAAsB,KAAK,EAAE,CAAC;IAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC3C,OAAO,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const AUDIT_TREE_AUTHORING_GUIDE = "# Audit Tree-Authoring Protocol (CRT -> injections -> anchored plan)\n\nA safe audit emits a **tree and a plan, never a task checklist.** You are\nREAD-ONLY: discovery only. You author the intent structure -- the current\nreality, its root causes, and the leverage points -- and you anchor a plan of\ninjection-anchored remediation deliveries. You do NOT fix anything, and you do\nNOT file remediation Task/Bug issues. Remediation is scoped LATER, one root\ncause at a time, from the injections you anchor here -- so there is no flat\nchecklist to complete with completion-vigor and churn stays bounded to the real\ndefects.\n\nWhat happens to the deliveries you anchor depends on the focus posture, so do\nnot assume a human gate that may not exist:\n- On a **read-only audit focus**, the anchored deliveries rest at `planning`\n behind the human ratify gate -- a human reviews the plan and ratifies it\n before anything executes.\n- On a **live, past-planning focus**: What happens to a delivery you anchor depends on whether the focus is ARMED and whether your delivery serves an effect the arm already covers. MEANS -- its injection targets an effect the arm covers, or reaches one along a causal (sufficient/and) edge -- is created `queued` and executes AUTONOMOUSLY through the normal review gate, with NO human review step before it runs. NEW INTENT -- anything else -- is created and RECORDED: it rests at `planning`, is invisible to the running team, and executes when a human next arms this focus. Nothing you anchor is refused and nothing is frozen, so author everything you find. What this means for you: if you want work to run under the CURRENT arm, earn it structurally by drawing the causal edge from your injection's target to an effect the arm already covers -- a reviewer can check that edge. Do NOT try to buy it with words: there is no reason field, no override and no flag that makes new intent run now, and the response will tell you which way each create landed.\n\nEither way, if you believe the work must NOT run, that is a fork to DECIDE:\ntake the reversible option that preserves both futures and record it for the\nfocus review, never write the belief into a delivery's acceptance criteria.\n\nTwo artifacts, one purpose:\n- **CRT (current reality)** -- entities + undesired effects (UDEs) wired by\n causal edges, surfacing the systemic structure so cross-area root causes\n become visible in ONE focus tree (NOT one delivery per audit area).\n- **FRT (future reality)** -- injections at the root causes, self-validated to\n confirm they flip the UDEs, then anchored to planning deliveries whose\n acceptance is the future-state desired effect each injection produces.\n\n## Rounds (distinct jobs -- not \"find more\")\n1. **Facts -> CRT.** Author the current reality. Create the focus's reality\n tree if none exists (`telora_reality_tree action=create`), then add an\n **entity** node per real component/observation and an **undesired_effect**\n (UDE) node per observed problem (`telora_reality_tree_node action=create`).\n State what IS, in evidence terms -- not a fix.\n2. **Relationships -> causal edges.** Wire cause -> effect with\n `telora_reality_tree_edge action=create` (cause node -> effect node). This\n is the load-bearing round: edges turn a list of symptoms into a causal\n structure, so a single deep cause feeding many surface UDEs across different\n audit areas becomes visible as ONE root in ONE tree -- which is exactly what\n stops the \"one delivery per area\" sprawl.\n3. **Leverage -> injections.** Propose **injection** nodes at the LOWEST / root\n causes (the nodes with the most downstream UDEs), not at the symptoms.\n One injection at a root can clear a whole subtree of UDEs; that leverage is\n the whole reason for the tree. As you aim an injection at the UDE(s) it\n addresses (`telora_reality_tree_node action=target`), DECLARE each target's\n desired effect up front via `restatements` (the resolved future-state that\n UDE becomes) -- a flipped node must read as its future state, not its problem\n text. A flip left without a declared desired effect is an omission the machine\n can only backfill with a weaker draft.\n4. **Self-validate -> derive_frt.** Call\n `telora_reality_tree action=derive_frt` with the treeId. This is read-only:\n it returns the cleared/flipped UDE sets the injections produce. Confirm each\n injection flips the UDEs you targeted. If a UDE is left unresolved by your\n injection set, REPORT it -- do not hide it and do not lower the bar to make\n the tree look clean. An honest \"this UDE has no injection yet\" is signal; a\n silently dropped UDE is noise.\n5. **Anchor the plan -> injection-anchored deliveries.** For each injection,\n create a remediation delivery with\n `telora_product_delivery action=create`, passing\n `injectionNodeId=<the injection node>` and `executionStatus=\"planning\"`.\n Set its acceptance to the **FRT desired effect** -- the future-state the\n injection produces (what becomes true once the root cause is cleared), NOT a\n list of edits and NOT process instructions.\n\nExplicitly, in the audit phase your output is **the tree + the anchored\nplanning deliveries only.** Do NOT create remediation Task or Bug issues. Do\nNOT create one delivery per audit area -- unify the audit into ONE focus tree\nand let each injection (each root cause) anchor exactly one planning delivery.\nDo NOT attempt fixes.\n\n## Acceptance criteria carry the future state ONLY -- never a hold, never a waiver\nA remediation delivery's acceptanceCriteria state ONLY the **FRT desired\neffect**: the future-state that becomes true once the root cause is cleared.\nAcceptanceCriteria are NOT workflow state and NOT a channel to a human. Never\nwrite into acceptanceCriteria:\n- process instructions or step-by-step directions to the executing team,\n- a hold, a pause, or an approval requirement (e.g. \"HOLD FOR HUMAN REVIEW\n BEFORE EXECUTING\", \"do not execute until ...\", \"wait for sign-off\"),\n- status commentary or notes about what you think should happen next,\n- a WAIVER of a criterion this delivery cannot satisfy (e.g. \"do not expect\n this to change\", \"judge by attempt, not by the retired count\") -- such a\n criterion belongs at the focus altitude; relocate it there.\n\nProse is invisible to the workflow: a hold written into acceptanceCriteria\ngates nothing, and on a live focus the executing team either obeys a stop the\nmachine never enforces or is misled by an instruction it should never have been\ngiven. If you believe the work must NOT run yet, that is a fork to DECIDE, not\nto defer to a human: take the reversible option that preserves both futures --\nauthor the delivery against its real future-state and let it run -- and record\nthe doubt (the question, the options, what you chose, why it is reversible, and\nwhat changes if the human decides otherwise) for the focus review. Reserve an\nescalation for a genuine do-not-run reason you cannot resolve yourself -- a\nmissing dependency, work that truly needs human intent -- and never encode the\ndoubt as acceptance-criteria text.\n\nProse is equally invisible as a WAIVER. A criterion you cannot satisfy at this\ndelivery's altitude is not satisfied by a note asking the reviewer to disregard\nit -- the note lowers the bar and, like a prose hold, leaves no trace. A\ncriterion only the FOCUS can satisfy (an outcome that spans deliveries) belongs\nat the focus altitude: relocate it there rather than parking it on a delivery\nthat cannot measure it and annotating it away.\n\n## Statement quality (Goldratt Categories of Legitimate Reservation)\nHold every node to three statement-quality reservations AS YOU WRITE IT --\ninline with the rounds above, not a separate pass:\n- **Clarity.** Each statement is ONE unambiguous declarative sentence that\n reads standalone -- no jargon or pronoun a reviewer must guess at.\n- **Entity Existence.** Each entity / UDE names a COMPLETE, REAL state that\n actually exists, not a sentence fragment or a vague gesture. Prefer a\n grounded observation over an invented abstraction.\n- **Tautology.** In the relationships round, no cause -> effect pair may be\n circular: an effect must NOT be offered as the reason its own cause exists.\n\nA node that fails any of these radiates unearned certainty; fix the statement\nbefore you wire it. These reservations cost no extra call -- they are how you\nwrite each node, not a gate you run afterward.\n\n## Two hard integrity gates (deterministic; a tree must pass to present)\nThe tree dump (`telora_reality_tree action=dump`) computes and surfaces two\ndeterministic doubt-revealer gates near its header, so unearned certainty\ncannot hide:\n- **Connectivity (NO ORPHANS).** A node with zero edges of ANY type AND no\n `evidence` is an ORPHAN -- it floats, neither wired into the causal graph nor\n folded into its own evidence. A single orphan makes the tree **NOT\n presentable**; the dump names the orphan seqs. Fix it: wire the node to a\n cause/effect with an edge, or ground it by setting `evidence`. An orphan is\n reality with nothing to measure it against -- it must not survive to review.\n- **Evidence-or-assumed.** An `entity` / `undesired_effect` with empty/null\n `evidence` renders an `[assumed]` marker; with evidence it renders\n `(evidence)`. Assumed is NOT a violation -- it is an honest hedge that the\n claim is unearned certainty until grounded. Set `evidence` on the nodes you\n can actually observe; leave the rest visibly `[assumed]` rather than dressing\n a guess up as a proven cause.\n\n## Why this shape (the discipline it enforces)\nA flat checklist invites an agent to \"complete\" it -- to keep going until every\nbox is ticked, which churns code well beyond the real defects. An\ninjection-anchored plan inverts that: remediation is scoped one root cause at a\ntime from an injection, with acceptance pinned to a desired effect, so there is\nnothing to over-complete. The structured CRT + FRT make a wrong root cause\nlegible as a plan -- catchable up front rather than only after code has moved.";
|
|
1
|
+
export declare const AUDIT_TREE_AUTHORING_GUIDE = "# Audit Tree-Authoring Protocol (CRT -> injections -> anchored plan)\n\nA safe audit emits a **tree and a plan, never a task checklist.** You are\nREAD-ONLY: discovery only. You author the intent structure -- the current\nreality, its root causes, and the leverage points -- and you anchor a plan of\ninjection-anchored remediation deliveries. You do NOT fix anything, and you do\nNOT file remediation Task/Bug issues. Remediation is scoped LATER, one root\ncause at a time, from the injections you anchor here -- so there is no flat\nchecklist to complete with completion-vigor and churn stays bounded to the real\ndefects.\n\nWhat happens to the deliveries you anchor depends on the focus posture, so do\nnot assume a human gate that may not exist:\n- On a **read-only audit focus**, the anchored deliveries rest at `planning`\n behind the human ratify gate -- a human reviews the plan and ratifies it\n before anything executes.\n- On a **live, past-planning focus**: What happens to a delivery you anchor depends on whether the focus is ARMED and whether your delivery serves an effect the arm already covers. MEANS -- its injection targets an effect the arm covers, or reaches one along a causal (sufficient/and) edge -- is created `queued` and executes AUTONOMOUSLY through the normal review gate, with NO human review step before it runs. NEW INTENT -- anything else -- is created and RECORDED: it rests at `planning`, is invisible to the running team, and executes when a human next arms this focus. Nothing you anchor is refused and nothing is frozen, so author everything you find. What this means for you: if you want work to run under the CURRENT arm, earn it structurally by drawing the causal edge from your injection's target to an effect the arm already covers -- a reviewer can check that edge. Do NOT try to buy it with words: there is no reason field, no override and no flag that makes new intent run now, and the response will tell you which way each create landed.\n\nEither way, if you believe the work must NOT run, that is a fork to DECIDE:\ntake the reversible option that preserves both futures and record it for the\nfocus review, never write the belief into a delivery's acceptance criteria.\n\nTwo artifacts, one purpose:\n- **CRT (current reality)** -- entities + undesired effects (UDEs) wired by\n causal edges, surfacing the systemic structure so cross-area root causes\n become visible in ONE focus tree (NOT one delivery per audit area).\n- **FRT (future reality)** -- injections at the root causes, self-validated to\n confirm they flip the UDEs, then anchored to planning deliveries whose\n acceptance is the declared futures of the causes each injection targets;\n the UDEs those causes earn are focus-level criteria, judged at review.\n\n## Rounds (distinct jobs -- not \"find more\")\n1. **Facts -> CRT.** Author the current reality. Create the focus's reality\n tree if none exists (`telora_reality_tree action=create`), then add an\n **entity** node per real component/observation and an **undesired_effect**\n (UDE) node per observed problem (`telora_reality_tree_node action=create`).\n State what IS, in evidence terms -- not a fix.\n2. **Relationships -> causal edges.** Wire cause -> effect with\n `telora_reality_tree_edge action=create` (cause node -> effect node). This\n is the load-bearing round: edges turn a list of symptoms into a causal\n structure, so a single deep cause feeding many surface UDEs across different\n audit areas becomes visible as ONE root in ONE tree -- which is exactly what\n stops the \"one delivery per area\" sprawl.\n3. **Leverage -> injections.** Propose **injection** nodes at the LOWEST / root\n causes (the nodes with the most downstream UDEs), not at the symptoms.\n One injection at a root can clear a whole subtree of UDEs; that leverage is\n the whole reason for the tree. AIM AT CAUSES: target the cause(s) an\n injection changes (`telora_reality_tree_node action=target`), never an\n undesired effect, and DECLARE each targeted cause's future via\n `restatements` (how that cause works once changed -- a mechanism a diff can\n prove). State each UDE's own future on the UDE node itself\n (`frtStatement`). THE EFFECTS FOLLOW: an arm covers the UDEs your targeted\n causes EARN -- a UDE is earned once every cause sustaining it is targeted --\n and those UDEs' futures are the focus's criteria, judged at the focus review.\n (A UDE targeted directly under the older model stays covered, as DECLARED.)\n4. **Self-validate -> derive_frt.** Call\n `telora_reality_tree action=derive_frt` with the treeId. This is read-only:\n it returns the cleared/flipped UDE sets the injections produce. Confirm the\n injections flip the UDEs whose causes you targeted. If a UDE is left unresolved by your\n injection set, REPORT it -- do not hide it and do not lower the bar to make\n the tree look clean. An honest \"this UDE has no injection yet\" is signal; a\n silently dropped UDE is noise.\n5. **Anchor the plan -> injection-anchored deliveries.** For each injection,\n create a remediation delivery with\n `telora_product_delivery action=create`, passing\n `injectionNodeId=<the injection node>` and `executionStatus=\"planning\"`.\n Set its acceptance to the declared futures of the **causes** its injection\n targets -- what becomes true of the mechanism once the delivery lands, which\n is what verify judges it on -- NOT a list of edits and NOT process\n instructions. The UDEs those causes earn are the focus's criteria, not one\n delivery's.\n\nExplicitly, in the audit phase your output is **the tree + the anchored\nplanning deliveries only.** Do NOT create remediation Task or Bug issues. Do\nNOT create one delivery per audit area -- unify the audit into ONE focus tree\nand let each injection (each root cause) anchor exactly one planning delivery.\nDo NOT attempt fixes.\n\n## Acceptance criteria carry the future state ONLY -- never a hold, never a waiver\nA remediation delivery's acceptanceCriteria state ONLY the **declared futures\nof the causes its injection targets**: the future-state those causes reach once\nthe delivery changes them. The undesired effects those causes earn are NOT a\ndelivery's acceptance -- they are focus-level criteria, judged at the focus review.\nAcceptanceCriteria are NOT workflow state and NOT a channel to a human. Never\nwrite into acceptanceCriteria:\n- process instructions or step-by-step directions to the executing team,\n- a hold, a pause, or an approval requirement (e.g. \"HOLD FOR HUMAN REVIEW\n BEFORE EXECUTING\", \"do not execute until ...\", \"wait for sign-off\"),\n- status commentary or notes about what you think should happen next,\n- a WAIVER of a criterion this delivery cannot satisfy (e.g. \"do not expect\n this to change\", \"judge by attempt, not by the retired count\") -- such a\n criterion belongs at the focus altitude; relocate it there.\n\nProse is invisible to the workflow: a hold written into acceptanceCriteria\ngates nothing, and on a live focus the executing team either obeys a stop the\nmachine never enforces or is misled by an instruction it should never have been\ngiven. If you believe the work must NOT run yet, that is a fork to DECIDE, not\nto defer to a human: take the reversible option that preserves both futures --\nauthor the delivery against its real future-state and let it run -- and record\nthe doubt (the question, the options, what you chose, why it is reversible, and\nwhat changes if the human decides otherwise) for the focus review. Reserve an\nescalation for a genuine do-not-run reason you cannot resolve yourself -- a\nmissing dependency, work that truly needs human intent -- and never encode the\ndoubt as acceptance-criteria text.\n\nProse is equally invisible as a WAIVER. A criterion you cannot satisfy at this\ndelivery's altitude is not satisfied by a note asking the reviewer to disregard\nit -- the note lowers the bar and, like a prose hold, leaves no trace. A\ncriterion only the FOCUS can satisfy (an outcome that spans deliveries) belongs\nat the focus altitude: relocate it there rather than parking it on a delivery\nthat cannot measure it and annotating it away.\n\n## Statement quality (Goldratt Categories of Legitimate Reservation)\nHold every node to three statement-quality reservations AS YOU WRITE IT --\ninline with the rounds above, not a separate pass:\n- **Clarity.** Each statement is ONE unambiguous declarative sentence that\n reads standalone -- no jargon or pronoun a reviewer must guess at.\n- **Entity Existence.** Each entity / UDE names a COMPLETE, REAL state that\n actually exists, not a sentence fragment or a vague gesture. Prefer a\n grounded observation over an invented abstraction.\n- **Tautology.** In the relationships round, no cause -> effect pair may be\n circular: an effect must NOT be offered as the reason its own cause exists.\n\nA node that fails any of these radiates unearned certainty; fix the statement\nbefore you wire it. These reservations cost no extra call -- they are how you\nwrite each node, not a gate you run afterward.\n\n## Two hard integrity gates (deterministic; a tree must pass to present)\nThe tree dump (`telora_reality_tree action=dump`) computes and surfaces two\ndeterministic doubt-revealer gates near its header, so unearned certainty\ncannot hide:\n- **Connectivity (NO ORPHANS).** A node with zero edges of ANY type AND no\n `evidence` is an ORPHAN -- it floats, neither wired into the causal graph nor\n folded into its own evidence. A single orphan makes the tree **NOT\n presentable**; the dump names the orphan seqs. Fix it: wire the node to a\n cause/effect with an edge, or ground it by setting `evidence`. An orphan is\n reality with nothing to measure it against -- it must not survive to review.\n- **Evidence-or-assumed.** An `entity` / `undesired_effect` with empty/null\n `evidence` renders an `[assumed]` marker; with evidence it renders\n `(evidence)`. Assumed is NOT a violation -- it is an honest hedge that the\n claim is unearned certainty until grounded. Set `evidence` on the nodes you\n can actually observe; leave the rest visibly `[assumed]` rather than dressing\n a guess up as a proven cause.\n\n## Why this shape (the discipline it enforces)\nA flat checklist invites an agent to \"complete\" it -- to keep going until every\nbox is ticked, which churns code well beyond the real defects. An\ninjection-anchored plan inverts that: remediation is scoped one root cause at a\ntime from an injection, with acceptance pinned to its causes' futures, so there is\nnothing to over-complete. The structured CRT + FRT make a wrong root cause\nlegible as a plan -- catchable up front rather than only after code has moved.";
|
|
@@ -53,16 +53,19 @@ const AUDIT_GUIDE_SHARED = `## Rounds (distinct jobs -- not "find more")
|
|
|
53
53
|
3. **Leverage -> injections.** Propose **injection** nodes at the LOWEST / root
|
|
54
54
|
causes (the nodes with the most downstream UDEs), not at the symptoms.
|
|
55
55
|
One injection at a root can clear a whole subtree of UDEs; that leverage is
|
|
56
|
-
the whole reason for the tree.
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
56
|
+
the whole reason for the tree. AIM AT CAUSES: target the cause(s) an
|
|
57
|
+
injection changes (\`telora_reality_tree_node action=target\`), never an
|
|
58
|
+
undesired effect, and DECLARE each targeted cause's future via
|
|
59
|
+
\`restatements\` (how that cause works once changed -- a mechanism a diff can
|
|
60
|
+
prove). State each UDE's own future on the UDE node itself
|
|
61
|
+
(\`frtStatement\`). THE EFFECTS FOLLOW: an arm covers the UDEs your targeted
|
|
62
|
+
causes EARN -- a UDE is earned once every cause sustaining it is targeted --
|
|
63
|
+
and those UDEs' futures are the focus's criteria, judged at the focus review.
|
|
64
|
+
(A UDE targeted directly under the older model stays covered, as DECLARED.)
|
|
62
65
|
4. **Self-validate -> derive_frt.** Call
|
|
63
66
|
\`telora_reality_tree action=derive_frt\` with the treeId. This is read-only:
|
|
64
|
-
it returns the cleared/flipped UDE sets the injections produce. Confirm
|
|
65
|
-
|
|
67
|
+
it returns the cleared/flipped UDE sets the injections produce. Confirm the
|
|
68
|
+
injections flip the UDEs whose causes you targeted. If a UDE is left unresolved by your
|
|
66
69
|
injection set, REPORT it -- do not hide it and do not lower the bar to make
|
|
67
70
|
the tree look clean. An honest "this UDE has no injection yet" is signal; a
|
|
68
71
|
silently dropped UDE is noise.
|
|
@@ -70,9 +73,11 @@ const AUDIT_GUIDE_SHARED = `## Rounds (distinct jobs -- not "find more")
|
|
|
70
73
|
create a remediation delivery with
|
|
71
74
|
\`telora_product_delivery action=create\`, passing
|
|
72
75
|
\`injectionNodeId=<the injection node>\` and \`executionStatus="planning"\`.
|
|
73
|
-
Set its acceptance to the
|
|
74
|
-
|
|
75
|
-
list of edits and NOT process
|
|
76
|
+
Set its acceptance to the declared futures of the **causes** its injection
|
|
77
|
+
targets -- what becomes true of the mechanism once the delivery lands, which
|
|
78
|
+
is what verify judges it on -- NOT a list of edits and NOT process
|
|
79
|
+
instructions. The UDEs those causes earn are the focus's criteria, not one
|
|
80
|
+
delivery's.
|
|
76
81
|
|
|
77
82
|
Explicitly, in the audit phase your output is **the tree + the anchored
|
|
78
83
|
planning deliveries only.** Do NOT create remediation Task or Bug issues. Do
|
|
@@ -81,8 +86,10 @@ and let each injection (each root cause) anchor exactly one planning delivery.
|
|
|
81
86
|
Do NOT attempt fixes.
|
|
82
87
|
|
|
83
88
|
## Acceptance criteria carry the future state ONLY -- never a hold, never a waiver
|
|
84
|
-
A remediation delivery's acceptanceCriteria state ONLY the **
|
|
85
|
-
|
|
89
|
+
A remediation delivery's acceptanceCriteria state ONLY the **declared futures
|
|
90
|
+
of the causes its injection targets**: the future-state those causes reach once
|
|
91
|
+
the delivery changes them. The undesired effects those causes earn are NOT a
|
|
92
|
+
delivery's acceptance -- they are focus-level criteria, judged at the focus review.
|
|
86
93
|
AcceptanceCriteria are NOT workflow state and NOT a channel to a human. Never
|
|
87
94
|
write into acceptanceCriteria:
|
|
88
95
|
- process instructions or step-by-step directions to the executing team,
|
|
@@ -148,7 +155,7 @@ cannot hide:
|
|
|
148
155
|
A flat checklist invites an agent to "complete" it -- to keep going until every
|
|
149
156
|
box is ticked, which churns code well beyond the real defects. An
|
|
150
157
|
injection-anchored plan inverts that: remediation is scoped one root cause at a
|
|
151
|
-
time from an injection, with acceptance pinned to
|
|
158
|
+
time from an injection, with acceptance pinned to its causes' futures, so there is
|
|
152
159
|
nothing to over-complete. The structured CRT + FRT make a wrong root cause
|
|
153
160
|
legible as a plan -- catchable up front rather than only after code has moved.`;
|
|
154
161
|
// SHARED-AUDIT-GUIDE:END
|
|
@@ -199,7 +206,8 @@ Two artifacts, one purpose:
|
|
|
199
206
|
become visible in ONE focus tree (NOT one delivery per audit area).
|
|
200
207
|
- **FRT (future reality)** -- injections at the root causes, self-validated to
|
|
201
208
|
confirm they flip the UDEs, then anchored to planning deliveries whose
|
|
202
|
-
acceptance is the
|
|
209
|
+
acceptance is the declared futures of the causes each injection targets;
|
|
210
|
+
the UDEs those causes earn are focus-level criteria, judged at review.
|
|
203
211
|
|
|
204
212
|
${AUDIT_GUIDE_SHARED}`;
|
|
205
213
|
//# sourceMappingURL=auditTreeAuthoringGuide.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auditTreeAuthoringGuide.js","sourceRoot":"","sources":["../../src/handlers/auditTreeAuthoringGuide.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,2EAA2E;AAC3E,0EAA0E;AAC1E,0EAA0E;AAC1E,gFAAgF;AAChF,EAAE;AACF,gFAAgF;AAChF,6EAA6E;AAC7E,gFAAgF;AAChF,+EAA+E;AAC/E,8EAA8E;AAC9E,8EAA8E;AAC9E,gFAAgF;AAChF,gFAAgF;AAChF,0EAA0E;AAC1E,+EAA+E;AAC/E,gFAAgF;AAChF,0EAA0E;AAC1E,+EAA+E;AAC/E,oBAAoB;AACpB,EAAE;AACF,4EAA4E;AAC5E,+EAA+E;AAC/E,gFAAgF;AAChF,+DAA+D;AAC/D,2EAA2E;AAC3E,qEAAqE;AACrE,8EAA8E;AAC9E,4EAA4E;AAC5E,mFAAmF;AACnF,gFAAgF;AAChF,iFAAiF;AACjF,uEAAuE;AACvE,EAAE;AACF,+EAA+E;AAC/E,+EAA+E;AAC/E,4EAA4E;AAC5E,sEAAsE;AACtE,8EAA8E;AAE9E,2BAA2B;AAC3B,MAAM,kBAAkB,GAAG
|
|
1
|
+
{"version":3,"file":"auditTreeAuthoringGuide.js","sourceRoot":"","sources":["../../src/handlers/auditTreeAuthoringGuide.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,2EAA2E;AAC3E,0EAA0E;AAC1E,0EAA0E;AAC1E,gFAAgF;AAChF,EAAE;AACF,gFAAgF;AAChF,6EAA6E;AAC7E,gFAAgF;AAChF,+EAA+E;AAC/E,8EAA8E;AAC9E,8EAA8E;AAC9E,gFAAgF;AAChF,gFAAgF;AAChF,0EAA0E;AAC1E,+EAA+E;AAC/E,gFAAgF;AAChF,0EAA0E;AAC1E,+EAA+E;AAC/E,oBAAoB;AACpB,EAAE;AACF,4EAA4E;AAC5E,+EAA+E;AAC/E,gFAAgF;AAChF,+DAA+D;AAC/D,2EAA2E;AAC3E,qEAAqE;AACrE,8EAA8E;AAC9E,4EAA4E;AAC5E,mFAAmF;AACnF,gFAAgF;AAChF,iFAAiF;AACjF,uEAAuE;AACvE,EAAE;AACF,+EAA+E;AAC/E,+EAA+E;AAC/E,4EAA4E;AAC5E,sEAAsE;AACtE,8EAA8E;AAE9E,2BAA2B;AAC3B,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+EAuHoD,CAAC;AAChF,yBAAyB;AAEzB,yEAAyE;AACzE,gFAAgF;AAChF,yEAAyE;AACzE,qEAAqE;AACrE,iFAAiF;AACjF,+EAA+E;AAC/E,+EAA+E;AAC/E,2EAA2E;AAC3E,yDAAyD;AACzD,EAAE;AACF,6EAA6E;AAC7E,8EAA8E;AAC9E,iFAAiF;AACjF,gFAAgF;AAChF,2EAA2E;AAC3E,mDAAmD;AACnD,kCAAkC;AAClC,MAAM,yBAAyB,GAAG,0/BAA0/B,CAAC;AAC7hC,gCAAgC;AAEhC,MAAM,CAAC,MAAM,0BAA0B,GAAG;;;;;;;;;;;;;;;;wCAgBF,yBAAyB;;;;;;;;;;;;;;;EAe/D,kBAAkB,EAAE,CAAC"}
|
|
@@ -108,7 +108,8 @@ export function registerConnectorTools(server, getCreds, profile = 'full') {
|
|
|
108
108
|
engines: {
|
|
109
109
|
focus: {
|
|
110
110
|
integrationBranch: "integration",
|
|
111
|
-
|
|
111
|
+
// Sized from the host at every daemon start.
|
|
112
|
+
maxTotalSessions: "auto",
|
|
112
113
|
tokenLimit: 200000,
|
|
113
114
|
costLimit: 10.0,
|
|
114
115
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connectorHandlers.js","sourceRoot":"","sources":["../../src/handlers/connectorHandlers.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"connectorHandlers.js","sourceRoot":"","sources":["../../src/handlers/connectorHandlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -54,4 +54,21 @@ export declare function handleDeliveryUpdate(params: {
|
|
|
54
54
|
text: string;
|
|
55
55
|
}[];
|
|
56
56
|
}>;
|
|
57
|
+
export interface DeliveryReorderParams {
|
|
58
|
+
productId?: string;
|
|
59
|
+
deliveryIds?: string[];
|
|
60
|
+
detail?: "titles" | "summary" | "full";
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Reorder answers with the rows it reordered -- the ids given, in their new
|
|
64
|
+
* rank, at the caller's detail (the API defaults to summary, as list does) --
|
|
65
|
+
* plus any id that is no delivery of the product. Never the product's whole
|
|
66
|
+
* table: a caller wanting the surrounding order asks list with a focusId.
|
|
67
|
+
*/
|
|
68
|
+
export declare function handleDeliveryReorder(params: DeliveryReorderParams, callApi: (body: Record<string, unknown>) => Promise<unknown>): Promise<{
|
|
69
|
+
content: {
|
|
70
|
+
type: "text";
|
|
71
|
+
text: string;
|
|
72
|
+
}[];
|
|
73
|
+
}>;
|
|
57
74
|
export declare function registerDeliveryTools(server: McpServer, getCreds: GetCreds, profile?: ToolProfile): void;
|
|
@@ -146,6 +146,27 @@ export async function handleDeliveryUpdate(params, callApi) {
|
|
|
146
146
|
}
|
|
147
147
|
return successResult(out);
|
|
148
148
|
}
|
|
149
|
+
/**
|
|
150
|
+
* Reorder answers with the rows it reordered -- the ids given, in their new
|
|
151
|
+
* rank, at the caller's detail (the API defaults to summary, as list does) --
|
|
152
|
+
* plus any id that is no delivery of the product. Never the product's whole
|
|
153
|
+
* table: a caller wanting the surrounding order asks list with a focusId.
|
|
154
|
+
*/
|
|
155
|
+
export async function handleDeliveryReorder(params, callApi) {
|
|
156
|
+
if (!params.productId)
|
|
157
|
+
return validationError("productId required for reorder");
|
|
158
|
+
if (!params.deliveryIds)
|
|
159
|
+
return validationError("deliveryIds required for reorder");
|
|
160
|
+
const body = {
|
|
161
|
+
action: "delivery_reorder",
|
|
162
|
+
productId: params.productId,
|
|
163
|
+
deliveryIds: params.deliveryIds,
|
|
164
|
+
};
|
|
165
|
+
if (params.detail !== undefined)
|
|
166
|
+
body.detail = params.detail;
|
|
167
|
+
const result = await callApi(body);
|
|
168
|
+
return successResult({ items: result.deliveries, notFoundIds: result.notFoundIds ?? [] });
|
|
169
|
+
}
|
|
149
170
|
export function registerDeliveryTools(server, getCreds, profile = 'full') {
|
|
150
171
|
// Agents cannot delete deliveries — CASCADE deletes all child issues (planning data).
|
|
151
172
|
const allowDelete = profile === 'full' || profile === 'human';
|
|
@@ -160,7 +181,9 @@ export function registerDeliveryTools(server, getCreds, profile = 'full') {
|
|
|
160
181
|
];
|
|
161
182
|
const actionDesc = "update delivery fields (description, criteria, status), operationalize (attach to org tree), " +
|
|
162
183
|
(allowDelete ? "delete, " : "") +
|
|
163
|
-
"reorder priority
|
|
184
|
+
"reorder priority (deliveryIds in rank order; the response is the reordered rows ONLY -- the ids given, in " +
|
|
185
|
+
"their new rank, at `detail` (default summary), with notFoundIds naming any id that is no delivery of the " +
|
|
186
|
+
"product -- for the surrounding order, call list with a focusId)." +
|
|
164
187
|
" attribute_commit (deliveryId + commitSha + reason): credit an ALREADY-MERGED commit in the delivery's focus " +
|
|
165
188
|
"merge batches to this delivery, so verify counts its work. Use it when a commit holds this delivery's work " +
|
|
166
189
|
"but carries the wrong Telora-Delivery trailer -- typically a daemon exit capture trailered `none` or " +
|
|
@@ -187,6 +210,10 @@ export function registerDeliveryTools(server, getCreds, profile = 'full') {
|
|
|
187
210
|
"each of these two is an " +
|
|
188
211
|
"effortful, reason-bearing, attributed override, and a bare boolean with no reason is refused " +
|
|
189
212
|
"(override_reason_required). " +
|
|
213
|
+
"AIM AT CAUSES: the injection a delivery anchors to targets the CAUSES the delivery changes, never an " +
|
|
214
|
+
"undesired effect. Write the delivery's acceptance criteria as those causes' declared futures -- what " +
|
|
215
|
+
"verify judges it on; the undesired effects the causes EARN are the focus's criteria, judged at the " +
|
|
216
|
+
"focus review once every delivery that earns them has landed, so no delivery is held to a sibling's work. " +
|
|
190
217
|
"REVIEW-FINDING RULE: no delivery is created in answer to a review finding. While a focus holds an OPEN " +
|
|
191
218
|
"review-filed finding, an agent create on that focus is REFUSED (review_finding_open, no row), naming the " +
|
|
192
219
|
"findings -- close each as a Bug or Context Group on the delivery it was filed against instead. Not overridable. " +
|
|
@@ -221,7 +248,7 @@ export function registerDeliveryTools(server, getCreds, profile = 'full') {
|
|
|
221
248
|
executionStatus: z.enum([...EXECUTION_STATUSES]).optional().describe("Execution status. On create: overrides the focus-stage-aware default ('queued' when the parent focus is past planning, otherwise 'planning'). On update: new status. On list: filter."),
|
|
222
249
|
workFacing: z.enum([...WORK_FACINGS]).optional().describe("Work-facing novelty label declared at scope time (create) or re-declared on re-scope (update). 'outward' = a capability the user did not have before (new ground; includes machine/tooling capabilities -- the axis is novelty, not product-vs-system). 'inward' = improving a capability that already exists. Declare it as a byproduct of scoping each delivery -- it forces the explicit 'new ground or improving old ground?' question. Read downstream as a mirror of where intent-energy went, never a quota."),
|
|
223
250
|
parentNodeId: z.string().uuid().optional().describe("Target org unit or stream UUID (operationalize only)"),
|
|
224
|
-
deliveryIds: z.array(z.string().uuid()).optional().describe("Ordered array of delivery UUIDs for reorder (first = rank 0 = highest priority)"),
|
|
251
|
+
deliveryIds: z.array(z.string().uuid()).optional().describe("Ordered array of delivery UUIDs for reorder (first = rank 0 = highest priority). The reorder response is these rows only, at `detail`; call list for the surrounding order."),
|
|
225
252
|
includeIssueCounts: z.boolean().optional().describe("Include done/total issue counts per delivery (list only)"),
|
|
226
253
|
limit: z.number().int().min(1).max(500).optional().describe("Max results (1-500, default 50)"),
|
|
227
254
|
offset: z.number().int().min(0).optional().describe("Number of results to skip (default 0)"),
|
|
@@ -296,18 +323,8 @@ export function registerDeliveryTools(server, getCreds, profile = 'full') {
|
|
|
296
323
|
}
|
|
297
324
|
case "shortfall_rule":
|
|
298
325
|
return handleDeliveryShortfallRule(params, (body) => callProductApi(getCreds(), body), profile);
|
|
299
|
-
case "reorder":
|
|
300
|
-
|
|
301
|
-
return validationError("productId required for reorder");
|
|
302
|
-
if (!params.deliveryIds)
|
|
303
|
-
return validationError("deliveryIds required for reorder");
|
|
304
|
-
const result = await callProductApi(getCreds(), {
|
|
305
|
-
action: "delivery_reorder",
|
|
306
|
-
productId: params.productId,
|
|
307
|
-
deliveryIds: params.deliveryIds,
|
|
308
|
-
});
|
|
309
|
-
return successResult(result.deliveries);
|
|
310
|
-
}
|
|
326
|
+
case "reorder":
|
|
327
|
+
return handleDeliveryReorder(params, (body) => callProductApi(getCreds(), body));
|
|
311
328
|
case "attribute_commit": {
|
|
312
329
|
return handleDeliveryAttributeCommit(params, (body) => callProductApi(getCreds(), body));
|
|
313
330
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deliveryHandlers.js","sourceRoot":"","sources":["../../src/handlers/deliveryHandlers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"deliveryHandlers.js","sourceRoot":"","sources":["../../src/handlers/deliveryHandlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -149,6 +149,10 @@ export declare const focusToolSchema: {
|
|
|
149
149
|
reviewSessionId: z.ZodOptional<z.ZodString>;
|
|
150
150
|
issueIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
151
151
|
evidence: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
152
|
+
falsifier: z.ZodOptional<z.ZodObject<{
|
|
153
|
+
testPath: z.ZodString;
|
|
154
|
+
testName: z.ZodOptional<z.ZodString>;
|
|
155
|
+
}, z.core.$strip>>;
|
|
152
156
|
}, z.core.$strip>>>;
|
|
153
157
|
clearReviewRequest: z.ZodOptional<z.ZodBoolean>;
|
|
154
158
|
ratify: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -215,6 +219,10 @@ type FocusToolParams = {
|
|
|
215
219
|
reviewSessionId?: string;
|
|
216
220
|
issueIds?: string[];
|
|
217
221
|
evidence?: string[];
|
|
222
|
+
falsifier?: {
|
|
223
|
+
testPath: string;
|
|
224
|
+
testName?: string;
|
|
225
|
+
};
|
|
218
226
|
}>;
|
|
219
227
|
clearReviewRequest?: boolean;
|
|
220
228
|
ratify?: boolean;
|
|
@@ -128,7 +128,10 @@ export function describeDecisionRecordRate(m) {
|
|
|
128
128
|
export const FOCUS_TOOL_DESCRIPTION = "Execution roadmap: group deliveries into themed work scopes. Focuses define what the AI daemon works on -- " +
|
|
129
129
|
"assigning an agent role queues the focus for autonomous execution. " +
|
|
130
130
|
"Actions: list focuses for a product, create a focus (name + productId), " +
|
|
131
|
-
"update focus settings (description, status, agent role, pipeline config),
|
|
131
|
+
"update focus settings (description, status, agent role, pipeline config), " +
|
|
132
|
+
"reorder focus priority (focusIds in rank order; the response is the reordered rows ONLY -- the ids given, in their " +
|
|
133
|
+
"new rank, at `detail` (default summary), with notFoundIds naming any id that is no focus of the product -- for the " +
|
|
134
|
+
"surrounding order, call list), " +
|
|
132
135
|
"merges (list merge history for a focus), " +
|
|
133
136
|
"retrospective_trigger (create a pending retrospective for a focus), " +
|
|
134
137
|
"retrospective_run (execute a pending retrospective via LLM), " +
|
|
@@ -136,6 +139,7 @@ export const FOCUS_TOOL_DESCRIPTION = "Execution roadmap: group deliveries into
|
|
|
136
139
|
"retrospective_get (get a single retrospective by ID), " +
|
|
137
140
|
"review_complete (terminal action for a review agent: writes a focus_reviews row with outcome + summary + references, and updates focus.last_reviewed_at and focus.last_review_outcome. " +
|
|
138
141
|
"A finding blocks only when a not_met criterion names it (acVerdicts[].issueIds); everything else the review files is recorded as a concern; " +
|
|
142
|
+
"a not_met reopening a criterion an earlier review under the same arm judged met with evidence blocks only when its acVerdicts[].falsifier test fails at the judged commit; " +
|
|
139
143
|
"a review whose verdicts cover every criterion with none not_met is recorded as approved), " +
|
|
140
144
|
"review_list (read completed focus reviews back, newest first, with the decisions taken under uncertainty each one recorded -- question, options, chosen, why reversible, what changes if the human decides otherwise; scope by focusId, productId, or omit both for the whole organization; carries the decision-record rate: the share of completed reviews that recorded at least one resolved fork), " +
|
|
141
145
|
"review_get (read one focus review by focusReviewId: full summary plus its decisions rendered for a human), " +
|
|
@@ -162,8 +166,8 @@ export const FOCUS_TOOL_DESCRIPTION = "Execution roadmap: group deliveries into
|
|
|
162
166
|
"renders no verdict, and has no 'excused' -- excusing a criterion stays a review act with separation of " +
|
|
163
167
|
"duties. A focus with NEITHER kind of criterion has NOT reached a floor: floorBasis reports " +
|
|
164
168
|
"no_criteria_declared, which means the focus has gone unmeasured, not that it has arrived -- the act that " +
|
|
165
|
-
"produces tree criteria is anchoring deliveries to injections
|
|
166
|
-
"undesired effects those
|
|
169
|
+
"produces tree criteria is anchoring deliveries to injections that target CAUSES (each stating its " +
|
|
170
|
+
"future) and stating the frt_statement on the undesired effects those causes earn. An anchored focus whose covered nodes are ALL entities is " +
|
|
167
171
|
"scoped, not unscoped: it reports treeBasis derived_live_unarmed with zero judgeable criteria plus " +
|
|
168
172
|
"armWouldRefuseNoEffect=true -- the arm_criteria_required refusal an arm would raise right now. Both " +
|
|
169
173
|
"scans are bounded and REPORT their bounds (deliveryScan, treeScan): a truncated node scan errs toward " +
|
|
@@ -188,7 +192,7 @@ export const FOCUS_TOOL_DESCRIPTION = "Execution roadmap: group deliveries into
|
|
|
188
192
|
"shown to be an arm-instant snapshot; created_at_fallback is APPROXIMATE -- no id set at all, so " +
|
|
189
193
|
"additions are inferred from creation time. never_armed means there is no arm to measure against " +
|
|
190
194
|
"-- an empty additions list and a null armed count, never growth from zero). " +
|
|
191
|
-
"Every listed focus carries armEndedReason (with armEndedAt): WHY the daemon ended its armed run, when it ended one. A focus with assignedAgentRoleId null is un-armed, and that single fact has three different causes -- the focus FINISHED (the lifecycle clear), an operator STOPPED it, or its REVIEW BUDGET was spent (armEndedReason='review_budget_spent': the review loop reached TELORA_REVIEW_CYCLE_CAP without converging, so the daemon released the arm with the criteria still unmet and the findings still open recorded on the focus, and only a NEW arm grants further cycles). Read it before re-arming: a null reason means the focus was not stopped by a spent budget. Full detail (the cycle count, the cap, the unmet criteria and the open
|
|
195
|
+
"Every listed focus carries armEndedReason (with armEndedAt): WHY the daemon ended its armed run, when it ended one. A focus with assignedAgentRoleId null is un-armed, and that single fact has three different causes -- the focus FINISHED (the lifecycle clear), an operator STOPPED it, or its REVIEW BUDGET was spent (armEndedReason='review_budget_spent': the review loop reached TELORA_REVIEW_CYCLE_CAP without converging, so the daemon released the arm with the criteria still unmet and the findings still open recorded on the focus, and only a NEW arm grants further cycles). Read it before re-arming: a null reason means the focus was not stopped by a spent budget. Full detail (the cycle count, the cap, the unmet criteria, the open blocking findings, and openConcerns -- the open review concerns, each by key and title, recorded for the human and not worked by the arm) rides armEndedDetail on a detail='full' read. " +
|
|
192
196
|
"On update, pass `clearReviewRequest: true` to clear `product_focuses.review_requested_at` -- the non-SQL recovery path for a focus stuck with a stale review request." +
|
|
193
197
|
LIST_INDEX_NOTE;
|
|
194
198
|
export const focusToolSchema = {
|
|
@@ -228,7 +232,7 @@ export const focusToolSchema = {
|
|
|
228
232
|
}).optional().describe("Pipeline configuration (update only). Auto-review defaults ON; pass review.enabled=false to opt out. Per-pass model selection: `models: { coding, review }` pins the cloud model for each pass (omit a slot to inherit); the legacy focus-wide `model` is read as the coding-pass value when models.coding is absent. Model ids are validated against the registry server-side."),
|
|
229
233
|
retrospectiveId: z.string().uuid().optional().describe("Retrospective UUID (required for retrospective_run, retrospective_get)"),
|
|
230
234
|
focusReviewId: z.string().uuid().optional().describe("Focus review UUID (required for review_get; review_list returns it on each item)"),
|
|
231
|
-
focusIds: z.array(z.string().uuid()).optional().describe("Ordered array of focus UUIDs for reorder (first = rank 0)"),
|
|
235
|
+
focusIds: z.array(z.string().uuid()).optional().describe("Ordered array of focus UUIDs for reorder (first = rank 0). The reorder response is these rows only, at `detail`; call list for the surrounding order."),
|
|
232
236
|
outcome: z.enum(["approved", "gaps_found"]).optional().describe("Review outcome (required for review_complete: \"approved\" or \"gaps_found\")"),
|
|
233
237
|
summary: z.string().max(20000).optional().describe("Review summary markdown (required for review_complete: the client enforces this even though the server tolerates its absence -- see the reconciliation note in the review_complete dispatch case)"),
|
|
234
238
|
createdIssueIds: z.array(z.string().uuid()).optional().describe("Issue UUIDs created during the review (review_complete only)"),
|
|
@@ -266,6 +270,18 @@ export const focusToolSchema = {
|
|
|
266
270
|
.describe("met verdicts only (refused on not_met/excused): 1-5 repository-relative references where the " +
|
|
267
271
|
"criterion is proven -- `path`, `path::test name` or `path:LINE`. REQUIRED on every met in an " +
|
|
268
272
|
"approved review. Prefer the test that would fail if the criterion were false."),
|
|
273
|
+
falsifier: z
|
|
274
|
+
.object({
|
|
275
|
+
testPath: z.string(),
|
|
276
|
+
testName: z.string().optional(),
|
|
277
|
+
})
|
|
278
|
+
.optional()
|
|
279
|
+
.describe("not_met verdicts only (refused on met/excused): the test that DEMONSTRATES the failure -- a " +
|
|
280
|
+
"repository-relative test file you COMMITTED on the focus branch (testPath), optionally one test in " +
|
|
281
|
+
"it (testName). REQUIRED for a not_met to block when an earlier review under the SAME arm judged the " +
|
|
282
|
+
"criterion met with evidence (a reopening): the daemon runs it at the commit that review judged, and " +
|
|
283
|
+
"the verdict's issueIds block only when it FAILS there. Absent, unresolvable or passing, the issues " +
|
|
284
|
+
"are recorded as concerns and the review record says why. Ignored on a first-time not_met."),
|
|
269
285
|
}))
|
|
270
286
|
.optional()
|
|
271
287
|
.describe("Per-acceptance-criterion verdicts folded into the focus review. REQUIRED for review_complete when " +
|
|
@@ -283,6 +299,10 @@ export const focusToolSchema = {
|
|
|
283
299
|
"The refusal names each uncovered tree criterion with its node id, which is what distinguishes them. " +
|
|
284
300
|
"`not_met` requires a rationale naming the gap " +
|
|
285
301
|
"and blocks an approved review; name the issue(s) that record the gap in its issueIds. " +
|
|
302
|
+
"A MET CRITERION REOPENS ONLY ON A DEMONSTRATED FAILURE: when an earlier review under the same arm " +
|
|
303
|
+
"judged the criterion met with evidence, a not_met blocks only if it names a `falsifier` (a test you " +
|
|
304
|
+
"committed on the focus branch) that the daemon runs and sees FAIL at the commit that review judged; " +
|
|
305
|
+
"an argued, undemonstrated reopening is recorded as a concern (never refused). " +
|
|
286
306
|
"A FINDING BLOCKS ONLY WHEN A not_met CRITERION NAMES IT: an issue listed in a not_met verdict's " +
|
|
287
307
|
"issueIds is recorded as blocking (it sends its delivery back to coding); every other issue the " +
|
|
288
308
|
"review files is recorded as a CONCERN -- it stays open but routes nothing. A review whose verdicts " +
|
|
@@ -444,12 +464,17 @@ export function buildFocusHandler(getCreds, profile, callApi = (body) => callPro
|
|
|
444
464
|
return validationError("productId required for reorder");
|
|
445
465
|
if (!params.focusIds)
|
|
446
466
|
return validationError("focusIds required for reorder");
|
|
447
|
-
|
|
467
|
+
// Answers with the rows it reordered, at the caller's detail -- never the
|
|
468
|
+
// product's whole focus table (list is the surrounding order).
|
|
469
|
+
const body = {
|
|
448
470
|
action: "focus_reorder",
|
|
449
471
|
productId: params.productId,
|
|
450
472
|
focusIds: params.focusIds,
|
|
451
|
-
}
|
|
452
|
-
|
|
473
|
+
};
|
|
474
|
+
if (params.detail !== undefined)
|
|
475
|
+
body.detail = params.detail;
|
|
476
|
+
const result = await callApi(body);
|
|
477
|
+
return successResult({ items: result.focuses, notFoundIds: result.notFoundIds ?? [] });
|
|
453
478
|
}
|
|
454
479
|
case "merges": {
|
|
455
480
|
if (!params.focusId)
|