kiro-memory 1.0.4 → 1.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.
@@ -114,9 +114,9 @@ var require_bindings = __commonJS({
114
114
  "node_modules/bindings/bindings.js"(exports, module) {
115
115
  var fs = __require("fs");
116
116
  var path = __require("path");
117
- var fileURLToPath2 = require_file_uri_to_path();
117
+ var fileURLToPath3 = require_file_uri_to_path();
118
118
  var join4 = path.join;
119
- var dirname2 = path.dirname;
119
+ var dirname3 = path.dirname;
120
120
  var exists = fs.accessSync && function(path2) {
121
121
  try {
122
122
  fs.accessSync(path2);
@@ -226,12 +226,12 @@ var require_bindings = __commonJS({
226
226
  Error.stackTraceLimit = origSTL;
227
227
  var fileSchema = "file://";
228
228
  if (fileName.indexOf(fileSchema) === 0) {
229
- fileName = fileURLToPath2(fileName);
229
+ fileName = fileURLToPath3(fileName);
230
230
  }
231
231
  return fileName;
232
232
  };
233
233
  exports.getRoot = function getRoot(file) {
234
- var dir = dirname2(file), prev;
234
+ var dir = dirname3(file), prev;
235
235
  while (true) {
236
236
  if (dir === ".") {
237
237
  dir = process.cwd();
@@ -1067,8 +1067,9 @@ var init_Search = __esm({
1067
1067
  // src/services/worker-service.ts
1068
1068
  import express from "express";
1069
1069
  import cors from "cors";
1070
- import { join as join3 } from "path";
1070
+ import { join as join3, dirname as dirname2 } from "path";
1071
1071
  import { existsSync as existsSync3, mkdirSync as mkdirSync3, writeFileSync, unlinkSync } from "fs";
1072
+ import { fileURLToPath as fileURLToPath2 } from "url";
1072
1073
 
1073
1074
  // src/shims/bun-sqlite.ts
1074
1075
  var import_better_sqlite3 = __toESM(require_lib());
@@ -1571,6 +1572,7 @@ var MigrationRunner = class {
1571
1572
  };
1572
1573
 
1573
1574
  // src/services/worker-service.ts
1575
+ var __worker_dirname = dirname2(fileURLToPath2(import.meta.url));
1574
1576
  var PORT = process.env.CONTEXTKIT_WORKER_PORT || 3001;
1575
1577
  var HOST = process.env.CONTEXTKIT_WORKER_HOST || "127.0.0.1";
1576
1578
  var PID_FILE = join3(DATA_DIR, "worker.pid");
@@ -1756,8 +1758,80 @@ app.get("/api/stats/:project", (req, res) => {
1756
1758
  res.status(500).json({ error: "Stats failed" });
1757
1759
  }
1758
1760
  });
1761
+ app.get("/api/observations", (req, res) => {
1762
+ const { offset, limit, project } = req.query;
1763
+ const _offset = offset ? parseInt(offset, 10) : 0;
1764
+ const _limit = limit ? parseInt(limit, 10) : 50;
1765
+ try {
1766
+ const sql = project ? "SELECT * FROM observations WHERE project = ? ORDER BY created_at_epoch DESC LIMIT ? OFFSET ?" : "SELECT * FROM observations ORDER BY created_at_epoch DESC LIMIT ? OFFSET ?";
1767
+ const stmt = db.db.query(sql);
1768
+ const rows = project ? stmt.all(project, _limit, _offset) : stmt.all(_limit, _offset);
1769
+ res.json(rows);
1770
+ } catch (error) {
1771
+ logger.error("WORKER", "Lista osservazioni fallita", {}, error);
1772
+ res.status(500).json({ error: "Failed to list observations" });
1773
+ }
1774
+ });
1775
+ app.get("/api/summaries", (req, res) => {
1776
+ const { offset, limit, project } = req.query;
1777
+ const _offset = offset ? parseInt(offset, 10) : 0;
1778
+ const _limit = limit ? parseInt(limit, 10) : 20;
1779
+ try {
1780
+ const sql = project ? "SELECT * FROM summaries WHERE project = ? ORDER BY created_at_epoch DESC LIMIT ? OFFSET ?" : "SELECT * FROM summaries ORDER BY created_at_epoch DESC LIMIT ? OFFSET ?";
1781
+ const stmt = db.db.query(sql);
1782
+ const rows = project ? stmt.all(project, _limit, _offset) : stmt.all(_limit, _offset);
1783
+ res.json(rows);
1784
+ } catch (error) {
1785
+ logger.error("WORKER", "Lista summary fallita", {}, error);
1786
+ res.status(500).json({ error: "Failed to list summaries" });
1787
+ }
1788
+ });
1789
+ app.get("/api/prompts", (req, res) => {
1790
+ const { offset, limit, project } = req.query;
1791
+ const _offset = offset ? parseInt(offset, 10) : 0;
1792
+ const _limit = limit ? parseInt(limit, 10) : 20;
1793
+ try {
1794
+ const sql = project ? "SELECT * FROM prompts WHERE project = ? ORDER BY created_at_epoch DESC LIMIT ? OFFSET ?" : "SELECT * FROM prompts ORDER BY created_at_epoch DESC LIMIT ? OFFSET ?";
1795
+ const stmt = db.db.query(sql);
1796
+ const rows = project ? stmt.all(project, _limit, _offset) : stmt.all(_limit, _offset);
1797
+ res.json(rows);
1798
+ } catch (error) {
1799
+ logger.error("WORKER", "Lista prompt fallita", {}, error);
1800
+ res.status(500).json({ error: "Failed to list prompts" });
1801
+ }
1802
+ });
1803
+ app.get("/api/projects", (_req, res) => {
1804
+ try {
1805
+ const stmt = db.db.query(
1806
+ `SELECT DISTINCT project FROM (
1807
+ SELECT project FROM observations
1808
+ UNION
1809
+ SELECT project FROM summaries
1810
+ UNION
1811
+ SELECT project FROM prompts
1812
+ ) ORDER BY project ASC`
1813
+ );
1814
+ const rows = stmt.all();
1815
+ res.json(rows.map((r) => r.project));
1816
+ } catch (error) {
1817
+ logger.error("WORKER", "Lista progetti fallita", {}, error);
1818
+ res.status(500).json({ error: "Failed to list projects" });
1819
+ }
1820
+ });
1821
+ app.use(express.static(__worker_dirname, {
1822
+ index: false,
1823
+ maxAge: "1h"
1824
+ }));
1825
+ app.get("/", (_req, res) => {
1826
+ const viewerPath = join3(__worker_dirname, "viewer.html");
1827
+ if (existsSync3(viewerPath)) {
1828
+ res.sendFile(viewerPath);
1829
+ } else {
1830
+ res.status(404).json({ error: "Viewer not found. Run npm run build first." });
1831
+ }
1832
+ });
1759
1833
  var server = app.listen(Number(PORT), HOST, () => {
1760
- logger.info("WORKER", `ContextKit worker started on ${HOST}:${PORT}`);
1834
+ logger.info("WORKER", `Kiro Memory worker started on http://${HOST}:${PORT}`);
1761
1835
  writeFileSync(PID_FILE, String(process.pid), "utf-8");
1762
1836
  });
1763
1837
  function shutdown(signal) {