clikit-plugin 0.2.14 → 0.2.15
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/hooks/compaction.d.ts.map +1 -1
- package/dist/hooks/env-context.d.ts.map +1 -1
- package/dist/hooks/ritual-enforcer.d.ts.map +1 -1
- package/dist/index.js +115 -36
- package/dist/tools/context-summary.d.ts.map +1 -1
- package/dist/tools/memory.d.ts.map +1 -1
- package/dist/tools/observation.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compaction.d.ts","sourceRoot":"","sources":["../../src/hooks/compaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/D,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;
|
|
1
|
+
{"version":3,"file":"compaction.d.ts","sourceRoot":"","sources":["../../src/hooks/compaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/D,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AA8BD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAoG1E;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,GAAE,MAAW,GAAG,SAAS,EAAE,CAkEnF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,EAAE,QAAQ,GAAE,MAAa,GAAG,MAAM,CA6ChG;AAED,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,OAAO,EACnB,MAAM,CAAC,EAAE,gBAAgB,GACxB,iBAAiB,CAgBnB;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAMtE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-context.d.ts","sourceRoot":"","sources":["../../src/hooks/env-context.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"env-context.d.ts","sourceRoot":"","sources":["../../src/hooks/env-context.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAcD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAc3D;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CA6CnE;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,GAAG,MAAM,EAAE,CA8BhF;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAqB/E;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAmCnD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAMtD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ritual-enforcer.d.ts","sourceRoot":"","sources":["../../src/hooks/ritual-enforcer.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;IAChE,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,MAAM,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;
|
|
1
|
+
{"version":3,"file":"ritual-enforcer.d.ts","sourceRoot":"","sources":["../../src/hooks/ritual-enforcer.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;IAChE,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,MAAM,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AA8ED,wBAAgB,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,CAevD;AAED,wBAAgB,eAAe,IAAI,WAAW,GAAG,IAAI,CAIpD;AAED,wBAAgB,YAAY,IAAI,WAAW,GAAG,IAAI,CAiBjD;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,WAAW,GAAG,IAAI,CA2BhF;AAED,wBAAgB,mBAAmB,IAAI;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;CACrB,CAgCA;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAc3C"}
|
package/dist/index.js
CHANGED
|
@@ -4100,6 +4100,9 @@ function formatCommentWarning(result) {
|
|
|
4100
4100
|
import * as fs4 from "fs";
|
|
4101
4101
|
import * as path4 from "path";
|
|
4102
4102
|
import { execSync } from "child_process";
|
|
4103
|
+
function isRecord(value) {
|
|
4104
|
+
return !!value && typeof value === "object" && !Array.isArray(value);
|
|
4105
|
+
}
|
|
4103
4106
|
function runSilent(cmd, cwd) {
|
|
4104
4107
|
try {
|
|
4105
4108
|
return execSync(cmd, { cwd, encoding: "utf-8", timeout: 5000, stdio: ["pipe", "pipe", "pipe"] }).trim();
|
|
@@ -4126,8 +4129,10 @@ function getPackageInfo(cwd) {
|
|
|
4126
4129
|
if (!fs4.existsSync(pkgPath))
|
|
4127
4130
|
return;
|
|
4128
4131
|
try {
|
|
4129
|
-
const
|
|
4130
|
-
const
|
|
4132
|
+
const parsed = JSON.parse(fs4.readFileSync(pkgPath, "utf-8"));
|
|
4133
|
+
const pkg = isRecord(parsed) ? parsed : {};
|
|
4134
|
+
const scriptsObj = isRecord(pkg.scripts) ? pkg.scripts : {};
|
|
4135
|
+
const scripts = Object.keys(scriptsObj);
|
|
4131
4136
|
let packageManager;
|
|
4132
4137
|
if (fs4.existsSync(path4.join(cwd, "bun.lockb")) || fs4.existsSync(path4.join(cwd, "bun.lock"))) {
|
|
4133
4138
|
packageManager = "bun";
|
|
@@ -4139,7 +4144,9 @@ function getPackageInfo(cwd) {
|
|
|
4139
4144
|
packageManager = "npm";
|
|
4140
4145
|
}
|
|
4141
4146
|
let framework;
|
|
4142
|
-
const
|
|
4147
|
+
const deps = isRecord(pkg.dependencies) ? pkg.dependencies : {};
|
|
4148
|
+
const devDeps = isRecord(pkg.devDependencies) ? pkg.devDependencies : {};
|
|
4149
|
+
const allDeps = { ...deps, ...devDeps };
|
|
4143
4150
|
if (allDeps["next"])
|
|
4144
4151
|
framework = "Next.js";
|
|
4145
4152
|
else if (allDeps["nuxt"])
|
|
@@ -4159,8 +4166,8 @@ function getPackageInfo(cwd) {
|
|
|
4159
4166
|
else if (allDeps["hono"])
|
|
4160
4167
|
framework = "Hono";
|
|
4161
4168
|
return {
|
|
4162
|
-
name: pkg.name,
|
|
4163
|
-
version: pkg.version,
|
|
4169
|
+
name: typeof pkg.name === "string" ? pkg.name : undefined,
|
|
4170
|
+
version: typeof pkg.version === "string" ? pkg.version : undefined,
|
|
4164
4171
|
packageManager,
|
|
4165
4172
|
scripts,
|
|
4166
4173
|
framework
|
|
@@ -4624,6 +4631,29 @@ function formatTruncationLog(result) {
|
|
|
4624
4631
|
import * as fs7 from "fs";
|
|
4625
4632
|
import * as path7 from "path";
|
|
4626
4633
|
import { execSync as execSync5 } from "child_process";
|
|
4634
|
+
function isRecord2(value) {
|
|
4635
|
+
return !!value && typeof value === "object" && !Array.isArray(value);
|
|
4636
|
+
}
|
|
4637
|
+
function isTodoStatus(value) {
|
|
4638
|
+
return value === "todo" || value === "in-progress" || value === "in_progress" || value === "completed";
|
|
4639
|
+
}
|
|
4640
|
+
function normalizeTodoEntries(todos) {
|
|
4641
|
+
if (!Array.isArray(todos)) {
|
|
4642
|
+
return [];
|
|
4643
|
+
}
|
|
4644
|
+
const normalized = [];
|
|
4645
|
+
for (const entry of todos) {
|
|
4646
|
+
if (!isRecord2(entry) || !isTodoStatus(entry.status)) {
|
|
4647
|
+
continue;
|
|
4648
|
+
}
|
|
4649
|
+
normalized.push({
|
|
4650
|
+
id: typeof entry.id === "string" ? entry.id : "unknown",
|
|
4651
|
+
content: typeof entry.content === "string" ? entry.content : "(no content)",
|
|
4652
|
+
status: entry.status === "in_progress" ? "in-progress" : entry.status
|
|
4653
|
+
});
|
|
4654
|
+
}
|
|
4655
|
+
return normalized;
|
|
4656
|
+
}
|
|
4627
4657
|
function readBeadsState(projectDir) {
|
|
4628
4658
|
if (typeof projectDir !== "string" || !projectDir) {
|
|
4629
4659
|
return;
|
|
@@ -4651,10 +4681,12 @@ function readBeadsState(projectDir) {
|
|
|
4651
4681
|
try {
|
|
4652
4682
|
const raw = fs7.readFileSync(path7.join(reservationsDir, lockFile), "utf-8");
|
|
4653
4683
|
const lock = JSON.parse(raw);
|
|
4654
|
-
if (lock.path)
|
|
4684
|
+
if (isRecord2(lock) && typeof lock.path === "string") {
|
|
4655
4685
|
reservedFiles.push(lock.path);
|
|
4656
|
-
|
|
4686
|
+
}
|
|
4687
|
+
if (isRecord2(lock) && typeof lock.agent === "string") {
|
|
4657
4688
|
state.agentId = lock.agent;
|
|
4689
|
+
}
|
|
4658
4690
|
} catch {}
|
|
4659
4691
|
}
|
|
4660
4692
|
if (reservedFiles.length > 0) {
|
|
@@ -4672,8 +4704,16 @@ function readBeadsState(projectDir) {
|
|
|
4672
4704
|
if (output.trim()) {
|
|
4673
4705
|
const tasks = JSON.parse(output);
|
|
4674
4706
|
if (Array.isArray(tasks) && tasks.length > 0) {
|
|
4675
|
-
|
|
4676
|
-
|
|
4707
|
+
const first = tasks[0];
|
|
4708
|
+
if (isRecord2(first)) {
|
|
4709
|
+
const title = typeof first.title === "string" ? first.title : undefined;
|
|
4710
|
+
const shortTitle = typeof first.t === "string" ? first.t : undefined;
|
|
4711
|
+
const id = typeof first.id === "string" ? first.id : undefined;
|
|
4712
|
+
if (title || shortTitle)
|
|
4713
|
+
state.currentTask = title || shortTitle;
|
|
4714
|
+
if (id)
|
|
4715
|
+
state.taskId = id;
|
|
4716
|
+
}
|
|
4677
4717
|
state.inProgressCount = tasks.length;
|
|
4678
4718
|
}
|
|
4679
4719
|
}
|
|
@@ -4728,8 +4768,12 @@ function readMemoryRefs(projectDir, limit = 10) {
|
|
|
4728
4768
|
summary = headingMatch ? headingMatch[1] : raw.substring(0, 100).trim();
|
|
4729
4769
|
} else if (ext === ".json") {
|
|
4730
4770
|
const parsed = JSON.parse(raw);
|
|
4731
|
-
const
|
|
4732
|
-
|
|
4771
|
+
const safe = isRecord2(parsed) ? parsed : {};
|
|
4772
|
+
const content = safe.content;
|
|
4773
|
+
const summaryText = typeof safe.summary === "string" ? safe.summary : undefined;
|
|
4774
|
+
const titleText = typeof safe.title === "string" ? safe.title : undefined;
|
|
4775
|
+
const contentText = typeof content === "string" ? content.substring(0, 100) : "";
|
|
4776
|
+
summary = summaryText || titleText || contentText || "";
|
|
4733
4777
|
} else {
|
|
4734
4778
|
summary = raw.substring(0, 100).trim();
|
|
4735
4779
|
}
|
|
@@ -4772,11 +4816,12 @@ Beads State:`);
|
|
|
4772
4816
|
lines.push(` Reserved files: ${payload.beads.reservedFiles.join(", ")}`);
|
|
4773
4817
|
}
|
|
4774
4818
|
}
|
|
4775
|
-
|
|
4819
|
+
const normalizedTodos = normalizeTodoEntries(payload.todos);
|
|
4820
|
+
if (normalizedTodos.length) {
|
|
4776
4821
|
lines.push(`
|
|
4777
4822
|
Todo State:`);
|
|
4778
|
-
for (const todo of
|
|
4779
|
-
const icon = todo.status === "completed" ? "[x]" : todo.status === "
|
|
4823
|
+
for (const todo of normalizedTodos) {
|
|
4824
|
+
const icon = todo.status === "completed" ? "[x]" : todo.status === "in-progress" ? "[~]" : "[ ]";
|
|
4780
4825
|
lines.push(` ${icon} ${todo.id}: ${todo.content}`);
|
|
4781
4826
|
}
|
|
4782
4827
|
}
|
|
@@ -4894,6 +4939,17 @@ import * as fs9 from "fs";
|
|
|
4894
4939
|
import { Database } from "bun:sqlite";
|
|
4895
4940
|
var MEMORY_DIR = path10.join(process.cwd(), ".opencode", "memory");
|
|
4896
4941
|
var MEMORY_DB = path10.join(MEMORY_DIR, "memory.db");
|
|
4942
|
+
function parseStringArray(value) {
|
|
4943
|
+
if (typeof value !== "string" || !value.trim()) {
|
|
4944
|
+
return [];
|
|
4945
|
+
}
|
|
4946
|
+
try {
|
|
4947
|
+
const parsed = JSON.parse(value);
|
|
4948
|
+
return Array.isArray(parsed) ? parsed.filter((item) => typeof item === "string") : [];
|
|
4949
|
+
} catch {
|
|
4950
|
+
return [];
|
|
4951
|
+
}
|
|
4952
|
+
}
|
|
4897
4953
|
function getDb() {
|
|
4898
4954
|
if (!fs9.existsSync(MEMORY_DIR)) {
|
|
4899
4955
|
fs9.mkdirSync(MEMORY_DIR, { recursive: true });
|
|
@@ -4999,15 +5055,18 @@ function memoryGet(ids) {
|
|
|
4999
5055
|
return [];
|
|
5000
5056
|
}
|
|
5001
5057
|
const db = getDb();
|
|
5002
|
-
const idList = ids.split(",").map((id) => parseInt(id.trim(), 10));
|
|
5058
|
+
const idList = ids.split(",").map((id) => parseInt(id.trim(), 10)).filter((id) => Number.isFinite(id));
|
|
5059
|
+
if (idList.length === 0) {
|
|
5060
|
+
return [];
|
|
5061
|
+
}
|
|
5003
5062
|
const placeholders = idList.map(() => "?").join(",");
|
|
5004
5063
|
const sql = `SELECT * FROM observations WHERE id IN (${placeholders})`;
|
|
5005
5064
|
const rows = db.prepare(sql).all(...idList);
|
|
5006
5065
|
return rows.map((row) => ({
|
|
5007
5066
|
...row,
|
|
5008
|
-
facts:
|
|
5009
|
-
files_read:
|
|
5010
|
-
files_modified:
|
|
5067
|
+
facts: parseStringArray(row.facts),
|
|
5068
|
+
files_read: parseStringArray(row.files_read),
|
|
5069
|
+
files_modified: parseStringArray(row.files_modified)
|
|
5011
5070
|
}));
|
|
5012
5071
|
}
|
|
5013
5072
|
function memoryTimeline(params) {
|
|
@@ -5033,9 +5092,9 @@ function memoryTimeline(params) {
|
|
|
5033
5092
|
const rows = db.prepare(sql).all(p.id, before, p.id, p.id, after);
|
|
5034
5093
|
return rows.map((row) => ({
|
|
5035
5094
|
...row,
|
|
5036
|
-
facts:
|
|
5037
|
-
files_read:
|
|
5038
|
-
files_modified:
|
|
5095
|
+
facts: parseStringArray(row.facts),
|
|
5096
|
+
files_read: parseStringArray(row.files_read),
|
|
5097
|
+
files_modified: parseStringArray(row.files_modified)
|
|
5039
5098
|
}));
|
|
5040
5099
|
}
|
|
5041
5100
|
function memoryUpdate(params) {
|
|
@@ -5130,6 +5189,17 @@ import * as fs10 from "fs";
|
|
|
5130
5189
|
import { Database as Database2 } from "bun:sqlite";
|
|
5131
5190
|
var MEMORY_DIR2 = path11.join(process.cwd(), ".opencode", "memory");
|
|
5132
5191
|
var MEMORY_DB2 = path11.join(MEMORY_DIR2, "memory.db");
|
|
5192
|
+
function parseStringArray2(value) {
|
|
5193
|
+
if (typeof value !== "string" || !value.trim()) {
|
|
5194
|
+
return [];
|
|
5195
|
+
}
|
|
5196
|
+
try {
|
|
5197
|
+
const parsed = JSON.parse(value);
|
|
5198
|
+
return Array.isArray(parsed) ? parsed.filter((item) => typeof item === "string") : [];
|
|
5199
|
+
} catch {
|
|
5200
|
+
return [];
|
|
5201
|
+
}
|
|
5202
|
+
}
|
|
5133
5203
|
function getDb2() {
|
|
5134
5204
|
if (!fs10.existsSync(MEMORY_DIR2)) {
|
|
5135
5205
|
fs10.mkdirSync(MEMORY_DIR2, { recursive: true });
|
|
@@ -5198,10 +5268,10 @@ function getObservationsByType(type, limit = 10) {
|
|
|
5198
5268
|
const rows = db.prepare(sql).all(type, limit);
|
|
5199
5269
|
return rows.map((row) => ({
|
|
5200
5270
|
...row,
|
|
5201
|
-
facts:
|
|
5202
|
-
files_read:
|
|
5203
|
-
files_modified:
|
|
5204
|
-
concepts:
|
|
5271
|
+
facts: parseStringArray2(row.facts),
|
|
5272
|
+
files_read: parseStringArray2(row.files_read),
|
|
5273
|
+
files_modified: parseStringArray2(row.files_modified),
|
|
5274
|
+
concepts: parseStringArray2(row.concepts)
|
|
5205
5275
|
}));
|
|
5206
5276
|
}
|
|
5207
5277
|
function getObservationsByBead(beadId) {
|
|
@@ -5210,17 +5280,17 @@ function getObservationsByBead(beadId) {
|
|
|
5210
5280
|
const rows = db.prepare(sql).all(beadId);
|
|
5211
5281
|
return rows.map((row) => ({
|
|
5212
5282
|
...row,
|
|
5213
|
-
facts:
|
|
5214
|
-
files_read:
|
|
5215
|
-
files_modified:
|
|
5216
|
-
concepts:
|
|
5283
|
+
facts: parseStringArray2(row.facts),
|
|
5284
|
+
files_read: parseStringArray2(row.files_read),
|
|
5285
|
+
files_modified: parseStringArray2(row.files_modified),
|
|
5286
|
+
concepts: parseStringArray2(row.concepts)
|
|
5217
5287
|
}));
|
|
5218
5288
|
}
|
|
5219
5289
|
function linkObservations(observationId, concept) {
|
|
5220
5290
|
const db = getDb2();
|
|
5221
5291
|
const row = db.prepare("SELECT concepts FROM observations WHERE id = ?").get(observationId);
|
|
5222
5292
|
if (row) {
|
|
5223
|
-
const concepts =
|
|
5293
|
+
const concepts = parseStringArray2(row.concepts);
|
|
5224
5294
|
if (!concepts.includes(concept)) {
|
|
5225
5295
|
concepts.push(concept);
|
|
5226
5296
|
db.prepare("UPDATE observations SET concepts = ? WHERE id = ?").run(JSON.stringify(concepts), observationId);
|
|
@@ -5557,6 +5627,17 @@ import * as fs12 from "fs";
|
|
|
5557
5627
|
import { Database as Database4 } from "bun:sqlite";
|
|
5558
5628
|
var MEMORY_DIR4 = path13.join(process.cwd(), ".opencode", "memory");
|
|
5559
5629
|
var MEMORY_DB4 = path13.join(MEMORY_DIR4, "memory.db");
|
|
5630
|
+
function parseStringArray3(value) {
|
|
5631
|
+
if (typeof value !== "string" || !value.trim()) {
|
|
5632
|
+
return [];
|
|
5633
|
+
}
|
|
5634
|
+
try {
|
|
5635
|
+
const parsed = JSON.parse(value);
|
|
5636
|
+
return Array.isArray(parsed) ? parsed.filter((item) => typeof item === "string") : [];
|
|
5637
|
+
} catch {
|
|
5638
|
+
return [];
|
|
5639
|
+
}
|
|
5640
|
+
}
|
|
5560
5641
|
function getMemoryDb2() {
|
|
5561
5642
|
if (!fs12.existsSync(MEMORY_DIR4)) {
|
|
5562
5643
|
fs12.mkdirSync(MEMORY_DIR4, { recursive: true });
|
|
@@ -5615,12 +5696,10 @@ function contextSummary(params = {}) {
|
|
|
5615
5696
|
const allFilesRead = new Set;
|
|
5616
5697
|
const allFilesModified = new Set;
|
|
5617
5698
|
for (const obs of observations) {
|
|
5618
|
-
|
|
5619
|
-
|
|
5620
|
-
|
|
5621
|
-
|
|
5622
|
-
modified.forEach((f) => allFilesModified.add(f));
|
|
5623
|
-
} catch {}
|
|
5699
|
+
const read = parseStringArray3(obs.files_read);
|
|
5700
|
+
const modified = parseStringArray3(obs.files_modified);
|
|
5701
|
+
read.forEach((f) => allFilesRead.add(f));
|
|
5702
|
+
modified.forEach((f) => allFilesModified.add(f));
|
|
5624
5703
|
}
|
|
5625
5704
|
const summary = buildSummary(sections, p.maxTokens || 2000);
|
|
5626
5705
|
const tokenEstimate = Math.ceil(summary.length / 4);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-summary.d.ts","sourceRoot":"","sources":["../../src/tools/context-summary.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,KAAK,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE;QACR,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,WAAW,EAAE;QACX,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,aAAa,EAAE,MAAM,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"context-summary.d.ts","sourceRoot":"","sources":["../../src/tools/context-summary.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,KAAK,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE;QACR,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,WAAW,EAAE;QACX,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,aAAa,EAAE,MAAM,CAAC;CACvB;AA4CD,wBAAgB,cAAc,CAAC,MAAM,GAAE,OAAY,GAAG,oBAAoB,CAwEzE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/tools/memory.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/tools/memory.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAuED,wBAAgB,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ9D;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,kBAAkB,EAAE,CAuClE;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,iBAAiB,EAAE,CAwB3D;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,iBAAiB,EAAE,CAmCnE;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CA2BnE;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,QAAQ,GAAG,SAAS,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,CAAC;IACtE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,iBAAiB,CA8E9D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observation.d.ts","sourceRoot":"","sources":["../../src/tools/observation.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"observation.d.ts","sourceRoot":"","sources":["../../src/tools/observation.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAkDD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,iBAAiB,GAAG,IAAI,CA2C3E;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,iBAAiB,EAAE,CAanF;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAazE;AAED,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAY7E"}
|