cuelo 0.10.95 → 0.10.97

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.
Files changed (85) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +32 -32
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/required-server-files.js +2 -2
  6. package/.next/required-server-files.json +2 -2
  7. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/_global-error.html +1 -1
  9. package/.next/server/app/_global-error.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  15. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  17. package/.next/server/app/_not-found.html +1 -1
  18. package/.next/server/app/_not-found.rsc +2 -2
  19. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  20. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  21. package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  22. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  23. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  24. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  25. package/.next/server/app/api/updates/apply/route.js +2 -2
  26. package/.next/server/app/api/updates/route.js +1 -1
  27. package/.next/server/app/index.html +1 -1
  28. package/.next/server/app/index.rsc +4 -4
  29. package/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  30. package/.next/server/app/index.segments/_full.segment.rsc +4 -4
  31. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  32. package/.next/server/app/index.segments/_index.segment.rsc +2 -2
  33. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  34. package/.next/server/app/page.js +2 -2
  35. package/.next/server/app/page_client-reference-manifest.js +1 -1
  36. package/.next/server/app/recover/page_client-reference-manifest.js +1 -1
  37. package/.next/server/app/recover.html +1 -1
  38. package/.next/server/app/recover.rsc +2 -2
  39. package/.next/server/app/recover.segments/_full.segment.rsc +2 -2
  40. package/.next/server/app/recover.segments/_head.segment.rsc +1 -1
  41. package/.next/server/app/recover.segments/_index.segment.rsc +2 -2
  42. package/.next/server/app/recover.segments/_tree.segment.rsc +1 -1
  43. package/.next/server/app/recover.segments/recover/__PAGE__.segment.rsc +1 -1
  44. package/.next/server/app/recover.segments/recover.segment.rsc +1 -1
  45. package/.next/server/app-paths-manifest.json +32 -32
  46. package/.next/server/middleware-build-manifest.js +1 -1
  47. package/.next/server/pages/404.html +1 -1
  48. package/.next/server/pages/500.html +1 -1
  49. package/.next/server/server-reference-manifest.json +1 -1
  50. package/.next/static/chunks/app/{layout-cf209ec1ffc50146.js → layout-e946c4e8f6b1554d.js} +1 -1
  51. package/.next/static/chunks/app/{page-248f0f6ee3f5b6ee.js → page-0b878506cec78452.js} +2 -2
  52. package/.next/trace +108 -108
  53. package/.next/trace-build +1 -1
  54. package/README.md +1 -9
  55. package/Tools/CUELO_Setup/files/native-runtime-patch.js +3 -3
  56. package/Tools/OMP_Global_Config/agent/agents/maker.md +3 -3
  57. package/Tools/OMP_Global_Config/agent/extensions/command-guard/index.ts +174 -31
  58. package/Tools/OMP_Global_Config/agent/extensions/command-guard/matcher.ts +417 -54
  59. package/Tools/OMP_Global_Config/agent/extensions/command-guard/task-guard.ts +206 -48
  60. package/Tools/OMP_Global_Config/agent/extensions/cross-review.ts +1 -1
  61. package/Tools/OMP_Global_Config/agent/extensions/jev-runtime.ts +39 -59
  62. package/Tools/OMP_Global_Config/agent/extensions/lib/cross-review.ts +214 -43
  63. package/Tools/OMP_Global_Config/agent/extensions/lib/draft-coverage.ts +7 -2
  64. package/Tools/OMP_Global_Config/agent/extensions/lib/job-observation.ts +6 -5
  65. package/Tools/OMP_Global_Config/agent/extensions/lib/maker-routing.ts +35 -7
  66. package/Tools/OMP_Global_Config/agent/extensions/lib/prepared-task.ts +7 -5
  67. package/Tools/OMP_Global_Config/agent/extensions/lib/slop-gate.ts +31 -6
  68. package/Tools/OMP_Global_Config/agent/extensions/report-chart-guard.ts +21 -4
  69. package/Tools/OMP_Global_Config/agent/extensions/slop-gate/review.ts +67 -16
  70. package/Tools/OMP_Global_Config/agent/extensions/slop-gate.ts +2 -2
  71. package/Tools/OMP_Global_Config/agent/extensions/todo-nudge.ts +14 -4
  72. package/Tools/OMP_Global_Config/agent/rules/deploy-ops.md +1 -0
  73. package/Tools/OMP_Global_Config/agent/rules/harness-policy.json +14 -10
  74. package/Tools/OMP_Global_Config/agent/rules/subagent.md +17 -12
  75. package/Tools/OMP_Global_Config/agent/rules/task-guard.md +5 -3
  76. package/Tools/OMP_Global_Config/agent/sop/_writer.md +1 -1
  77. package/Tools/OMP_Global_Config/agent/sop/maker.md +1 -1
  78. package/Tools/OMP_Global_Config/agent/tools/ci-chain/index.ts +166 -4
  79. package/Tools/OMP_Global_Config/agent/tools/ci-chain/paths-filter.ts +130 -0
  80. package/Tools/OMP_Global_Config/agent/tools/git-finalizer/index.ts +20 -1
  81. package/Tools/OMP_Global_Config/patches/apply-core-patch.mjs +176 -0
  82. package/bin/self-update.js +2 -1
  83. package/package.json +7 -7
  84. /package/.next/static/{njFeZPW-f3RTy2-iTWbzY → VSLxmLHaJ0rBK71SMfdbr}/_buildManifest.js +0 -0
  85. /package/.next/static/{njFeZPW-f3RTy2-iTWbzY → VSLxmLHaJ0rBK71SMfdbr}/_ssgManifest.js +0 -0
