@tacuchi/agent-workflow-cli 25.1.2 → 25.3.0
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 +3 -1
- package/dist/adapters/node-process.js +35 -0
- package/dist/adapters/node-process.js.map +1 -1
- package/dist/application/amend-service.js +393 -0
- package/dist/application/amend-service.js.map +1 -0
- package/dist/application/decision-note-service.js +20 -3
- package/dist/application/decision-note-service.js.map +1 -1
- package/dist/application/doctor/actions.js +158 -0
- package/dist/application/doctor/actions.js.map +1 -0
- package/dist/application/doctor/apply.js +399 -0
- package/dist/application/doctor/apply.js.map +1 -0
- package/dist/application/doctor/auth-dsn.js +143 -0
- package/dist/application/doctor/auth-dsn.js.map +1 -0
- package/dist/application/doctor/auth-flow.js +28 -0
- package/dist/application/doctor/auth-flow.js.map +1 -0
- package/dist/application/doctor/auth-registry.js +12 -0
- package/dist/application/doctor/auth-registry.js.map +1 -0
- package/dist/application/doctor/hosts.js +41 -0
- package/dist/application/doctor/hosts.js.map +1 -0
- package/dist/application/doctor/native-host-state.js +211 -0
- package/dist/application/doctor/native-host-state.js.map +1 -0
- package/dist/application/doctor/prepare.js +262 -0
- package/dist/application/doctor/prepare.js.map +1 -0
- package/dist/application/doctor/provider-installation.js +124 -0
- package/dist/application/doctor/provider-installation.js.map +1 -0
- package/dist/application/doctor/provider-mcps.js +650 -0
- package/dist/application/doctor/provider-mcps.js.map +1 -0
- package/dist/application/doctor/provider-plugins-hooks.js +112 -0
- package/dist/application/doctor/provider-plugins-hooks.js.map +1 -0
- package/dist/application/doctor/provider-skills.js +212 -0
- package/dist/application/doctor/provider-skills.js.map +1 -0
- package/dist/application/doctor/provider-tools-auth.js +201 -0
- package/dist/application/doctor/provider-tools-auth.js.map +1 -0
- package/dist/application/doctor/provider-visibility.js +149 -0
- package/dist/application/doctor/provider-visibility.js.map +1 -0
- package/dist/application/doctor/repair-runner.js +169 -0
- package/dist/application/doctor/repair-runner.js.map +1 -0
- package/dist/application/doctor/report.js +155 -0
- package/dist/application/doctor/report.js.map +1 -0
- package/dist/application/doctor/types.js +5 -0
- package/dist/application/doctor/types.js.map +1 -0
- package/dist/application/flow/advance.js +152 -13
- package/dist/application/flow/advance.js.map +1 -1
- package/dist/application/flow/flow-service.js +18 -7
- package/dist/application/flow/flow-service.js.map +1 -1
- package/dist/application/flow/internal-actions.js +167 -7
- package/dist/application/flow/internal-actions.js.map +1 -1
- package/dist/application/flow/run-projection.js +6 -1
- package/dist/application/flow/run-projection.js.map +1 -1
- package/dist/application/flow/submit.js +330 -7
- package/dist/application/flow/submit.js.map +1 -1
- package/dist/application/mcp-doctor-service.js +1 -1
- package/dist/application/mcp-doctor-service.js.map +1 -1
- package/dist/application/mcp-host-reader.js +134 -26
- package/dist/application/mcp-host-reader.js.map +1 -1
- package/dist/application/mcp-host-receipt-service.js +9 -7
- package/dist/application/mcp-host-receipt-service.js.map +1 -1
- package/dist/application/plan-current-point.js +54 -0
- package/dist/application/plan-current-point.js.map +1 -0
- package/dist/application/plan-exec-decision-service.js +143 -4
- package/dist/application/plan-exec-decision-service.js.map +1 -1
- package/dist/application/plan-locator.js +78 -0
- package/dist/application/plan-locator.js.map +1 -0
- package/dist/application/plan-open-run.js +129 -0
- package/dist/application/plan-open-run.js.map +1 -0
- package/dist/application/reseal-service.js +14 -44
- package/dist/application/reseal-service.js.map +1 -1
- package/dist/application/resume-service.js +9 -3
- package/dist/application/resume-service.js.map +1 -1
- package/dist/application/self/install-skill.js +10 -2
- package/dist/application/self/install-skill.js.map +1 -1
- package/dist/application/self/mcp-config.js +1 -1
- package/dist/application/self/mcp-config.js.map +1 -1
- package/dist/application/session-narrative.js +15 -0
- package/dist/application/session-narrative.js.map +1 -1
- package/dist/application/settle-service.js +442 -0
- package/dist/application/settle-service.js.map +1 -0
- package/dist/application/source-boundary-policy.js +87 -6
- package/dist/application/source-boundary-policy.js.map +1 -1
- package/dist/application/workline-index-service.js +165 -62
- package/dist/application/workline-index-service.js.map +1 -1
- package/dist/cli/commands/amend.js +122 -0
- package/dist/cli/commands/amend.js.map +1 -0
- package/dist/cli/commands/doctor.js +300 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/index.js +6 -0
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/settle.js +197 -0
- package/dist/cli/commands/settle.js.map +1 -0
- package/dist/cli/commands/status.js +2 -0
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/dispatch-plan.js +47 -0
- package/dist/cli/dispatch-plan.js.map +1 -0
- package/dist/cli/help-groups.js +15 -0
- package/dist/cli/help-groups.js.map +1 -1
- package/dist/cli/main.js +54 -10
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/parser.js +26 -0
- package/dist/cli/parser.js.map +1 -1
- package/dist/domain/decision-note.js +166 -3
- package/dist/domain/decision-note.js.map +1 -1
- package/dist/domain/decision-preview.js.map +1 -1
- package/dist/domain/doctor/auth.js +65 -0
- package/dist/domain/doctor/auth.js.map +1 -0
- package/dist/domain/doctor/model.js +82 -0
- package/dist/domain/doctor/model.js.map +1 -0
- package/dist/domain/doctor/operations.js +114 -0
- package/dist/domain/doctor/operations.js.map +1 -0
- package/dist/domain/effective-contract.js +4 -3
- package/dist/domain/effective-contract.js.map +1 -1
- package/dist/domain/flow/answer.js +10 -0
- package/dist/domain/flow/answer.js.map +1 -1
- package/dist/domain/flow/authority.js +124 -0
- package/dist/domain/flow/authority.js.map +1 -1
- package/dist/domain/flow/directive.js +8 -1
- package/dist/domain/flow/directive.js.map +1 -1
- package/dist/domain/flow/run-state.js +276 -34
- package/dist/domain/flow/run-state.js.map +1 -1
- package/dist/domain/obligation-correspondence.js +95 -0
- package/dist/domain/obligation-correspondence.js.map +1 -0
- package/dist/domain/reconciliation.js +142 -25
- package/dist/domain/reconciliation.js.map +1 -1
- package/dist/domain/redaction.js +40 -0
- package/dist/domain/redaction.js.map +1 -1
- package/dist/domain/settlement.js +129 -0
- package/dist/domain/settlement.js.map +1 -0
- package/package.json +1 -1
- package/skills/w/SKILL.md +2 -1
- package/skills/w/commands/README.md +2 -1
- package/skills/w/commands/doctor.md +31 -0
- package/skills/w/commands/resume.md +2 -2
- package/skills/w/context/MANIFEST.json +4 -0
- package/skills/w/loops/plan-exec-loop/LOOP.md +31 -0
package/dist/cli/parser.js
CHANGED
|
@@ -50,6 +50,12 @@ const MULTI_VALUE_FLAGS = new Set([
|
|
|
50
50
|
// Repeated `--path` (attach/detach-multiroot) and `--pattern` (code-scan).
|
|
51
51
|
"path",
|
|
52
52
|
"pattern",
|
|
53
|
+
// Repeated `--settle`, `--handoff` y `--pending` (settle): un plan debe tantas
|
|
54
|
+
// obligaciones como deba, y quedarse con la última dejaría el resto sin saldar
|
|
55
|
+
// mientras el comando informa que saldó.
|
|
56
|
+
"settle",
|
|
57
|
+
"handoff",
|
|
58
|
+
"pending",
|
|
53
59
|
// Repeated `--signal` and `--capability` (context-plan): a journey carries as
|
|
54
60
|
// many signals as it carries, and a host declares as many capabilities as it has.
|
|
55
61
|
"signal",
|
|
@@ -57,6 +63,15 @@ const MULTI_VALUE_FLAGS = new Set([
|
|
|
57
63
|
// Repeated `--input` (capability): an operation takes as many inputs as its
|
|
58
64
|
// descriptor declares, and a single-value routing would keep only the last.
|
|
59
65
|
"input",
|
|
66
|
+
// Repeated `--only` (doctor): the flag names the SET of hosts a run is
|
|
67
|
+
// restricted to. Without this, `aw doctor --only claude-code --only codex`
|
|
68
|
+
// kept the last one and produced a report over ONE host that looks exactly
|
|
69
|
+
// like a complete one — the silent-drop family of `--source`/`--path`.
|
|
70
|
+
"only",
|
|
71
|
+
// Repeated `--select` (doctor prepare/apply): la selección ES un conjunto de
|
|
72
|
+
// hallazgos, y quedarse con el último sellaría un lote de UNA acción
|
|
73
|
+
// indistinguible del que la persona creía estar aprobando.
|
|
74
|
+
"select",
|
|
60
75
|
]);
|
|
61
76
|
// Flag names (without leading `--`) that are booleans: their presence is the
|
|
62
77
|
// value, so they must NEVER consume the following token. Without this the parser
|
|
@@ -67,6 +82,17 @@ const MULTI_VALUE_FLAGS = new Set([
|
|
|
67
82
|
// changes no value semantics.)
|
|
68
83
|
const BOOLEAN_FLAGS = new Set([
|
|
69
84
|
"all",
|
|
85
|
+
// The global alias `aw --doctor`. Without it `consumeOptionFlag` eats the next
|
|
86
|
+
// token WITHOUT a leading dash as its value: `aw --doctor extra` would swallow
|
|
87
|
+
// `extra` — the command the person typed — and run the diagnosis instead of
|
|
88
|
+
// reporting an unknown command. A following `--json` was never at risk:
|
|
89
|
+
// `consumeOptionFlag` already refuses a dash-prefixed token as a value.
|
|
90
|
+
"doctor",
|
|
91
|
+
"skip-native",
|
|
92
|
+
// `--verify-connection` autoriza salir de la máquina para verificar una
|
|
93
|
+
// credencial, y no lleva valor. Sin declararlo, `aw doctor --verify-connection
|
|
94
|
+
// prepare` se comería `prepare` como su valor y correría el informe.
|
|
95
|
+
"verify-connection",
|
|
70
96
|
"verbose",
|
|
71
97
|
"dry-run",
|
|
72
98
|
"deep",
|
package/dist/cli/parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/cli/parser.ts"],"names":[],"mappings":"AAeA;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,IAAgB,EAAE,IAAY;IACtD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC5E,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAgB;IAEhB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACzC,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QAChE,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,gBAAgB,IAAI,uBAAuB,KAAK,yDAAyD;SACnH,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,IAAI,KAAK,CAAC;IAC7B,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1E,CAAC;AAED,4EAA4E;AAC5E,4EAA4E;AAC5E,oCAAoC;AACpC,EAAE;AACF,+EAA+E;AAC/E,2EAA2E;AAC3E,mDAAmD;AACnD,MAAM,iBAAiB,GAAwB,IAAI,GAAG,CAAC;IACrD,QAAQ;IACR,QAAQ;IACR,gBAAgB;IAChB,WAAW;IACX,2EAA2E;IAC3E,MAAM;IACN,SAAS;IACT,8EAA8E;IAC9E,kFAAkF;IAClF,QAAQ;IACR,YAAY;IACZ,4EAA4E;IAC5E,4EAA4E;IAC5E,OAAO;
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/cli/parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,84 @@
|
|
|
1
1
|
import { CRITERION_GLOBAL, isDigest } from "./design/identity.js";
|
|
2
2
|
import { sealedRecordDigest } from "./sealed-record.js";
|
|
3
|
+
/**
|
|
4
|
+
* A DECISION NOTE: the durable record of a divergence that was reconciled
|
|
5
|
+
* forward instead of sent back to `plan-refine` or `spec-refine`.
|
|
6
|
+
*
|
|
7
|
+
* The form is deliberately the one design governance already uses: a sealed
|
|
8
|
+
* record that lives OUTSIDE the thing it decides on, naming that thing by
|
|
9
|
+
* identity AND by the digest it had. A note stored inside its spec or plan would
|
|
10
|
+
* change that document's digest, so the contract being amended would no longer
|
|
11
|
+
* be the contract that was amended — the same trap `DesignReview` was shaped to
|
|
12
|
+
* avoid, one level up.
|
|
13
|
+
*
|
|
14
|
+
* Two rules give the chain its meaning:
|
|
15
|
+
*
|
|
16
|
+
* - **Complete or rejected.** Every field below is mandatory and each absence
|
|
17
|
+
* has its OWN code. A note missing its resume point is not a slightly worse
|
|
18
|
+
* note: it is a decision nobody can act on, and accepting it would put an
|
|
19
|
+
* authoritative record in the chain that the composition later has to guess
|
|
20
|
+
* about.
|
|
21
|
+
* - **Append-only.** Correcting a note never rewrites it. It publishes another
|
|
22
|
+
* note that names the one it replaces, so the history of what was decided
|
|
23
|
+
* stays readable and only the EFFECTIVE reading changes.
|
|
24
|
+
*/
|
|
25
|
+
/**
|
|
26
|
+
* WHAT AN OBLIGATION IS FOR, which is not the same as what it says.
|
|
27
|
+
*
|
|
28
|
+
* A note that reconciles forward can leave two very different things owing, and
|
|
29
|
+
* before this they were the same list of sentences: work THIS lineage still has
|
|
30
|
+
* to do, and work it hands to somebody else. Counting both as pending is what
|
|
31
|
+
* left a finished plan neither executable nor closable — the handoff could never
|
|
32
|
+
* be discharged from inside the run, so the run could never close.
|
|
33
|
+
*
|
|
34
|
+
* `compensation` is owed by the lineage and blocks its closure until settled.
|
|
35
|
+
* `handoff` is owed by somebody outside it: it stays visible, and it never
|
|
36
|
+
* blocks. The class is stated by whoever writes the note, because only they know
|
|
37
|
+
* which of the two they meant.
|
|
38
|
+
*/
|
|
39
|
+
export const OBLIGATION_KINDS = ["compensation", "handoff"];
|
|
3
40
|
export const NOTE_SCHEMA = "workline.decision-note/v1";
|
|
4
41
|
const NOTE_ID_RE = /^DEC-(?:[0-9]{3}|[1-9][0-9]{3,})$/;
|
|
5
42
|
const CALENDAR_DATE_RE = /^\d{4}-\d{2}-\d{2}$/;
|
|
6
43
|
const CRITERION_RE = new RegExp(`^${CRITERION_GLOBAL.source}$`);
|
|
44
|
+
/**
|
|
45
|
+
* The wire form of one obligation: the shape it has ON DISK.
|
|
46
|
+
*
|
|
47
|
+
* An obligation nobody classified goes back out as the bare string it came in
|
|
48
|
+
* as. That is not nostalgia for the old format — it is the only way a note
|
|
49
|
+
* published years ago keeps the digest it was sealed with. Normalizing it into
|
|
50
|
+
* an object on read and writing that object back would re-seal every legacy
|
|
51
|
+
* record in the chain, and a chain whose records no longer verify is exactly
|
|
52
|
+
* what the append-only rule exists to prevent.
|
|
53
|
+
*/
|
|
54
|
+
export function obligationToWire(obligation) {
|
|
55
|
+
return obligation.declared ? { text: obligation.text, kind: obligation.kind } : obligation.text;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* The obligations as they are WRITTEN — read back to their bytes, or left
|
|
59
|
+
* exactly as they came when they cannot be read at all.
|
|
60
|
+
*
|
|
61
|
+
* Left as they came, and never replaced by `[]`: a draft that forgot to say
|
|
62
|
+
* what work it creates and one that says "none" are opposite claims, and
|
|
63
|
+
* sealing the first as the second would put the difference beyond anybody's
|
|
64
|
+
* reach. So the unreadable value travels into the digest untouched and
|
|
65
|
+
* {@link validateDecisionNote} refuses it under its own code — a refusal
|
|
66
|
+
* somebody can act on, where a crash would be one nobody can.
|
|
67
|
+
*/
|
|
68
|
+
function wireObligations(value) {
|
|
69
|
+
const read = normalizeObligations(value);
|
|
70
|
+
return read === null ? value : read.map(obligationToWire);
|
|
71
|
+
}
|
|
72
|
+
/** The note as it is written and sealed — normalized fields back to their bytes. */
|
|
73
|
+
export function noteToWire(note) {
|
|
74
|
+
return { ...note, obligations: wireObligations(note.obligations) };
|
|
75
|
+
}
|
|
7
76
|
/** The note's own digest, by the SAME code every sealed record uses. */
|
|
8
77
|
export function computeNoteDigest(note) {
|
|
9
|
-
return sealedRecordDigest(
|
|
78
|
+
return sealedRecordDigest({
|
|
79
|
+
...note,
|
|
80
|
+
obligations: wireObligations(note.obligations),
|
|
81
|
+
});
|
|
10
82
|
}
|
|
11
83
|
/**
|
|
12
84
|
* Read a note, refusing anything incomplete under its own code.
|
|
@@ -43,7 +115,7 @@ export function validateDecisionNote(raw) {
|
|
|
43
115
|
const consumers = requireList(raw.consumers, "consumers", "NOTE_CONSUMERS_MISSING", "enumerá los planes alcanzados; [] si no alcanza a ninguno", fail);
|
|
44
116
|
const preserved = requireList(raw.evidence_preserved, "evidence_preserved", "NOTE_EVIDENCE_PRESERVED_MISSING", "enumerá la evidencia que sigue valiendo; [] si ninguna", fail);
|
|
45
117
|
const invalidated = requireList(raw.evidence_invalidated, "evidence_invalidated", "NOTE_EVIDENCE_INVALIDATED_MISSING", "enumerá la evidencia que dejó de valer; [] si ninguna", fail);
|
|
46
|
-
const obligations =
|
|
118
|
+
const obligations = readObligations(raw.obligations, fail);
|
|
47
119
|
requireText(raw.resume_point, "resume_point", "NOTE_RESUME_POINT_MISSING", "decí desde dónde sigue la ejecución", fail);
|
|
48
120
|
if (typeof raw.date !== "string" || !CALENDAR_DATE_RE.test(raw.date)) {
|
|
49
121
|
fail("NOTE_DATE_INVALID", "'date' debe ser una fecha AAAA-MM-DD", "la cadena se ordena por fecha e id: sin fecha válida el orden es una opinión");
|
|
@@ -142,7 +214,11 @@ export function sameDecision(a, b) {
|
|
|
142
214
|
return canonicalDecision(a) === canonicalDecision(b);
|
|
143
215
|
}
|
|
144
216
|
function canonicalDecision(note) {
|
|
145
|
-
|
|
217
|
+
// Over the WIRE form, like every other seal in this module: a note just
|
|
218
|
+
// sealed from a draft and the same note read back out of the chain differ
|
|
219
|
+
// only in how their obligations are held in memory, and comparing those two
|
|
220
|
+
// shapes would call an interrupted run's retry a brand-new decision.
|
|
221
|
+
const { id: _id, digest: _digest, ...rest } = noteToWire(note);
|
|
146
222
|
return sealedRecordDigest(rest);
|
|
147
223
|
}
|
|
148
224
|
/** The notes still in force: every one nobody later superseded. */
|
|
@@ -165,6 +241,93 @@ function requireList(value, field, code, action, fail) {
|
|
|
165
241
|
}
|
|
166
242
|
return value;
|
|
167
243
|
}
|
|
244
|
+
/**
|
|
245
|
+
* Read `obligations` in either form, and remember which one it was.
|
|
246
|
+
*
|
|
247
|
+
* Both are accepted on READ and only one on write (see
|
|
248
|
+
* {@link checkObligationsDeclared}): a chain already published is data nobody
|
|
249
|
+
* can go back and re-state, while a note being minted now has an author who can.
|
|
250
|
+
*/
|
|
251
|
+
function readObligations(value, fail) {
|
|
252
|
+
if (!Array.isArray(value)) {
|
|
253
|
+
fail("NOTE_OBLIGATIONS_MISSING", "'obligations' es obligatorio y debe ser una lista", "enumerá el trabajo que nace, cada uno como { text, kind } con kind 'compensation' o 'handoff'; [] si ninguno");
|
|
254
|
+
return null;
|
|
255
|
+
}
|
|
256
|
+
const out = [];
|
|
257
|
+
for (const [i, entry] of value.entries()) {
|
|
258
|
+
const read = readObligation(entry);
|
|
259
|
+
if (read === null) {
|
|
260
|
+
fail("NOTE_OBLIGATIONS_INVALID", `'obligations[${i}]' no es ni un texto no vacío ni un { text, kind } con kind ${OBLIGATION_KINDS.join(" o ")}`, "una obligación dice qué trabajo nace y de qué clase es; el texto suelto sólo se lee, para las notas ya publicadas");
|
|
261
|
+
return null;
|
|
262
|
+
}
|
|
263
|
+
out.push(read);
|
|
264
|
+
}
|
|
265
|
+
return out;
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* One obligation in either form — the legacy text or the classed object — or
|
|
269
|
+
* `null` when it is neither.
|
|
270
|
+
*
|
|
271
|
+
* IDEMPOTENT: a value that already carries `declared` keeps it, so reading an
|
|
272
|
+
* obligation this module already read never promotes a legacy `false` to `true`
|
|
273
|
+
* and never moves the note's seal.
|
|
274
|
+
*
|
|
275
|
+
* And an undeclared obligation gets the SAFE class, whatever else the record
|
|
276
|
+
* says. `declared: false` is not a field of either on-disk shape — it only
|
|
277
|
+
* appears on a value already read — so a record spelling it alongside a class
|
|
278
|
+
* is claiming a reading it does not have. Honouring that class would let bytes
|
|
279
|
+
* that seal as the legacy form read as the classed one, and two surfaces would
|
|
280
|
+
* disagree about the same record. The class it declares is ignored instead:
|
|
281
|
+
* nothing is gained by writing it.
|
|
282
|
+
*/
|
|
283
|
+
function readObligation(value) {
|
|
284
|
+
if (typeof value === "string") {
|
|
285
|
+
return value.length === 0 ? null : { text: value, kind: "compensation", declared: false };
|
|
286
|
+
}
|
|
287
|
+
if (!isRecord(value))
|
|
288
|
+
return null;
|
|
289
|
+
const { text, kind, declared } = value;
|
|
290
|
+
if (typeof text !== "string" || text.length === 0)
|
|
291
|
+
return null;
|
|
292
|
+
if (typeof kind !== "string" || !OBLIGATION_KINDS.includes(kind))
|
|
293
|
+
return null;
|
|
294
|
+
const stated = typeof declared === "boolean" ? declared : true;
|
|
295
|
+
return { text, kind: stated ? kind : "compensation", declared: stated };
|
|
296
|
+
}
|
|
297
|
+
/** The whole list in either form, or `null` when any entry is neither. */
|
|
298
|
+
export function normalizeObligations(value) {
|
|
299
|
+
if (!Array.isArray(value))
|
|
300
|
+
return null;
|
|
301
|
+
const out = [];
|
|
302
|
+
for (const entry of value) {
|
|
303
|
+
const read = readObligation(entry);
|
|
304
|
+
if (read === null)
|
|
305
|
+
return null;
|
|
306
|
+
out.push(read);
|
|
307
|
+
}
|
|
308
|
+
return out;
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* The write path's own rule: a NOTE BEING MINTED states every class.
|
|
312
|
+
*
|
|
313
|
+
* Read tolerance and write strictness are not in tension — they are the same
|
|
314
|
+
* decision seen from the two ends of the chain. What is already published cannot
|
|
315
|
+
* be re-stated by anybody, so it is read with the safe default; what is being
|
|
316
|
+
* written has an author in front of it, and letting them omit the class would
|
|
317
|
+
* mint tomorrow's legacy note today.
|
|
318
|
+
*/
|
|
319
|
+
export function checkObligationsDeclared(note) {
|
|
320
|
+
const bare = note.obligations.filter((obligation) => !obligation.declared);
|
|
321
|
+
if (bare.length === 0)
|
|
322
|
+
return [];
|
|
323
|
+
return [
|
|
324
|
+
{
|
|
325
|
+
code: "NOTE_OBLIGATION_KIND_MISSING",
|
|
326
|
+
message: `${note.id} anexa obligaciones sin clase: ${bare.map((o) => o.text).join("; ")}`,
|
|
327
|
+
action: "declará cada obligación como { text, kind }: 'compensation' es trabajo que este linaje debe y bloquea su cierre, 'handoff' es trabajo que queda a cargo de otra gente y no lo bloquea",
|
|
328
|
+
},
|
|
329
|
+
];
|
|
330
|
+
}
|
|
168
331
|
function readScope(value, fail) {
|
|
169
332
|
if (value !== "functional" && value !== "plan-only") {
|
|
170
333
|
fail("NOTE_SCOPE_INVALID", "'scope' debe ser 'functional' o 'plan-only'", "decí si la decisión cambia lo prometido o sólo el camino para llegar");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decision-note.js","sourceRoot":"","sources":["../../src/domain/decision-note.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AA8ExD,MAAM,CAAC,MAAM,WAAW,GAAG,2BAA2B,CAAC;AAEvD,MAAM,UAAU,GAAG,mCAAmC,CAAC;AACvD,MAAM,gBAAgB,GAAG,qBAAqB,CAAC;AAC/C,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;AAchE,wEAAwE;AACxE,MAAM,UAAU,iBAAiB,CAAC,IAAkC;IAClE,OAAO,kBAAkB,CAAC,IAA0C,CAAC,CAAC;AACxE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAY;IAC/C,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,OAAe,EAAE,MAAc,EAAQ,EAAE;QACnE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC;IACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACnB,IAAI,CACF,iBAAiB,EACjB,0CAA0C,EAC1C,oDAAoD,CACrD,CAAC;QACF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC9C,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QAC/B,4EAA4E;QAC5E,6EAA6E;QAC7E,8BAA8B;QAC9B,IAAI,CACF,qBAAqB,EACrB,oCAAoC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAChE,0BAA0B,WAAW,EAAE,CACxC,CAAC;QACF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC9C,CAAC;IAED,IAAI,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QAC3D,IAAI,CAAC,iBAAiB,EAAE,uBAAuB,EAAE,6BAA6B,CAAC,CAAC;IAClF,CAAC;IACD,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/C,WAAW,CACT,GAAG,CAAC,QAAQ,EACZ,UAAU,EACV,uBAAuB,EACvB,8BAA8B,EAC9B,IAAI,CACL,CAAC;IACF,WAAW,CACT,GAAG,CAAC,MAAM,EACV,QAAQ,EACR,qBAAqB,EACrB,uCAAuC,EACvC,IAAI,CACL,CAAC;IACF,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;IACnE,MAAM,cAAc,GAAG,kBAAkB,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,WAAW,CAC3B,GAAG,CAAC,SAAS,EACb,WAAW,EACX,wBAAwB,EACxB,2DAA2D,EAC3D,IAAI,CACL,CAAC;IACF,MAAM,SAAS,GAAG,WAAW,CAC3B,GAAG,CAAC,kBAAkB,EACtB,oBAAoB,EACpB,iCAAiC,EACjC,wDAAwD,EACxD,IAAI,CACL,CAAC;IACF,MAAM,WAAW,GAAG,WAAW,CAC7B,GAAG,CAAC,oBAAoB,EACxB,sBAAsB,EACtB,mCAAmC,EACnC,uDAAuD,EACvD,IAAI,CACL,CAAC;IACF,MAAM,WAAW,GAAG,WAAW,CAC7B,GAAG,CAAC,WAAW,EACf,aAAa,EACb,0BAA0B,EAC1B,0DAA0D,EAC1D,IAAI,CACL,CAAC;IACF,WAAW,CACT,GAAG,CAAC,YAAY,EAChB,cAAc,EACd,2BAA2B,EAC3B,qCAAqC,EACrC,IAAI,CACL,CAAC;IACF,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACrE,IAAI,CACF,mBAAmB,EACnB,sCAAsC,EACtC,8EAA8E,CAC/E,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAErE,MAAM,KAAK,GAAiB;QAC1B,MAAM,EAAE,WAAW;QACnB,EAAE,EAAE,GAAG,CAAC,EAAY;QACpB,OAAO,EAAE,OAAsB;QAC/B,QAAQ,EAAE,GAAG,CAAC,QAAkB;QAChC,MAAM,EAAE,GAAG,CAAC,MAAgB;QAC5B,qBAAqB,EAAE,UAAsB;QAC7C,eAAe,EAAE,cAAc;QAC/B,KAAK,EAAE,KAAkB;QACzB,SAAS,EAAE,SAAqB;QAChC,kBAAkB,EAAE,SAAqB;QACzC,oBAAoB,EAAE,WAAuB;QAC7C,WAAW,EAAE,WAAuB;QACpC,YAAY,EAAE,GAAG,CAAC,YAAsB;QACxC,IAAI,EAAE,GAAG,CAAC,IAAc;QACxB,MAAM,EAAE,EAAE;KACX,CAAC;IACF,MAAM,QAAQ,GAAG,iBAAiB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9D,IAAI,CAAC,qBAAqB,EAAE,yBAAyB,EAAE,qBAAqB,QAAQ,EAAE,CAAC,CAAC;QACxF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC9C,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC5B,IAAI,CACF,sBAAsB,EACtB,oDAAoD,EACpD,qEAAqE,QAAQ,EAAE,CAChF,CAAC;QACF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC9C,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC;AACzE,CAAC;AAED,SAAS,WAAW,CAAC,IAAkB;IACrC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IACxC,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,KAA8B;IACvD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC9B,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC1E,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,CAAS,EAAE,CAAS;IAC1C,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;AAC5D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,KAA8B,EAC9B,QAAsB;IAEtB,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3D,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;QAC1B,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,wBAAwB;YAC9B,OAAO,EAAE,GAAG,QAAQ,CAAC,EAAE,mCAAmC;YAC1D,MAAM,EACJ,wFAAwF;SAC3F,CAAC,CAAC;IACL,CAAC;IACD,IAAI,QAAQ,CAAC,eAAe,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QAC7E,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,wBAAwB;YAC9B,OAAO,EAAE,GAAG,QAAQ,CAAC,EAAE,qBAAqB,QAAQ,CAAC,eAAe,4BAA4B;YAChG,MAAM,EAAE,8DAA8D;SACvE,CAAC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,YAAY,CAAC,CAAe,EAAE,CAAe;IAC3D,OAAO,iBAAiB,CAAC,CAAC,CAAC,KAAK,iBAAiB,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAkB;IAC3C,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IACnD,OAAO,kBAAkB,CAAC,IAA0C,CAAC,CAAC;AACxE,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,cAAc,CAAC,KAA8B;IAC3D,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,CACpF,CAAC;IACF,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AACtE,CAAC;AAMD,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,WAAW,CAClB,KAAc,EACd,KAAa,EACb,IAAY,EACZ,MAAc,EACd,IAAU;IAEV,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3D,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,yCAAyC,EAAE,MAAM,CAAC,CAAC;IACzE,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAClB,KAAc,EACd,KAAa,EACb,IAAY,EACZ,MAAc,EACd,IAAU;IAEV,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;QACxF,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,kDAAkD,EAAE,MAAM,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAiB,CAAC;AAC3B,CAAC;AAED,SAAS,SAAS,CAAC,KAAc,EAAE,IAAU;IAC3C,IAAI,KAAK,KAAK,YAAY,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;QACpD,IAAI,CACF,oBAAoB,EACpB,6CAA6C,EAC7C,sEAAsE,CACvE,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc,EAAE,IAAU;IACpD,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,IAAI,CACF,yBAAyB,EACzB,8CAA8C,EAC9C,mDAAmD,CACpD,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,KAAc,EAAE,IAAU;IAChD,MAAM,IAAI,GAAG,WAAW,CACtB,KAAK,EACL,uBAAuB,EACvB,yBAAyB,EACzB,oFAAoF,EACpF,IAAI,CACL,CAAC;IACF,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,IAAI,CACF,yBAAyB,EACzB,+DAA+D,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EACjF,kGAAkG,CACnG,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QACvC,IAAI,CACF,2BAA2B,EAC3B,+CAA+C,EAC/C,iEAAiE,CAClE,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,UAAU,CAAC,KAAc,EAAE,IAAqB,EAAE,IAAU;IACnE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,IAAI,CACF,sBAAsB,EACtB,YAAY,IAAI,kBAAkB,EAClC,YAAY,IAAI,iDAAiD,CAClE,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACvC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAChF,IAAI,CACF,sBAAsB,EACtB,YAAY,IAAI,8BAA8B,EAC9C,kDAAkD,CACnD,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,IAAI,CACF,6BAA6B,EAC7B,YAAY,IAAI,qDAAqD,EACrE,mEAAmE,CACpE,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAClC,CAAC;AAED,SAAS,WAAW,CAAC,KAAc,EAAE,IAAU;IAC7C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,IAAI,CACF,sBAAsB,EACtB,0BAA0B,EAC1B,gEAAgE,CACjE,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAClC,IACE,CAAC,QAAQ,CAAC,SAAS,CAAC;QACpB,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ;QACrC,SAAS,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAC9B,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ;QACnC,SAAS,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAC5B,CAAC;QACD,IAAI,CACF,8BAA8B,EAC9B,kDAAkD,EAClD,iEAAiE,CAClE,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC;AAC3F,CAAC"}
|
|
1
|
+
{"version":3,"file":"decision-note.js","sourceRoot":"","sources":["../../src/domain/decision-note.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,cAAc,EAAE,SAAS,CAAU,CAAC;AAyErE,MAAM,CAAC,MAAM,WAAW,GAAG,2BAA2B,CAAC;AAEvD,MAAM,UAAU,GAAG,mCAAmC,CAAC;AACvD,MAAM,gBAAgB,GAAG,qBAAqB,CAAC;AAC/C,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;AAchE;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAC9B,UAA0B;IAE1B,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;AAClG,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,eAAe,CAAC,KAAc;IACrC,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAC5D,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,UAAU,CAAC,IAAkB;IAC3C,OAAO,EAAE,GAAG,IAAI,EAAE,WAAW,EAAE,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;AACrE,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,iBAAiB,CAAC,IAAkC;IAClE,OAAO,kBAAkB,CAAC;QACxB,GAAG,IAAI;QACP,WAAW,EAAE,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC;KACT,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAY;IAC/C,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,OAAe,EAAE,MAAc,EAAQ,EAAE;QACnE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC;IACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACnB,IAAI,CACF,iBAAiB,EACjB,0CAA0C,EAC1C,oDAAoD,CACrD,CAAC;QACF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC9C,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QAC/B,4EAA4E;QAC5E,6EAA6E;QAC7E,8BAA8B;QAC9B,IAAI,CACF,qBAAqB,EACrB,oCAAoC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAChE,0BAA0B,WAAW,EAAE,CACxC,CAAC;QACF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC9C,CAAC;IAED,IAAI,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QAC3D,IAAI,CAAC,iBAAiB,EAAE,uBAAuB,EAAE,6BAA6B,CAAC,CAAC;IAClF,CAAC;IACD,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/C,WAAW,CACT,GAAG,CAAC,QAAQ,EACZ,UAAU,EACV,uBAAuB,EACvB,8BAA8B,EAC9B,IAAI,CACL,CAAC;IACF,WAAW,CACT,GAAG,CAAC,MAAM,EACV,QAAQ,EACR,qBAAqB,EACrB,uCAAuC,EACvC,IAAI,CACL,CAAC;IACF,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;IACnE,MAAM,cAAc,GAAG,kBAAkB,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,WAAW,CAC3B,GAAG,CAAC,SAAS,EACb,WAAW,EACX,wBAAwB,EACxB,2DAA2D,EAC3D,IAAI,CACL,CAAC;IACF,MAAM,SAAS,GAAG,WAAW,CAC3B,GAAG,CAAC,kBAAkB,EACtB,oBAAoB,EACpB,iCAAiC,EACjC,wDAAwD,EACxD,IAAI,CACL,CAAC;IACF,MAAM,WAAW,GAAG,WAAW,CAC7B,GAAG,CAAC,oBAAoB,EACxB,sBAAsB,EACtB,mCAAmC,EACnC,uDAAuD,EACvD,IAAI,CACL,CAAC;IACF,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAC3D,WAAW,CACT,GAAG,CAAC,YAAY,EAChB,cAAc,EACd,2BAA2B,EAC3B,qCAAqC,EACrC,IAAI,CACL,CAAC;IACF,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACrE,IAAI,CACF,mBAAmB,EACnB,sCAAsC,EACtC,8EAA8E,CAC/E,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAErE,MAAM,KAAK,GAAiB;QAC1B,MAAM,EAAE,WAAW;QACnB,EAAE,EAAE,GAAG,CAAC,EAAY;QACpB,OAAO,EAAE,OAAsB;QAC/B,QAAQ,EAAE,GAAG,CAAC,QAAkB;QAChC,MAAM,EAAE,GAAG,CAAC,MAAgB;QAC5B,qBAAqB,EAAE,UAAsB;QAC7C,eAAe,EAAE,cAAc;QAC/B,KAAK,EAAE,KAAkB;QACzB,SAAS,EAAE,SAAqB;QAChC,kBAAkB,EAAE,SAAqB;QACzC,oBAAoB,EAAE,WAAuB;QAC7C,WAAW,EAAE,WAA+B;QAC5C,YAAY,EAAE,GAAG,CAAC,YAAsB;QACxC,IAAI,EAAE,GAAG,CAAC,IAAc;QACxB,MAAM,EAAE,EAAE;KACX,CAAC;IACF,MAAM,QAAQ,GAAG,iBAAiB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9D,IAAI,CAAC,qBAAqB,EAAE,yBAAyB,EAAE,qBAAqB,QAAQ,EAAE,CAAC,CAAC;QACxF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC9C,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC5B,IAAI,CACF,sBAAsB,EACtB,oDAAoD,EACpD,qEAAqE,QAAQ,EAAE,CAChF,CAAC;QACF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC9C,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC;AACzE,CAAC;AAED,SAAS,WAAW,CAAC,IAAkB;IACrC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IACxC,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,KAA8B;IACvD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC9B,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC1E,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,CAAS,EAAE,CAAS;IAC1C,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;AAC5D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,KAA8B,EAC9B,QAAsB;IAEtB,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3D,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;QAC1B,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,wBAAwB;YAC9B,OAAO,EAAE,GAAG,QAAQ,CAAC,EAAE,mCAAmC;YAC1D,MAAM,EACJ,wFAAwF;SAC3F,CAAC,CAAC;IACL,CAAC;IACD,IAAI,QAAQ,CAAC,eAAe,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QAC7E,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,wBAAwB;YAC9B,OAAO,EAAE,GAAG,QAAQ,CAAC,EAAE,qBAAqB,QAAQ,CAAC,eAAe,4BAA4B;YAChG,MAAM,EAAE,8DAA8D;SACvE,CAAC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,YAAY,CAAC,CAAe,EAAE,CAAe;IAC3D,OAAO,iBAAiB,CAAC,CAAC,CAAC,KAAK,iBAAiB,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAkB;IAC3C,wEAAwE;IACxE,0EAA0E;IAC1E,4EAA4E;IAC5E,qEAAqE;IACrE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/D,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,cAAc,CAAC,KAA8B;IAC3D,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,CACpF,CAAC;IACF,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AACtE,CAAC;AAMD,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,WAAW,CAClB,KAAc,EACd,KAAa,EACb,IAAY,EACZ,MAAc,EACd,IAAU;IAEV,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3D,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,yCAAyC,EAAE,MAAM,CAAC,CAAC;IACzE,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAClB,KAAc,EACd,KAAa,EACb,IAAY,EACZ,MAAc,EACd,IAAU;IAEV,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;QACxF,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,kDAAkD,EAAE,MAAM,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAiB,CAAC;AAC3B,CAAC;AAED;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,KAAc,EAAE,IAAU;IACjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,IAAI,CACF,0BAA0B,EAC1B,mDAAmD,EACnD,8GAA8G,CAC/G,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,IAAI,CACF,0BAA0B,EAC1B,gBAAgB,CAAC,+DAA+D,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAC9G,mHAAmH,CACpH,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC5F,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IACvC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/D,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAsB,CAAC;QAAE,OAAO,IAAI,CAAC;IAChG,MAAM,MAAM,GAAG,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/D,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAE,IAAuB,CAAC,CAAC,CAAC,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAC9F,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC/B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAkB;IACzD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC3E,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,OAAO;QACL;YACE,IAAI,EAAE,8BAA8B;YACpC,OAAO,EAAE,GAAG,IAAI,CAAC,EAAE,kCAAkC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACzF,MAAM,EACJ,uLAAuL;SAC1L;KACF,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,KAAc,EAAE,IAAU;IAC3C,IAAI,KAAK,KAAK,YAAY,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;QACpD,IAAI,CACF,oBAAoB,EACpB,6CAA6C,EAC7C,sEAAsE,CACvE,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc,EAAE,IAAU;IACpD,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,IAAI,CACF,yBAAyB,EACzB,8CAA8C,EAC9C,mDAAmD,CACpD,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,KAAc,EAAE,IAAU;IAChD,MAAM,IAAI,GAAG,WAAW,CACtB,KAAK,EACL,uBAAuB,EACvB,yBAAyB,EACzB,oFAAoF,EACpF,IAAI,CACL,CAAC;IACF,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,IAAI,CACF,yBAAyB,EACzB,+DAA+D,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EACjF,kGAAkG,CACnG,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QACvC,IAAI,CACF,2BAA2B,EAC3B,+CAA+C,EAC/C,iEAAiE,CAClE,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,UAAU,CAAC,KAAc,EAAE,IAAqB,EAAE,IAAU;IACnE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,IAAI,CACF,sBAAsB,EACtB,YAAY,IAAI,kBAAkB,EAClC,YAAY,IAAI,iDAAiD,CAClE,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACvC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAChF,IAAI,CACF,sBAAsB,EACtB,YAAY,IAAI,8BAA8B,EAC9C,kDAAkD,CACnD,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,IAAI,CACF,6BAA6B,EAC7B,YAAY,IAAI,qDAAqD,EACrE,mEAAmE,CACpE,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAClC,CAAC;AAED,SAAS,WAAW,CAAC,KAAc,EAAE,IAAU;IAC7C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,IAAI,CACF,sBAAsB,EACtB,0BAA0B,EAC1B,gEAAgE,CACjE,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAClC,IACE,CAAC,QAAQ,CAAC,SAAS,CAAC;QACpB,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ;QACrC,SAAS,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAC9B,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ;QACnC,SAAS,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAC5B,CAAC;QACD,IAAI,CACF,8BAA8B,EAC9B,kDAAkD,EAClD,iEAAiE,CAClE,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC;AAC3F,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decision-preview.js","sourceRoot":"","sources":["../../src/domain/decision-preview.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAKpE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE9E;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAA2B;IAC7D,gBAAgB;IAChB,kBAAkB;CACnB,CAAC;
|
|
1
|
+
{"version":3,"file":"decision-preview.js","sourceRoot":"","sources":["../../src/domain/decision-preview.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { carriesSecretMaterial, isSecretFlag } from "../redaction.js";
|
|
2
|
+
/**
|
|
3
|
+
* Las clases que un flujo puede declarar sin romper la custodia.
|
|
4
|
+
*
|
|
5
|
+
* Correr un programa es lo que un flujo ES, y salir de la máquina es lo que un
|
|
6
|
+
* login hace. Cualquier clase que ESCRIBA —crear, pisar, destruir— significa que
|
|
7
|
+
* el flujo dejaría algo en disco, y lo único que un flujo de autenticación
|
|
8
|
+
* tendría para dejar es la credencial.
|
|
9
|
+
*/
|
|
10
|
+
const CUSTODY_SAFE_EFFECTS = new Set([
|
|
11
|
+
"execute",
|
|
12
|
+
"network_external",
|
|
13
|
+
]);
|
|
14
|
+
/**
|
|
15
|
+
* Por qué este flujo NO puede ejecutarse, o `null` si puede.
|
|
16
|
+
*
|
|
17
|
+
* Las tres formas en que un flujo declarado rompería la custodia, y las tres son
|
|
18
|
+
* expresables —por eso se comprueban acá y no se confían a una revisión—:
|
|
19
|
+
*
|
|
20
|
+
* 1. El secreto viaja en el `argv`. Se usan los MISMOS predicados que el recibo
|
|
21
|
+
* MCP: un valor con forma de credencial, o un flag que pide una. Un argumento
|
|
22
|
+
* queda en la tabla de procesos de la máquina y en el historial del shell, así
|
|
23
|
+
* que ahí el secreto ya se filtró antes de que el programa arranque.
|
|
24
|
+
* Los nombres se reconocen por la lista de claves sensibles del propio
|
|
25
|
+
* redactor, así que `--access-token`, `--client-secret`, `--credentials` y
|
|
26
|
+
* `--private-key` bloquean igual que `--token`. Lo que NINGUNA lista de
|
|
27
|
+
* nombres puede cubrir es un flag que no dice qué transporta (`--pat`, `-t`):
|
|
28
|
+
* ese residuo queda, y por eso esta comprobación no es la única defensa —
|
|
29
|
+
* también hace falta que el flujo sea interactivo, que es lo que hace
|
|
30
|
+
* innecesario poner el secreto en la línea de comandos.
|
|
31
|
+
* 2. El flujo no es interactivo. Un programa que no hereda la terminal no tiene
|
|
32
|
+
* de dónde leer la credencial salvo de lo que el CLI le pase —su entorno, su
|
|
33
|
+
* stdin, un archivo—, y entonces la custodia pasó a ser del CLI.
|
|
34
|
+
* 3. El flujo declara una clase que escribe. Lo único que un flujo de
|
|
35
|
+
* autenticación podría escribir es el secreto.
|
|
36
|
+
*
|
|
37
|
+
* Devuelve la razón y no un booleano porque el hallazgo la publica: «bloqueado
|
|
38
|
+
* por custodia» sin decir cuál de las tres es un informe que no se puede
|
|
39
|
+
* accionar.
|
|
40
|
+
*/
|
|
41
|
+
export function custodyViolation(flow) {
|
|
42
|
+
if (flow.argv.length === 0) {
|
|
43
|
+
return "el flujo declarado no tiene ningún programa que correr";
|
|
44
|
+
}
|
|
45
|
+
const secret = flow.argv.find((token) => isSecretFlag(token) || carriesSecretMaterial(token));
|
|
46
|
+
if (secret !== undefined) {
|
|
47
|
+
// El token NO se cita: es lo que se está acusando de ser un secreto.
|
|
48
|
+
return "el flujo pediría la credencial en un argumento de la línea de comandos, donde queda a la vista de toda la máquina";
|
|
49
|
+
}
|
|
50
|
+
if (!flow.interactive) {
|
|
51
|
+
return "el flujo no hereda la terminal, así que la credencial tendría que pasar por el entorno o por un archivo que escribiría el CLI";
|
|
52
|
+
}
|
|
53
|
+
const writes = flow.effects.filter((effect) => !CUSTODY_SAFE_EFFECTS.has(effect));
|
|
54
|
+
if (writes.length > 0) {
|
|
55
|
+
return `el flujo declara efectos que escriben (${writes.join(", ")}), y lo único que tendría para escribir es la credencial`;
|
|
56
|
+
}
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
/** El estado de hallazgo que le corresponde a un estado de autenticación. */
|
|
60
|
+
export function authFindingState(state) {
|
|
61
|
+
if (state === "present")
|
|
62
|
+
return "healthy";
|
|
63
|
+
return state === "absent" ? "warning" : "unverified";
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/domain/doctor/auth.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAyFtE;;;;;;;GAOG;AACH,MAAM,oBAAoB,GAA6B,IAAI,GAAG,CAAc;IAC1E,SAAS;IACT,kBAAkB;CACnB,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAoB;IACnD,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,wDAAwD,CAAC;IAClE,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9F,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,qEAAqE;QACrE,OAAO,mHAAmH,CAAC;IAC7H,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACtB,OAAO,+HAA+H,CAAC;IACzI,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAClF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,0CAA0C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,0DAA0D,CAAC;IAC/H,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,gBAAgB,CAAC,KAAsB;IACrD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC;AACvD,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/** A new field raises this; a field is never renamed inside one version. */
|
|
2
|
+
export const DOCTOR_SCHEMA_VERSION = 1;
|
|
3
|
+
/**
|
|
4
|
+
* The six categories, in the order the report presents them.
|
|
5
|
+
*
|
|
6
|
+
* The order is part of the contract: two runs over the same environment produce
|
|
7
|
+
* byte-comparable reports, and a diff that reorders sections is a diff nobody
|
|
8
|
+
* can read.
|
|
9
|
+
*/
|
|
10
|
+
export const DOCTOR_CATEGORIES = [
|
|
11
|
+
"installation-hosts",
|
|
12
|
+
"mcps",
|
|
13
|
+
"skills",
|
|
14
|
+
"tools-auth",
|
|
15
|
+
"plugins-hooks",
|
|
16
|
+
"workspace-visibility",
|
|
17
|
+
];
|
|
18
|
+
/** `<host>/<category>/<resource>` — the id a selection names and a re-check finds again. */
|
|
19
|
+
export function doctorFindingId(host, category, resource) {
|
|
20
|
+
return `${host}/${category}/${resource}`;
|
|
21
|
+
}
|
|
22
|
+
const CATEGORY_ORDER = new Map(DOCTOR_CATEGORIES.map((category, index) => [category, index]));
|
|
23
|
+
/**
|
|
24
|
+
* The stable order, applied once over the consolidated report.
|
|
25
|
+
*
|
|
26
|
+
* Host order comes from the catalog and is passed in rather than recomputed:
|
|
27
|
+
* the hosts section and the findings section disagreeing about which host comes
|
|
28
|
+
* first is the kind of thing a person reads as two different environments.
|
|
29
|
+
*/
|
|
30
|
+
export function sortDoctorFindings(findings, hostOrder) {
|
|
31
|
+
const host = new Map(hostOrder.map((id, index) => [id, index]));
|
|
32
|
+
const rank = (id) => host.get(id) ?? host.size;
|
|
33
|
+
return [...findings].sort((left, right) => rank(left.host) - rank(right.host) ||
|
|
34
|
+
(CATEGORY_ORDER.get(left.category) ?? 0) - (CATEGORY_ORDER.get(right.category) ?? 0) ||
|
|
35
|
+
left.resource.name.localeCompare(right.resource.name) ||
|
|
36
|
+
left.id.localeCompare(right.id));
|
|
37
|
+
}
|
|
38
|
+
export function sortDoctorCoverage(coverage, hostOrder) {
|
|
39
|
+
const host = new Map(hostOrder.map((id, index) => [id, index]));
|
|
40
|
+
const rank = (id) => host.get(id) ?? host.size;
|
|
41
|
+
return [...coverage].sort((left, right) => (CATEGORY_ORDER.get(left.category) ?? 0) - (CATEGORY_ORDER.get(right.category) ?? 0) ||
|
|
42
|
+
rank(left.host) - rank(right.host) ||
|
|
43
|
+
left.host.localeCompare(right.host));
|
|
44
|
+
}
|
|
45
|
+
export function summarizeDoctorFindings(findings) {
|
|
46
|
+
const count = (state) => findings.filter((finding) => finding.state === state).length;
|
|
47
|
+
return {
|
|
48
|
+
healthy: count("healthy"),
|
|
49
|
+
warning: count("warning"),
|
|
50
|
+
blocking: count("blocking"),
|
|
51
|
+
unverified: count("unverified"),
|
|
52
|
+
actionable: findings.filter((finding) => finding.remediation.kind !== "none").length,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* The verdict, and it is the exit code.
|
|
57
|
+
*
|
|
58
|
+
* Two things make it 1: a blocking finding, and a provider that fell over. The
|
|
59
|
+
* second matters as much as the first — a doctor that returns 0 because it could
|
|
60
|
+
* not look is worse than one that says nothing, since the person reads the zero
|
|
61
|
+
* as health.
|
|
62
|
+
*/
|
|
63
|
+
export function doctorVerdict(findings, coverage) {
|
|
64
|
+
const blocking = findings.filter((finding) => finding.state === "blocking");
|
|
65
|
+
const unavailable = coverage.filter((entry) => entry.state === "unavailable");
|
|
66
|
+
if (blocking.length > 0) {
|
|
67
|
+
const names = blocking.map((finding) => finding.id).join(", ");
|
|
68
|
+
return { exit_code: 1, reason: `hay ${blocking.length} hallazgo(s) bloqueante(s): ${names}` };
|
|
69
|
+
}
|
|
70
|
+
if (unavailable.length > 0) {
|
|
71
|
+
const names = [...new Set(unavailable.map((entry) => entry.category))].join(", ");
|
|
72
|
+
return {
|
|
73
|
+
exit_code: 1,
|
|
74
|
+
reason: `no se pudo comprobar ${unavailable.length} cobertura(s) (${names}): el entorno no queda declarado sano`,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
return {
|
|
78
|
+
exit_code: 0,
|
|
79
|
+
reason: "ningún bloqueo y ningún proveedor caído dentro de la cobertura comprobada",
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/domain/doctor/model.ts"],"names":[],"mappings":"AAYA,4EAA4E;AAC5E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAEvC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,oBAAoB;IACpB,MAAM;IACN,QAAQ;IACR,YAAY;IACZ,eAAe;IACf,sBAAsB;CACd,CAAC;AA2KX,4FAA4F;AAC5F,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,QAAwB,EAAE,QAAgB;IACtF,OAAO,GAAG,IAAI,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;AAC3C,CAAC;AAED,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAE9F;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAAkC,EAClC,SAA4B;IAE5B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,CAAC,EAAU,EAAU,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;IAC/D,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CACvB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACd,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAClC,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;QACrD,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAClC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,QAAmC,EACnC,SAA4B;IAE5B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,CAAC,EAAU,EAAU,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;IAC/D,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CACvB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACd,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CACtC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,QAAkC;IACxE,MAAM,KAAK,GAAG,CAAC,KAAyB,EAAU,EAAE,CAClD,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,MAAM,CAAC;IAC/D,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;QACzB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;QACzB,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC;QAC3B,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC;QAC/B,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,MAAM;KACrF,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAC3B,QAAkC,EAClC,QAAmC;IAEnC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC;IAC5E,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,aAAa,CAAC,CAAC;IAC9E,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,QAAQ,CAAC,MAAM,+BAA+B,KAAK,EAAE,EAAE,CAAC;IAChG,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClF,OAAO;YACL,SAAS,EAAE,CAAC;YACZ,MAAM,EAAE,wBAAwB,WAAW,CAAC,MAAM,kBAAkB,KAAK,uCAAuC;SACjH,CAAC;IACJ,CAAC;IACD,OAAO;QACL,SAAS,EAAE,CAAC;QACZ,MAAM,EAAE,2EAA2E;KACpF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
function flag(args, name) {
|
|
2
|
+
const value = args[name];
|
|
3
|
+
return value === undefined ? "" : ` --${name} ${value}`;
|
|
4
|
+
}
|
|
5
|
+
export const DOCTOR_OPERATIONS = [
|
|
6
|
+
{
|
|
7
|
+
op: "self.install-skill",
|
|
8
|
+
delegates: "selfInstallSkill",
|
|
9
|
+
// Crea el bundle donde falta y REESCRIBE el que quedó viejo: las dos clases,
|
|
10
|
+
// porque aprobar una instalación nueva no es aprobar que se pise una que ya
|
|
11
|
+
// estaba.
|
|
12
|
+
effects: ["local_additive", "mutate_overwrite"],
|
|
13
|
+
expected: "healthy",
|
|
14
|
+
summary: "instala el bundle de Workline en ese host",
|
|
15
|
+
verb: (args) => `aw self install-skill${flag(args, "target")}`,
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
op: "self.uninstall",
|
|
19
|
+
delegates: "selfUninstall",
|
|
20
|
+
effects: ["destructive"],
|
|
21
|
+
expected: "healthy",
|
|
22
|
+
summary: "retira la configuración de Workline que quedó sin runtime que la use",
|
|
23
|
+
verb: (args) => `aw self uninstall${flag(args, "target")}`,
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
op: "self.install-hooks",
|
|
27
|
+
delegates: "selfInstallHooks",
|
|
28
|
+
effects: ["mutate_overwrite"],
|
|
29
|
+
expected: "healthy",
|
|
30
|
+
summary: "arma los hooks de Workline en la configuración de ese host",
|
|
31
|
+
verb: (args) => `aw self install-hooks${flag(args, "target")}`,
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
op: "self.clean-legacy",
|
|
35
|
+
delegates: "selfCleanLegacy",
|
|
36
|
+
effects: ["destructive"],
|
|
37
|
+
expected: "healthy",
|
|
38
|
+
summary: "retira el bundle que dejó una instalación anterior",
|
|
39
|
+
verb: (args) => `aw self clean-legacy${flag(args, "target")}`,
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
op: "mcp.setup",
|
|
43
|
+
delegates: "runMcpSetup",
|
|
44
|
+
effects: ["mutate_overwrite"],
|
|
45
|
+
expected: "healthy",
|
|
46
|
+
summary: "registra la entrada MCP de esa conexión en el host",
|
|
47
|
+
verb: (args) => `aw mcp setup${flag(args, "host")}${flag(args, "instance")}${flag(args, "scope")}`,
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
op: "mcp.remove",
|
|
51
|
+
delegates: "runMcpRemove",
|
|
52
|
+
effects: ["destructive"],
|
|
53
|
+
expected: "healthy",
|
|
54
|
+
summary: "retira del host una entrada MCP que ya no está registrada",
|
|
55
|
+
verb: (args) => `aw mcp remove${flag(args, "host")}${flag(args, "instance")}${flag(args, "scope")}`,
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
op: "mcp.migrate",
|
|
59
|
+
delegates: "runMcpMigration",
|
|
60
|
+
effects: ["mutate_overwrite", "destructive"],
|
|
61
|
+
expected: "healthy",
|
|
62
|
+
summary: "mueve una entrada histórica a su ubicación vigente y retira la vieja",
|
|
63
|
+
verb: (args) => `aw mcp migrate${flag(args, "host")}${flag(args, "instance")}${flag(args, "scope")}`,
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
op: "skills.reinstall",
|
|
67
|
+
delegates: "reinstallSkill",
|
|
68
|
+
effects: ["mutate_overwrite"],
|
|
69
|
+
expected: "healthy",
|
|
70
|
+
summary: "vuelve a materializar las réplicas de una skill registrada",
|
|
71
|
+
verb: (args) => `aw self skills reinstall${flag(args, "name")}`,
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
op: "auth.flow",
|
|
75
|
+
delegates: "runDoctorAuthFlow",
|
|
76
|
+
// `execute` y nada más de este lado: correr el flujo es lo que la operación
|
|
77
|
+
// ES. Lo que el flujo además necesite —salir a la red, por ejemplo— lo
|
|
78
|
+
// declara el flujo, y el anotador SUMA esas clases a estas antes de sellar.
|
|
79
|
+
// Ninguna de las dos se autoriza sola.
|
|
80
|
+
effects: ["execute"],
|
|
81
|
+
expected: "healthy",
|
|
82
|
+
summary: "corre el flujo de autenticación que declara el proveedor, heredando la terminal",
|
|
83
|
+
// El verbo NOMBRA el flujo; no lo compone. Los tokens del `argv` viajan
|
|
84
|
+
// sellados en la acción y la vista previa los muestra desde ahí: escribir
|
|
85
|
+
// acá una línea de comando armada invitaría a ejecutarla como texto, que es
|
|
86
|
+
// exactamente lo que este catálogo no hace en ningún caso.
|
|
87
|
+
// Los dos nombres van PARENTIZADOS, y no es estética: el id del único
|
|
88
|
+
// proveedor real es `dsn`, y el redactor lee cualquier token de secreto
|
|
89
|
+
// seguido de un espacio como una asignación y borra la palabra siguiente. Sin
|
|
90
|
+
// los paréntesis, este verbo llega al informe como «por dsn *** env:x».
|
|
91
|
+
verb: (args) => `el flujo declarado por el proveedor (${args.provider ?? "sin nombre"}) para el sujeto (${args.subject ?? "sin nombre"})`,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
op: "multiroot.attach",
|
|
95
|
+
delegates: "runMultiroot",
|
|
96
|
+
effects: ["mutate_overwrite"],
|
|
97
|
+
expected: "healthy",
|
|
98
|
+
summary: "registra en el host las rutas del workspace que faltaban",
|
|
99
|
+
verb: () => "aw attach-multiroot --from-sources",
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
op: "multiroot.detach",
|
|
103
|
+
delegates: "runMultiroot",
|
|
104
|
+
effects: ["mutate_overwrite"],
|
|
105
|
+
expected: "healthy",
|
|
106
|
+
summary: "quita del host rutas registradas que el workspace no declara",
|
|
107
|
+
verb: () => "aw detach-multiroot --from-sources",
|
|
108
|
+
},
|
|
109
|
+
];
|
|
110
|
+
const BY_OP = new Map(DOCTOR_OPERATIONS.map((spec) => [spec.op, spec]));
|
|
111
|
+
export function doctorOperation(op) {
|
|
112
|
+
return BY_OP.get(op) ?? null;
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=operations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../../../src/domain/doctor/operations.ts"],"names":[],"mappings":"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"}
|