kiro-memory 1.2.2 → 1.4.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.
@@ -776,6 +776,21 @@ var MigrationRunner = class {
776
776
  db2.run("CREATE INDEX IF NOT EXISTS idx_summaries_epoch ON summaries(created_at_epoch)");
777
777
  db2.run("CREATE INDEX IF NOT EXISTS idx_prompts_project ON prompts(project)");
778
778
  }
779
+ },
780
+ {
781
+ version: 3,
782
+ up: (db2) => {
783
+ db2.run(`
784
+ CREATE TABLE IF NOT EXISTS project_aliases (
785
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
786
+ project_name TEXT NOT NULL UNIQUE,
787
+ display_name TEXT NOT NULL,
788
+ created_at TEXT NOT NULL,
789
+ updated_at TEXT NOT NULL
790
+ )
791
+ `);
792
+ db2.run("CREATE UNIQUE INDEX IF NOT EXISTS idx_project_aliases_name ON project_aliases(project_name)");
793
+ }
779
794
  }
780
795
  ];
781
796
  }
@@ -1019,6 +1034,41 @@ app.get("/api/prompts", (req, res) => {
1019
1034
  res.status(500).json({ error: "Failed to list prompts" });
1020
1035
  }
1021
1036
  });
1037
+ app.get("/api/project-aliases", (_req, res) => {
1038
+ try {
1039
+ const stmt = db.db.query("SELECT project_name, display_name FROM project_aliases");
1040
+ const rows = stmt.all();
1041
+ const aliases = {};
1042
+ for (const row of rows) {
1043
+ aliases[row.project_name] = row.display_name;
1044
+ }
1045
+ res.json(aliases);
1046
+ } catch (error) {
1047
+ logger.error("WORKER", "Failed to list project aliases", {}, error);
1048
+ res.status(500).json({ error: "Failed to list project aliases" });
1049
+ }
1050
+ });
1051
+ app.put("/api/project-aliases/:project", (req, res) => {
1052
+ const { project } = req.params;
1053
+ const { displayName } = req.body;
1054
+ if (!displayName || typeof displayName !== "string") {
1055
+ res.status(400).json({ error: 'Field "displayName" (string) is required' });
1056
+ return;
1057
+ }
1058
+ try {
1059
+ const now = (/* @__PURE__ */ new Date()).toISOString();
1060
+ const stmt = db.db.query(`
1061
+ INSERT INTO project_aliases (project_name, display_name, created_at, updated_at)
1062
+ VALUES (?, ?, ?, ?)
1063
+ ON CONFLICT(project_name) DO UPDATE SET display_name = excluded.display_name, updated_at = excluded.updated_at
1064
+ `);
1065
+ stmt.run(project, displayName.trim(), now, now);
1066
+ res.json({ ok: true, project_name: project, display_name: displayName.trim() });
1067
+ } catch (error) {
1068
+ logger.error("WORKER", "Failed to update project alias", { project }, error);
1069
+ res.status(500).json({ error: "Failed to update project alias" });
1070
+ }
1071
+ });
1022
1072
  app.get("/api/projects", (_req, res) => {
1023
1073
  try {
1024
1074
  const stmt = db.db.query(