@@ -19264,6 +19264,182 @@ for (const [owner, older] of preStatsWatchBodies) {
19264
19264
  },
19265
19265
  ];
19266
19266
  }
19267
+ // 2026-10-28 18.13.2 이식(공개 이슈 #54 포함). 18.13.1 이하 후보는 앵커·marker·patched 를 한 바이트도 바꾸지 않고, 18.13.2 순정에서 앵커를 잃은 8개 항목마다
19268
+ // 그 판에만 성립하는 후보를 더한다. marker 를 공유하는 후보는 18.13.2 에만 있는 문자열로 requires(새 후보)·excludes(옛 후보)를 짝지어 서로 배타적으로 둔다.
19269
+ // - ADAPT: workflow-notice.md 의 completion 줄이 py/js 분기(`{{#if py}}…{{else}}…{{/if}}`)로 바뀌어 effort 를 두 분기와 py+js 합본 안내 모두에 더한다.
19270
+ // - ADAPT: skill-protocol.ts 의 skills import 가 stale-skill 재검색 헬퍼(findStaleSkillStandIn 등)로 여러 줄이 됐다. getActiveRules import 만 그 뒤에 더한다.
19271
+ // - ADAPT: embeddings.ts 의 fastembed-runtime import 에 withEmbedSessionBudget 이 붙었다(세션 스레드 예산). fastembedRuntimeInstallPlan 만 더한다.
19272
+ // - ADAPT: task/types.ts 의 SeanceTaskSchemaFields 가 export 되고 SeanceItemKey 가 생겼다. agent optional 후보는 그 모양을 그대로 두고 agent 규칙만 걷어 낸다.
19273
+ // - ADAPT: async/job-manager.ts jobSnapshot 의 Pick 에 agentOutputPublished 가 생겼다(여러 줄). completion 을 그 목록 끝에 더한다.
19274
+ // async-job-delivery.ts 는 agentUrlId 를 지역 변수로 옮기고 showAgentUrl/showHistoryUrl 을 더했다. completion 은 그 다음 줄에 싣는다.
19275
+ // - ADAPT: read.ts. upstream 은 filesystem 경로의 `?q=` 를 execute 에서 떼지 않고 리터럴 파일·JSON 판별 뒤(#readFilesystem) 에서 뗀다(local/artifact 는 media
19276
+ // 대상일 때만 execute 에서 뗀다). 그래서 execute 쪽 conflict 검사는 새 삼항식 뒤로 옮기고, 판별 뒤 블록이 `?ocr=` 와 q/ocr 동시 지정을 같은 계약으로 처리한다.
19277
+ // 판별 뒤 블록 후보는 옛 판에서는 no-op(옛 판은 execute 의 splitImageQuestionTarget 이 이미 뗀다)이고 isMediaQuestionTarget 이 있는 판에서만 패치를 싣는다.
19278
+ // - RETIRE 유지: dist/cli.js 의 advisor transcript filter 는 minified 이름만 vOe 로 바뀌었다.
19279
+ {
19280
+ const one = (predicate, label) => {
19281
+ const found = EDITS.filter(predicate);
19282
+ if (found.length !== 1) throw new Error(`18.13.2 후보를 만들 수 없다: ${label} ${found.length}/1`);
19283
+ return found[0];
19284
+ };
19285
+ const swap = (text, from, to) => {
19286
+ const found = text.split(from).length - 1;
19287
+ if (found !== 1) throw new Error(`18.13.2 후보를 만들 수 없다: ${JSON.stringify(from.slice(0, 80))} ${found}/1`);
19288
+ return text.replace(from, () => to);
19289
+ };
19290
+ const exclude = (candidate, text) => {
19291
+ candidate.excludes = candidate.excludes === undefined ? text : [candidate.excludes, text].flat();
19292
+ };
19293
+
19294
+ // workflow-notice.md: completion 줄.
19295
+ const WORKPOOL_PY_18132 = "- {{#if py}}`workpool(";
19296
+ const workflow = one(entry => entry.file === "src/prompts/system/workflow-notice.md" && entry.marker === "effort=None)", "workflow-notice completion");
19297
+ const WORKFLOW_ANCHOR =
19298
+ '- {{#if py}}`completion(prompt, *, model="default", system=None, schema=None)`{{else}}`await completion(prompt, { model?, system?, schema? })`{{/if}}: immediate `CompletionHandle` for a tool-free one-shot call. Tiers: `"smol"`, `"default"`, `"slow"`.{{#if js}}{{#if py}} JS: `await completion(prompt, { model, system, schema })`; handle{{else}} Handle{{/if}} methods are async (`await h.wait()`).{{/if}}\n';
19299
+ let workflowPatched = swap(WORKFLOW_ANCHOR, 'schema=None)`{{else}}', 'schema=None, effort=None)`{{else}}');
19300
+ workflowPatched = swap(workflowPatched, "{ model?, system?, schema? })`{{/if}}", "{ model?, system?, schema?, effort? })`{{/if}}");
19301
+ workflowPatched = swap(workflowPatched, 'Tiers: `"smol"`, `"default"`, `"slow"`.{{#if js}}', 'Tiers: `"smol"`, `"default"`, `"slow"`. `effort` pins an explicit reasoning level (`"off"`..`"max"`), clamped per model.{{#if js}}');
19302
+ workflowPatched = swap(workflowPatched, "{ model, system, schema })`; handle", "{ model, system, schema, effort })`; handle");
19303
+ exclude(workflow, WORKPOOL_PY_18132);
19304
+ workflow.alternates = [
19305
+ ...(workflow.alternates ?? []),
19306
+ {
19307
+ file: workflow.file,
19308
+ requires: WORKPOOL_PY_18132,
19309
+ marker: "effort=None)`{{else}}",
19310
+ anchor: WORKFLOW_ANCHOR,
19311
+ patched: workflowPatched,
19312
+ },
19313
+ ];
19314
+
19315
+ // skill-protocol.ts: skills import.
19316
+ const skillProtocol = one(entry => entry.file === "src/internal-urls/skill-protocol.ts" && entry.marker === 'import { getActiveSkills } from "../extensibility/skills";\nimport { getActiveRules } from "../capability/rule";', "skill-protocol import");
19317
+ const SKILL_IMPORT_TAIL = '\ttype SkillRediscoveryHost,\n} from "../extensibility/skills";\n';
19318
+ skillProtocol.alternates = [
19319
+ ...(skillProtocol.alternates ?? []),
19320
+ {
19321
+ file: skillProtocol.file,
19322
+ marker: SKILL_IMPORT_TAIL + 'import { getActiveRules } from "../capability/rule";',
19323
+ anchor: SKILL_IMPORT_TAIL,
19324
+ patched: SKILL_IMPORT_TAIL + 'import { getActiveRules } from "../capability/rule";\n',
19325
+ },
19326
+ ];
19327
+
19328
+ // pi-mnemopi embeddings.ts: fastembed-runtime import.
19329
+ const embeddingsImport = one(entry => entry.file === "../pi-mnemopi/src/core/embeddings.ts" && entry.marker === "import { fastembedRuntimeInstallPlan, loadFastembed } from", "embeddings import");
19330
+ embeddingsImport.alternates = [
19331
+ ...(embeddingsImport.alternates ?? []),
19332
+ {
19333
+ file: embeddingsImport.file,
19334
+ marker: "import { fastembedRuntimeInstallPlan, loadFastembed, withEmbedSessionBudget } from",
19335
+ anchor: 'import { loadFastembed, withEmbedSessionBudget } from "./fastembed-runtime";\n',
19336
+ patched: 'import { fastembedRuntimeInstallPlan, loadFastembed, withEmbedSessionBudget } from "./fastembed-runtime";\n',
19337
+ },
19338
+ ];
19339
+
19340
+ // task/types.ts: agent optional. 18.13.0/18.13.1 후보(seanceFields)에는 SeanceItemKey 가 없는 판만 남긴다.
19341
+ const SEANCE_ITEM_KEY_18132 = "type SeanceItemKey =";
19342
+ const agentOptional = one(entry => entry.marker === "// CUELO: task schema agent is optional on the wire.", "agent optional");
19343
+ const agentOptionalSeance = agentOptional.alternates.find(candidate => candidate.requires === "const seanceFields = options.seanceFields;");
19344
+ if (agentOptionalSeance === undefined) throw new Error("18.13.2 후보를 만들 수 없다: agent optional 18.13.0 후보");
19345
+ const SEANCE_TYPE_OLD = 'type SeanceTaskSchemaFields = {\n\t"sourceSession?"?: FluentType<string>;\n\t"model?"?: FluentType<string | string[]>;\n};\n\n';
19346
+ const SEANCE_TYPE_NEW =
19347
+ "/** Seance-only task fields; `seanceTaskSchemaFields` in ./seance must match it exactly. */\n" +
19348
+ 'export type SeanceTaskSchemaFields = {\n\t"sourceSession?"?: FluentType<string>;\n\t"model?"?: FluentType<string | string[]>;\n};\n\n' +
19349
+ "type SeanceItemKey = {\n\t[K in keyof SeanceTaskSchemaFields]-?: K extends `${infer Name}?` ? Name : never;\n}[keyof SeanceTaskSchemaFields];\n\n";
19350
+ exclude(agentOptionalSeance, SEANCE_ITEM_KEY_18132);
19351
+ agentOptional.alternates.push({
19352
+ file: agentOptional.file,
19353
+ requires: SEANCE_ITEM_KEY_18132,
19354
+ marker: agentOptional.marker,
19355
+ anchor: swap(agentOptionalSeance.anchor, SEANCE_TYPE_OLD, SEANCE_TYPE_NEW),
19356
+ patched: swap(agentOptionalSeance.patched, SEANCE_TYPE_OLD, SEANCE_TYPE_NEW),
19357
+ });
19358
+
19359
+ // async/job-manager.ts: jobSnapshot Pick.
19360
+ const snapshotPick = one(entry => entry.file === "src/async/job-manager.ts" && entry.marker === '"structured" | "agentId" | "latestDetails" | "completion"', "jobSnapshot pick");
19361
+ const PICK_TAIL = '\t\t| "agentOutputPublished"\n\t\t| "latestDetails"\n';
19362
+ snapshotPick.alternates = [
19363
+ ...(snapshotPick.alternates ?? []),
19364
+ {
19365
+ file: snapshotPick.file,
19366
+ marker: '\t\t| "latestDetails"\n\t\t| "completion"\n',
19367
+ anchor: PICK_TAIL,
19368
+ patched: PICK_TAIL + '\t\t| "completion"\n',
19369
+ },
19370
+ ];
19371
+
19372
+ // async-job-delivery.ts: completion 은 showHistoryUrl 다음 줄. 옛 후보의 marker 는 새 patched 의 부분 문자열이라 새 판에서는 후보가 아니게 한다.
19373
+ const SHOW_HISTORY_18132 = '\t\t\tshowHistoryUrl: handles === "history",\n';
19374
+ const deliveryCompletion = one(entry => entry.file === "src/session/async-job-delivery.ts" && entry.marker === "\t\t\tcompletion: entry.job?.completion,", "delivery completion");
19375
+ exclude(deliveryCompletion, SHOW_HISTORY_18132);
19376
+ deliveryCompletion.alternates = [
19377
+ ...(deliveryCompletion.alternates ?? []),
19378
+ {
19379
+ file: deliveryCompletion.file,
19380
+ requires: SHOW_HISTORY_18132,
19381
+ marker: SHOW_HISTORY_18132 + "\t\t\tcompletion: entry.job?.completion,",
19382
+ anchor: SHOW_HISTORY_18132,
19383
+ patched: SHOW_HISTORY_18132 + "\t\t\tcompletion: entry.job?.completion,\n",
19384
+ },
19385
+ ];
19386
+
19387
+ // read.ts execute: conflict 검사. 새 삼항식(`: splitImageQuestionTarget(readPath);`)은 media 대상 local/artifact 와 scheme 이 있는 URL 에서만 질문을 뗀다.
19388
+ const MEDIA_QUESTION_18132 = "function isMediaQuestionTarget(readPath: string): boolean {";
19389
+ const readConflict = one(entry => entry.file === "src/tools/read.ts" && entry.marker === "\t\tif (imageQuestion.conflict) throw", "read conflict");
19390
+ exclude(readConflict, MEDIA_QUESTION_18132);
19391
+ const READ_TERNARY_TAIL = "\t\t\t\t: splitImageQuestionTarget(readPath);\n";
19392
+ const READ_CONFLICT_LINE = '\t\tif (imageQuestion.conflict) throw new ToolError("Pass either ?q= or ?ocr= to an image read, not both.");\n';
19393
+ readConflict.alternates = [
19394
+ ...(readConflict.alternates ?? []),
19395
+ {
19396
+ file: readConflict.file,
19397
+ requires: MEDIA_QUESTION_18132,
19398
+ marker: READ_TERNARY_TAIL + "\t\tif (imageQuestion.conflict) throw",
19399
+ anchor: READ_TERNARY_TAIL,
19400
+ patched: READ_TERNARY_TAIL + READ_CONFLICT_LINE,
19401
+ },
19402
+ ];
19403
+
19404
+ // read.ts 판별 뒤 블록: 새 판은 파일 경로의 `?q=` 를 여기서 뗀다. `?ocr=`(OCR_QUESTION_MARK)와 q/ocr 동시 지정은 splitImageQuestionTarget 과 같은 계약이다.
19405
+ const READ_STABLE_LINE = "export type ReadToolInput = typeof readSchema.infer;\n";
19406
+ const READ_QUESTION_ANCHOR =
19407
+ "\t\t\tconst questionTarget = splitJsonQueryTarget(located?.url ?? readPath);\n" +
19408
+ '\t\t\tconst imageQuestion = questionTarget ? new URLSearchParams(questionTarget.queryString).get("q") : null;\n' +
19409
+ "\t\t\tif (questionTarget && imageQuestion) {\n";
19410
+ const READ_QUESTION_PATCHED =
19411
+ "\t\t\tconst questionTarget = splitJsonQueryTarget(located?.url ?? readPath);\n" +
19412
+ "\t\t\t// CUELO: `?ocr=<question>` asks the OCR role (the kind rides on OCR_QUESTION_MARK); both keys at once is rejected rather than guessed.\n" +
19413
+ "\t\t\tconst questionParams = questionTarget ? new URLSearchParams(questionTarget.queryString) : null;\n" +
19414
+ '\t\t\tif (questionParams?.has("q") && questionParams.has("ocr")) throw new ToolError("Pass either ?q= or ?ocr= to an image read, not both.");\n' +
19415
+ "\t\t\t// NUL leads OCR_QUESTION_MARK: drop it from both user values so a `?q=` question can never begin with the mark.\n" +
19416
+ '\t\t\tconst plainQuestion = questionParams?.get("q")?.replaceAll("\\u0000", "");\n' +
19417
+ '\t\t\tconst ocrQuestion = questionParams?.get("ocr")?.replaceAll("\\u0000", "");\n' +
19418
+ "\t\t\tconst imageQuestion = ocrQuestion ? OCR_QUESTION_MARK + ocrQuestion : plainQuestion;\n" +
19419
+ "\t\t\tif (questionTarget && imageQuestion) {\n";
19420
+ EDITS.push({
19421
+ // 옛 판(isMediaQuestionTarget 이 없는 판): 질문은 execute 가 이미 뗐으므로 이 자리는 손대지 않는다.
19422
+ file: "src/tools/read.ts",
19423
+ excludes: MEDIA_QUESTION_18132,
19424
+ marker: READ_STABLE_LINE,
19425
+ anchor: READ_STABLE_LINE,
19426
+ patched: READ_STABLE_LINE,
19427
+ alternates: [
19428
+ {
19429
+ file: "src/tools/read.ts",
19430
+ requires: MEDIA_QUESTION_18132,
19431
+ marker: "const questionParams = questionTarget ? new URLSearchParams(questionTarget.queryString) : null;",
19432
+ anchor: READ_QUESTION_ANCHOR,
19433
+ patched: READ_QUESTION_PATCHED,
19434
+ },
19435
+ ],
19436
+ });
19437
+
19438
+ // dist/cli.js: advisor transcript filter(RETIRE 유지). minified 이름만 바뀌었다.
19439
+ const advisorFilter = one(entry => entry.file === "dist/cli.js" && entry.marker.startsWith('if(!o.endsWith(".jsonl")||o.includes(".bak")||o==="__advisor.jsonl"'), "advisor filter");
19440
+ const ADVISOR_18132 = 'if(!a.endsWith(".jsonl")||a.includes(".bak")||vOe(a))continue;let l=a.slice(0,-6),';
19441
+ advisorFilter.alternates.push({ file: "dist/cli.js", marker: ADVISOR_18132, anchor: ADVISOR_18132, patched: ADVISOR_18132 });
19442
+ }
19267
19443
 
