@interf/compiler 0.2.4 → 0.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 +194 -148
- package/dist/commands/benchmark.d.ts.map +1 -1
- package/dist/commands/benchmark.js +60 -351
- package/dist/commands/benchmark.js.map +1 -1
- package/dist/commands/compile.d.ts.map +1 -1
- package/dist/commands/compile.js +43 -110
- package/dist/commands/compile.js.map +1 -1
- package/dist/commands/create-workflow-wizard.d.ts +4 -25
- package/dist/commands/create-workflow-wizard.d.ts.map +1 -1
- package/dist/commands/create-workflow-wizard.js +29 -214
- package/dist/commands/create-workflow-wizard.js.map +1 -1
- package/dist/commands/create.d.ts +2 -11
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +72 -455
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/default.d.ts.map +1 -1
- package/dist/commands/default.js +16 -28
- package/dist/commands/default.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +71 -337
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +12 -22
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/reset.d.ts.map +1 -1
- package/dist/commands/reset.js +27 -124
- package/dist/commands/reset.js.map +1 -1
- package/dist/commands/source-config-wizard.d.ts +13 -6
- package/dist/commands/source-config-wizard.d.ts.map +1 -1
- package/dist/commands/source-config-wizard.js +93 -59
- package/dist/commands/source-config-wizard.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +60 -56
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +59 -98
- package/dist/commands/verify.js.map +1 -1
- package/dist/index.d.ts +7 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -6
- package/dist/index.js.map +1 -1
- package/dist/lib/agent-constants.js +1 -1
- package/dist/lib/agent-constants.js.map +1 -1
- package/dist/lib/benchmark-execution.d.ts.map +1 -1
- package/dist/lib/benchmark-execution.js +7 -16
- package/dist/lib/benchmark-execution.js.map +1 -1
- package/dist/lib/benchmark-targets.d.ts +3 -4
- package/dist/lib/benchmark-targets.d.ts.map +1 -1
- package/dist/lib/benchmark-targets.js +9 -55
- package/dist/lib/benchmark-targets.js.map +1 -1
- package/dist/lib/benchmark-types.d.ts +2 -3
- package/dist/lib/benchmark-types.d.ts.map +1 -1
- package/dist/lib/benchmark.d.ts +1 -1
- package/dist/lib/benchmark.d.ts.map +1 -1
- package/dist/lib/benchmark.js +1 -1
- package/dist/lib/benchmark.js.map +1 -1
- package/dist/lib/config.d.ts +1 -2
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +2 -4
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/discovery.d.ts +1 -1
- package/dist/lib/discovery.d.ts.map +1 -1
- package/dist/lib/discovery.js +7 -2
- package/dist/lib/discovery.js.map +1 -1
- package/dist/lib/eval-packs.d.ts +6 -52
- package/dist/lib/eval-packs.d.ts.map +1 -1
- package/dist/lib/eval-packs.js +11 -39
- package/dist/lib/eval-packs.js.map +1 -1
- package/dist/lib/interf-bootstrap.d.ts +3 -5
- package/dist/lib/interf-bootstrap.d.ts.map +1 -1
- package/dist/lib/interf-bootstrap.js +10 -57
- package/dist/lib/interf-bootstrap.js.map +1 -1
- package/dist/lib/interf-detect.d.ts +13 -11
- package/dist/lib/interf-detect.d.ts.map +1 -1
- package/dist/lib/interf-detect.js +59 -45
- package/dist/lib/interf-detect.js.map +1 -1
- package/dist/lib/interf-scaffold.d.ts +2 -5
- package/dist/lib/interf-scaffold.d.ts.map +1 -1
- package/dist/lib/interf-scaffold.js +98 -235
- package/dist/lib/interf-scaffold.js.map +1 -1
- package/dist/lib/interf-workflow-package.d.ts +1 -2
- package/dist/lib/interf-workflow-package.d.ts.map +1 -1
- package/dist/lib/interf-workflow-package.js +94 -90
- package/dist/lib/interf-workflow-package.js.map +1 -1
- package/dist/lib/interf.d.ts +4 -5
- package/dist/lib/interf.d.ts.map +1 -1
- package/dist/lib/interf.js +3 -6
- package/dist/lib/interf.js.map +1 -1
- package/dist/lib/local-workflows.d.ts +9 -8
- package/dist/lib/local-workflows.d.ts.map +1 -1
- package/dist/lib/local-workflows.js +42 -94
- package/dist/lib/local-workflows.js.map +1 -1
- package/dist/lib/obsidian.d.ts +1 -5
- package/dist/lib/obsidian.d.ts.map +1 -1
- package/dist/lib/obsidian.js +11 -165
- package/dist/lib/obsidian.js.map +1 -1
- package/dist/lib/registry.d.ts +6 -17
- package/dist/lib/registry.d.ts.map +1 -1
- package/dist/lib/registry.js +36 -50
- package/dist/lib/registry.js.map +1 -1
- package/dist/lib/runtime-contracts.d.ts +2 -3
- package/dist/lib/runtime-contracts.d.ts.map +1 -1
- package/dist/lib/runtime-contracts.js +10 -9
- package/dist/lib/runtime-contracts.js.map +1 -1
- package/dist/lib/runtime-reconcile.d.ts +2 -5
- package/dist/lib/runtime-reconcile.d.ts.map +1 -1
- package/dist/lib/runtime-reconcile.js +23 -176
- package/dist/lib/runtime-reconcile.js.map +1 -1
- package/dist/lib/runtime-runs.d.ts.map +1 -1
- package/dist/lib/runtime-runs.js +52 -57
- package/dist/lib/runtime-runs.js.map +1 -1
- package/dist/lib/runtime-types.d.ts +5 -6
- package/dist/lib/runtime-types.d.ts.map +1 -1
- package/dist/lib/runtime.d.ts +2 -2
- package/dist/lib/runtime.d.ts.map +1 -1
- package/dist/lib/runtime.js +1 -1
- package/dist/lib/runtime.js.map +1 -1
- package/dist/lib/schema.d.ts +53 -312
- package/dist/lib/schema.d.ts.map +1 -1
- package/dist/lib/schema.js +39 -206
- package/dist/lib/schema.js.map +1 -1
- package/dist/lib/source-config.d.ts +7 -7
- package/dist/lib/source-config.d.ts.map +1 -1
- package/dist/lib/source-config.js +55 -62
- package/dist/lib/source-config.js.map +1 -1
- package/dist/lib/state-artifacts.d.ts +5 -11
- package/dist/lib/state-artifacts.d.ts.map +1 -1
- package/dist/lib/state-artifacts.js +8 -18
- package/dist/lib/state-artifacts.js.map +1 -1
- package/dist/lib/state-health.d.ts +4 -8
- package/dist/lib/state-health.d.ts.map +1 -1
- package/dist/lib/state-health.js +27 -223
- package/dist/lib/state-health.js.map +1 -1
- package/dist/lib/state-io.d.ts +7 -12
- package/dist/lib/state-io.d.ts.map +1 -1
- package/dist/lib/state-io.js +26 -93
- package/dist/lib/state-io.js.map +1 -1
- package/dist/lib/state-view.d.ts +4 -6
- package/dist/lib/state-view.d.ts.map +1 -1
- package/dist/lib/state-view.js +62 -101
- package/dist/lib/state-view.js.map +1 -1
- package/dist/lib/state.d.ts +5 -5
- package/dist/lib/state.d.ts.map +1 -1
- package/dist/lib/state.js +4 -4
- package/dist/lib/state.js.map +1 -1
- package/dist/lib/summarize-plan.d.ts +2 -2
- package/dist/lib/summarize-plan.d.ts.map +1 -1
- package/dist/lib/summarize-plan.js +13 -13
- package/dist/lib/summarize-plan.js.map +1 -1
- package/dist/lib/{validate-kb.d.ts → validate-workspace.d.ts} +8 -8
- package/dist/lib/validate-workspace.d.ts.map +1 -0
- package/dist/lib/{validate-kb.js → validate-workspace.js} +44 -46
- package/dist/lib/validate-workspace.js.map +1 -0
- package/dist/lib/validate.d.ts +5 -7
- package/dist/lib/validate.d.ts.map +1 -1
- package/dist/lib/validate.js +6 -19
- package/dist/lib/validate.js.map +1 -1
- package/dist/lib/workflow-definitions.d.ts +14 -50
- package/dist/lib/workflow-definitions.d.ts.map +1 -1
- package/dist/lib/workflow-definitions.js +74 -349
- package/dist/lib/workflow-definitions.js.map +1 -1
- package/dist/lib/workflow-helpers.d.ts +3 -4
- package/dist/lib/workflow-helpers.d.ts.map +1 -1
- package/dist/lib/workflow-helpers.js +15 -49
- package/dist/lib/workflow-helpers.js.map +1 -1
- package/dist/lib/workflow-stage-runner.d.ts +1 -2
- package/dist/lib/workflow-stage-runner.d.ts.map +1 -1
- package/dist/lib/workflow-stage-runner.js +4 -6
- package/dist/lib/workflow-stage-runner.js.map +1 -1
- package/dist/lib/workflow-starter-docs.d.ts +3 -5
- package/dist/lib/workflow-starter-docs.d.ts.map +1 -1
- package/dist/lib/workflow-starter-docs.js +2 -17
- package/dist/lib/workflow-starter-docs.js.map +1 -1
- package/dist/lib/workflows.d.ts +9 -14
- package/dist/lib/workflows.d.ts.map +1 -1
- package/dist/lib/workflows.js +13 -30
- package/dist/lib/workflows.js.map +1 -1
- package/dist/lib/workspace-compile.d.ts +50 -0
- package/dist/lib/workspace-compile.d.ts.map +1 -0
- package/dist/lib/{workflows-kb.js → workspace-compile.js} +81 -89
- package/dist/lib/workspace-compile.js.map +1 -0
- package/package.json +9 -9
- package/skills/benchmark/SKILL.md +16 -24
- package/skills/workflow/create/SKILL.md +7 -14
- package/templates/workspace/README.md +23 -0
- package/templates/workspace/interfignore +2 -0
- package/dist/lib/bundled-templates.d.ts +0 -5
- package/dist/lib/bundled-templates.d.ts.map +0 -1
- package/dist/lib/bundled-templates.js +0 -23
- package/dist/lib/bundled-templates.js.map +0 -1
- package/dist/lib/interf-compile-plan.d.ts +0 -12
- package/dist/lib/interf-compile-plan.d.ts.map +0 -1
- package/dist/lib/interf-compile-plan.js +0 -143
- package/dist/lib/interf-compile-plan.js.map +0 -1
- package/dist/lib/validate-interface.d.ts +0 -79
- package/dist/lib/validate-interface.d.ts.map +0 -1
- package/dist/lib/validate-interface.js +0 -535
- package/dist/lib/validate-interface.js.map +0 -1
- package/dist/lib/validate-kb.d.ts.map +0 -1
- package/dist/lib/validate-kb.js.map +0 -1
- package/dist/lib/workflows-interface-contracts.d.ts +0 -24
- package/dist/lib/workflows-interface-contracts.d.ts.map +0 -1
- package/dist/lib/workflows-interface-contracts.js +0 -304
- package/dist/lib/workflows-interface-contracts.js.map +0 -1
- package/dist/lib/workflows-interface.d.ts +0 -72
- package/dist/lib/workflows-interface.d.ts.map +0 -1
- package/dist/lib/workflows-interface.js +0 -377
- package/dist/lib/workflows-interface.js.map +0 -1
- package/dist/lib/workflows-kb.d.ts +0 -50
- package/dist/lib/workflows-kb.d.ts.map +0 -1
- package/dist/lib/workflows-kb.js.map +0 -1
- package/skills/interface/analyze/SKILL.md +0 -191
- package/skills/interface/compile/SKILL.md +0 -152
- package/skills/interface/compile/references/output-format.md +0 -48
- package/skills/interface/create/SKILL.md +0 -87
- package/skills/interface/create/references/compile-plan-format.md +0 -109
- package/skills/interface/create/references/workflows.md +0 -35
- package/skills/interface/query/SKILL.md +0 -48
- package/skills/interface/retrieve/SKILL.md +0 -133
- package/skills/knowledge-base/compile/SKILL.md +0 -196
- package/skills/knowledge-base/compile/references/output-format.md +0 -48
- package/skills/knowledge-base/compile/references/stage-claims.md +0 -60
- package/skills/knowledge-base/compile/references/stage-entities.md +0 -46
- package/skills/knowledge-base/query/SKILL.md +0 -45
- package/skills/knowledge-base/summarize/SKILL.md +0 -152
- package/templates/interface/README.md +0 -159
- package/templates/interface/interfaces.md +0 -102
- package/templates/knowledge-base/README.md +0 -137
- package/templates/knowledge-base/interfignore +0 -19
- package/templates/knowledge-base/registry.md +0 -118
- package/templates/workflow-package/README.md +0 -16
- package/templates/workflow-package/create/SKILL.md +0 -8
- package/templates/workflow-package/interface-query/SKILL.md +0 -29
- package/templates/workflow-package/interface-stage/SKILL.md +0 -13
- package/templates/workflow-package/knowledge-base-query/SKILL.md +0 -36
- package/templates/workflow-package/knowledge-base-stage/SKILL.md +0 -13
- package/templates/workflow-starters/interface/interf/README.md +0 -13
- package/templates/workflow-starters/interface/interf/create/SKILL.md +0 -15
- package/templates/workflow-starters/knowledge-base/interf/README.md +0 -13
- package/templates/workflow-starters/knowledge-base/karpathy/README.md +0 -13
package/dist/lib/state-io.js
CHANGED
|
@@ -2,26 +2,23 @@ import { existsSync, mkdirSync, readFileSync, writeFileSync, } from "node:fs";
|
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { warnInterf } from "./logger.js";
|
|
4
4
|
import { readJsonFileUnchecked, readJsonFileWithSchema } from "./parse.js";
|
|
5
|
-
import {
|
|
5
|
+
import { WorkspaceHealthSchema, WorkspaceInventorySchema, WorkspaceSourceAccessSchema, WorkspaceStateSchema, WorkspaceViewSpecSchema, } from "./schema.js";
|
|
6
6
|
import { readInventoryFiles, readInventoryTotal } from "./validate-helpers.js";
|
|
7
7
|
import { STATE_DIR } from "./util.js";
|
|
8
8
|
import { healthPath, sourceAccessPath, statePath, viewSpecPath } from "./state-paths.js";
|
|
9
|
-
const RuntimeStateSchema = KnowledgeBaseStateSchema.or(InterfaceStateSchema);
|
|
10
9
|
const NORMALIZABLE_RUNTIME_TIMESTAMP_FIELDS = [
|
|
11
10
|
"last_add",
|
|
12
11
|
"last_summarize",
|
|
13
12
|
"last_compile",
|
|
14
|
-
"last_retrieve",
|
|
15
|
-
"last_analyze",
|
|
16
13
|
];
|
|
17
14
|
export function loadState(dirPath) {
|
|
18
|
-
const
|
|
19
|
-
if (!existsSync(
|
|
15
|
+
const path = statePath(dirPath);
|
|
16
|
+
if (!existsSync(path))
|
|
20
17
|
return null;
|
|
21
|
-
const raw = readJsonFileUnchecked(
|
|
18
|
+
const raw = readJsonFileUnchecked(path, "runtime state");
|
|
22
19
|
if (raw === null)
|
|
23
20
|
return null;
|
|
24
|
-
const parsed =
|
|
21
|
+
const parsed = WorkspaceStateSchema.safeParse(raw);
|
|
25
22
|
if (parsed.success) {
|
|
26
23
|
const healed = healParsedRuntimeState(dirPath, parsed.data);
|
|
27
24
|
if (healed !== null) {
|
|
@@ -35,7 +32,7 @@ export function loadState(dirPath) {
|
|
|
35
32
|
saveState(dirPath, normalized);
|
|
36
33
|
return normalized;
|
|
37
34
|
}
|
|
38
|
-
warnInterf(`Warning: failed to validate runtime state at ${
|
|
35
|
+
warnInterf(`Warning: failed to validate runtime state at ${path}: ${parsed.error.issues.map((issue) => issue.message).join("; ")}`);
|
|
39
36
|
return null;
|
|
40
37
|
}
|
|
41
38
|
export function saveState(dirPath, state) {
|
|
@@ -43,57 +40,35 @@ export function saveState(dirPath, state) {
|
|
|
43
40
|
mkdirSync(dir, { recursive: true });
|
|
44
41
|
writeFileSync(statePath(dirPath), JSON.stringify(state, null, 2) + "\n");
|
|
45
42
|
}
|
|
46
|
-
export function
|
|
47
|
-
const
|
|
48
|
-
if (!existsSync(
|
|
43
|
+
export function loadWorkspaceHealth(dirPath) {
|
|
44
|
+
const path = healthPath(dirPath);
|
|
45
|
+
if (!existsSync(path))
|
|
49
46
|
return null;
|
|
50
|
-
return readJsonFileWithSchema(
|
|
47
|
+
return readJsonFileWithSchema(path, "workspace health", WorkspaceHealthSchema);
|
|
51
48
|
}
|
|
52
|
-
export function
|
|
53
|
-
const p = healthPath(dirPath);
|
|
54
|
-
if (!existsSync(p))
|
|
55
|
-
return null;
|
|
56
|
-
return readJsonFileWithSchema(p, "knowledge-base health", KnowledgeBaseHealthSchema);
|
|
57
|
-
}
|
|
58
|
-
export function saveInterfaceHealth(dirPath, health) {
|
|
49
|
+
export function saveWorkspaceHealth(dirPath, health) {
|
|
59
50
|
const dir = join(dirPath, STATE_DIR);
|
|
60
51
|
mkdirSync(dir, { recursive: true });
|
|
61
52
|
writeFileSync(healthPath(dirPath), JSON.stringify(health, null, 2) + "\n");
|
|
62
53
|
}
|
|
63
|
-
export function
|
|
64
|
-
const
|
|
65
|
-
|
|
66
|
-
writeFileSync(healthPath(dirPath), JSON.stringify(health, null, 2) + "\n");
|
|
67
|
-
}
|
|
68
|
-
export function loadInterfaceViewSpec(dirPath) {
|
|
69
|
-
const p = viewSpecPath(dirPath);
|
|
70
|
-
if (!existsSync(p))
|
|
71
|
-
return null;
|
|
72
|
-
return loadViewSpec(p, InterfaceViewSpecSchema);
|
|
73
|
-
}
|
|
74
|
-
export function loadKnowledgeBaseViewSpec(dirPath) {
|
|
75
|
-
const p = viewSpecPath(dirPath);
|
|
76
|
-
if (!existsSync(p))
|
|
77
|
-
return null;
|
|
78
|
-
return loadViewSpec(p, KnowledgeBaseViewSpecSchema);
|
|
79
|
-
}
|
|
80
|
-
export function loadKnowledgeBaseSourceAccess(dirPath) {
|
|
81
|
-
const p = sourceAccessPath(dirPath);
|
|
82
|
-
if (!existsSync(p))
|
|
54
|
+
export function loadWorkspaceViewSpec(dirPath) {
|
|
55
|
+
const path = viewSpecPath(dirPath);
|
|
56
|
+
if (!existsSync(path))
|
|
83
57
|
return null;
|
|
84
|
-
return
|
|
58
|
+
return loadViewSpec(path, WorkspaceViewSpecSchema);
|
|
85
59
|
}
|
|
86
|
-
export function
|
|
60
|
+
export function saveWorkspaceViewSpec(dirPath, viewSpec) {
|
|
87
61
|
const dir = join(dirPath, STATE_DIR);
|
|
88
62
|
mkdirSync(dir, { recursive: true });
|
|
89
63
|
writeFileSync(viewSpecPath(dirPath), JSON.stringify(viewSpec, null, 2) + "\n");
|
|
90
64
|
}
|
|
91
|
-
export function
|
|
92
|
-
const
|
|
93
|
-
|
|
94
|
-
|
|
65
|
+
export function loadWorkspaceSourceAccess(dirPath) {
|
|
66
|
+
const path = sourceAccessPath(dirPath);
|
|
67
|
+
if (!existsSync(path))
|
|
68
|
+
return null;
|
|
69
|
+
return readJsonFileWithSchema(path, "workspace source access", WorkspaceSourceAccessSchema);
|
|
95
70
|
}
|
|
96
|
-
export function
|
|
71
|
+
export function initWorkspaceState() {
|
|
97
72
|
return {
|
|
98
73
|
version: 1,
|
|
99
74
|
pending: [],
|
|
@@ -111,50 +86,11 @@ export function initKnowledgeBaseState() {
|
|
|
111
86
|
error_count: 0,
|
|
112
87
|
};
|
|
113
88
|
}
|
|
114
|
-
export function initInterfaceState() {
|
|
115
|
-
return {
|
|
116
|
-
version: 1,
|
|
117
|
-
retrieve_complete: false,
|
|
118
|
-
analyze_complete: false,
|
|
119
|
-
compile_complete: false,
|
|
120
|
-
coverage_complete: false,
|
|
121
|
-
frontmatter_scanned: 0,
|
|
122
|
-
candidate_count: 0,
|
|
123
|
-
abstracts_read: 0,
|
|
124
|
-
expansion_passes: 0,
|
|
125
|
-
relevant_count: 0,
|
|
126
|
-
rejected_count: 0,
|
|
127
|
-
delta_count: 0,
|
|
128
|
-
delta_files: [],
|
|
129
|
-
last_retrieve: null,
|
|
130
|
-
last_analyze: null,
|
|
131
|
-
last_compile: null,
|
|
132
|
-
knowledge_base_summary_count_at_last_compile: 0,
|
|
133
|
-
extracted_entities: 0,
|
|
134
|
-
extracted_claims: 0,
|
|
135
|
-
entity_count: 0,
|
|
136
|
-
claim_count: 0,
|
|
137
|
-
output_count: 0,
|
|
138
|
-
warning_count: 0,
|
|
139
|
-
error_count: 0,
|
|
140
|
-
};
|
|
141
|
-
}
|
|
142
89
|
function normalizeRuntimeState(raw) {
|
|
143
90
|
if (!raw || typeof raw !== "object" || Array.isArray(raw))
|
|
144
91
|
return null;
|
|
145
92
|
const normalized = { ...raw };
|
|
146
93
|
let changed = false;
|
|
147
|
-
if (typeof normalized.build_complete === "boolean" &&
|
|
148
|
-
typeof normalized.compile_complete !== "boolean") {
|
|
149
|
-
normalized.compile_complete = normalized.build_complete;
|
|
150
|
-
changed = true;
|
|
151
|
-
}
|
|
152
|
-
const legacyBuildTimestamp = normalizeRuntimeTimestampField(normalized.last_build);
|
|
153
|
-
if (legacyBuildTimestamp !== undefined &&
|
|
154
|
-
(typeof normalized.last_compile !== "string" && normalized.last_compile !== null)) {
|
|
155
|
-
normalized.last_compile = legacyBuildTimestamp;
|
|
156
|
-
changed = true;
|
|
157
|
-
}
|
|
158
94
|
for (const field of NORMALIZABLE_RUNTIME_TIMESTAMP_FIELDS) {
|
|
159
95
|
const timestamp = normalizeRuntimeTimestampField(normalized[field]);
|
|
160
96
|
if (timestamp !== undefined && timestamp !== normalized[field]) {
|
|
@@ -164,12 +100,10 @@ function normalizeRuntimeState(raw) {
|
|
|
164
100
|
}
|
|
165
101
|
if (!changed)
|
|
166
102
|
return null;
|
|
167
|
-
const parsed =
|
|
103
|
+
const parsed = WorkspaceStateSchema.safeParse(normalized);
|
|
168
104
|
return parsed.success ? parsed.data : null;
|
|
169
105
|
}
|
|
170
106
|
function healParsedRuntimeState(dirPath, state) {
|
|
171
|
-
if (!("pending" in state) || typeof state.summarized !== "number")
|
|
172
|
-
return null;
|
|
173
107
|
if (typeof state.inventory_complete === "boolean")
|
|
174
108
|
return null;
|
|
175
109
|
if (!Array.isArray(state.pending) || state.pending.length > 0)
|
|
@@ -179,7 +113,7 @@ function healParsedRuntimeState(dirPath, state) {
|
|
|
179
113
|
const inventoryPath = join(dirPath, STATE_DIR, "inventory.json");
|
|
180
114
|
if (!existsSync(inventoryPath))
|
|
181
115
|
return null;
|
|
182
|
-
const inventory = readJsonFileWithSchema(inventoryPath, "
|
|
116
|
+
const inventory = readJsonFileWithSchema(inventoryPath, "workspace inventory", WorkspaceInventorySchema);
|
|
183
117
|
if (inventory === null)
|
|
184
118
|
return null;
|
|
185
119
|
const inventoryFiles = readInventoryFiles(inventory);
|
|
@@ -209,10 +143,9 @@ function loadViewSpec(filePath, schema) {
|
|
|
209
143
|
try {
|
|
210
144
|
const raw = JSON.parse(readFileSync(filePath, "utf8"));
|
|
211
145
|
const parsed = schema.safeParse(raw);
|
|
212
|
-
return parsed.success ?
|
|
146
|
+
return parsed.success ? parsed.data ?? null : null;
|
|
213
147
|
}
|
|
214
|
-
catch
|
|
215
|
-
warnInterf(`Warning: failed to read view spec at ${filePath}: ${error instanceof Error ? error.message : String(error)}`);
|
|
148
|
+
catch {
|
|
216
149
|
return null;
|
|
217
150
|
}
|
|
218
151
|
}
|
package/dist/lib/state-io.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-io.js","sourceRoot":"","sources":["../../src/lib/state-io.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,SAAS,EACT,YAAY,EACZ,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EACL,qBAAqB,EACrB,
|
|
1
|
+
{"version":3,"file":"state-io.js","sourceRoot":"","sources":["../../src/lib/state-io.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/state-view.d.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
export declare function
|
|
3
|
-
export declare function
|
|
4
|
-
export declare function
|
|
5
|
-
export declare function normalizeInterfaceViewSpec(existing: InterfaceViewSpec, defaults: InterfaceViewSpec): InterfaceViewSpec;
|
|
6
|
-
export declare function normalizeKnowledgeBaseViewSpec(existing: KnowledgeBaseViewSpec, defaults: KnowledgeBaseViewSpec): KnowledgeBaseViewSpec;
|
|
1
|
+
import { type WorkspaceSourceAccess, type WorkspaceViewSpec } from "./schema.js";
|
|
2
|
+
export declare function ensureWorkspaceViewSpec(dirPath: string): WorkspaceViewSpec;
|
|
3
|
+
export declare function ensureWorkspaceSourceAccess(dirPath: string): WorkspaceSourceAccess;
|
|
4
|
+
export declare function normalizeWorkspaceViewSpec(existing: WorkspaceViewSpec, defaults?: WorkspaceViewSpec): WorkspaceViewSpec;
|
|
7
5
|
//# sourceMappingURL=state-view.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-view.d.ts","sourceRoot":"","sources":["../../src/lib/state-view.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,
|
|
1
|
+
{"version":3,"file":"state-view.d.ts","sourceRoot":"","sources":["../../src/lib/state-view.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAC;AAQrB,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAgB1E;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,qBAAqB,CA0BlF;AAED,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,iBAAiB,EAC3B,QAAQ,GAAE,iBAGT,GACA,iBAAiB,CAWnB"}
|
package/dist/lib/state-view.js
CHANGED
|
@@ -1,94 +1,30 @@
|
|
|
1
1
|
import { basename, relative, resolve, join } from "node:path";
|
|
2
2
|
import { mkdirSync, writeFileSync } from "node:fs";
|
|
3
3
|
import { discoverSourceFiles } from "./discovery.js";
|
|
4
|
-
import { readInterfConfig,
|
|
5
|
-
import {
|
|
4
|
+
import { readInterfConfig, resolveSourceFolderPath } from "./interf.js";
|
|
5
|
+
import { loadWorkspaceViewSpec, saveWorkspaceViewSpec, } from "./state-io.js";
|
|
6
6
|
import { sourceAccessPath } from "./state-paths.js";
|
|
7
7
|
import { STATE_DIR } from "./util.js";
|
|
8
|
-
export function
|
|
9
|
-
const existing =
|
|
8
|
+
export function ensureWorkspaceViewSpec(dirPath) {
|
|
9
|
+
const existing = loadWorkspaceViewSpec(dirPath);
|
|
10
10
|
const now = new Date().toISOString();
|
|
11
|
-
const
|
|
12
|
-
const defaults =
|
|
13
|
-
kind: "interface-view-spec",
|
|
14
|
-
version: 1,
|
|
15
|
-
generated_at: now,
|
|
16
|
-
interface_name: interfaceName,
|
|
17
|
-
health_source: ".interf/health.json",
|
|
18
|
-
state_source: ".interf/state.json",
|
|
19
|
-
default_note: "home.md",
|
|
20
|
-
graph_scope: ["knowledge", "briefs", "summaries"],
|
|
21
|
-
cards: [
|
|
22
|
-
{ id: "compile", label: "Knowledge Base Compiled", metric: "knowledge_base_compiled", denominator_metric: "knowledge_base_total", format: "fraction" },
|
|
23
|
-
{ id: "scanned", label: "Scanned", metric: "frontmatter_scanned", denominator_metric: "knowledge_base_total", format: "fraction" },
|
|
24
|
-
{ id: "abstracts", label: "Abstracts Read", metric: "abstracts_read", format: "number" },
|
|
25
|
-
{ id: "to-compile", label: "To Compile", metric: "to_compile", format: "number" },
|
|
26
|
-
{ id: "relevant", label: "Relevant", metric: "relevant", format: "number" },
|
|
27
|
-
{ id: "entities", label: "Entities", metric: "entities", format: "number" },
|
|
28
|
-
{ id: "outputs", label: "Outputs", metric: "outputs", format: "number" },
|
|
29
|
-
],
|
|
30
|
-
sections: [
|
|
31
|
-
{ id: "status", type: "status", title: "Compile Status", path: ".interf/health.json" },
|
|
32
|
-
{ id: "cards", type: "cards", title: "Key Metrics", path: ".interf/health.json" },
|
|
33
|
-
{ id: "graph", type: "graph", title: "Knowledge Graph", paths: ["knowledge", "briefs", "summaries"] },
|
|
34
|
-
{ id: "core-docs", type: "documents", title: "Core Docs", paths: ["home.md", "briefs", "summaries", "knowledge/claims", "knowledge/entities"] },
|
|
35
|
-
{ id: "claims", type: "table", title: "Claims", path: "knowledge/claims" },
|
|
36
|
-
],
|
|
37
|
-
};
|
|
11
|
+
const workspaceName = readInterfConfig(dirPath)?.name ?? basename(dirPath);
|
|
12
|
+
const defaults = buildDefaultWorkspaceViewSpec(workspaceName, now);
|
|
38
13
|
if (existing) {
|
|
39
|
-
const normalized =
|
|
14
|
+
const normalized = normalizeWorkspaceViewSpec(existing, defaults);
|
|
40
15
|
if (JSON.stringify(normalized) !== JSON.stringify(existing)) {
|
|
41
|
-
|
|
16
|
+
saveWorkspaceViewSpec(dirPath, normalized);
|
|
42
17
|
}
|
|
43
18
|
return normalized;
|
|
44
19
|
}
|
|
45
|
-
|
|
20
|
+
saveWorkspaceViewSpec(dirPath, defaults);
|
|
46
21
|
return defaults;
|
|
47
22
|
}
|
|
48
|
-
export function
|
|
49
|
-
const existing = loadKnowledgeBaseViewSpec(dirPath);
|
|
50
|
-
const now = new Date().toISOString();
|
|
51
|
-
const knowledgeBaseName = readInterfConfig(dirPath)?.name ?? basename(dirPath);
|
|
52
|
-
const defaults = {
|
|
53
|
-
kind: "knowledge-base-view-spec",
|
|
54
|
-
version: 1,
|
|
55
|
-
generated_at: now,
|
|
56
|
-
target_name: knowledgeBaseName,
|
|
57
|
-
health_source: ".interf/health.json",
|
|
58
|
-
state_source: ".interf/state.json",
|
|
59
|
-
default_note: "home.md",
|
|
60
|
-
graph_scope: ["summaries", "knowledge"],
|
|
61
|
-
cards: [
|
|
62
|
-
{ id: "source-total", label: "Source Files", metric: "source_total", format: "number" },
|
|
63
|
-
{ id: "summarized", label: "Summarized", metric: "source_covered", denominator_metric: "source_total", format: "fraction" },
|
|
64
|
-
{ id: "to-summarize", label: "To Summarize", metric: "to_summarize", format: "number" },
|
|
65
|
-
{ id: "compiled", label: "Compiled", metric: "compiled", denominator_metric: "summarized", format: "fraction" },
|
|
66
|
-
{ id: "entities", label: "Entities", metric: "entities", format: "number" },
|
|
67
|
-
{ id: "claims", label: "Claims", metric: "claims", format: "number" },
|
|
68
|
-
],
|
|
69
|
-
sections: [
|
|
70
|
-
{ id: "status", type: "status", title: "Compile Status", path: ".interf/health.json" },
|
|
71
|
-
{ id: "cards", type: "cards", title: "Key Metrics", path: ".interf/health.json" },
|
|
72
|
-
{ id: "graph", type: "graph", title: "Knowledge Graph", paths: ["summaries", "knowledge"] },
|
|
73
|
-
{ id: "core-docs", type: "documents", title: "Core Docs", paths: ["home.md", "knowledge/indexes", "knowledge/entities", "knowledge/claims", "summaries"] },
|
|
74
|
-
{ id: "claims", type: "table", title: "Claims", path: "knowledge/claims" },
|
|
75
|
-
],
|
|
76
|
-
};
|
|
77
|
-
if (existing) {
|
|
78
|
-
const normalized = normalizeKnowledgeBaseViewSpec(existing, defaults);
|
|
79
|
-
if (JSON.stringify(normalized) !== JSON.stringify(existing)) {
|
|
80
|
-
saveKnowledgeBaseViewSpec(dirPath, normalized);
|
|
81
|
-
}
|
|
82
|
-
return normalized;
|
|
83
|
-
}
|
|
84
|
-
saveKnowledgeBaseViewSpec(dirPath, defaults);
|
|
85
|
-
return defaults;
|
|
86
|
-
}
|
|
87
|
-
export function ensureKnowledgeBaseSourceAccess(dirPath) {
|
|
23
|
+
export function ensureWorkspaceSourceAccess(dirPath) {
|
|
88
24
|
const now = new Date().toISOString();
|
|
89
25
|
const config = readInterfConfig(dirPath);
|
|
90
|
-
const
|
|
91
|
-
const sourcePath =
|
|
26
|
+
const workspaceName = config?.name ?? basename(dirPath);
|
|
27
|
+
const sourcePath = resolveSourceFolderPath(dirPath, config);
|
|
92
28
|
const discovery = discoverSourceFiles(sourcePath, dirPath);
|
|
93
29
|
const sampleFiles = [...discovery.sourceFiles]
|
|
94
30
|
.sort((a, b) => a.length - b.length || a.localeCompare(b))
|
|
@@ -96,10 +32,10 @@ export function ensureKnowledgeBaseSourceAccess(dirPath) {
|
|
|
96
32
|
const sourceRoot = relative(dirPath, sourcePath) || ".";
|
|
97
33
|
const suggestedChecks = sampleFiles.slice(0, 3).map((file) => resolve(sourcePath, file));
|
|
98
34
|
const artifact = {
|
|
99
|
-
kind: "
|
|
35
|
+
kind: "workspace-source-access",
|
|
100
36
|
version: 1,
|
|
101
37
|
generated_at: now,
|
|
102
|
-
target_name:
|
|
38
|
+
target_name: workspaceName,
|
|
103
39
|
source_root: sourceRoot,
|
|
104
40
|
source_total: discovery.totalCount,
|
|
105
41
|
sample_files: sampleFiles,
|
|
@@ -109,39 +45,64 @@ export function ensureKnowledgeBaseSourceAccess(dirPath) {
|
|
|
109
45
|
writeFileSync(sourceAccessPath(dirPath), JSON.stringify(artifact, null, 2) + "\n");
|
|
110
46
|
return artifact;
|
|
111
47
|
}
|
|
112
|
-
export function
|
|
113
|
-
const existingCards = Array.isArray(existing.cards) ? existing.cards : defaults.cards;
|
|
114
|
-
const cards = existingCards.map((card) => {
|
|
115
|
-
if (card.id === "compile" && card.format === "fraction" && !card.denominator_metric) {
|
|
116
|
-
return {
|
|
117
|
-
...card,
|
|
118
|
-
metric: "knowledge_base_compiled",
|
|
119
|
-
denominator_metric: "knowledge_base_total",
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
return card;
|
|
123
|
-
});
|
|
48
|
+
export function normalizeWorkspaceViewSpec(existing, defaults = buildDefaultWorkspaceViewSpec(existing.target_name, existing.generated_at)) {
|
|
124
49
|
return {
|
|
125
50
|
...defaults,
|
|
126
51
|
...existing,
|
|
127
|
-
cards,
|
|
52
|
+
cards: normalizeWorkspaceCards(existing.cards, defaults.cards),
|
|
128
53
|
sections: Array.isArray(existing.sections) && existing.sections.length > 0 ? existing.sections : defaults.sections,
|
|
129
54
|
graph_scope: Array.isArray(existing.graph_scope) && existing.graph_scope.length > 0
|
|
130
55
|
? existing.graph_scope
|
|
131
56
|
: defaults.graph_scope,
|
|
132
57
|
};
|
|
133
58
|
}
|
|
134
|
-
|
|
135
|
-
const existingCards = Array.isArray(existing.cards) ? existing.cards : defaults.cards;
|
|
136
|
-
const cards = existingCards.map((card) => card);
|
|
59
|
+
function buildDefaultWorkspaceViewSpec(workspaceName, generatedAt) {
|
|
137
60
|
return {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
61
|
+
kind: "workspace-view-spec",
|
|
62
|
+
version: 1,
|
|
63
|
+
generated_at: generatedAt,
|
|
64
|
+
target_name: workspaceName,
|
|
65
|
+
health_source: ".interf/health.json",
|
|
66
|
+
state_source: ".interf/state.json",
|
|
67
|
+
default_note: "home.md",
|
|
68
|
+
graph_scope: ["summaries", "knowledge"],
|
|
69
|
+
cards: [
|
|
70
|
+
{ id: "source-total", label: "Source Files", metric: "source_total", format: "number" },
|
|
71
|
+
{ id: "summarized", label: "Summarized", metric: "source_covered", denominator_metric: "source_total", format: "fraction" },
|
|
72
|
+
{ id: "to-summarize", label: "To Summarize", metric: "to_summarize", format: "number" },
|
|
73
|
+
{ id: "compiled", label: "Compiled", metric: "compiled", denominator_metric: "summarized", format: "fraction" },
|
|
74
|
+
{ id: "entities", label: "Entities", metric: "entities", format: "number" },
|
|
75
|
+
{ id: "claims", label: "Claims", metric: "claims", format: "number" },
|
|
76
|
+
],
|
|
77
|
+
sections: [
|
|
78
|
+
{ id: "status", type: "status", title: "Compile Status", path: ".interf/health.json" },
|
|
79
|
+
{ id: "cards", type: "cards", title: "Key Metrics", path: ".interf/health.json" },
|
|
80
|
+
{ id: "graph", type: "graph", title: "Knowledge Graph", paths: ["summaries", "knowledge"] },
|
|
81
|
+
{ id: "core-docs", type: "documents", title: "Core Docs", paths: ["home.md", "knowledge/indexes", "knowledge/entities", "knowledge/claims", "summaries"] },
|
|
82
|
+
{ id: "claims", type: "table", title: "Claims", path: "knowledge/claims" },
|
|
83
|
+
],
|
|
145
84
|
};
|
|
146
85
|
}
|
|
86
|
+
function normalizeWorkspaceCards(cards, defaults) {
|
|
87
|
+
if (!Array.isArray(cards) || cards.length === 0) {
|
|
88
|
+
return defaults;
|
|
89
|
+
}
|
|
90
|
+
return cards.map((card) => {
|
|
91
|
+
const matchingDefault = defaults.find((candidate) => candidate.id === card.id);
|
|
92
|
+
const normalized = {
|
|
93
|
+
...(matchingDefault ?? {}),
|
|
94
|
+
...card,
|
|
95
|
+
};
|
|
96
|
+
if (normalized.format === "fraction" &&
|
|
97
|
+
typeof normalized.denominator_metric !== "string") {
|
|
98
|
+
if (normalized.metric === "compiled") {
|
|
99
|
+
normalized.denominator_metric = "summarized";
|
|
100
|
+
}
|
|
101
|
+
else if (normalized.metric === "source_covered") {
|
|
102
|
+
normalized.denominator_metric = "source_total";
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return normalized;
|
|
106
|
+
});
|
|
107
|
+
}
|
|
147
108
|
//# sourceMappingURL=state-view.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-view.js","sourceRoot":"","sources":["../../src/lib/state-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAc,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"state-view.js","sourceRoot":"","sources":["../../src/lib/state-view.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/state.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export type { RuntimeStatus,
|
|
1
|
+
export type { RuntimeStatus, WorkspaceStage, WorkspaceState, WorkspaceHealth, ViewSection, ViewCard, WorkspaceViewSpec, WorkspaceSourceAccess, } from "./schema.js";
|
|
2
2
|
export { statePath, healthPath, viewSpecPath, sourceAccessPath, } from "./state-paths.js";
|
|
3
|
-
export { loadState, saveState,
|
|
4
|
-
export {
|
|
5
|
-
export {
|
|
6
|
-
export {
|
|
3
|
+
export { loadState, saveState, loadWorkspaceHealth, saveWorkspaceHealth, loadWorkspaceViewSpec, loadWorkspaceSourceAccess, saveWorkspaceViewSpec, initWorkspaceState, } from "./state-io.js";
|
|
4
|
+
export { refreshWorkspaceArtifacts, } from "./state-artifacts.js";
|
|
5
|
+
export { computeWorkspaceHealth, resolveWorkspaceStatus, resolveWorkspaceStage, } from "./state-health.js";
|
|
6
|
+
export { ensureWorkspaceViewSpec, ensureWorkspaceSourceAccess, normalizeWorkspaceViewSpec, } from "./state-view.js";
|
|
7
7
|
//# sourceMappingURL=state.d.ts.map
|
package/dist/lib/state.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/lib/state.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,aAAa,EACb,
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/lib/state.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,aAAa,EACb,cAAc,EACd,cAAc,EACd,eAAe,EACf,WAAW,EACX,QAAQ,EACR,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,SAAS,EACT,UAAU,EACV,YAAY,EACZ,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC"}
|
package/dist/lib/state.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { statePath, healthPath, viewSpecPath, sourceAccessPath, } from "./state-paths.js";
|
|
2
|
-
export { loadState, saveState,
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
5
|
-
export {
|
|
2
|
+
export { loadState, saveState, loadWorkspaceHealth, saveWorkspaceHealth, loadWorkspaceViewSpec, loadWorkspaceSourceAccess, saveWorkspaceViewSpec, initWorkspaceState, } from "./state-io.js";
|
|
3
|
+
export { refreshWorkspaceArtifacts, } from "./state-artifacts.js";
|
|
4
|
+
export { computeWorkspaceHealth, resolveWorkspaceStatus, resolveWorkspaceStage, } from "./state-health.js";
|
|
5
|
+
export { ensureWorkspaceViewSpec, ensureWorkspaceSourceAccess, normalizeWorkspaceViewSpec, } from "./state-view.js";
|
|
6
6
|
//# sourceMappingURL=state.js.map
|
package/dist/lib/state.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/lib/state.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/lib/state.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,SAAS,EACT,UAAU,EACV,YAAY,EACZ,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC"}
|
|
@@ -12,6 +12,6 @@ export interface SummarizePlan {
|
|
|
12
12
|
targetCount: number;
|
|
13
13
|
targets: SummarizeTarget[];
|
|
14
14
|
}
|
|
15
|
-
export declare function buildSummarizePlan(sourcePath: string,
|
|
16
|
-
export declare function writeSummarizePlan(
|
|
15
|
+
export declare function buildSummarizePlan(sourcePath: string, workspacePath: string, mode?: "pending" | "all"): SummarizePlan;
|
|
16
|
+
export declare function writeSummarizePlan(workspacePath: string, plan: SummarizePlan): string;
|
|
17
17
|
//# sourceMappingURL=summarize-plan.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summarize-plan.d.ts","sourceRoot":"","sources":["../../src/lib/summarize-plan.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,GAAG,eAAe,GAAG,SAAS,GAAG,WAAW,CAAC;CAC/D;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAID,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAClB,
|
|
1
|
+
{"version":3,"file":"summarize-plan.d.ts","sourceRoot":"","sources":["../../src/lib/summarize-plan.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,GAAG,eAAe,GAAG,SAAS,GAAG,WAAW,CAAC;CAC/D;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAID,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,IAAI,GAAE,SAAS,GAAG,KAAiB,GAClC,aAAa,CA8Ff;AAED,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,aAAa,GAClB,MAAM,CAKR"}
|
|
@@ -5,16 +5,16 @@ import { discoverSourceFiles } from "./discovery.js";
|
|
|
5
5
|
import { loadState } from "./state.js";
|
|
6
6
|
import { parseJsonFrontmatter } from "./parse.js";
|
|
7
7
|
const PLAN_PATH = join(".interf", "summarize-targets.json");
|
|
8
|
-
export function buildSummarizePlan(sourcePath,
|
|
9
|
-
const discovery = discoverSourceFiles(sourcePath,
|
|
8
|
+
export function buildSummarizePlan(sourcePath, workspacePath, mode = "pending") {
|
|
9
|
+
const discovery = discoverSourceFiles(sourcePath, workspacePath);
|
|
10
10
|
const sourceFiles = discovery.sourceFiles;
|
|
11
|
-
const summariesDir = join(
|
|
12
|
-
const summaryFiles = listSummaryFiles(summariesDir,
|
|
13
|
-
const state = loadState(
|
|
14
|
-
const pending = new Set((state?.pending ?? []).filter((
|
|
11
|
+
const summariesDir = join(workspacePath, "summaries");
|
|
12
|
+
const summaryFiles = listSummaryFiles(summariesDir, workspacePath);
|
|
13
|
+
const state = loadState(workspacePath);
|
|
14
|
+
const pending = new Set((state?.pending ?? []).filter((value) => typeof value === "string" && sourceFiles.includes(value)));
|
|
15
15
|
const summaryIndex = new Map();
|
|
16
16
|
for (const summary of summaryFiles) {
|
|
17
|
-
const source = readSourceReference(join(
|
|
17
|
+
const source = readSourceReference(join(workspacePath, summary));
|
|
18
18
|
if (source)
|
|
19
19
|
summaryIndex.set(source, summary);
|
|
20
20
|
}
|
|
@@ -62,7 +62,7 @@ export function buildSummarizePlan(sourcePath, knowledgeBasePath, mode = "pendin
|
|
|
62
62
|
if (targets.has(src))
|
|
63
63
|
continue;
|
|
64
64
|
const sourceFile = join(sourcePath, src);
|
|
65
|
-
const synthFile = join(
|
|
65
|
+
const synthFile = join(workspacePath, summary);
|
|
66
66
|
if (!existsSync(sourceFile) || !existsSync(synthFile))
|
|
67
67
|
continue;
|
|
68
68
|
try {
|
|
@@ -90,14 +90,14 @@ export function buildSummarizePlan(sourcePath, knowledgeBasePath, mode = "pendin
|
|
|
90
90
|
targets: Array.from(targets.values()).sort((a, b) => a.source.localeCompare(b.source)),
|
|
91
91
|
};
|
|
92
92
|
}
|
|
93
|
-
export function writeSummarizePlan(
|
|
94
|
-
const planPath = join(
|
|
95
|
-
mkdirSync(join(
|
|
93
|
+
export function writeSummarizePlan(workspacePath, plan) {
|
|
94
|
+
const planPath = join(workspacePath, PLAN_PATH);
|
|
95
|
+
mkdirSync(join(workspacePath, ".interf"), { recursive: true });
|
|
96
96
|
writeFileSync(planPath, JSON.stringify(plan, null, 2) + "\n");
|
|
97
97
|
return planPath;
|
|
98
98
|
}
|
|
99
|
-
function listSummaryFiles(summariesDir,
|
|
100
|
-
return listFilesRecursive(summariesDir, (filePath) => filePath.endsWith(".md")).map((filePath) => relative(
|
|
99
|
+
function listSummaryFiles(summariesDir, workspacePath) {
|
|
100
|
+
return listFilesRecursive(summariesDir, (filePath) => filePath.endsWith(".md")).map((filePath) => relative(workspacePath, filePath));
|
|
101
101
|
}
|
|
102
102
|
function readSourceReference(synthPath) {
|
|
103
103
|
if (!existsSync(synthPath))
|