@ksm0709/context 0.0.21 → 0.0.22

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/cli/index.js CHANGED
@@ -50,7 +50,7 @@ function resolveContextDir(projectDir) {
50
50
  // package.json
51
51
  var package_default = {
52
52
  name: "@ksm0709/context",
53
- version: "0.0.21",
53
+ version: "0.0.22",
54
54
  author: {
55
55
  name: "TaehoKang",
56
56
  email: "ksm07091@gmail.com"
@@ -92,7 +92,7 @@ var package_default = {
92
92
  "@opencode-ai/plugin": ">=1.0.0"
93
93
  },
94
94
  dependencies: {
95
- "@ksm0709/context": "^0.0.20",
95
+ "@ksm0709/context": "^0.0.21",
96
96
  "jsonc-parser": "^3.0.0"
97
97
  },
98
98
  devDependencies: {
@@ -122,7 +122,7 @@ var DEFAULT_CONFIG = `{
122
122
  "turnEnd": "prompts/turn-end.md"
123
123
  },
124
124
  "knowledge": {
125
- "dir": "docs",
125
+ "dir": ".context/memory",
126
126
  "sources": ["AGENTS.md"]
127
127
  },
128
128
  "omx": {
@@ -166,6 +166,7 @@ var DEFAULT_TURN_START = `## Knowledge Context
166
166
  - \uC9C0\uC2DD \uB178\uD2B8\uC5D0 \uC5C6\uB294 \uC0C8\uB85C\uC6B4 \uACB0\uC815\uC774\uB098 \uBC18\uBCF5 \uAC00\uCE58\uAC00 \uC788\uB294 \uBC1C\uACAC\uC740 \uC791\uC5C5 \uBA54\uBAA8\uB098 \uC9C0\uC2DD \uB178\uD2B8 \uD6C4\uBCF4\uB85C \uAE30\uB85D\uD558\uC138\uC694
167
167
  `;
168
168
  var DEFAULT_TURN_END = `## TURN END \uC791\uC5C5 \uC9C0\uCE68
169
+ \uC774 \uC9C0\uCE68\uC740 \uC5D0\uC774\uC804\uD2B8\uB97C \uC704\uD55C \uAC83\uC774\uBA70, \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uC9C1\uC811\uC801\uC73C\uB85C \uB178\uCD9C\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
169
170
  \uC544\uB798 \uBA54\uB274 \uC911 \uD558\uB098\uB97C \uC120\uD0DD\uD574 \uC9C4\uD589 \uC0C1\uD669\uC5D0 \uB9DE\uAC8C \uC218\uD589\uD558\uC138\uC694.
170
171
  **\uBC18\uB4DC\uC2DC \uB9C1\uD06C\uB41C \uAC00\uC774\uB4DC\uB97C \uCC38\uACE0\uD558\uC5EC \uC815\uD655\uD788 \uC218\uD589\uD574\uC57C \uD569\uB2C8\uB2E4.**
171
172
 
package/dist/index.js CHANGED
@@ -1129,7 +1129,7 @@ import { join as join4 } from "path";
1129
1129
  // package.json
1130
1130
  var package_default = {
1131
1131
  name: "@ksm0709/context",
1132
- version: "0.0.21",
1132
+ version: "0.0.22",
1133
1133
  author: {
1134
1134
  name: "TaehoKang",
1135
1135
  email: "ksm07091@gmail.com"
@@ -1171,7 +1171,7 @@ var package_default = {
1171
1171
  "@opencode-ai/plugin": ">=1.0.0"
1172
1172
  },
1173
1173
  dependencies: {
1174
- "@ksm0709/context": "^0.0.20",
1174
+ "@ksm0709/context": "^0.0.21",
1175
1175
  "jsonc-parser": "^3.0.0"
1176
1176
  },
1177
1177
  devDependencies: {
@@ -1201,7 +1201,7 @@ var DEFAULT_CONFIG = `{
1201
1201
  "turnEnd": "prompts/turn-end.md"
1202
1202
  },
1203
1203
  "knowledge": {
1204
- "dir": "docs",
1204
+ "dir": ".context/memory",
1205
1205
  "sources": ["AGENTS.md"]
1206
1206
  },
1207
1207
  "omx": {
@@ -1245,6 +1245,7 @@ var DEFAULT_TURN_START = `## Knowledge Context
1245
1245
  - \uC9C0\uC2DD \uB178\uD2B8\uC5D0 \uC5C6\uB294 \uC0C8\uB85C\uC6B4 \uACB0\uC815\uC774\uB098 \uBC18\uBCF5 \uAC00\uCE58\uAC00 \uC788\uB294 \uBC1C\uACAC\uC740 \uC791\uC5C5 \uBA54\uBAA8\uB098 \uC9C0\uC2DD \uB178\uD2B8 \uD6C4\uBCF4\uB85C \uAE30\uB85D\uD558\uC138\uC694
1246
1246
  `;
1247
1247
  var DEFAULT_TURN_END = `## TURN END \uC791\uC5C5 \uC9C0\uCE68
1248
+ \uC774 \uC9C0\uCE68\uC740 \uC5D0\uC774\uC804\uD2B8\uB97C \uC704\uD55C \uAC83\uC774\uBA70, \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uC9C1\uC811\uC801\uC73C\uB85C \uB178\uCD9C\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
1248
1249
  \uC544\uB798 \uBA54\uB274 \uC911 \uD558\uB098\uB97C \uC120\uD0DD\uD574 \uC9C4\uD589 \uC0C1\uD669\uC5D0 \uB9DE\uAC8C \uC218\uD589\uD558\uC138\uC694.
1249
1250
  **\uBC18\uB4DC\uC2DC \uB9C1\uD06C\uB41C \uAC00\uC774\uB4DC\uB97C \uCC38\uACE0\uD558\uC5EC \uC815\uD655\uD788 \uC218\uD589\uD574\uC57C \uD569\uB2C8\uB2E4.**
1250
1251
 
@@ -1650,31 +1651,47 @@ var plugin = async ({ directory, client }) => {
1650
1651
  const config = loadConfig(directory);
1651
1652
  return {
1652
1653
  "experimental.chat.messages.transform": async (_input, output) => {
1654
+ if (process.env.OMX_HOOK_PLUGINS)
1655
+ return;
1656
+ let skipTurnStart = false;
1657
+ const agentsMdPath = join5(directory, "AGENTS.md");
1658
+ if (existsSync4(agentsMdPath)) {
1659
+ const content = readFileSync5(agentsMdPath, "utf-8");
1660
+ if (content.includes("<!-- context:start -->") && content.includes("<!-- context:end -->")) {
1661
+ skipTurnStart = true;
1662
+ }
1663
+ }
1653
1664
  if (output.messages.length === 0)
1654
1665
  return;
1655
1666
  const lastUserMsg = output.messages.filter((m) => m.info.role === "user").at(-1);
1656
1667
  if (!lastUserMsg)
1657
1668
  return;
1669
+ const isTurnEndMessage = lastUserMsg.parts.some((p) => p.type === "text" && p.text.includes("<system-reminder>") && p.text.includes("TURN END"));
1670
+ if (isTurnEndMessage) {
1671
+ return;
1672
+ }
1658
1673
  const promptVars = {
1659
1674
  knowledgeDir: config.knowledge.dir ?? "docs",
1660
1675
  sessionId: lastUserMsg.info.sessionID
1661
1676
  };
1662
- const turnStartPath = resolvePromptPath(directory, contextDir, config.prompts.turnStart ?? join5(DEFAULTS.promptDir, DEFAULTS.turnStartFile));
1663
- const turnStartRaw = readPromptFile(turnStartPath) ?? "";
1664
- const turnStart = resolvePromptVariables(turnStartRaw, promptVars);
1665
- const knowledgeIndex = buildKnowledgeIndexV2(directory, config.knowledge);
1666
- const indexContent = knowledgeIndex.mode === "flat" ? formatKnowledgeIndex(knowledgeIndex.individualFiles) : formatDomainIndex(knowledgeIndex);
1667
- const combinedContent = [turnStart, indexContent].filter(Boolean).join(`
1677
+ if (!skipTurnStart) {
1678
+ const turnStartPath = resolvePromptPath(directory, contextDir, config.prompts.turnStart ?? join5(DEFAULTS.promptDir, DEFAULTS.turnStartFile));
1679
+ const turnStartRaw = readPromptFile(turnStartPath) ?? "";
1680
+ const turnStart = resolvePromptVariables(turnStartRaw, promptVars);
1681
+ const knowledgeIndex = buildKnowledgeIndexV2(directory, config.knowledge);
1682
+ const indexContent = knowledgeIndex.mode === "flat" ? formatKnowledgeIndex(knowledgeIndex.individualFiles) : formatDomainIndex(knowledgeIndex);
1683
+ const combinedContent = [turnStart, indexContent].filter(Boolean).join(`
1668
1684
 
1669
1685
  `);
1670
- if (combinedContent) {
1671
- lastUserMsg.parts.push({
1672
- id: `context-turn-start-${Date.now()}`,
1673
- sessionID: lastUserMsg.info.sessionID,
1674
- messageID: lastUserMsg.info.id,
1675
- type: "text",
1676
- text: combinedContent
1677
- });
1686
+ if (combinedContent) {
1687
+ lastUserMsg.parts.push({
1688
+ id: `context-turn-start-${Date.now()}`,
1689
+ sessionID: lastUserMsg.info.sessionID,
1690
+ messageID: lastUserMsg.info.id,
1691
+ type: "text",
1692
+ text: combinedContent
1693
+ });
1694
+ }
1678
1695
  }
1679
1696
  const signalPath = join5(directory, DEFAULTS.workCompleteFile);
1680
1697
  if (existsSync4(signalPath)) {
@@ -325,7 +325,7 @@ import { join as join4 } from "node:path";
325
325
  // package.json
326
326
  var package_default = {
327
327
  name: "@ksm0709/context",
328
- version: "0.0.21",
328
+ version: "0.0.22",
329
329
  author: {
330
330
  name: "TaehoKang",
331
331
  email: "ksm07091@gmail.com"
@@ -367,7 +367,7 @@ var package_default = {
367
367
  "@opencode-ai/plugin": ">=1.0.0"
368
368
  },
369
369
  dependencies: {
370
- "@ksm0709/context": "^0.0.20",
370
+ "@ksm0709/context": "^0.0.21",
371
371
  "jsonc-parser": "^3.0.0"
372
372
  },
373
373
  devDependencies: {
@@ -397,7 +397,7 @@ var DEFAULT_CONFIG = `{
397
397
  "turnEnd": "prompts/turn-end.md"
398
398
  },
399
399
  "knowledge": {
400
- "dir": "docs",
400
+ "dir": ".context/memory",
401
401
  "sources": ["AGENTS.md"]
402
402
  },
403
403
  "omx": {
@@ -441,6 +441,7 @@ var DEFAULT_TURN_START = `## Knowledge Context
441
441
  - 지식 노트에 없는 새로운 결정이나 반복 가치가 있는 발견은 작업 메모나 지식 노트 후보로 기록하세요
442
442
  `;
443
443
  var DEFAULT_TURN_END = `## TURN END 작업 지침
444
+ 이 지침은 에이전트를 위한 것이며, 사용자에게 직접적으로 노출하지 않습니다.
444
445
  아래 메뉴 중 하나를 선택해 진행 상황에 맞게 수행하세요.
445
446
  **반드시 링크된 가이드를 참고하여 정확히 수행해야 합니다.**
446
447
 
@@ -1027,7 +1028,7 @@ async function onTurnComplete(event, sdk) {
1027
1028
  turnId: event.turn_id ?? ""
1028
1029
  };
1029
1030
  const turnEndPath = resolvePromptPath(projectDir, contextDir, config.prompts.turnEnd ?? join5(DEFAULTS.promptDir, DEFAULTS.turnEndFile));
1030
- const turnEndRaw = readPromptFile(turnEndPath);
1031
+ let turnEndRaw = readPromptFile(turnEndPath);
1031
1032
  if (!turnEndRaw) {
1032
1033
  await sdk.log.info("turn_end_skipped_empty_prompt", {
1033
1034
  event: event.event,
@@ -1036,6 +1037,13 @@ async function onTurnComplete(event, sdk) {
1036
1037
  });
1037
1038
  return;
1038
1039
  }
1040
+ if (turnEndRaw.includes("<!-- context:start -->") || turnEndRaw.includes("## Knowledge Context")) {
1041
+ const defaultTurnEndPath = join5(projectDir, DEFAULTS.promptDir, DEFAULTS.turnEndFile);
1042
+ turnEndRaw = readPromptFile(defaultTurnEndPath);
1043
+ if (!turnEndRaw) {
1044
+ return;
1045
+ }
1046
+ }
1039
1047
  if (typeof sdk.tmux?.sendKeys !== "function") {
1040
1048
  await logWarn(sdk, "turn_end_sendkeys_failed", {
1041
1049
  event: event.event,
@@ -1045,11 +1053,13 @@ async function onTurnComplete(event, sdk) {
1045
1053
  });
1046
1054
  return;
1047
1055
  }
1048
- const turnEnd = resolvePromptVariables(turnEndRaw, promptVars);
1056
+ const turnEnd = resolvePromptVariables(turnEndRaw, promptVars).trim();
1049
1057
  const reminderText = `<system-reminder>
1050
1058
  ${turnEnd}
1051
1059
  </system-reminder>`;
1052
1060
  const sessionName = typeof event.context?.session_name === "string" && event.context.session_name.trim().length > 0 ? event.context.session_name.trim() : undefined;
1061
+ await new Promise((resolve) => globalThis.setTimeout(resolve, 500));
1062
+ if (typeof sdk.tmux?.sendKeys === "function") {}
1053
1063
  const result = await sdk.tmux.sendKeys({
1054
1064
  sessionName,
1055
1065
  text: reminderText,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ksm0709/context",
3
- "version": "0.0.21",
3
+ "version": "0.0.22",
4
4
  "author": {
5
5
  "name": "TaehoKang",
6
6
  "email": "ksm07091@gmail.com"
@@ -42,7 +42,7 @@
42
42
  "@opencode-ai/plugin": ">=1.0.0"
43
43
  },
44
44
  "dependencies": {
45
- "@ksm0709/context": "^0.0.20",
45
+ "@ksm0709/context": "^0.0.21",
46
46
  "jsonc-parser": "^3.0.0"
47
47
  },
48
48
  "devDependencies": {