@mrciphersmith/keryx 0.2.134 → 0.2.135
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/cli.js +13 -5
- package/dist/core.js +13 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -37876,7 +37876,8 @@ function createFlowService(deps) {
|
|
|
37876
37876
|
});
|
|
37877
37877
|
} catch {}
|
|
37878
37878
|
}
|
|
37879
|
-
|
|
37879
|
+
const shared = duplicateFlowIds(summaries.map((summary) => summary.id));
|
|
37880
|
+
return summaries.map((summary) => ({ ...summary, duplicateId: shared.has(summary.id) }));
|
|
37880
37881
|
},
|
|
37881
37882
|
async get({ cwd, id }) {
|
|
37882
37883
|
return (await load(cwd, id)).flow;
|
|
@@ -39197,7 +39198,8 @@ function createMetaprojectAdapter(cwd, overrides = {}) {
|
|
|
39197
39198
|
title: f.title,
|
|
39198
39199
|
tasksDone: f.tasksDone,
|
|
39199
39200
|
tasksTotal: f.tasksTotal,
|
|
39200
|
-
dir: f.dir
|
|
39201
|
+
dir: f.dir,
|
|
39202
|
+
...f.duplicateId !== undefined ? { duplicateId: f.duplicateId } : {}
|
|
39201
39203
|
}))
|
|
39202
39204
|
};
|
|
39203
39205
|
} catch (cause) {
|
|
@@ -39702,8 +39704,14 @@ function formatFlowStatus(result) {
|
|
|
39702
39704
|
if (result.flows.length === 0) {
|
|
39703
39705
|
return { output: "No matching flows.", isError: false };
|
|
39704
39706
|
}
|
|
39705
|
-
const lines = result.flows.map((f) => ` - ${f.id}${f.slug !== undefined ? ` (${f.slug})` : ""} [${f.status}] ${f.title} ` + `(${f.tasksDone}/${f.tasksTotal} tasks)`);
|
|
39706
|
-
|
|
39707
|
+
const lines = result.flows.map((f) => ` - ${f.id}${f.duplicateId === true ? " \u2717 duplicate id" : ""}` + `${f.slug !== undefined ? ` (${f.slug})` : ""} [${f.status}] ${f.title} ` + `(${f.tasksDone}/${f.tasksTotal} tasks)`);
|
|
39708
|
+
const output = [`Flows (${result.flows.length}):`, ...lines];
|
|
39709
|
+
const duplicated = result.flows.filter((f) => f.duplicateId === true);
|
|
39710
|
+
if (duplicated.length > 0) {
|
|
39711
|
+
const ids = [...new Set(duplicated.map((f) => f.id))].sort();
|
|
39712
|
+
output.push("", `${ids.length} duplicated id(s) \u2014 every bare-id command on these is refused as ambiguous, ` + "so the repair has to name the directory:", ...duplicated.map((f) => ` - ${f.id}: ${f.dir}`), 'Repair with: keryx flow renumber <dir> --to <free id> --reason "<why>"');
|
|
39713
|
+
}
|
|
39714
|
+
return { output: output.join(`
|
|
39707
39715
|
`), isError: false };
|
|
39708
39716
|
}
|
|
39709
39717
|
function formatSymbol(result) {
|
|
@@ -51133,7 +51141,7 @@ import path47 from "path";
|
|
|
51133
51141
|
// package.json
|
|
51134
51142
|
var package_default = {
|
|
51135
51143
|
name: "@mrciphersmith/keryx",
|
|
51136
|
-
version: "0.2.
|
|
51144
|
+
version: "0.2.135",
|
|
51137
51145
|
description: "Version-controlled project context for AI coding agents: code graph, architecture wiki, project memory, relevant tests, quality signals, and task flows.",
|
|
51138
51146
|
private: false,
|
|
51139
51147
|
publishConfig: {
|
package/dist/core.js
CHANGED
|
@@ -10949,6 +10949,17 @@ async function listFlowDirs(cwd) {
|
|
|
10949
10949
|
function flowIdOf(dir) {
|
|
10950
10950
|
return dir.slice(0, 3);
|
|
10951
10951
|
}
|
|
10952
|
+
function duplicateFlowIds(ids) {
|
|
10953
|
+
const seen = new Set;
|
|
10954
|
+
const duplicates = new Set;
|
|
10955
|
+
for (const id of ids) {
|
|
10956
|
+
if (seen.has(id)) {
|
|
10957
|
+
duplicates.add(id);
|
|
10958
|
+
}
|
|
10959
|
+
seen.add(id);
|
|
10960
|
+
}
|
|
10961
|
+
return duplicates;
|
|
10962
|
+
}
|
|
10952
10963
|
function groupFlowDirsById(dirs) {
|
|
10953
10964
|
const groups = new Map;
|
|
10954
10965
|
for (const dir of dirs) {
|
|
@@ -13404,7 +13415,8 @@ function createFlowService(deps) {
|
|
|
13404
13415
|
});
|
|
13405
13416
|
} catch {}
|
|
13406
13417
|
}
|
|
13407
|
-
|
|
13418
|
+
const shared = duplicateFlowIds(summaries.map((summary) => summary.id));
|
|
13419
|
+
return summaries.map((summary) => ({ ...summary, duplicateId: shared.has(summary.id) }));
|
|
13408
13420
|
},
|
|
13409
13421
|
async get({ cwd, id }) {
|
|
13410
13422
|
return (await load(cwd, id)).flow;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mrciphersmith/keryx",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.135",
|
|
4
4
|
"description": "Version-controlled project context for AI coding agents: code graph, architecture wiki, project memory, relevant tests, quality signals, and task flows.",
|
|
5
5
|
"private": false,
|
|
6
6
|
"publishConfig": {
|