clikit-plugin 0.2.13 → 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.
@@ -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;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CA0F1E;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,GAAE,MAAW,GAAG,SAAS,EAAE,CA8DnF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,EAAE,QAAQ,GAAE,MAAa,GAAG,MAAM,CA4ChG;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
+ {"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;AAUD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAc3D;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAyCnE;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
+ {"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;AAsBD,wBAAgB,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,CAkBvD;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"}
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"}
@@ -15,5 +15,5 @@ export interface TodoCheckResult {
15
15
  inProgress: TodoItem[];
16
16
  }
17
17
  export declare function checkTodoCompletion(todos: unknown): TodoCheckResult;
18
- export declare function formatIncompleteWarning(result: TodoCheckResult, sessionId?: string): string;
18
+ export declare function formatIncompleteWarning(result: TodoCheckResult | unknown, sessionId?: string): string;
19
19
  //# sourceMappingURL=todo-enforcer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"todo-enforcer.d.ts","sourceRoot":"","sources":["../../src/hooks/todo-enforcer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,WAAW,CAAC;CAC9C;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,QAAQ,EAAE,CAAC;IACvB,UAAU,EAAE,QAAQ,EAAE,CAAC;CACxB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CAYnE;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,eAAe,EACvB,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CAuBR"}
1
+ {"version":3,"file":"todo-enforcer.d.ts","sourceRoot":"","sources":["../../src/hooks/todo-enforcer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,WAAW,CAAC;CAC9C;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,QAAQ,EAAE,CAAC;IACvB,UAAU,EAAE,QAAQ,EAAE,CAAC;CACxB;AA8CD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CAgBnE;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,eAAe,GAAG,OAAO,EACjC,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CAwBR"}
package/dist/index.js CHANGED
@@ -3765,12 +3765,46 @@ function filterCommands(commands, config) {
3765
3765
  }
3766
3766
 
3767
3767
  // src/hooks/todo-enforcer.ts
3768
+ var EMPTY_RESULT = {
3769
+ complete: true,
3770
+ incomplete: [],
3771
+ inProgress: []
3772
+ };
3773
+ function normalizeTodoItem(value) {
3774
+ if (!value || typeof value !== "object") {
3775
+ return null;
3776
+ }
3777
+ const raw = value;
3778
+ const status = raw.status;
3779
+ if (status !== "todo" && status !== "in-progress" && status !== "in_progress" && status !== "completed") {
3780
+ return null;
3781
+ }
3782
+ return {
3783
+ id: typeof raw.id === "string" ? raw.id : "unknown",
3784
+ content: typeof raw.content === "string" ? raw.content : "(no content)",
3785
+ status: status === "in_progress" ? "in-progress" : status
3786
+ };
3787
+ }
3788
+ function normalizeTodoResult(result) {
3789
+ if (!result || typeof result !== "object") {
3790
+ return EMPTY_RESULT;
3791
+ }
3792
+ const raw = result;
3793
+ const incomplete = Array.isArray(raw.incomplete) ? raw.incomplete.map(normalizeTodoItem).filter((item) => !!item) : [];
3794
+ const inProgress = Array.isArray(raw.inProgress) ? raw.inProgress.map(normalizeTodoItem).filter((item) => !!item) : [];
3795
+ return {
3796
+ complete: incomplete.length === 0 && inProgress.length === 0,
3797
+ incomplete,
3798
+ inProgress
3799
+ };
3800
+ }
3768
3801
  function checkTodoCompletion(todos) {
3769
3802
  if (!Array.isArray(todos)) {
3770
- return { complete: true, incomplete: [], inProgress: [] };
3803
+ return EMPTY_RESULT;
3771
3804
  }
3772
- const incomplete = todos.filter((t) => t.status === "todo");
3773
- const inProgress = todos.filter((t) => t.status === "in-progress");
3805
+ const normalized = todos.map(normalizeTodoItem).filter((item) => !!item);
3806
+ const incomplete = normalized.filter((t) => t.status === "todo");
3807
+ const inProgress = normalized.filter((t) => t.status === "in-progress");
3774
3808
  return {
3775
3809
  complete: incomplete.length === 0 && inProgress.length === 0,
3776
3810
  incomplete,
@@ -3778,19 +3812,20 @@ function checkTodoCompletion(todos) {
3778
3812
  };
3779
3813
  }
3780
3814
  function formatIncompleteWarning(result, sessionId) {
3815
+ const safeResult = normalizeTodoResult(result);
3781
3816
  const lines = [];
3782
3817
  if (sessionId) {
3783
3818
  lines.push(`[CliKit] Incomplete todos in session ${sessionId}:`);
3784
3819
  } else {
3785
3820
  lines.push("[CliKit] Incomplete todos detected:");
3786
3821
  }
3787
- if (result.inProgress.length > 0) {
3822
+ if (safeResult.inProgress.length > 0) {
3788
3823
  lines.push(" In Progress:");
3789
- result.inProgress.forEach((t) => lines.push(` - [${t.id}] ${t.content}`));
3824
+ safeResult.inProgress.forEach((t) => lines.push(` - [${t.id}] ${t.content}`));
3790
3825
  }
3791
- if (result.incomplete.length > 0) {
3826
+ if (safeResult.incomplete.length > 0) {
3792
3827
  lines.push(" Not Started:");
3793
- result.incomplete.forEach((t) => lines.push(` - [${t.id}] ${t.content}`));
3828
+ safeResult.incomplete.forEach((t) => lines.push(` - [${t.id}] ${t.content}`));
3794
3829
  }
3795
3830
  lines.push("");
3796
3831
  lines.push(" Complete all todos before finishing.");
@@ -4065,6 +4100,9 @@ function formatCommentWarning(result) {
4065
4100
  import * as fs4 from "fs";
4066
4101
  import * as path4 from "path";
4067
4102
  import { execSync } from "child_process";
4103
+ function isRecord(value) {
4104
+ return !!value && typeof value === "object" && !Array.isArray(value);
4105
+ }
4068
4106
  function runSilent(cmd, cwd) {
4069
4107
  try {
4070
4108
  return execSync(cmd, { cwd, encoding: "utf-8", timeout: 5000, stdio: ["pipe", "pipe", "pipe"] }).trim();
@@ -4091,8 +4129,10 @@ function getPackageInfo(cwd) {
4091
4129
  if (!fs4.existsSync(pkgPath))
4092
4130
  return;
4093
4131
  try {
4094
- const pkg = JSON.parse(fs4.readFileSync(pkgPath, "utf-8"));
4095
- const scripts = pkg.scripts ? Object.keys(pkg.scripts) : [];
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);
4096
4136
  let packageManager;
4097
4137
  if (fs4.existsSync(path4.join(cwd, "bun.lockb")) || fs4.existsSync(path4.join(cwd, "bun.lock"))) {
4098
4138
  packageManager = "bun";
@@ -4104,7 +4144,9 @@ function getPackageInfo(cwd) {
4104
4144
  packageManager = "npm";
4105
4145
  }
4106
4146
  let framework;
4107
- const allDeps = { ...pkg.dependencies, ...pkg.devDependencies };
4147
+ const deps = isRecord(pkg.dependencies) ? pkg.dependencies : {};
4148
+ const devDeps = isRecord(pkg.devDependencies) ? pkg.devDependencies : {};
4149
+ const allDeps = { ...deps, ...devDeps };
4108
4150
  if (allDeps["next"])
4109
4151
  framework = "Next.js";
4110
4152
  else if (allDeps["nuxt"])
@@ -4124,8 +4166,8 @@ function getPackageInfo(cwd) {
4124
4166
  else if (allDeps["hono"])
4125
4167
  framework = "Hono";
4126
4168
  return {
4127
- name: pkg.name,
4128
- version: pkg.version,
4169
+ name: typeof pkg.name === "string" ? pkg.name : undefined,
4170
+ version: typeof pkg.version === "string" ? pkg.version : undefined,
4129
4171
  packageManager,
4130
4172
  scripts,
4131
4173
  framework
@@ -4589,6 +4631,29 @@ function formatTruncationLog(result) {
4589
4631
  import * as fs7 from "fs";
4590
4632
  import * as path7 from "path";
4591
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
+ }
4592
4657
  function readBeadsState(projectDir) {
4593
4658
  if (typeof projectDir !== "string" || !projectDir) {
4594
4659
  return;
@@ -4616,10 +4681,12 @@ function readBeadsState(projectDir) {
4616
4681
  try {
4617
4682
  const raw = fs7.readFileSync(path7.join(reservationsDir, lockFile), "utf-8");
4618
4683
  const lock = JSON.parse(raw);
4619
- if (lock.path)
4684
+ if (isRecord2(lock) && typeof lock.path === "string") {
4620
4685
  reservedFiles.push(lock.path);
4621
- if (lock.agent)
4686
+ }
4687
+ if (isRecord2(lock) && typeof lock.agent === "string") {
4622
4688
  state.agentId = lock.agent;
4689
+ }
4623
4690
  } catch {}
4624
4691
  }
4625
4692
  if (reservedFiles.length > 0) {
@@ -4637,8 +4704,16 @@ function readBeadsState(projectDir) {
4637
4704
  if (output.trim()) {
4638
4705
  const tasks = JSON.parse(output);
4639
4706
  if (Array.isArray(tasks) && tasks.length > 0) {
4640
- state.currentTask = tasks[0].title || tasks[0].t;
4641
- state.taskId = tasks[0].id;
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
+ }
4642
4717
  state.inProgressCount = tasks.length;
4643
4718
  }
4644
4719
  }
@@ -4693,8 +4768,12 @@ function readMemoryRefs(projectDir, limit = 10) {
4693
4768
  summary = headingMatch ? headingMatch[1] : raw.substring(0, 100).trim();
4694
4769
  } else if (ext === ".json") {
4695
4770
  const parsed = JSON.parse(raw);
4696
- const content = parsed.content;
4697
- summary = parsed.summary || parsed.title || (typeof content === "string" ? content.substring(0, 100) : "") || "";
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 || "";
4698
4777
  } else {
4699
4778
  summary = raw.substring(0, 100).trim();
4700
4779
  }
@@ -4737,11 +4816,12 @@ Beads State:`);
4737
4816
  lines.push(` Reserved files: ${payload.beads.reservedFiles.join(", ")}`);
4738
4817
  }
4739
4818
  }
4740
- if (payload.todos?.length) {
4819
+ const normalizedTodos = normalizeTodoEntries(payload.todos);
4820
+ if (normalizedTodos.length) {
4741
4821
  lines.push(`
4742
4822
  Todo State:`);
4743
- for (const todo of payload.todos) {
4744
- const icon = todo.status === "completed" ? "[x]" : todo.status === "in_progress" ? "[~]" : "[ ]";
4823
+ for (const todo of normalizedTodos) {
4824
+ const icon = todo.status === "completed" ? "[x]" : todo.status === "in-progress" ? "[~]" : "[ ]";
4745
4825
  lines.push(` ${icon} ${todo.id}: ${todo.content}`);
4746
4826
  }
4747
4827
  }
@@ -4859,6 +4939,17 @@ import * as fs9 from "fs";
4859
4939
  import { Database } from "bun:sqlite";
4860
4940
  var MEMORY_DIR = path10.join(process.cwd(), ".opencode", "memory");
4861
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
+ }
4862
4953
  function getDb() {
4863
4954
  if (!fs9.existsSync(MEMORY_DIR)) {
4864
4955
  fs9.mkdirSync(MEMORY_DIR, { recursive: true });
@@ -4964,15 +5055,18 @@ function memoryGet(ids) {
4964
5055
  return [];
4965
5056
  }
4966
5057
  const db = getDb();
4967
- 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
+ }
4968
5062
  const placeholders = idList.map(() => "?").join(",");
4969
5063
  const sql = `SELECT * FROM observations WHERE id IN (${placeholders})`;
4970
5064
  const rows = db.prepare(sql).all(...idList);
4971
5065
  return rows.map((row) => ({
4972
5066
  ...row,
4973
- facts: JSON.parse(row.facts || "[]"),
4974
- files_read: JSON.parse(row.files_read || "[]"),
4975
- files_modified: JSON.parse(row.files_modified || "[]")
5067
+ facts: parseStringArray(row.facts),
5068
+ files_read: parseStringArray(row.files_read),
5069
+ files_modified: parseStringArray(row.files_modified)
4976
5070
  }));
4977
5071
  }
4978
5072
  function memoryTimeline(params) {
@@ -4998,9 +5092,9 @@ function memoryTimeline(params) {
4998
5092
  const rows = db.prepare(sql).all(p.id, before, p.id, p.id, after);
4999
5093
  return rows.map((row) => ({
5000
5094
  ...row,
5001
- facts: JSON.parse(row.facts || "[]"),
5002
- files_read: JSON.parse(row.files_read || "[]"),
5003
- files_modified: JSON.parse(row.files_modified || "[]")
5095
+ facts: parseStringArray(row.facts),
5096
+ files_read: parseStringArray(row.files_read),
5097
+ files_modified: parseStringArray(row.files_modified)
5004
5098
  }));
5005
5099
  }
5006
5100
  function memoryUpdate(params) {
@@ -5095,6 +5189,17 @@ import * as fs10 from "fs";
5095
5189
  import { Database as Database2 } from "bun:sqlite";
5096
5190
  var MEMORY_DIR2 = path11.join(process.cwd(), ".opencode", "memory");
5097
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
+ }
5098
5203
  function getDb2() {
5099
5204
  if (!fs10.existsSync(MEMORY_DIR2)) {
5100
5205
  fs10.mkdirSync(MEMORY_DIR2, { recursive: true });
@@ -5163,10 +5268,10 @@ function getObservationsByType(type, limit = 10) {
5163
5268
  const rows = db.prepare(sql).all(type, limit);
5164
5269
  return rows.map((row) => ({
5165
5270
  ...row,
5166
- facts: JSON.parse(row.facts || "[]"),
5167
- files_read: JSON.parse(row.files_read || "[]"),
5168
- files_modified: JSON.parse(row.files_modified || "[]"),
5169
- concepts: JSON.parse(row.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)
5170
5275
  }));
5171
5276
  }
5172
5277
  function getObservationsByBead(beadId) {
@@ -5175,17 +5280,17 @@ function getObservationsByBead(beadId) {
5175
5280
  const rows = db.prepare(sql).all(beadId);
5176
5281
  return rows.map((row) => ({
5177
5282
  ...row,
5178
- facts: JSON.parse(row.facts || "[]"),
5179
- files_read: JSON.parse(row.files_read || "[]"),
5180
- files_modified: JSON.parse(row.files_modified || "[]"),
5181
- concepts: JSON.parse(row.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)
5182
5287
  }));
5183
5288
  }
5184
5289
  function linkObservations(observationId, concept) {
5185
5290
  const db = getDb2();
5186
5291
  const row = db.prepare("SELECT concepts FROM observations WHERE id = ?").get(observationId);
5187
5292
  if (row) {
5188
- const concepts = JSON.parse(row.concepts || "[]");
5293
+ const concepts = parseStringArray2(row.concepts);
5189
5294
  if (!concepts.includes(concept)) {
5190
5295
  concepts.push(concept);
5191
5296
  db.prepare("UPDATE observations SET concepts = ? WHERE id = ?").run(JSON.stringify(concepts), observationId);
@@ -5522,6 +5627,17 @@ import * as fs12 from "fs";
5522
5627
  import { Database as Database4 } from "bun:sqlite";
5523
5628
  var MEMORY_DIR4 = path13.join(process.cwd(), ".opencode", "memory");
5524
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
+ }
5525
5641
  function getMemoryDb2() {
5526
5642
  if (!fs12.existsSync(MEMORY_DIR4)) {
5527
5643
  fs12.mkdirSync(MEMORY_DIR4, { recursive: true });
@@ -5580,12 +5696,10 @@ function contextSummary(params = {}) {
5580
5696
  const allFilesRead = new Set;
5581
5697
  const allFilesModified = new Set;
5582
5698
  for (const obs of observations) {
5583
- try {
5584
- const read = JSON.parse(obs.files_read || "[]");
5585
- const modified = JSON.parse(obs.files_modified || "[]");
5586
- read.forEach((f) => allFilesRead.add(f));
5587
- modified.forEach((f) => allFilesModified.add(f));
5588
- } 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));
5589
5703
  }
5590
5704
  const summary = buildSummary(sections, p.maxTokens || 2000);
5591
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;AAgCD,wBAAgB,cAAc,CAAC,MAAM,GAAE,OAAY,GAAG,oBAAoB,CA0EzE"}
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;AA2DD,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,CAkB3D;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
+ {"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;AAsCD,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"}
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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clikit-plugin",
3
- "version": "0.2.13",
3
+ "version": "0.2.15",
4
4
  "description": "OpenCode plugin with 10 agents, 19 commands, 48 skills, 14 hooks",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",