atavi 0.1.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.
@@ -0,0 +1,111 @@
1
+ const ALLOWED_PHASES = new Set([
2
+ "not_started",
3
+ "independent_work",
4
+ "cross_pollination",
5
+ "synthesis",
6
+ "decision_gate",
7
+ "completed"
8
+ ]);
9
+
10
+ const ALLOWED_RUN_STATUSES = new Set([
11
+ "initialized",
12
+ "in_progress",
13
+ "blocked",
14
+ "completed"
15
+ ]);
16
+
17
+ function parseLine(line) {
18
+ const separatorIndex = line.indexOf(":");
19
+ if (separatorIndex === -1) {
20
+ return null;
21
+ }
22
+
23
+ const key = line.slice(0, separatorIndex).trim();
24
+ const value = line.slice(separatorIndex + 1).trim();
25
+ if (!key) {
26
+ return null;
27
+ }
28
+
29
+ return [key, value];
30
+ }
31
+
32
+ export function parseStatusFile(contents) {
33
+ const fields = {};
34
+
35
+ for (const rawLine of contents.split(/\r?\n/)) {
36
+ const line = rawLine.trim();
37
+ if (!line || line.startsWith("#")) {
38
+ continue;
39
+ }
40
+
41
+ const parsed = parseLine(line);
42
+ if (!parsed) {
43
+ continue;
44
+ }
45
+
46
+ const [key, value] = parsed;
47
+ fields[key] = value;
48
+ }
49
+
50
+ return fields;
51
+ }
52
+
53
+ export function validateStatus(fields) {
54
+ const errors = [];
55
+
56
+ const requiredFields = [
57
+ "run_status",
58
+ "current_pass",
59
+ "current_phase",
60
+ "convergence_score",
61
+ "blocking_concerns",
62
+ "token_estimate",
63
+ "last_updated"
64
+ ];
65
+
66
+ for (const field of requiredFields) {
67
+ if (!(field in fields) || fields[field].length === 0) {
68
+ errors.push(`${field} is required`);
69
+ }
70
+ }
71
+
72
+ if ("run_status" in fields && !ALLOWED_RUN_STATUSES.has(fields.run_status)) {
73
+ errors.push(`run_status must be one of: ${Array.from(ALLOWED_RUN_STATUSES).join(", ")}`);
74
+ }
75
+
76
+ if ("current_pass" in fields && !/^\d+$/.test(fields.current_pass)) {
77
+ errors.push("current_pass must be a non-negative integer");
78
+ }
79
+
80
+ if ("current_phase" in fields && !ALLOWED_PHASES.has(fields.current_phase)) {
81
+ errors.push(`current_phase must be one of: ${Array.from(ALLOWED_PHASES).join(", ")}`);
82
+ }
83
+
84
+ if ("convergence_score" in fields) {
85
+ const value = fields.convergence_score;
86
+ if (value !== "n/a") {
87
+ const parsed = Number(value);
88
+ if (!Number.isFinite(parsed) || parsed < 0 || parsed > 1) {
89
+ errors.push("convergence_score must be n/a or a number between 0 and 1");
90
+ }
91
+ }
92
+ }
93
+
94
+ if (fields.run_status === "completed" && fields.current_phase !== "completed") {
95
+ errors.push("run_status completed requires current_phase completed");
96
+ }
97
+
98
+ if (fields.current_phase === "completed" && fields.run_status !== "completed") {
99
+ errors.push("current_phase completed requires run_status completed");
100
+ }
101
+
102
+ if (fields.run_status === "initialized" && fields.current_pass !== "0") {
103
+ errors.push("run_status initialized requires current_pass 0");
104
+ }
105
+
106
+ if (fields.current_phase === "not_started" && fields.current_pass !== "0") {
107
+ errors.push("current_phase not_started requires current_pass 0");
108
+ }
109
+
110
+ return errors;
111
+ }
@@ -0,0 +1,12 @@
1
+ # Cross-Pollination Response
2
+
3
+ ## Responses
4
+
5
+ For each item:
6
+
7
+ - Item ID:
8
+ - Responding agent:
9
+ - Assessment: `agree` | `disagree` | `needs_revision` | `blocking_concern`
10
+ - Reasoning:
11
+ - Suggested modification:
12
+
@@ -0,0 +1,39 @@
1
+ # ATAVI Research Refinement Report
2
+
3
+ ## Completion Summary
4
+
5
+ - Mode:
6
+ - Thesis:
7
+ - Passes completed:
8
+ - Convergence:
9
+ - Experiments proposed:
10
+ - Experiments killed:
11
+ - Experiments surviving:
12
+ - Priority actions:
13
+ - Unresolved decisions:
14
+ - Memory updated:
15
+
16
+ ## Executive Summary
17
+
18
+ Summarize the run in 200-400 words.
19
+
20
+ ## Recommended Experiments
21
+
22
+ Rank surviving experiments by information gain.
23
+
24
+ ## Rejected Experiments
25
+
26
+ Document the kill log with explicit rejection reasons.
27
+
28
+ ## Claim Registry
29
+
30
+ Record final claim states and linked evidence.
31
+
32
+ ## Prior Art Registry
33
+
34
+ Record citations, summaries, tags, and overlap assessments.
35
+
36
+ ## Process Log
37
+
38
+ Log every pass, CPR exchange, synthesis, convergence score, and decision gate.
39
+
@@ -0,0 +1,22 @@
1
+ # Pass Output Document
2
+
3
+ ## Status Summary
4
+
5
+ What changed since the last pass?
6
+
7
+ ## Active Items
8
+
9
+ List active claims, experiments, or search findings.
10
+
11
+ ## Killed Items
12
+
13
+ List removed items with full reasoning.
14
+
15
+ ## Requests To Others
16
+
17
+ Tag target agent, urgency, and required response.
18
+
19
+ ## Confidence Scores
20
+
21
+ Give a confidence score and justification for each active item.
22
+
@@ -0,0 +1,32 @@
1
+ # Research Brief
2
+
3
+ ## Summary
4
+
5
+ - Mode:
6
+ - Thesis:
7
+ - Domain:
8
+ - Context sources:
9
+
10
+ ## Constraints
11
+
12
+ - Budget:
13
+ - Hardware:
14
+ - Timeline:
15
+ - Compliance:
16
+
17
+ ## Novelty Sources
18
+
19
+ - Primary:
20
+ - Secondary:
21
+
22
+ ## Agent Selection
23
+
24
+ - Base team:
25
+ - Optional agents:
26
+ - Rationale:
27
+
28
+ ## Approval
29
+
30
+ - Researcher confirmed:
31
+ - Override notes:
32
+