19268
19444
 
19269
19445
 
@@ -496,7 +496,8 @@ async function wslUpdate() {
496
496
  return 0;
497
497
  }
498
498
  const child = spawn("systemd-run", args, { detached: true, stdio: "ignore" });
499
- child.unref();
499
+ // Keep the child referenced until systemd-run returns (it exits once the unit has started): an
500
+ // unref'd child keeps nothing alive, so this process would exit before it records the hand-off.
500
501
  await new Promise((resolve, reject) => {
501
502
  child.on("error", reject);
502
503
  child.on("exit", (code) => (code === 0 ? resolve() : reject(new Error(`systemd-run exited ${code}`))));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cuelo",
3
- "version": "0.10.95",
3
+ "version": "0.10.97",
4
4
  "description": "CUELO — open-source AI coding agent workspace and harness for omp (oh-my-pi)",
5
5
  "homepage": "https://github.com/gim47656-ship-it/CUELO#readme",
6
6
  "repository": {
@@ -30,7 +30,7 @@
30
30
  "license": "MIT",
31
31
  "cueloBuild": {
32
32
  "distribution": "cuelo",
33
- "coreVersion": "18.13.1"
33
+ "coreVersion": "18.13.2"
34
34
  },
35
35
  "engines": {
36
36
  "node": ">=22.19.0",
@@ -92,11 +92,11 @@
92
92
  "test:coverage": "bun test --coverage ./app ./components ./hooks ./lib ./public ./bin ./install.test.mjs"
93
93
  },
94
94
  "dependencies": {
95
- "@oh-my-pi/pi-agent-core": "18.13.1",
96
- "@oh-my-pi/pi-ai": "18.13.1",
97
- "@oh-my-pi/pi-coding-agent": "18.13.1",
98
- "@oh-my-pi/pi-tui": "18.13.1",
99
- "@oh-my-pi/pi-utils": "18.13.1",
95
+ "@oh-my-pi/pi-agent-core": "18.13.2",
96
+ "@oh-my-pi/pi-ai": "18.13.2",
97
+ "@oh-my-pi/pi-coding-agent": "18.13.2",
98
+ "@oh-my-pi/pi-tui": "18.13.2",
99
+ "@oh-my-pi/pi-utils": "18.13.2",
100
100
  "@seed-design/css": "2.8.0",
101
101
  "@seed-design/react": "2.4.1",
102
102
  "@seed-design/tailwind4-theme": "2.4.0",