@latysh-development/monolith 0.1.0-alpha.0 → 0.1.0-alpha.2
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 +63 -16
- package/dist/brief/collect.d.ts.map +1 -1
- package/dist/brief/collect.js +41 -1
- package/dist/brief/constants.d.ts +2 -0
- package/dist/brief/constants.d.ts.map +1 -1
- package/dist/brief/constants.js +2 -0
- package/dist/brief/render.d.ts +7 -0
- package/dist/brief/render.d.ts.map +1 -1
- package/dist/brief/render.js +52 -1
- package/dist/brief/types.d.ts +17 -1
- package/dist/brief/types.d.ts.map +1 -1
- package/dist/cli/index.js +45 -0
- package/dist/discovery/compose.d.ts +28 -0
- package/dist/discovery/compose.d.ts.map +1 -0
- package/dist/discovery/compose.js +159 -0
- package/dist/discovery/contracts.d.ts +211 -0
- package/dist/discovery/contracts.d.ts.map +1 -0
- package/dist/discovery/contracts.js +555 -0
- package/dist/discovery/docs.d.ts +278 -0
- package/dist/discovery/docs.d.ts.map +1 -0
- package/dist/discovery/docs.js +1182 -0
- package/dist/discovery/facts.d.ts +49 -0
- package/dist/discovery/facts.d.ts.map +1 -0
- package/dist/discovery/facts.js +541 -0
- package/dist/discovery/index.d.ts +8 -0
- package/dist/discovery/index.d.ts.map +1 -0
- package/dist/discovery/index.js +9 -0
- package/dist/discovery/orchestrate.d.ts +35 -0
- package/dist/discovery/orchestrate.d.ts.map +1 -0
- package/dist/discovery/orchestrate.js +32 -0
- package/dist/discovery/render.d.ts +36 -0
- package/dist/discovery/render.d.ts.map +1 -0
- package/dist/discovery/render.js +278 -0
- package/dist/discovery/traverse.d.ts +197 -0
- package/dist/discovery/traverse.d.ts.map +1 -0
- package/dist/discovery/traverse.js +510 -0
- package/dist/durable/errors.d.ts +6 -2
- package/dist/durable/errors.d.ts.map +1 -1
- package/dist/durable/errors.js +9 -3
- package/dist/durable/fs-store.d.ts +21 -0
- package/dist/durable/fs-store.d.ts.map +1 -1
- package/dist/durable/fs-store.js +103 -3
- package/dist/durable/prune-check.d.ts +17 -0
- package/dist/durable/prune-check.d.ts.map +1 -1
- package/dist/durable/prune-check.js +27 -0
- package/dist/durable/runtime.d.ts +5 -3
- package/dist/durable/runtime.d.ts.map +1 -1
- package/dist/durable/runtime.js +23 -6
- package/dist/durable/seams.d.ts +4 -0
- package/dist/durable/seams.d.ts.map +1 -1
- package/dist/durable/testing.js +2 -2
- package/dist/finalize/cli.d.ts +10 -0
- package/dist/finalize/cli.d.ts.map +1 -0
- package/dist/finalize/cli.js +134 -0
- package/dist/finalize/core.d.ts +108 -0
- package/dist/finalize/core.d.ts.map +1 -0
- package/dist/finalize/core.js +767 -0
- package/dist/finalize/index.d.ts +5 -0
- package/dist/finalize/index.d.ts.map +1 -0
- package/dist/finalize/index.js +2 -0
- package/dist/finalize/proposal.d.ts +97 -0
- package/dist/finalize/proposal.d.ts.map +1 -0
- package/dist/finalize/proposal.js +213 -0
- package/dist/ideas/cli.d.ts +33 -0
- package/dist/ideas/cli.d.ts.map +1 -0
- package/dist/ideas/cli.js +158 -0
- package/dist/ideas/format.d.ts +38 -0
- package/dist/ideas/format.d.ts.map +1 -0
- package/dist/ideas/format.js +194 -0
- package/dist/ideas/index.d.ts +6 -0
- package/dist/ideas/index.d.ts.map +1 -0
- package/dist/ideas/index.js +3 -0
- package/dist/ideas/store.d.ts +55 -0
- package/dist/ideas/store.d.ts.map +1 -0
- package/dist/ideas/store.js +262 -0
- package/dist/ideas/types.d.ts +54 -0
- package/dist/ideas/types.d.ts.map +1 -0
- package/dist/ideas/types.js +26 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/init/scaffold.d.ts +4 -0
- package/dist/init/scaffold.d.ts.map +1 -1
- package/dist/init/scaffold.js +6 -2
- package/dist/managed/index.d.ts +73 -0
- package/dist/managed/index.d.ts.map +1 -0
- package/dist/managed/index.js +222 -0
- package/dist/root/index.d.ts +7 -0
- package/dist/root/index.d.ts.map +1 -1
- package/dist/root/index.js +13 -1
- package/dist/update/cli.d.ts +8 -0
- package/dist/update/cli.d.ts.map +1 -0
- package/dist/update/cli.js +115 -0
- package/dist/update/index.d.ts +78 -0
- package/dist/update/index.d.ts.map +1 -0
- package/dist/update/index.js +285 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/templates/default-instance/instruction/.cursorrules +6 -0
- package/templates/default-instance/instruction/.windsurfrules +6 -0
- package/templates/default-instance/instruction/CLAUDE.md +4 -0
- package/templates/default-instance/managed/agent.md +20 -0
- package/templates/default-instance/managed/bootstrap.md +7 -0
- package/templates/default-instance/managed/index-idea.md +5 -0
- package/templates/default-instance/managed/routing-idea.md +14 -0
- package/templates/default-instance/monolith/AGENT.md +1 -0
- package/templates/default-instance/monolith/context/maps/routing-map.md +4 -0
- package/templates/default-instance/monolith/context/maps/semantic-map.md +2 -0
- package/templates/default-instance/monolith/memory/working/active.md +11 -0
- package/templates/default-instance/monolith/skills/INDEX.md +4 -0
- package/templates/default-instance/monolith/skills/finalize-story/SKILL.md +51 -1
- package/templates/default-instance/monolith/skills/idea-capture/SKILL.md +157 -0
- package/templates/default-instance/projectroot/AGENTS.md +4 -0
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deterministic story finalization (DOCSYNC-001, ADR-022).
|
|
3
|
+
*
|
|
4
|
+
* `planFinalization` is read-only: it validates a proposal against the
|
|
5
|
+
* instance, evaluates explicit preconditions (PASS / FAIL / NOT_VERIFIED),
|
|
6
|
+
* classifies every write target and returns a digest that binds an owner's
|
|
7
|
+
* approval to exactly what was inspected. `applyFinalization` re-plans under a
|
|
8
|
+
* cross-process lock and writes only if the digest still matches.
|
|
9
|
+
*
|
|
10
|
+
* Consistency model (narrower than a transaction, deliberately): there is no
|
|
11
|
+
* rollback. Targets are written one at a time in a fixed order with `active.md`
|
|
12
|
+
* LAST, every write is an atomic single-file publish (src/root safe-write), and
|
|
13
|
+
* each target has a deterministic "already done" predicate. An interruption
|
|
14
|
+
* leaves a state that `planFinalization` reports as partial and that re-running
|
|
15
|
+
* plan + apply rolls forward; success is only reported after a post-write
|
|
16
|
+
* re-read of every target. See ADR-022.
|
|
17
|
+
*
|
|
18
|
+
* Reused, not reimplemented: safe reads/writes and containment (src/root),
|
|
19
|
+
* the cross-process lock (src/coordinatorium/lock), the Current Story section
|
|
20
|
+
* extractor of `monolith brief` (src/brief/story).
|
|
21
|
+
*/
|
|
22
|
+
import { type ConfigRead, type FsOps, type WriteWarning } from '../root/index.js';
|
|
23
|
+
import { type LockOptions } from '../coordinatorium/lock.js';
|
|
24
|
+
import { type FinalizationProposal } from './proposal.js';
|
|
25
|
+
export type CheckStatus = 'PASS' | 'FAIL' | 'NOT_VERIFIED';
|
|
26
|
+
export type TargetKind = 'capsule' | 'execution-history' | 'story-index' | 'doc' | 'handoff' | 'active';
|
|
27
|
+
export type TargetState = 'pending' | 'done' | 'conflict' | 'missing' | 'unreadable';
|
|
28
|
+
export type PlanStatus = 'READY' | 'NOT_READY' | 'ALREADY_FINALIZED';
|
|
29
|
+
export type ApplyStatus = 'FINALIZED' | 'ALREADY_FINALIZED' | 'REFUSED' | 'INCOMPLETE';
|
|
30
|
+
export interface Check {
|
|
31
|
+
id: string;
|
|
32
|
+
status: CheckStatus;
|
|
33
|
+
detail: string;
|
|
34
|
+
/** Where the verdict comes from (a MONOLITH computation vs. attested evidence). */
|
|
35
|
+
source: string;
|
|
36
|
+
}
|
|
37
|
+
export interface PlannedTarget {
|
|
38
|
+
id: string;
|
|
39
|
+
kind: TargetKind;
|
|
40
|
+
/** Project-relative, `/`-separated. */
|
|
41
|
+
path: string;
|
|
42
|
+
state: TargetState;
|
|
43
|
+
reason: string;
|
|
44
|
+
/** sha256 of the file as inspected, `ABSENT`, or `DONE`. Part of the digest. */
|
|
45
|
+
base: string;
|
|
46
|
+
/** What will be written/appended; omitted for done/blocked targets and for opaque documents. */
|
|
47
|
+
preview?: string;
|
|
48
|
+
}
|
|
49
|
+
export interface FinalizationPlan {
|
|
50
|
+
status: PlanStatus;
|
|
51
|
+
storyId: string;
|
|
52
|
+
/** Approval token: sha256 over the proposal, every target's state/base and the evidence inspected. */
|
|
53
|
+
digest: string;
|
|
54
|
+
/** True when some, but not all, targets are already in their final state (an earlier run was interrupted). */
|
|
55
|
+
partial: boolean;
|
|
56
|
+
checks: Check[];
|
|
57
|
+
targets: PlannedTarget[];
|
|
58
|
+
diagnostics: string[];
|
|
59
|
+
}
|
|
60
|
+
export interface ApplyResult {
|
|
61
|
+
status: ApplyStatus;
|
|
62
|
+
storyId: string;
|
|
63
|
+
plan: FinalizationPlan;
|
|
64
|
+
applied: string[];
|
|
65
|
+
pending: string[];
|
|
66
|
+
failed?: {
|
|
67
|
+
target: string;
|
|
68
|
+
message: string;
|
|
69
|
+
publication?: string;
|
|
70
|
+
};
|
|
71
|
+
diagnostics: string[];
|
|
72
|
+
}
|
|
73
|
+
export interface FinalizeOptions {
|
|
74
|
+
/** Test-only fault injection for the safe-write primitives. */
|
|
75
|
+
ops?: Partial<FsOps>;
|
|
76
|
+
lock?: LockOptions;
|
|
77
|
+
onWarning?: (w: WriteWarning) => void;
|
|
78
|
+
}
|
|
79
|
+
export interface FinalizeConfig {
|
|
80
|
+
requiredDocs: Array<{
|
|
81
|
+
path: string;
|
|
82
|
+
label: string;
|
|
83
|
+
}>;
|
|
84
|
+
allowedDocs: string[];
|
|
85
|
+
errors: string[];
|
|
86
|
+
}
|
|
87
|
+
export declare function readFinalizeConfig(config: ConfigRead): FinalizeConfig;
|
|
88
|
+
export declare function renderCapsule(p: FinalizationProposal): string;
|
|
89
|
+
/** Evidence older than this many days before the finalization date is not accepted. */
|
|
90
|
+
export declare const EVIDENCE_MAX_AGE_DAYS = 7;
|
|
91
|
+
export type ActiveIdentity = {
|
|
92
|
+
ok: true;
|
|
93
|
+
id: string;
|
|
94
|
+
} | {
|
|
95
|
+
ok: false;
|
|
96
|
+
reason: string;
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* Structural identity of the active story (DOCSYNC-007). The ONLY source is the
|
|
100
|
+
* `**Story:** <id> …` field line inside `## Current Story` (same grammar as the
|
|
101
|
+
* evidence files and `## Last Finalization`); its FIRST token is the id. Ids
|
|
102
|
+
* mentioned in titles, descriptions, comments, code fences or other fields carry
|
|
103
|
+
* no authority. Zero, several, or malformed field lines → no identity (fail closed).
|
|
104
|
+
*/
|
|
105
|
+
export declare function activeStoryIdentity(currentStoryBody: string): ActiveIdentity;
|
|
106
|
+
export declare function planFinalization(targetDir: string, proposal: FinalizationProposal): FinalizationPlan;
|
|
107
|
+
export declare function applyFinalization(targetDir: string, proposal: FinalizationProposal, approvedDigest: string, opts?: FinalizeOptions): Promise<ApplyResult>;
|
|
108
|
+
//# sourceMappingURL=core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/finalize/core.ts"],"names":[],"mappings":"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"}
|