@cratylus/canon 0.3.0 → 0.5.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/dist/agents/architect.js +14 -108
- package/dist/agents/architect.js.map +1 -1
- package/dist/agents/assayer.d.ts +2 -0
- package/dist/agents/assayer.js +20 -0
- package/dist/agents/assayer.js.map +1 -0
- package/dist/agents/implementer.js +9 -69
- package/dist/agents/implementer.js.map +1 -1
- package/dist/agents/kino.js +24 -110
- package/dist/agents/kino.js.map +1 -1
- package/dist/agents/mav.js +43 -79
- package/dist/agents/mav.js.map +1 -1
- package/dist/agents/nico.js +34 -63
- package/dist/agents/nico.js.map +1 -1
- package/dist/agents/planner.js +8 -80
- package/dist/agents/planner.js.map +1 -1
- package/dist/dimensions/actions/file-ops.js +5 -1
- package/dist/dimensions/actions/file-ops.js.map +1 -1
- package/dist/dimensions/autonomy/human-on-the-loop.js +3 -2
- package/dist/dimensions/autonomy/human-on-the-loop.js.map +1 -1
- package/dist/dimensions/role/architect.js +19 -1
- package/dist/dimensions/role/architect.js.map +1 -1
- package/dist/dimensions/role/{build.d.ts → assayer.d.ts} +1 -1
- package/dist/dimensions/role/assayer.js +25 -0
- package/dist/dimensions/role/assayer.js.map +1 -0
- package/dist/dimensions/role/{diagnose.d.ts → implementer.d.ts} +1 -1
- package/dist/dimensions/role/implementer.js +12 -0
- package/dist/dimensions/role/implementer.js.map +1 -0
- package/dist/dimensions/role/{curate.d.ts → planner.d.ts} +1 -1
- package/dist/dimensions/role/planner.js +14 -0
- package/dist/dimensions/role/planner.js.map +1 -0
- package/dist/hooks/purview-guardrail.d.ts +2 -0
- package/dist/hooks/purview-guardrail.js +302 -0
- package/dist/hooks/purview-guardrail.js.map +1 -0
- package/dist/manifest.d.ts +1 -1
- package/dist/manifest.js +3 -1
- package/dist/manifest.js.map +1 -1
- package/dist/roles/architect.d.ts +2 -0
- package/dist/roles/architect.js +105 -0
- package/dist/roles/architect.js.map +1 -0
- package/dist/roles/assayer.d.ts +2 -0
- package/dist/roles/assayer.js +66 -0
- package/dist/roles/assayer.js.map +1 -0
- package/dist/roles/hold.d.ts +57 -0
- package/dist/roles/hold.js +105 -0
- package/dist/roles/hold.js.map +1 -0
- package/dist/roles/implementer.d.ts +2 -0
- package/dist/roles/implementer.js +62 -0
- package/dist/roles/implementer.js.map +1 -0
- package/dist/roles/planner.d.ts +2 -0
- package/dist/roles/planner.js +73 -0
- package/dist/roles/planner.js.map +1 -0
- package/dist/skills/deliver/skill.js +60 -20
- package/dist/skills/deliver/skill.js.map +1 -1
- package/dist/skills/design/skill.js +35 -28
- package/dist/skills/design/skill.js.map +1 -1
- package/dist/skills/note/skill.d.ts +2 -0
- package/dist/skills/note/skill.js +56 -0
- package/dist/skills/note/skill.js.map +1 -0
- package/dist/skills/plan/skill.js +75 -19
- package/dist/skills/plan/skill.js.map +1 -1
- package/package.json +4 -6
- package/dist/dimensions/role/build.js +0 -2
- package/dist/dimensions/role/build.js.map +0 -1
- package/dist/dimensions/role/converse.d.ts +0 -2
- package/dist/dimensions/role/converse.js +0 -2
- package/dist/dimensions/role/converse.js.map +0 -1
- package/dist/dimensions/role/curate.js +0 -2
- package/dist/dimensions/role/curate.js.map +0 -1
- package/dist/dimensions/role/diagnose.js +0 -2
- package/dist/dimensions/role/diagnose.js.map +0 -1
- package/dist/dimensions/role/document.d.ts +0 -2
- package/dist/dimensions/role/document.js +0 -2
- package/dist/dimensions/role/document.js.map +0 -1
- package/dist/dimensions/role/implement.d.ts +0 -2
- package/dist/dimensions/role/implement.js +0 -2
- package/dist/dimensions/role/implement.js.map +0 -1
- package/dist/dimensions/role/operate.d.ts +0 -2
- package/dist/dimensions/role/operate.js +0 -2
- package/dist/dimensions/role/operate.js.map +0 -1
- package/dist/dimensions/role/orchestrate.d.ts +0 -2
- package/dist/dimensions/role/orchestrate.js +0 -2
- package/dist/dimensions/role/orchestrate.js.map +0 -1
- package/dist/dimensions/role/plan.d.ts +0 -2
- package/dist/dimensions/role/plan.js +0 -2
- package/dist/dimensions/role/plan.js.map +0 -1
- package/dist/dimensions/role/research.d.ts +0 -2
- package/dist/dimensions/role/research.js +0 -2
- package/dist/dimensions/role/research.js.map +0 -1
- package/dist/dimensions/role/review.d.ts +0 -2
- package/dist/dimensions/role/review.js +0 -2
- package/dist/dimensions/role/review.js.map +0 -1
- package/dist/dimensions/role/test.d.ts +0 -2
- package/dist/dimensions/role/test.js +0 -2
- package/dist/dimensions/role/test.js.map +0 -1
- package/dist/plan-states.d.ts +0 -31
- package/dist/plan-states.js +0 -46
- package/dist/plan-states.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { PLAN_STATES } from '../../plan-states.js';
|
|
2
1
|
import { design } from '../design/skill.js';
|
|
2
|
+
import { note } from '../note/skill.js';
|
|
3
3
|
// SUPERSEDES `praxis`, which carried three activities with three different ends —
|
|
4
4
|
// capturing understanding, specifying work, and governing execution — and no seam
|
|
5
5
|
// between them. An agent asked to switch telos three times with nothing marking the
|
|
@@ -11,22 +11,50 @@ import { design } from '../design/skill.js';
|
|
|
11
11
|
// the plan's own lifecycle. Understanding moved to `design`; dispatch, judgement and
|
|
12
12
|
// triage moved to `deliver`.
|
|
13
13
|
//
|
|
14
|
+
// THE LIFECYCLE STATES LIVE HERE AND NOWHERE ELSE. They are meaning, so the corpus
|
|
15
|
+
// holds them; the `plan` capability receives them as the configuration this cell's
|
|
16
|
+
// runtime face carries, which deploy emits into the host runtime config, and acts on
|
|
17
|
+
// the roles it names (which plan state at most one plan holds, which is final, which
|
|
18
|
+
// unit state satisfies a dependency), never on a spelling of its own.
|
|
19
|
+
//
|
|
14
20
|
// The laws carried forward are the ones that were PAID FOR. The output-array law and
|
|
15
21
|
// its measurement survive verbatim because the defect it names — a footprint read off
|
|
16
22
|
// where a sign is DEFINED while the work is bounded by where it is USED — recurred six
|
|
17
23
|
// times in one plan and voids every disjointness proof above it when it recurs.
|
|
24
|
+
const LIFECYCLE = {
|
|
25
|
+
plan: {
|
|
26
|
+
states: ['proposed', 'bound', 'closed'],
|
|
27
|
+
exclusive: 'bound',
|
|
28
|
+
final: 'closed',
|
|
29
|
+
},
|
|
30
|
+
unit: { states: ['pending', 'active', 'completed'], satisfies: 'completed' },
|
|
31
|
+
};
|
|
32
|
+
const { plan: PLAN, unit: UNIT } = LIFECYCLE;
|
|
18
33
|
const FORMAL_BLOCK = `s ≜ a cut piece ⟨closed · handed down · ¬ redrawable here⟩ @ design
|
|
34
|
+
c @ design
|
|
19
35
|
anchor @ design
|
|
20
36
|
closure @ design
|
|
21
|
-
|
|
22
|
-
|
|
37
|
+
withdrawn @ design
|
|
38
|
+
self @ design
|
|
23
39
|
P ≜ a plan : the units cutting s into work
|
|
24
|
-
unit
|
|
25
|
-
|
|
26
|
-
|
|
40
|
+
unit ≜ a unit of work ⟨unit ∈ P⟩
|
|
41
|
+
name(x) ≜ the label x is addressed by ⟨x a P ∨ a unit · revisable⟩
|
|
42
|
+
States(P) ≜ { ${PLAN.states.join(', ')} } ⟨in lifecycle order⟩
|
|
43
|
+
States(unit) ≜ { ${UNIT.states.join(', ')} } ⟨in lifecycle order⟩
|
|
44
|
+
state : P → States(P) ∧ unit → States(unit)
|
|
45
|
+
bound(P) ⇔ state(P) = ${PLAN.exclusive}
|
|
46
|
+
closed(P) ⇔ state(P) = ${PLAN.final}
|
|
47
|
+
satisfied(unit) ⇔ state(unit) ≽ ${UNIT.satisfies} ⟨reached completion ∨ moved past it⟩
|
|
48
|
+
settled(x) ⇔ x has exactly one current version ⟨x a P ∨ a unit⟩
|
|
49
|
+
live(x) ⇔ settled(x) ∧ that version ¬ a retraction
|
|
50
|
+
diverged(x) ⇔ ¬settled(x) ⟨concurrent sessions wrote x differently ∧ merged · state, ¬ error⟩
|
|
51
|
+
incoherent(P) ⇔ a law below broken across plans ∨ units by a merge ∧ kept on each branch
|
|
27
52
|
R ⊆ P × P ⟨dependency⟩
|
|
28
53
|
deps(unit) ≜ { u | (unit, u) ∈ R }
|
|
29
|
-
realizes : P → anchor ⟨TOTAL⟩
|
|
54
|
+
realizes : P → ℘(anchor) ∧ unit → anchor ⟨TOTAL⟩
|
|
55
|
+
pin : unit → the version of denotes(realizes(unit)) the unit was authored against
|
|
56
|
+
drifted(unit) ⇔ pin(unit) ≠ the one current version of denotes(realizes(unit)) ⟨amended · withdrawn · split into competing versions⟩
|
|
57
|
+
suspect(unit) ⇔ ¬drifted(unit) ∧ ∃ c ∈ closure(denotes(realizes(unit))) : c has more than one current version ∨ withdrawn(c) ∨ c has a version newer than pin(unit)
|
|
30
58
|
static : P → ℘(path)
|
|
31
59
|
refs : P → ℘(path) ⟨what unit's outputs compile against⟩
|
|
32
60
|
outputs : P → ℘(path)
|
|
@@ -41,19 +69,49 @@ cross(S) ≜ |R ∩ ⋃ { sᵢ × sⱼ | sᵢ, sⱼ ∈ S ∧ i ≠ j }|
|
|
|
41
69
|
wave(0) ≜ { unit | ∄ u : (unit, u) ∈ R }
|
|
42
70
|
wave(n+1) ≜ { unit | unit ∉ W(n) ∧ ∀ u : (unit, u) ∈ R ⇒ u ∈ W(n) }
|
|
43
71
|
W(n) ≜ ⋃ { wave(i) | i ≤ n }
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
72
|
+
owed @ note
|
|
73
|
+
blocked(unit) ⇔ ∃ u ∈ deps(unit) : ¬satisfied(u)
|
|
74
|
+
ready(unit) ⇔ bound(P) ∧ ¬blocked(unit) ∧ ∄ owed note blocking unit ∨ P ⟨computed, never stored · ready
|
|
75
|
+
PROMISES an executor can FINISH · conflating a dep with a ruling stalls a fan-out⟩
|
|
76
|
+
frontier(P) ≜ { unit | ready(unit) ∧ state(unit) = ${UNIT.states[0]} } ∪ { unit | bound(P) ∧ ${UNIT.states[0]} ≺ state(unit) ≺ ${UNIT.satisfies} } ⟨where
|
|
77
|
+
the plan IS · ¬ only what is dispatchable · ¬bound(P) ⇒ frontier(P) = ∅⟩
|
|
49
78
|
planner ≜ the planner ⟨bounded to s⟩
|
|
50
79
|
conform @ signify
|
|
80
|
+
show(P) ≜ \`scripts/plan.mjs show [<plan>]\` ↦ the bound P in wave order ∨ any P named, whole
|
|
81
|
+
show(unit) ≜ \`scripts/plan.mjs show <unit> --plan <p>\` ↦ one unit in full
|
|
82
|
+
add(unit) ≜ \`scripts/plan.mjs add <unit> --plan <p> --realizes <concept> --intent <i> [--static <path>]… [--deps <unit>]… [--outputs <path>]… [--accept <criterion>]… [--plan-realizes <concept>]…\` ⟨pin(unit) taken · the first add naming an absent P proposes it, realizing each --plan-realizes⟩
|
|
83
|
+
advance(unit) ≜ \`scripts/plan.mjs advance <unit> --plan <p> --to <state>\`
|
|
84
|
+
retract(unit) ≜ \`scripts/plan.mjs retract <unit> --plan <p>\`
|
|
85
|
+
revise(unit) ≜ \`scripts/plan.mjs revise <unit> --plan <p> [--intent <i>] [--static <path>]… [--deps <unit>]… [--outputs <path>]… [--accept <criterion>]…\` ⟨spec(unit) · pin(unit) kept⟩
|
|
86
|
+
revise(P) ≜ \`scripts/plan.mjs revise <plan> [--name <n>] [--realizes <concept>]…\` ⟨name(P) ∨ realizes(P)⟩
|
|
87
|
+
bind(P) ≜ \`scripts/plan.mjs bind <plan>\` ⟨bound(P) ∧ the P bound before returns to ${PLAN.states[0]}⟩
|
|
88
|
+
close(P) ≜ \`scripts/plan.mjs close <plan>\` ⟨closed(P)⟩
|
|
89
|
+
reconcile(x) ≜ \`scripts/plan.mjs reconcile <unit> --plan <p> [--name <n>] [--realizes <concept>] [--intent <i>] [--static <path>]… [--deps <unit>]… [--outputs <path>]… [--accept <criterion>]… [--state <state>] [--repin]\` ∨ \`scripts/plan.mjs reconcile <plan> [--name <n>] [--realizes <concept>]… [--state <state>]\` ↦ one version superseding every current version of x ⟨each field the versions disagree on is given · a unit whose versions pin differently takes --repin⟩
|
|
51
90
|
|
|
91
|
+
∀ add ∨ advance ∨ retract ∨ revise ∨ bind ∨ close ∨ reconcile : \`--author <who> --reason <why> --cause <what caused it>\` ⟨a set-valued flag repeats, one member each⟩
|
|
52
92
|
∀ unit : realizes(unit) ∈ { anchor(c) | c ∈ s } ⟨TOTALITY is the gate · a unit citing no
|
|
53
93
|
concept is work whose purpose cannot be stated ∴ REFUSED at authoring, ¬ warned⟩
|
|
54
94
|
∀ unit : closure(denotes(realizes(unit))) ⊆ s ⟨a unit reaching outside its piece is a
|
|
55
95
|
BOUNDARY finding · SURFACE it ; the planner may ¬ redraw the cut⟩
|
|
56
|
-
|
|
96
|
+
∀ unit : realizes(unit) = the concept pin(unit) names ∧ realizes(unit) ∈ realizes(P) ⟨a merge
|
|
97
|
+
breaking it is incoherent(P), reported like the others⟩
|
|
98
|
+
|{ P | bound(P) }| ≤ 1 ⟨held by bind(P), which returns the P bound before⟩
|
|
99
|
+
∀ n : |{ P | live(P) ∧ name(P) = n }| ≤ 1 ∧ ∀ P : |{ unit ∈ P | live(unit) ∧ name(unit) = n }| ≤ 1
|
|
100
|
+
closed(P) ⇒ name(P) kept ∧ ∄ write to P ∨ any unit ∈ P ⟨closed is final · readable forever⟩
|
|
101
|
+
¬closed(P) ⇒ revise(P) admitted ⟨its name ∧ its concepts, never its state⟩
|
|
102
|
+
state(P) moves by bind(P) ∨ close(P) alone
|
|
103
|
+
revise routes to revise(unit) ∨ revise(P) by the name it is given ⟨--plan puts a unit's P in view⟩
|
|
104
|
+
∃ u : live(u) ∧ unit ∈ deps(u) ⇒ ¬ retract(unit)
|
|
105
|
+
advance(unit) ⊨ bound(P) ∧ one step forward in States(unit) ⟨a skip ∨ a step back refuses · a unit of an unbound P is authored ∧ revised, ¬ worked⟩
|
|
106
|
+
∀ unit : R acyclic ∧ ∀ u ∈ deps(unit) : live(u) ∧ u ∈ P
|
|
107
|
+
an owed note blocking P ⇒ ¬ bind(P) ∧ ∀ unit ∈ P : ¬ready(unit)
|
|
108
|
+
add(unit) ⊨ ∀ c ∈ closure(denotes(realizes(unit))) : c has exactly one current version ∧ ¬withdrawn(c) ⟨a pin is taken on settled ground alone⟩
|
|
109
|
+
pin(unit) retaken ⇔ \`scripts/plan.mjs revise <unit> --plan <p> --repin --reason <why>\` ⟨the ONLY way · never a side effect of editing spec(unit)⟩
|
|
110
|
+
withdrawn(denotes(realizes(unit))) ⇒ drifted(unit) ∧ ¬ incoherent(P) ⟨a retraction in the design never breaks a plan law⟩
|
|
111
|
+
drifted(unit) ∨ suspect(unit) ⇒ SURFACE ⟨the design moved under the plan · drift, ¬ staleness⟩
|
|
112
|
+
diverged(x) ⇒ reconcile(x) ⟨an ordinary write on x refuses⟩
|
|
113
|
+
incoherent(P) ⇒ repaired by ordinary writes, one at a time
|
|
114
|
+
reconcile ⊨ self ⟨reconciliation of plans ∧ units is the architect's alone⟩
|
|
57
115
|
slices(P) cut on s ⟨¬ file-adjacency · files are a LAGGING proxy for modularity ∴
|
|
58
116
|
file-cut ⇒ ∀ unit ⊇ fragments of several c ⇒ executor finishes ∧ system incoherent⟩
|
|
59
117
|
⋃ slices(P) = P ∧ ∀ s₁, s₂ ∈ slices(P) : s₁ ≠ s₂ ⇒ s₁ ∩ s₂ = ∅
|
|
@@ -75,15 +133,13 @@ slices(P) cut on s ⟨¬ file-adjacency · files are a LAGGING proxy for modular
|
|
|
75
133
|
∀ unit : measurement ∈ spec(unit) ⇒ measurement = claim⟨timestamp⟩ ∴ re-derive ≺ cite
|
|
76
134
|
⟨a count in a unit is CENSUS OUTPUT, ¬ a datum · the tree moves ∧ nothing reds⟩
|
|
77
135
|
∀ unit : reach-leg(unit) ⊨ print(denominator) ⟨∄ denominator ⇒ found-nothing ≡ could-not-look⟩
|
|
78
|
-
state(unit) = ready ⇒ ¬blocked(unit) ∧ ¬ruling-owed(unit) ⟨ready PROMISES an executor can
|
|
79
|
-
FINISH · conflating a dep with a ruling stalls a fan-out on one unanswered question⟩
|
|
80
136
|
∀ unit : conform(spec(unit))
|
|
81
|
-
|
|
82
|
-
plan ≜ take(s) → census ⟨delegable⟩ → slice(s) → author spec(∀ unit) → mirror → ratify @ planner`;
|
|
137
|
+
plan ≜ take(s) → census ⟨delegable⟩ → slice(s) → add(∀ unit) ⟨spec ∧ pin⟩ → ratify @ planner → advance`;
|
|
83
138
|
export const plan = {
|
|
84
139
|
name: 'plan',
|
|
85
|
-
description: `use this skill to decompose ONE cut piece of a design into MECE units of work — each citing the single concept it realizes, with its inputs, dependencies, declared outputs and mechanical acceptance criteria — sliced on the design's seams rather than on file adjacency, and ordered into waves whose outputs are disjoint so they dispatch concurrently without contending. Reach for it after a design exists and before any work is dispatched. A unit that cites no concept is refused; a piece that cannot be planned as handed down is surfaced, never silently redrawn.`,
|
|
140
|
+
description: `use this skill to decompose ONE cut piece of a design into MECE units of work — each citing the single concept it realizes, with its inputs, dependencies, declared outputs and mechanical acceptance criteria — sliced on the design's seams rather than on file adjacency, and ordered into waves whose outputs are disjoint so they dispatch concurrently without contending. Reach for it after a design exists and before any work is dispatched. A unit that cites no concept is refused; a piece that cannot be planned as handed down is surfaced, never silently redrawn. Its verbs show a plan or a unit, add, advance, retract and revise units, revise, bind and close a plan, and reconcile either.`,
|
|
86
141
|
formalBlock: FORMAL_BLOCK,
|
|
87
|
-
|
|
142
|
+
runtime: { capability: 'plan', configuration: LIFECYCLE },
|
|
143
|
+
composition: () => [design, note],
|
|
88
144
|
};
|
|
89
145
|
//# sourceMappingURL=skill.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../../src/skills/plan/skill.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../../src/skills/plan/skill.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,kFAAkF;AAClF,kFAAkF;AAClF,oFAAoF;AACpF,kFAAkF;AAClF,oFAAoF;AACpF,oCAAoC;AACpC,EAAE;AACF,mFAAmF;AACnF,qFAAqF;AACrF,6BAA6B;AAC7B,EAAE;AACF,mFAAmF;AACnF,mFAAmF;AACnF,qFAAqF;AACrF,qFAAqF;AACrF,sEAAsE;AACtE,EAAE;AACF,qFAAqF;AACrF,sFAAsF;AACtF,uFAAuF;AACvF,gFAAgF;AAEhF,MAAM,SAAS,GAAG;IAChB,IAAI,EAAE;QACJ,MAAM,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC;QACvC,SAAS,EAAE,OAAO;QAClB,KAAK,EAAE,QAAQ;KAChB;IACD,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE;CACpE,CAAC;AACX,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC;AAE7C,MAAM,YAAY,GAChB;;;;;;;;;gBASc,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;mBACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;;wBAEjB,IAAI,CAAC,SAAS;yBACb,IAAI,CAAC,KAAK;kCACD,IAAI,CAAC,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qDA6BK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,4BAA4B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAoB,IAAI,CAAC,SAAS;;;;;;;;;;;uFAWxD,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uGAkDqB,CAAC;AAE3H,MAAM,CAAC,MAAM,IAAI,GAAU;IACzB,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,krBAAkrB;IAC/rB,WAAW,EAAE,YAAY;IACzB,OAAO,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE;IACzD,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC;CAClC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cratylus/canon",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "The canonical corpus of discovered optimal-signifiers — agents, skills, dimensions and rules as typed TS source. Markdown is a projection of these modules.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"engines": {
|
|
@@ -18,11 +18,11 @@
|
|
|
18
18
|
],
|
|
19
19
|
"//test": "`test` builds FIRST because `test/runtime-shim.test.ts` drives the shipped `cratylus project` over the repository's own `cratylus.config.ts`, and that config extends `@cratylus/canon` — the PACKAGE, i.e. this package's `dist`. turbo's `test.dependsOn: [^build]` builds this package's DEPENDENCIES, never this package, so a cold clone would run the consumer path against a dist that does not exist.",
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@cratylus/schema": "0.
|
|
21
|
+
"@cratylus/schema": "0.3.0"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@cratylus/forge": "0.
|
|
25
|
-
"@cratylus/runtime": "0.
|
|
24
|
+
"@cratylus/forge": "0.7.0",
|
|
25
|
+
"@cratylus/runtime": "0.3.0",
|
|
26
26
|
"@cratylus/tooling": "0.0.0",
|
|
27
27
|
"@types/node": "^22.0.0",
|
|
28
28
|
"tsx": "^4.19.0",
|
|
@@ -57,8 +57,6 @@
|
|
|
57
57
|
"clean": "rm -rf dist",
|
|
58
58
|
"dev": "tsc -p tsconfig.build.json --watch --preserveWatchOutput",
|
|
59
59
|
"pack:smoke": "tsx tooling/pack-smoke/pack-smoke-cli.ts",
|
|
60
|
-
"plan-set": "tsx tooling/plan-set-cli.ts",
|
|
61
|
-
"plan": "sh tooling/plan-set/plan-set.sh",
|
|
62
60
|
"project:targets": "tsx tooling/project-targets-cli.ts",
|
|
63
61
|
"scaffold": "tsx tooling/scaffold-cli.ts",
|
|
64
62
|
"stance-guard:test": "sh test/support/guardrail/test-stance-guardrail.sh",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/dimensions/role/build.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,KAAK,GAAS,2CAA2C,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"converse.js","sourceRoot":"","sources":["../../../src/dimensions/role/converse.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAAS,uCAAuC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"curate.js","sourceRoot":"","sources":["../../../src/dimensions/role/curate.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAS,6BAA6B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"diagnose.js","sourceRoot":"","sources":["../../../src/dimensions/role/diagnose.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAAS,UAAU,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../../src/dimensions/role/document.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAAS,wCAAwC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"implement.js","sourceRoot":"","sources":["../../../src/dimensions/role/implement.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAAS,WAAW,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"operate.js","sourceRoot":"","sources":["../../../src/dimensions/role/operate.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,OAAO,GAAS,sCAAsC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrate.js","sourceRoot":"","sources":["../../../src/dimensions/role/orchestrate.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAS,aAAa,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/dimensions/role/plan.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,IAAI,GAAS,6BAA6B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"research.js","sourceRoot":"","sources":["../../../src/dimensions/role/research.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAAS,UAAU,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"review.js","sourceRoot":"","sources":["../../../src/dimensions/role/review.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAS,QAAQ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../../src/dimensions/role/test.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,IAAI,GAAS,sCAAsC,CAAC"}
|
package/dist/plan-states.d.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/** The plan-layout state folders, in task-file lifecycle order. */
|
|
2
|
-
export declare const PLAN_STATES: readonly ["pending", "ready", "active", "completed"];
|
|
3
|
-
/** `frontier(P)` — the states a shard sits in when the plan is workable AT it
|
|
4
|
-
* (`{ t | state(t) ∈ { ready, active } }`, where the plan IS, not merely
|
|
5
|
-
* what is dispatchable). A subset of {@link PLAN_STATES} and not derivable from
|
|
6
|
-
* their ORDER: `pending` is open too, and is not frontier. */
|
|
7
|
-
export declare const PLAN_FRONTIER: readonly ["ready", "active"];
|
|
8
|
-
/**
|
|
9
|
-
* The plan-tier dotfile MARKERS whose only home is here.
|
|
10
|
-
*
|
|
11
|
-
* A relation with no on-disk carrier is not readable — the reading `plan-set.sh`
|
|
12
|
-
* states in its own words when it explains why `.landed` exists ("exactly parallel
|
|
13
|
-
* to `.superseded-by`"). These are the two markers a reader of the plan set needs
|
|
14
|
-
* that have no other TypeScript home: `.superseded-by` already has one
|
|
15
|
-
* (`plan-set.ts`'s `SUPERSEDED_MARKER`) and is deliberately not restated.
|
|
16
|
-
*
|
|
17
|
-
* `.ruling-owed` is the third carrier this corpus has minted on that reading, and
|
|
18
|
-
* it carries the concept the corpus ALREADY signifies as a ruling owed — "a
|
|
19
|
-
* decision nobody has taken", which the retired praxis cell distinguished from a
|
|
20
|
-
* dependency ("a dep waits itself out, a ruling needs a human"). At the SHARD tier
|
|
21
|
-
* that concept is `ruling-owed(t)`, and it gates `ready`; at the
|
|
22
|
-
* PLAN tier it had no carrier at all, so a fork the principal cannot resolve —
|
|
23
|
-
* irreversible, or above its competence — was unreadable from disk however loudly
|
|
24
|
-
* it had been surfaced. Its content is the fork as it was put to the operator.
|
|
25
|
-
*/
|
|
26
|
-
export declare const PLAN_MARKERS: {
|
|
27
|
-
/** `bound(P)` — the plan-level commitment; exactly one plan carries it (WIP=1). */
|
|
28
|
-
readonly bound: ".bound";
|
|
29
|
-
/** `fork⊥(P)` — a fork surfaced to the operator, whose ruling nobody has taken. */
|
|
30
|
-
readonly rulingOwed: ".ruling-owed";
|
|
31
|
-
};
|
package/dist/plan-states.js
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
// plan-states.ts — the CANON home of the sharded-plan-layout state folders, in
|
|
2
|
-
// lifecycle order. ONE home, two consumers (DRY): the `plan` skill's formal block
|
|
3
|
-
// (`../skills/plan/skill.ts`, whose `States ≜ {…}` set derives from here) and the
|
|
4
|
-
// canon project template (`./project-template.ts`, whose `planStates` is this). It
|
|
5
|
-
// lives here — not as a second export on the plan skill module — because a skill
|
|
6
|
-
// module carries exactly one export (its `Skill`); this is the plan cell's canon,
|
|
7
|
-
// factored out to a sibling both can source.
|
|
8
|
-
//
|
|
9
|
-
// The consumer was `praxis` until that cell was superseded by the design/plan/deliver
|
|
10
|
-
// trio: praxis carried understanding, specification and governance in one place, and
|
|
11
|
-
// the state set belongs to the middle term alone.
|
|
12
|
-
/** The plan-layout state folders, in task-file lifecycle order. */
|
|
13
|
-
export const PLAN_STATES = ['pending', 'ready', 'active', 'completed'];
|
|
14
|
-
/** `frontier(P)` — the states a shard sits in when the plan is workable AT it
|
|
15
|
-
* (`{ t | state(t) ∈ { ready, active } }`, where the plan IS, not merely
|
|
16
|
-
* what is dispatchable). A subset of {@link PLAN_STATES} and not derivable from
|
|
17
|
-
* their ORDER: `pending` is open too, and is not frontier. */
|
|
18
|
-
export const PLAN_FRONTIER = [
|
|
19
|
-
'ready',
|
|
20
|
-
'active',
|
|
21
|
-
];
|
|
22
|
-
/**
|
|
23
|
-
* The plan-tier dotfile MARKERS whose only home is here.
|
|
24
|
-
*
|
|
25
|
-
* A relation with no on-disk carrier is not readable — the reading `plan-set.sh`
|
|
26
|
-
* states in its own words when it explains why `.landed` exists ("exactly parallel
|
|
27
|
-
* to `.superseded-by`"). These are the two markers a reader of the plan set needs
|
|
28
|
-
* that have no other TypeScript home: `.superseded-by` already has one
|
|
29
|
-
* (`plan-set.ts`'s `SUPERSEDED_MARKER`) and is deliberately not restated.
|
|
30
|
-
*
|
|
31
|
-
* `.ruling-owed` is the third carrier this corpus has minted on that reading, and
|
|
32
|
-
* it carries the concept the corpus ALREADY signifies as a ruling owed — "a
|
|
33
|
-
* decision nobody has taken", which the retired praxis cell distinguished from a
|
|
34
|
-
* dependency ("a dep waits itself out, a ruling needs a human"). At the SHARD tier
|
|
35
|
-
* that concept is `ruling-owed(t)`, and it gates `ready`; at the
|
|
36
|
-
* PLAN tier it had no carrier at all, so a fork the principal cannot resolve —
|
|
37
|
-
* irreversible, or above its competence — was unreadable from disk however loudly
|
|
38
|
-
* it had been surfaced. Its content is the fork as it was put to the operator.
|
|
39
|
-
*/
|
|
40
|
-
export const PLAN_MARKERS = {
|
|
41
|
-
/** `bound(P)` — the plan-level commitment; exactly one plan carries it (WIP=1). */
|
|
42
|
-
bound: '.bound',
|
|
43
|
-
/** `fork⊥(P)` — a fork surfaced to the operator, whose ruling nobody has taken. */
|
|
44
|
-
rulingOwed: '.ruling-owed',
|
|
45
|
-
};
|
|
46
|
-
//# sourceMappingURL=plan-states.js.map
|
package/dist/plan-states.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plan-states.js","sourceRoot":"","sources":["../src/plan-states.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,kFAAkF;AAClF,kFAAkF;AAClF,mFAAmF;AACnF,iFAAiF;AACjF,kFAAkF;AAClF,6CAA6C;AAC7C,EAAE;AACF,sFAAsF;AACtF,qFAAqF;AACrF,kDAAkD;AAElD,mEAAmE;AACnE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAU,CAAC;AAEhF;;;+DAG+D;AAC/D,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO;IACP,QAAQ;CACkD,CAAC;AAE7D;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,mFAAmF;IACnF,KAAK,EAAE,QAAQ;IACf,mFAAmF;IACnF,UAAU,EAAE,cAAc;CAClB,CAAC"}
|