clikit-plugin 0.2.14 → 0.2.16
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/hooks/security-check.d.ts +1 -1
- package/dist/hooks/security-check.d.ts.map +1 -1
- package/dist/index.js +135 -37
- 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/memory/memory.db +0 -0
- package/package.json +3 -2
|
@@ -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"}
|
|
@@ -16,5 +16,5 @@ export interface SecurityCheckResult {
|
|
|
16
16
|
}
|
|
17
17
|
export declare function scanContentForSecrets(content: string, filename?: string): SecurityCheckResult;
|
|
18
18
|
export declare function isSensitiveFile(filepath: string): boolean;
|
|
19
|
-
export declare function formatSecurityWarning(result: SecurityCheckResult): string;
|
|
19
|
+
export declare function formatSecurityWarning(result: SecurityCheckResult | unknown): string;
|
|
20
20
|
//# sourceMappingURL=security-check.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security-check.d.ts","sourceRoot":"","sources":["../../src/hooks/security-check.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAyBH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B;
|
|
1
|
+
{"version":3,"file":"security-check.d.ts","sourceRoot":"","sources":["../../src/hooks/security-check.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAyBH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B;AA2BD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAmB7F;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,GAAG,MAAM,CAWnF"}
|
package/dist/index.js
CHANGED
|
@@ -3962,6 +3962,24 @@ var SENSITIVE_FILES = [
|
|
|
3962
3962
|
/id_rsa$/,
|
|
3963
3963
|
/id_ed25519$/
|
|
3964
3964
|
];
|
|
3965
|
+
function normalizeSecurityResult(result) {
|
|
3966
|
+
if (!result || typeof result !== "object") {
|
|
3967
|
+
return { safe: true, findings: [] };
|
|
3968
|
+
}
|
|
3969
|
+
const raw = result;
|
|
3970
|
+
const findings = Array.isArray(raw.findings) ? raw.findings.filter((item) => !!item && typeof item === "object").map((record) => {
|
|
3971
|
+
return {
|
|
3972
|
+
type: typeof record.type === "string" ? record.type : "Unknown",
|
|
3973
|
+
file: typeof record.file === "string" ? record.file : undefined,
|
|
3974
|
+
line: typeof record.line === "number" ? record.line : undefined,
|
|
3975
|
+
snippet: typeof record.snippet === "string" ? record.snippet : undefined
|
|
3976
|
+
};
|
|
3977
|
+
}) : [];
|
|
3978
|
+
return {
|
|
3979
|
+
safe: typeof raw.safe === "boolean" ? raw.safe : findings.length === 0,
|
|
3980
|
+
findings
|
|
3981
|
+
};
|
|
3982
|
+
}
|
|
3965
3983
|
function scanContentForSecrets(content, filename) {
|
|
3966
3984
|
if (typeof content !== "string")
|
|
3967
3985
|
return { safe: true, findings: [] };
|
|
@@ -3986,8 +4004,9 @@ function isSensitiveFile(filepath) {
|
|
|
3986
4004
|
return SENSITIVE_FILES.some((pattern) => pattern.test(filepath));
|
|
3987
4005
|
}
|
|
3988
4006
|
function formatSecurityWarning(result) {
|
|
4007
|
+
const safeResult = normalizeSecurityResult(result);
|
|
3989
4008
|
const lines = ["[CliKit:security] Potential secrets detected:"];
|
|
3990
|
-
for (const f of
|
|
4009
|
+
for (const f of safeResult.findings) {
|
|
3991
4010
|
lines.push(` - ${f.type}${f.file ? ` in ${f.file}` : ""}${f.line ? `:${f.line}` : ""}`);
|
|
3992
4011
|
if (f.snippet) {
|
|
3993
4012
|
lines.push(` ${f.snippet.substring(0, 60)}...`);
|
|
@@ -4100,6 +4119,9 @@ function formatCommentWarning(result) {
|
|
|
4100
4119
|
import * as fs4 from "fs";
|
|
4101
4120
|
import * as path4 from "path";
|
|
4102
4121
|
import { execSync } from "child_process";
|
|
4122
|
+
function isRecord(value) {
|
|
4123
|
+
return !!value && typeof value === "object" && !Array.isArray(value);
|
|
4124
|
+
}
|
|
4103
4125
|
function runSilent(cmd, cwd) {
|
|
4104
4126
|
try {
|
|
4105
4127
|
return execSync(cmd, { cwd, encoding: "utf-8", timeout: 5000, stdio: ["pipe", "pipe", "pipe"] }).trim();
|
|
@@ -4126,8 +4148,10 @@ function getPackageInfo(cwd) {
|
|
|
4126
4148
|
if (!fs4.existsSync(pkgPath))
|
|
4127
4149
|
return;
|
|
4128
4150
|
try {
|
|
4129
|
-
const
|
|
4130
|
-
const
|
|
4151
|
+
const parsed = JSON.parse(fs4.readFileSync(pkgPath, "utf-8"));
|
|
4152
|
+
const pkg = isRecord(parsed) ? parsed : {};
|
|
4153
|
+
const scriptsObj = isRecord(pkg.scripts) ? pkg.scripts : {};
|
|
4154
|
+
const scripts = Object.keys(scriptsObj);
|
|
4131
4155
|
let packageManager;
|
|
4132
4156
|
if (fs4.existsSync(path4.join(cwd, "bun.lockb")) || fs4.existsSync(path4.join(cwd, "bun.lock"))) {
|
|
4133
4157
|
packageManager = "bun";
|
|
@@ -4139,7 +4163,9 @@ function getPackageInfo(cwd) {
|
|
|
4139
4163
|
packageManager = "npm";
|
|
4140
4164
|
}
|
|
4141
4165
|
let framework;
|
|
4142
|
-
const
|
|
4166
|
+
const deps = isRecord(pkg.dependencies) ? pkg.dependencies : {};
|
|
4167
|
+
const devDeps = isRecord(pkg.devDependencies) ? pkg.devDependencies : {};
|
|
4168
|
+
const allDeps = { ...deps, ...devDeps };
|
|
4143
4169
|
if (allDeps["next"])
|
|
4144
4170
|
framework = "Next.js";
|
|
4145
4171
|
else if (allDeps["nuxt"])
|
|
@@ -4159,8 +4185,8 @@ function getPackageInfo(cwd) {
|
|
|
4159
4185
|
else if (allDeps["hono"])
|
|
4160
4186
|
framework = "Hono";
|
|
4161
4187
|
return {
|
|
4162
|
-
name: pkg.name,
|
|
4163
|
-
version: pkg.version,
|
|
4188
|
+
name: typeof pkg.name === "string" ? pkg.name : undefined,
|
|
4189
|
+
version: typeof pkg.version === "string" ? pkg.version : undefined,
|
|
4164
4190
|
packageManager,
|
|
4165
4191
|
scripts,
|
|
4166
4192
|
framework
|
|
@@ -4624,6 +4650,29 @@ function formatTruncationLog(result) {
|
|
|
4624
4650
|
import * as fs7 from "fs";
|
|
4625
4651
|
import * as path7 from "path";
|
|
4626
4652
|
import { execSync as execSync5 } from "child_process";
|
|
4653
|
+
function isRecord2(value) {
|
|
4654
|
+
return !!value && typeof value === "object" && !Array.isArray(value);
|
|
4655
|
+
}
|
|
4656
|
+
function isTodoStatus(value) {
|
|
4657
|
+
return value === "todo" || value === "in-progress" || value === "in_progress" || value === "completed";
|
|
4658
|
+
}
|
|
4659
|
+
function normalizeTodoEntries(todos) {
|
|
4660
|
+
if (!Array.isArray(todos)) {
|
|
4661
|
+
return [];
|
|
4662
|
+
}
|
|
4663
|
+
const normalized = [];
|
|
4664
|
+
for (const entry of todos) {
|
|
4665
|
+
if (!isRecord2(entry) || !isTodoStatus(entry.status)) {
|
|
4666
|
+
continue;
|
|
4667
|
+
}
|
|
4668
|
+
normalized.push({
|
|
4669
|
+
id: typeof entry.id === "string" ? entry.id : "unknown",
|
|
4670
|
+
content: typeof entry.content === "string" ? entry.content : "(no content)",
|
|
4671
|
+
status: entry.status === "in_progress" ? "in-progress" : entry.status
|
|
4672
|
+
});
|
|
4673
|
+
}
|
|
4674
|
+
return normalized;
|
|
4675
|
+
}
|
|
4627
4676
|
function readBeadsState(projectDir) {
|
|
4628
4677
|
if (typeof projectDir !== "string" || !projectDir) {
|
|
4629
4678
|
return;
|
|
@@ -4651,10 +4700,12 @@ function readBeadsState(projectDir) {
|
|
|
4651
4700
|
try {
|
|
4652
4701
|
const raw = fs7.readFileSync(path7.join(reservationsDir, lockFile), "utf-8");
|
|
4653
4702
|
const lock = JSON.parse(raw);
|
|
4654
|
-
if (lock.path)
|
|
4703
|
+
if (isRecord2(lock) && typeof lock.path === "string") {
|
|
4655
4704
|
reservedFiles.push(lock.path);
|
|
4656
|
-
|
|
4705
|
+
}
|
|
4706
|
+
if (isRecord2(lock) && typeof lock.agent === "string") {
|
|
4657
4707
|
state.agentId = lock.agent;
|
|
4708
|
+
}
|
|
4658
4709
|
} catch {}
|
|
4659
4710
|
}
|
|
4660
4711
|
if (reservedFiles.length > 0) {
|
|
@@ -4672,8 +4723,16 @@ function readBeadsState(projectDir) {
|
|
|
4672
4723
|
if (output.trim()) {
|
|
4673
4724
|
const tasks = JSON.parse(output);
|
|
4674
4725
|
if (Array.isArray(tasks) && tasks.length > 0) {
|
|
4675
|
-
|
|
4676
|
-
|
|
4726
|
+
const first = tasks[0];
|
|
4727
|
+
if (isRecord2(first)) {
|
|
4728
|
+
const title = typeof first.title === "string" ? first.title : undefined;
|
|
4729
|
+
const shortTitle = typeof first.t === "string" ? first.t : undefined;
|
|
4730
|
+
const id = typeof first.id === "string" ? first.id : undefined;
|
|
4731
|
+
if (title || shortTitle)
|
|
4732
|
+
state.currentTask = title || shortTitle;
|
|
4733
|
+
if (id)
|
|
4734
|
+
state.taskId = id;
|
|
4735
|
+
}
|
|
4677
4736
|
state.inProgressCount = tasks.length;
|
|
4678
4737
|
}
|
|
4679
4738
|
}
|
|
@@ -4728,8 +4787,12 @@ function readMemoryRefs(projectDir, limit = 10) {
|
|
|
4728
4787
|
summary = headingMatch ? headingMatch[1] : raw.substring(0, 100).trim();
|
|
4729
4788
|
} else if (ext === ".json") {
|
|
4730
4789
|
const parsed = JSON.parse(raw);
|
|
4731
|
-
const
|
|
4732
|
-
|
|
4790
|
+
const safe = isRecord2(parsed) ? parsed : {};
|
|
4791
|
+
const content = safe.content;
|
|
4792
|
+
const summaryText = typeof safe.summary === "string" ? safe.summary : undefined;
|
|
4793
|
+
const titleText = typeof safe.title === "string" ? safe.title : undefined;
|
|
4794
|
+
const contentText = typeof content === "string" ? content.substring(0, 100) : "";
|
|
4795
|
+
summary = summaryText || titleText || contentText || "";
|
|
4733
4796
|
} else {
|
|
4734
4797
|
summary = raw.substring(0, 100).trim();
|
|
4735
4798
|
}
|
|
@@ -4772,11 +4835,12 @@ Beads State:`);
|
|
|
4772
4835
|
lines.push(` Reserved files: ${payload.beads.reservedFiles.join(", ")}`);
|
|
4773
4836
|
}
|
|
4774
4837
|
}
|
|
4775
|
-
|
|
4838
|
+
const normalizedTodos = normalizeTodoEntries(payload.todos);
|
|
4839
|
+
if (normalizedTodos.length) {
|
|
4776
4840
|
lines.push(`
|
|
4777
4841
|
Todo State:`);
|
|
4778
|
-
for (const todo of
|
|
4779
|
-
const icon = todo.status === "completed" ? "[x]" : todo.status === "
|
|
4842
|
+
for (const todo of normalizedTodos) {
|
|
4843
|
+
const icon = todo.status === "completed" ? "[x]" : todo.status === "in-progress" ? "[~]" : "[ ]";
|
|
4780
4844
|
lines.push(` ${icon} ${todo.id}: ${todo.content}`);
|
|
4781
4845
|
}
|
|
4782
4846
|
}
|
|
@@ -4894,6 +4958,17 @@ import * as fs9 from "fs";
|
|
|
4894
4958
|
import { Database } from "bun:sqlite";
|
|
4895
4959
|
var MEMORY_DIR = path10.join(process.cwd(), ".opencode", "memory");
|
|
4896
4960
|
var MEMORY_DB = path10.join(MEMORY_DIR, "memory.db");
|
|
4961
|
+
function parseStringArray(value) {
|
|
4962
|
+
if (typeof value !== "string" || !value.trim()) {
|
|
4963
|
+
return [];
|
|
4964
|
+
}
|
|
4965
|
+
try {
|
|
4966
|
+
const parsed = JSON.parse(value);
|
|
4967
|
+
return Array.isArray(parsed) ? parsed.filter((item) => typeof item === "string") : [];
|
|
4968
|
+
} catch {
|
|
4969
|
+
return [];
|
|
4970
|
+
}
|
|
4971
|
+
}
|
|
4897
4972
|
function getDb() {
|
|
4898
4973
|
if (!fs9.existsSync(MEMORY_DIR)) {
|
|
4899
4974
|
fs9.mkdirSync(MEMORY_DIR, { recursive: true });
|
|
@@ -4999,15 +5074,18 @@ function memoryGet(ids) {
|
|
|
4999
5074
|
return [];
|
|
5000
5075
|
}
|
|
5001
5076
|
const db = getDb();
|
|
5002
|
-
const idList = ids.split(",").map((id) => parseInt(id.trim(), 10));
|
|
5077
|
+
const idList = ids.split(",").map((id) => parseInt(id.trim(), 10)).filter((id) => Number.isFinite(id));
|
|
5078
|
+
if (idList.length === 0) {
|
|
5079
|
+
return [];
|
|
5080
|
+
}
|
|
5003
5081
|
const placeholders = idList.map(() => "?").join(",");
|
|
5004
5082
|
const sql = `SELECT * FROM observations WHERE id IN (${placeholders})`;
|
|
5005
5083
|
const rows = db.prepare(sql).all(...idList);
|
|
5006
5084
|
return rows.map((row) => ({
|
|
5007
5085
|
...row,
|
|
5008
|
-
facts:
|
|
5009
|
-
files_read:
|
|
5010
|
-
files_modified:
|
|
5086
|
+
facts: parseStringArray(row.facts),
|
|
5087
|
+
files_read: parseStringArray(row.files_read),
|
|
5088
|
+
files_modified: parseStringArray(row.files_modified)
|
|
5011
5089
|
}));
|
|
5012
5090
|
}
|
|
5013
5091
|
function memoryTimeline(params) {
|
|
@@ -5033,9 +5111,9 @@ function memoryTimeline(params) {
|
|
|
5033
5111
|
const rows = db.prepare(sql).all(p.id, before, p.id, p.id, after);
|
|
5034
5112
|
return rows.map((row) => ({
|
|
5035
5113
|
...row,
|
|
5036
|
-
facts:
|
|
5037
|
-
files_read:
|
|
5038
|
-
files_modified:
|
|
5114
|
+
facts: parseStringArray(row.facts),
|
|
5115
|
+
files_read: parseStringArray(row.files_read),
|
|
5116
|
+
files_modified: parseStringArray(row.files_modified)
|
|
5039
5117
|
}));
|
|
5040
5118
|
}
|
|
5041
5119
|
function memoryUpdate(params) {
|
|
@@ -5130,6 +5208,17 @@ import * as fs10 from "fs";
|
|
|
5130
5208
|
import { Database as Database2 } from "bun:sqlite";
|
|
5131
5209
|
var MEMORY_DIR2 = path11.join(process.cwd(), ".opencode", "memory");
|
|
5132
5210
|
var MEMORY_DB2 = path11.join(MEMORY_DIR2, "memory.db");
|
|
5211
|
+
function parseStringArray2(value) {
|
|
5212
|
+
if (typeof value !== "string" || !value.trim()) {
|
|
5213
|
+
return [];
|
|
5214
|
+
}
|
|
5215
|
+
try {
|
|
5216
|
+
const parsed = JSON.parse(value);
|
|
5217
|
+
return Array.isArray(parsed) ? parsed.filter((item) => typeof item === "string") : [];
|
|
5218
|
+
} catch {
|
|
5219
|
+
return [];
|
|
5220
|
+
}
|
|
5221
|
+
}
|
|
5133
5222
|
function getDb2() {
|
|
5134
5223
|
if (!fs10.existsSync(MEMORY_DIR2)) {
|
|
5135
5224
|
fs10.mkdirSync(MEMORY_DIR2, { recursive: true });
|
|
@@ -5198,10 +5287,10 @@ function getObservationsByType(type, limit = 10) {
|
|
|
5198
5287
|
const rows = db.prepare(sql).all(type, limit);
|
|
5199
5288
|
return rows.map((row) => ({
|
|
5200
5289
|
...row,
|
|
5201
|
-
facts:
|
|
5202
|
-
files_read:
|
|
5203
|
-
files_modified:
|
|
5204
|
-
concepts:
|
|
5290
|
+
facts: parseStringArray2(row.facts),
|
|
5291
|
+
files_read: parseStringArray2(row.files_read),
|
|
5292
|
+
files_modified: parseStringArray2(row.files_modified),
|
|
5293
|
+
concepts: parseStringArray2(row.concepts)
|
|
5205
5294
|
}));
|
|
5206
5295
|
}
|
|
5207
5296
|
function getObservationsByBead(beadId) {
|
|
@@ -5210,17 +5299,17 @@ function getObservationsByBead(beadId) {
|
|
|
5210
5299
|
const rows = db.prepare(sql).all(beadId);
|
|
5211
5300
|
return rows.map((row) => ({
|
|
5212
5301
|
...row,
|
|
5213
|
-
facts:
|
|
5214
|
-
files_read:
|
|
5215
|
-
files_modified:
|
|
5216
|
-
concepts:
|
|
5302
|
+
facts: parseStringArray2(row.facts),
|
|
5303
|
+
files_read: parseStringArray2(row.files_read),
|
|
5304
|
+
files_modified: parseStringArray2(row.files_modified),
|
|
5305
|
+
concepts: parseStringArray2(row.concepts)
|
|
5217
5306
|
}));
|
|
5218
5307
|
}
|
|
5219
5308
|
function linkObservations(observationId, concept) {
|
|
5220
5309
|
const db = getDb2();
|
|
5221
5310
|
const row = db.prepare("SELECT concepts FROM observations WHERE id = ?").get(observationId);
|
|
5222
5311
|
if (row) {
|
|
5223
|
-
const concepts =
|
|
5312
|
+
const concepts = parseStringArray2(row.concepts);
|
|
5224
5313
|
if (!concepts.includes(concept)) {
|
|
5225
5314
|
concepts.push(concept);
|
|
5226
5315
|
db.prepare("UPDATE observations SET concepts = ? WHERE id = ?").run(JSON.stringify(concepts), observationId);
|
|
@@ -5557,6 +5646,17 @@ import * as fs12 from "fs";
|
|
|
5557
5646
|
import { Database as Database4 } from "bun:sqlite";
|
|
5558
5647
|
var MEMORY_DIR4 = path13.join(process.cwd(), ".opencode", "memory");
|
|
5559
5648
|
var MEMORY_DB4 = path13.join(MEMORY_DIR4, "memory.db");
|
|
5649
|
+
function parseStringArray3(value) {
|
|
5650
|
+
if (typeof value !== "string" || !value.trim()) {
|
|
5651
|
+
return [];
|
|
5652
|
+
}
|
|
5653
|
+
try {
|
|
5654
|
+
const parsed = JSON.parse(value);
|
|
5655
|
+
return Array.isArray(parsed) ? parsed.filter((item) => typeof item === "string") : [];
|
|
5656
|
+
} catch {
|
|
5657
|
+
return [];
|
|
5658
|
+
}
|
|
5659
|
+
}
|
|
5560
5660
|
function getMemoryDb2() {
|
|
5561
5661
|
if (!fs12.existsSync(MEMORY_DIR4)) {
|
|
5562
5662
|
fs12.mkdirSync(MEMORY_DIR4, { recursive: true });
|
|
@@ -5615,12 +5715,10 @@ function contextSummary(params = {}) {
|
|
|
5615
5715
|
const allFilesRead = new Set;
|
|
5616
5716
|
const allFilesModified = new Set;
|
|
5617
5717
|
for (const obs of observations) {
|
|
5618
|
-
|
|
5619
|
-
|
|
5620
|
-
|
|
5621
|
-
|
|
5622
|
-
modified.forEach((f) => allFilesModified.add(f));
|
|
5623
|
-
} catch {}
|
|
5718
|
+
const read = parseStringArray3(obs.files_read);
|
|
5719
|
+
const modified = parseStringArray3(obs.files_modified);
|
|
5720
|
+
read.forEach((f) => allFilesRead.add(f));
|
|
5721
|
+
modified.forEach((f) => allFilesModified.add(f));
|
|
5624
5722
|
}
|
|
5625
5723
|
const summary = buildSummary(sections, p.maxTokens || 2000);
|
|
5626
5724
|
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"}
|
package/memory/memory.db
ADDED
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "clikit-plugin",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.16",
|
|
4
4
|
"description": "OpenCode plugin with 10 agents, 19 commands, 48 skills, 14 hooks",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -52,11 +52,12 @@
|
|
|
52
52
|
},
|
|
53
53
|
"homepage": "https://github.com/KiraKas-Tr/CliKit#readme",
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@opencode-ai/plugin": "1.2.
|
|
55
|
+
"@opencode-ai/plugin": "1.2.4",
|
|
56
56
|
"gray-matter": "^4.0.3"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"bun-types": "latest",
|
|
60
|
+
"clikit-plugin": "^0.2.15",
|
|
60
61
|
"typescript": "^5.7.3"
|
|
61
62
|
},
|
|
62
63
|
"peerDependencies": {
|