@ksm0709/context 0.0.17 → 0.0.18
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 +28 -129
- package/dist/index.js +30 -201
- package/package.json +4 -3
package/dist/cli/index.js
CHANGED
|
@@ -16,7 +16,6 @@ var DEFAULTS = {
|
|
|
16
16
|
promptDir: ".opencode/context/prompts",
|
|
17
17
|
turnStartFile: "turn-start.md",
|
|
18
18
|
turnEndFile: "turn-end.md",
|
|
19
|
-
blockedToolPatterns: ["^task$", "^background_", "agent"],
|
|
20
19
|
knowledgeSources: ["AGENTS.md"],
|
|
21
20
|
templateDir: ".opencode/context/templates",
|
|
22
21
|
indexFilename: "INDEX.md",
|
|
@@ -33,7 +32,7 @@ var LIMITS = {
|
|
|
33
32
|
// package.json
|
|
34
33
|
var package_default = {
|
|
35
34
|
name: "@ksm0709/context",
|
|
36
|
-
version: "0.0.
|
|
35
|
+
version: "0.0.18",
|
|
37
36
|
author: {
|
|
38
37
|
name: "TaehoKang",
|
|
39
38
|
email: "ksm07091@gmail.com"
|
|
@@ -70,7 +69,7 @@ var package_default = {
|
|
|
70
69
|
"@opencode-ai/plugin": ">=1.0.0"
|
|
71
70
|
},
|
|
72
71
|
dependencies: {
|
|
73
|
-
"@ksm0709/context": "0.0.17",
|
|
72
|
+
"@ksm0709/context": "^0.0.17",
|
|
74
73
|
"jsonc-parser": "^3.0.0"
|
|
75
74
|
},
|
|
76
75
|
devDependencies: {
|
|
@@ -85,7 +84,8 @@ var package_default = {
|
|
|
85
84
|
"eslint-plugin-prettier": "^5.1.3",
|
|
86
85
|
prettier: "^3.2.4",
|
|
87
86
|
"typescript-eslint": "^8.47.0",
|
|
88
|
-
vitest: "^3.2.4"
|
|
87
|
+
vitest: "^3.2.4",
|
|
88
|
+
"@vitest/coverage-v8": "^3.2.4"
|
|
89
89
|
}
|
|
90
90
|
};
|
|
91
91
|
|
|
@@ -98,9 +98,6 @@ var DEFAULT_CONFIG = `{
|
|
|
98
98
|
"turnStart": ".opencode/context/prompts/turn-start.md",
|
|
99
99
|
"turnEnd": ".opencode/context/prompts/turn-end.md"
|
|
100
100
|
},
|
|
101
|
-
"subagentConfig": {
|
|
102
|
-
"blockedToolPatterns": ["^task$", "^background_", "agent"]
|
|
103
|
-
},
|
|
104
101
|
"knowledge": {
|
|
105
102
|
"dir": "docs",
|
|
106
103
|
"sources": ["AGENTS.md"]
|
|
@@ -119,55 +116,11 @@ var DEFAULT_TURN_START = `## Knowledge Context
|
|
|
119
116
|
|
|
120
117
|
### \uC791\uC5C5 \uC804 \uD544\uC218
|
|
121
118
|
|
|
122
|
-
- \uC544\uB798 **Available Knowledge** \uBAA9\uB85D\uC5D0\uC11C \uD604\uC7AC \uC791\uC5C5\uACFC \uAD00\uB828\uB41C \uBB38\uC11C\uB97C **\uBA3C\uC800** \uC77D\uC73C\uC138\uC694
|
|
123
|
-
${"<"}!-- primary-only -->
|
|
124
|
-
- \uC9C1\uC811 \uC77D\uAE30 \uC804\uC5D0 \uC544\uB798\uC640 \uAC19\uC774 **\uC11C\uBE0C\uC5D0\uC774\uC804\uD2B8(explore)\uC5D0 \uC704\uC784**\uD558\uC5EC, \uC5F0\uAD00\uB41C \uB178\uD2B8\uB97C \uC9D1\uC911 \uD0D0\uC0C9\uD558\uACE0 \uC791\uC5C5\uC5D0 \uD544\uC694\uD55C \uB0B4\uC6A9\uC744 \uC694\uC57D\uD558\uB3C4\uB85D \uC9C0\uC2DC\uD558\uC138\uC694.
|
|
125
|
-
${"<"}!-- /primary-only -->
|
|
126
|
-
${"<"}!-- subagent-only -->
|
|
127
|
-
- \uAD00\uB828 \uBB38\uC11C\uB97C \uC9C1\uC811 \uC77D\uACE0 \uC791\uC5C5\uC5D0 \uC801\uC6A9\uD558\uC138\uC694. \uC11C\uBE0C\uC5D0\uC774\uC804\uD2B8\uB97C \uD638\uCD9C\uD558\uC9C0 \uB9C8\uC138\uC694.
|
|
128
|
-
${"<"}!-- /subagent-only -->
|
|
129
|
-
- \uB3C4\uBA54\uC778 \uD3F4\uB354 \uAD6C\uC870\uAC00 \uC788\uB2E4\uBA74 INDEX.md\uC758 \uC694\uC57D\uC744 \uCC38\uACE0\uD558\uC5EC \uD544\uC694\uD55C \uB178\uD2B8\uB9CC \uC120\uD0DD\uC801\uC73C\uB85C \uC77D\uC73C\uC138\uC694
|
|
130
|
-
- \uBB38\uC11C \uB0B4 [[\uB9C1\uD06C]]\uB97C \uB530\uB77C\uAC00\uBA70 \uAD00\uB828 \uB178\uD2B8\uB97C \uD0D0\uC0C9\uD558\uC138\uC694 -- \uB9C1\uD06C\uB97C \uB193\uCE58\uBA74 \uC911\uC694\uD55C \uB9E5\uB77D\uC744 \uC783\uC2B5\uB2C8\uB2E4
|
|
131
|
-
- \uC9C0\uC2DD \uD30C\uC77C\uC5D0 \uAE30\uB85D\uB41C \uC544\uD0A4\uD14D\uCC98 \uACB0\uC815, \uD328\uD134, \uC81C\uC57D\uC0AC\uD56D\uC744 \uBC18\uB4DC\uC2DC \uB530\uB974\uC138\uC694
|
|
132
|
-
|
|
133
|
-
${"<"}!-- primary-only -->
|
|
134
|
-
### \uC9C0\uC2DD \uD0D0\uC0C9 (\uC11C\uBE0C\uC5D0\uC774\uC804\uD2B8 \uC704\uC784)
|
|
135
|
-
|
|
136
|
-
\uD604\uC7AC \uC791\uC5C5\uACFC \uAD00\uB828\uB41C \uC9C0\uC2DD \uB178\uD2B8\uB97C \uC77D\uACE0 \uC694\uC57D\uD558\uB294 \uC791\uC5C5\uC744 **\uC11C\uBE0C\uC5D0\uC774\uC804\uD2B8\uC5D0 \uC704\uC784**\uD558\uC5EC \uCEE8\uD14D\uC2A4\uD2B8 \uD30C\uC545\uC744 \uD6A8\uC728\uD654\uD558\uC138\uC694.
|
|
137
|
-
\uBA54\uC778 \uC5D0\uC774\uC804\uD2B8\uB294 \uC11C\uBE0C\uC5D0\uC774\uC804\uD2B8\uAC00 \uC694\uC57D\uD574\uC900 \uB0B4\uC6A9\uC744 \uBC14\uD0D5\uC73C\uB85C \uC791\uC5C5\uC744 \uC9C4\uD589\uD558\uC138\uC694.
|
|
138
|
-
|
|
139
|
-
\`\`\`
|
|
140
|
-
task(
|
|
141
|
-
subagent_type="explore",
|
|
142
|
-
load_skills=[],
|
|
143
|
-
description="Analyze and summarize related knowledge notes",
|
|
144
|
-
run_in_background=false,
|
|
145
|
-
prompt="""
|
|
146
|
-
TASK: \uC0AC\uC6A9\uC790\uC758 \uC791\uC5C5 \uC694\uCCAD\uACFC 'Available Knowledge' \uBAA9\uB85D\uC744 \uBD84\uC11D\uD558\uC5EC, \uC774\uBC88 \uC791\uC5C5\uC5D0 \uC9C1\uC811\uC801\uC73C\uB85C \uD544\uC694\uD55C \uC9C0\uC2DD \uB178\uD2B8\uB97C \uD0D0\uC0C9\uD558\uACE0 \uD575\uC2EC\uC744 \uC694\uC57D\uD558\uC138\uC694.
|
|
147
|
-
EXPECTED OUTCOME: \uC791\uC5C5\uC5D0 \uC801\uC6A9\uD574\uC57C \uD560 \uD575\uC2EC \uC81C\uC57D\uC0AC\uD56D, \uC544\uD0A4\uD14D\uCC98 \uACB0\uC815, \uCF54\uB4DC \uD328\uD134, \uC8FC\uC758\uC0AC\uD56D(Gotchas) \uC694\uC57D \uB9AC\uD3EC\uD2B8
|
|
148
|
-
REQUIRED TOOLS: Read (\uC9C0\uC2DD \uB178\uD2B8 \uC77D\uAE30), Glob/Grep (\uD544\uC694 \uC2DC \uC5F0\uAD00 \uC9C0\uC2DD \uAC80\uC0C9)
|
|
149
|
-
MUST DO:
|
|
150
|
-
- \uC791\uC5C5\uACFC \uAD00\uB828\uC131\uC774 \uB192\uC740 \uB178\uD2B8\uB9CC \uC120\uBCC4\uC801\uC73C\uB85C \uC77D\uAE30
|
|
151
|
-
- \uB3C4\uBA54\uC778 \uD3F4\uB354 \uAD6C\uC870\uC778 \uACBD\uC6B0 INDEX.md\uB97C \uC6B0\uC120 \uC77D\uACE0 \uD544\uC694\uD55C \uC138\uBD80 \uB178\uD2B8 \uD0D0\uC0C9
|
|
152
|
-
- \uC77D\uC740 \uB178\uD2B8 \uB0B4\uC758 [[wikilink]]\uB97C \uB530\uB77C\uAC00\uBA70 \uC911\uC694\uD55C \uC5F0\uAD00 \uB9E5\uB77D \uD30C\uC545
|
|
153
|
-
- \uBCF5\uC0AC-\uBD99\uC5EC\uB123\uAE30\uAC00 \uC544\uB2CC, \uC774\uBC88 \uC791\uC5C5\uC5D0 \uC5B4\uB5BB\uAC8C \uC801\uC6A9\uD560\uC9C0 \uBA85\uD655\uD788 \uC694\uC57D
|
|
154
|
-
MUST NOT DO:
|
|
155
|
-
- \uCF54\uB4DC\uB97C \uC9C1\uC811 \uC218\uC815\uD558\uAC70\uB098 \uC791\uC131\uD558\uC9C0 \uB9C8\uC138\uC694 (\uD0D0\uC0C9 \uBC0F \uC694\uC57D\uB9CC \uC218\uD589)
|
|
156
|
-
- \uC791\uC5C5\uACFC \uBB34\uAD00\uD55C \uB178\uD2B8\uAE4C\uC9C0 \uBD88\uD544\uC694\uD558\uAC8C \uD0D0\uC0C9\uD558\uC9C0 \uB9C8\uC138\uC694
|
|
157
|
-
CONTEXT:
|
|
158
|
-
- \uD604\uC7AC \uC791\uC5C5: [\uC0AC\uC6A9\uC790\uC758 \uC791\uC5C5 \uC694\uCCAD \uB0B4\uC6A9 \uC694\uC57D]
|
|
159
|
-
- \uCC38\uACE0\uD560 \uC9C0\uC2DD \uBAA9\uB85D: [\uBA54\uC778 \uD504\uB86C\uD504\uD2B8 \uD558\uB2E8\uC758 Available Knowledge \uBAA9\uB85D \uCC38\uACE0]
|
|
160
|
-
"""
|
|
161
|
-
)
|
|
162
|
-
\`\`\`
|
|
163
|
-
|
|
164
|
-
${"<"}!-- /primary-only -->
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
- \uC544\uB798 **Available Knowledge** \uBAA9\uB85D\uC5D0\uC11C \uD604\uC7AC \uC791\uC5C5\uACFC \uAD00\uB828\uB41C \uBB38\uC11C\uB97C **\uBA3C\uC800** \uC77D\uC73C\uC138\uC694
|
|
119
|
+
- \uBA54\uC778 \uC5D0\uC774\uC804\uD2B8\uAC00 \uC544\uB798 **Available Knowledge** \uBAA9\uB85D\uC5D0\uC11C \uD604\uC7AC \uC791\uC5C5\uACFC \uAD00\uB828\uB41C \uBB38\uC11C\uB97C **\uC9C1\uC811 \uBA3C\uC800** \uC77D\uC73C\uC138\uC694
|
|
168
120
|
- \uB3C4\uBA54\uC778 \uD3F4\uB354 \uAD6C\uC870\uAC00 \uC788\uB2E4\uBA74 INDEX.md\uC758 \uC694\uC57D\uC744 \uCC38\uACE0\uD558\uC5EC \uD544\uC694\uD55C \uB178\uD2B8\uB9CC \uC120\uD0DD\uC801\uC73C\uB85C \uC77D\uC73C\uC138\uC694
|
|
169
121
|
- \uBB38\uC11C \uB0B4 [[\uB9C1\uD06C]]\uB97C \uB530\uB77C\uAC00\uBA70 \uAD00\uB828 \uB178\uD2B8\uB97C \uD0D0\uC0C9\uD558\uC138\uC694 -- \uB9C1\uD06C\uB97C \uB193\uCE58\uBA74 \uC911\uC694\uD55C \uB9E5\uB77D\uC744 \uC783\uC2B5\uB2C8\uB2E4
|
|
170
122
|
- \uC9C0\uC2DD \uD30C\uC77C\uC5D0 \uAE30\uB85D\uB41C \uC544\uD0A4\uD14D\uCC98 \uACB0\uC815, \uD328\uD134, \uC81C\uC57D\uC0AC\uD56D\uC744 \uBC18\uB4DC\uC2DC \uB530\uB974\uC138\uC694
|
|
123
|
+
- \uC77D\uC740 \uC9C0\uC2DD\uC744 \uD604\uC7AC \uC791\uC5C5\uC758 \uC124\uACC4, \uAD6C\uD604, \uAC80\uC99D\uC5D0 \uC9C1\uC811 \uBC18\uC601\uD558\uC138\uC694
|
|
171
124
|
|
|
172
125
|
### \uAC1C\uBC1C \uC6D0\uCE59
|
|
173
126
|
|
|
@@ -179,49 +132,23 @@ ${"<"}!-- /primary-only -->
|
|
|
179
132
|
|
|
180
133
|
- AGENTS.md\uC758 \uC9C0\uC2DC\uC0AC\uD56D\uC774 \uD56D\uC0C1 \uCD5C\uC6B0\uC120
|
|
181
134
|
- \uC9C0\uC2DD \uB178\uD2B8\uC758 \uACB0\uC815\uC0AC\uD56D > \uC77C\uBC18\uC801 \uAD00\uD589
|
|
182
|
-
|
|
183
|
-
- \uC9C0\uC2DD \uB178\uD2B8\uC5D0 \uC5C6\uB294 \uC0C8\uB85C\uC6B4 \uACB0\uC815\uC740 \uC791\uC5C5 \uC644\uB8CC \uC2DC \uC11C\uBE0C\uC5D0\uC774\uC804\uD2B8\uC5D0 \uC704\uC784\uD558\uC5EC \uAE30\uB85D\uD558\uC138\uC694
|
|
184
|
-
${"<"}!-- /primary-only -->
|
|
135
|
+
- \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
|
|
185
136
|
`;
|
|
186
|
-
var DEFAULT_TURN_END =
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
\uBCC0\uACBD\
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
prompt="""
|
|
202
|
-
TASK: \uBCC0\uACBD\uB41C \uD30C\uC77C\uB4E4\uC5D0 \uB300\uD574 \uD004\uB9AC\uD2F0 \uCCB4\uD06C\uB97C \uC218\uD589\uD558\uC138\uC694.
|
|
203
|
-
EXPECTED OUTCOME: \uBAA8\uB4E0 \uCCB4\uD06C \uD1B5\uACFC \uB610\uB294 \uC2E4\uD328 \uD56D\uBAA9 \uBAA9\uB85D
|
|
204
|
-
REQUIRED TOOLS: Bash (lint, format, test \uC2E4\uD589)
|
|
205
|
-
MUST DO:
|
|
206
|
-
- \uBCC0\uACBD\uD55C \uCF54\uB4DC\uC5D0 \uB300\uD574 lint \uC2E4\uD589
|
|
207
|
-
- \uBCC0\uACBD\uD55C \uCF54\uB4DC\uC5D0 \uB300\uD574 formatter \uC2E4\uD589 (lint\uC640 \uBCC4\uAC1C)
|
|
208
|
-
- \uAE30\uC874 \uD14C\uC2A4\uD2B8 \uD1B5\uACFC \uD655\uC778
|
|
209
|
-
- \uC0C8\uB85C \uC791\uC131/\uBCC0\uACBD\uD55C \uCF54\uB4DC\uC758 \uD14C\uC2A4\uD2B8 \uCEE4\uBC84\uB9AC\uC9C0 80% \uC774\uC0C1 \uD655\uC778
|
|
210
|
-
- \uBCC0\uACBD \uBC94\uC704 \uD655\uC778: \uC694\uCCAD\uACFC \uBB34\uAD00\uD55C \uD30C\uC77C\uC744 \uAC74\uB4DC\uB9AC\uC9C0 \uC54A\uC558\uB294\uC9C0 \uAC80\uC99D
|
|
211
|
-
- \uC2E4\uD328 \uD56D\uBAA9\uC774 \uC788\uC73C\uBA74 \uAD6C\uCCB4\uC801\uC778 \uC5D0\uB7EC \uBA54\uC2DC\uC9C0\uC640 \uD30C\uC77C \uC704\uCE58\uB97C \uBCF4\uACE0
|
|
212
|
-
MUST NOT DO:
|
|
213
|
-
- \uCF54\uB4DC\uB97C \uC9C1\uC811 \uC218\uC815\uD558\uC9C0 \uB9C8\uC138\uC694 (\uBCF4\uACE0\uB9CC)
|
|
214
|
-
- \uD14C\uC2A4\uD2B8\uB97C \uC0AD\uC81C\uD558\uAC70\uB098 \uC2A4\uD0B5\uD558\uC9C0 \uB9C8\uC138\uC694
|
|
215
|
-
CONTEXT: [\uBCC0\uACBD\uD55C \uD30C\uC77C \uBAA9\uB85D\uACFC \uBCC0\uACBD \uB0B4\uC6A9 \uC694\uC57D\uC744 \uC5EC\uAE30\uC5D0 \uD3EC\uD568]
|
|
216
|
-
"""
|
|
217
|
-
)
|
|
218
|
-
\`\`\`
|
|
219
|
-
|
|
220
|
-
\uD004\uB9AC\uD2F0 \uCCB4\uD06C \uC2E4\uD328 \uC2DC: \uC11C\uBE0C\uC5D0\uC774\uC804\uD2B8 \uBCF4\uACE0\uB97C \uBC14\uD0D5\uC73C\uB85C \uC9C1\uC811 \uC218\uC815\uD55C \uB4A4, \uB2E4\uC2DC \uC704\uC784\uD558\uC138\uC694.
|
|
221
|
-
|
|
222
|
-
### 2. \uC9C0\uC2DD \uC815\uB9AC (\uC11C\uBE0C\uC5D0\uC774\uC804\uD2B8 \uC704\uC784)
|
|
223
|
-
|
|
224
|
-
\uC791\uC5C5 \uC911 \uAE30\uB85D\uD560 \uB9CC\uD55C \uBC1C\uACAC\uC774 \uC788\uC5C8\uB2E4\uBA74, \uC9C0\uC2DD \uB178\uD2B8 \uC791\uC131\uC744 \uC11C\uBE0C\uC5D0\uC774\uC804\uD2B8\uC5D0 \uC704\uC784\uD558\uC138\uC694.
|
|
137
|
+
var DEFAULT_TURN_END = `## \uC791\uC5C5 \uB9C8\uBB34\uB9AC
|
|
138
|
+
|
|
139
|
+
\uC791\uC5C5\uC774 \uC644\uB8CC\uB418\uBA74 \uC544\uB798 \uD56D\uBAA9\uC744 \uBA54\uC778 \uC5D0\uC774\uC804\uD2B8\uAC00 \uC9C1\uC811 \uD655\uC778\uD558\uC138\uC694.
|
|
140
|
+
|
|
141
|
+
### 1. \uD004\uB9AC\uD2F0 \uCCB4\uD06C
|
|
142
|
+
|
|
143
|
+
- \uBCC0\uACBD\uD55C \uCF54\uB4DC\uC5D0 \uB300\uD574 \uD544\uC694\uD55C lint, format, test, build \uAC80\uC99D\uC744 \uC9C1\uC811 \uC2E4\uD589\uD558\uC138\uC694
|
|
144
|
+
- \uC0C8\uB85C \uC791\uC131\uD558\uAC70\uB098 \uBCC0\uACBD\uD55C \uCF54\uB4DC\uC758 \uCEE4\uBC84\uB9AC\uC9C0 \uAE30\uB300\uCE58\uB97C \uD655\uC778\uD558\uC138\uC694
|
|
145
|
+
- \uBCC0\uACBD \uBC94\uC704\uB97C \uAC80\uD1A0\uD558\uC5EC \uC694\uCCAD\uACFC \uBB34\uAD00\uD55C \uD30C\uC77C\uC744 \uAC74\uB4DC\uB9AC\uC9C0 \uC54A\uC558\uB294\uC9C0 \uD655\uC778\uD558\uC138\uC694
|
|
146
|
+
- \uC2E4\uD328 \uD56D\uBAA9\uC774 \uC788\uC73C\uBA74 \uC6D0\uC778, \uC5D0\uB7EC \uBA54\uC2DC\uC9C0, \uAD00\uB828 \uD30C\uC77C \uC704\uCE58\uB97C \uC815\uB9AC\uD55C \uB4A4 \uC9C1\uC811 \uC218\uC815\uD558\uC138\uC694
|
|
147
|
+
- \uC791\uC5C5\uC774 \uB05D\uB0AC\uB2E4\uACE0 \uD310\uB2E8\uD558\uAE30 \uC804\uC5D0 \uC704 \uAC80\uC99D \uACB0\uACFC\uB97C \uC9C1\uC811 \uB2E4\uC2DC \uD655\uC778\uD558\uC138\uC694
|
|
148
|
+
|
|
149
|
+
### 2. \uC9C0\uC2DD \uC815\uB9AC
|
|
150
|
+
|
|
151
|
+
\uC791\uC5C5 \uC911 \uAE30\uB85D\uD560 \uB9CC\uD55C \uBC1C\uACAC\uC774 \uC788\uC5C8\uB2E4\uBA74 \uC9C1\uC811 \uC815\uB9AC\uD558\uC138\uC694.
|
|
225
152
|
|
|
226
153
|
**\uAE30\uB85D \uB300\uC0C1 \uD310\uB2E8 \uAE30\uC900:**
|
|
227
154
|
|
|
@@ -238,40 +165,12 @@ task(
|
|
|
238
165
|
|
|
239
166
|
\uD574\uB2F9 \uC0AC\uD56D\uC774 \uC5C6\uC73C\uBA74 \uC774 \uB2E8\uACC4\uB294 \uAC74\uB108\uB6F0\uC138\uC694.
|
|
240
167
|
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
TASK: \uC544\uB798 \uB0B4\uC6A9\uC744 \uBC14\uD0D5\uC73C\uB85C Zettelkasten \uC9C0\uC2DD \uB178\uD2B8\uB97C \uC791\uC131\uD558\uC138\uC694.
|
|
248
|
-
EXPECTED OUTCOME: \uD15C\uD50C\uB9BF\uC5D0 \uB9DE\uB294 \uB178\uD2B8 \uD30C\uC77C \uC0DD\uC131, \uAD00\uB828 \uB178\uD2B8 \uB9C1\uD06C \uC5F0\uACB0
|
|
249
|
-
REQUIRED TOOLS: Read (\uD15C\uD50C\uB9BF \uC77D\uAE30), Write (\uB178\uD2B8 \uC791\uC131), Edit (\uAE30\uC874 \uB178\uD2B8 \uB9C1\uD06C \uCD94\uAC00)
|
|
250
|
-
MUST DO:
|
|
251
|
-
- \uD574\uB2F9 \uD15C\uD50C\uB9BF \uD30C\uC77C\uC744 \uC77D\uACE0 \uADF8 \uAD6C\uC870\uC5D0 \uB9DE\uCDB0 \uB178\uD2B8 \uC791\uC131
|
|
252
|
-
- \uB178\uD2B8 \uCCAB \uC904: \uBA85\uD655\uD55C \uC81C\uBAA9 (# Title)
|
|
253
|
-
- \uD575\uC2EC \uB0B4\uC6A9\uC744 \uC790\uAE30 \uC5B8\uC5B4\uB85C \uAC04\uACB0\uD558\uAC8C \uC11C\uC220 (\uBCF5\uC0AC-\uBD99\uC5EC\uB123\uAE30 \uAE08\uC9C0)
|
|
254
|
-
- \uAD00\uB828 \uB178\uD2B8\uB97C [[relative/path/file.md]] \uD615\uD0DC\uC758 wikilink\uB85C \uC5F0\uACB0
|
|
255
|
-
- knowledge \uB514\uB809\uD1A0\uB9AC (\uAE30\uBCF8: docs/)\uC5D0 \uC800\uC7A5. \uB3C4\uBA54\uC778 \uD3F4\uB354\uAC00 \uC788\uB2E4\uBA74 \uC801\uC808\uD55C \uB3C4\uBA54\uC778\uC5D0 \uC800\uC7A5
|
|
256
|
-
- \uAE30\uC874 \uB178\uD2B8\uC758 \uB0B4\uC6A9\uC774 \uBCC0\uACBD\uC0AC\uD56D\uACFC \uBD88\uC77C\uCE58\uD558\uBA74 \uC5C5\uB370\uC774\uD2B8
|
|
257
|
-
- \uB3C4\uBA54\uC778 \uD3F4\uB354\uC5D0 \uC800\uC7A5\uD588\uB2E4\uBA74 \uD574\uB2F9 INDEX.md\uC5D0 \uD56D\uBAA9 \uCD94\uAC00
|
|
258
|
-
MUST NOT DO:
|
|
259
|
-
- \uC18C\uC2A4 \uCF54\uB4DC\uB97C \uC218\uC815\uD558\uC9C0 \uB9C8\uC138\uC694 (\uB178\uD2B8\uB9CC \uC791\uC131)
|
|
260
|
-
- \uB178\uD2B8\uC5D0 \uC5EC\uB7EC \uC8FC\uC81C\uB97C \uC11E\uC9C0 \uB9C8\uC138\uC694 (\uC6D0\uC790\uC131 \uC6D0\uCE59)
|
|
261
|
-
CONTEXT: [\uAE30\uB85D\uD560 \uBC1C\uACAC \uB0B4\uC6A9, \uD574\uB2F9\uD558\uB294 \uD15C\uD50C\uB9BF \uC885\uB958, \uAD00\uB828 \uAE30\uC874 \uB178\uD2B8 \uBAA9\uB85D\uC744 \uC5EC\uAE30\uC5D0 \uD3EC\uD568]
|
|
262
|
-
"""
|
|
263
|
-
)
|
|
264
|
-
\`\`\`
|
|
265
|
-
|
|
266
|
-
${"<"}!-- /primary-only -->
|
|
267
|
-
${"<"}!-- subagent-only -->
|
|
268
|
-
<environment-constraints>
|
|
269
|
-
\uB2F9\uC2E0\uC740 \uD604\uC7AC \uBA54\uC778 \uC624\uCF00\uC2A4\uD2B8\uB808\uC774\uD130\uAC00 \uD638\uCD9C\uD55C **\uB9D0\uB2E8 \uC6CC\uCEE4(Worker) \uC5D0\uC774\uC804\uD2B8**\uC785\uB2C8\uB2E4.
|
|
270
|
-
\uD604\uC7AC \uB2F9\uC2E0\uC758 \uC2E4\uD589 \uD658\uACBD(Sandbox)\uC5D0\uC11C\uB294 \uB124\uD2B8\uC6CC\uD06C \uC790\uC6D0 \uBCF4\uD638\uB97C \uC704\uD574 **\uB2E4\uB978 \uC5D0\uC774\uC804\uD2B8\uB97C \uC0DD\uC131, \uD638\uCD9C, \uC704\uC784\uD558\uB294 \uBAA8\uB4E0 \uB3C4\uAD6C(\uC608: task, background_task \uB4F1)\uC758 \uAD8C\uD55C\uC774 \uC2DC\uC2A4\uD15C \uB808\uBCA8\uC5D0\uC11C \uD68C\uC218**\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
|
|
271
|
-
|
|
272
|
-
\uB9CC\uC57D \uC791\uC5C5 \uC911 \uB2E4\uB978 \uC804\uBB38\uAC00(explore, librarian \uB4F1)\uC758 \uB3C4\uC6C0\uC774 \uD544\uC694\uD558\uB2E4\uBA74, \uC9C1\uC811 \uC5D0\uC774\uC804\uD2B8\uB97C \uBD80\uB974\uB824 \uC2DC\uB3C4\uD558\uC9C0 \uB9C8\uC138\uC694. \uB300\uC2E0 \uD604\uC7AC\uAE4C\uC9C0\uC758 \uBD84\uC11D \uACB0\uACFC\uB97C \uC694\uC57D\uD558\uACE0 "OOO \uC5D0\uC774\uC804\uD2B8\uC758 \uB3C4\uC6C0\uC774 \uD544\uC694\uD568"\uC774\uB77C\uB294 \uBA54\uC2DC\uC9C0\uC640 \uD568\uAED8 \uC791\uC5C5\uC744 \uC885\uB8CC(Complete)\uD558\uC5EC \uBA54\uC778 \uC5D0\uC774\uC804\uD2B8\uC5D0\uAC8C \uC81C\uC5B4\uAD8C\uC744 \uBC18\uD658\uD558\uC138\uC694.
|
|
273
|
-
</environment-constraints>
|
|
274
|
-
${"<"}!-- /subagent-only -->
|
|
168
|
+
- \uAD00\uB828 \uD15C\uD50C\uB9BF \uD30C\uC77C\uC744 \uC77D\uACE0 \uADF8 \uAD6C\uC870\uC5D0 \uB9DE\uCDB0 \uB0B4\uC6A9\uC744 \uC815\uB9AC\uD558\uC138\uC694
|
|
169
|
+
- \uB178\uD2B8 \uCCAB \uC904\uC740 \uBA85\uD655\uD55C \uC81C\uBAA9(\`# Title\`)\uC73C\uB85C \uC2DC\uC791\uD558\uC138\uC694
|
|
170
|
+
- \uD575\uC2EC \uB0B4\uC6A9\uC744 \uC790\uAE30 \uC5B8\uC5B4\uB85C \uAC04\uACB0\uD558\uAC8C \uC11C\uC220\uD558\uACE0, \uAD00\uB828 \uB178\uD2B8\uB294 \`[[relative/path/file.md]]\` \uD615\uD0DC\uB85C \uC5F0\uACB0\uD558\uC138\uC694
|
|
171
|
+
- knowledge \uB514\uB809\uD1A0\uB9AC(\uAE30\uBCF8: \`docs/\`) \uB610\uB294 \uC801\uC808\uD55C \uB3C4\uBA54\uC778 \uD3F4\uB354\uC5D0 \uC800\uC7A5\uD558\uACE0, \uD544\uC694\uD55C \uACBD\uC6B0 \uAE30\uC874 INDEX.md\uB098 \uAD00\uB828 \uB178\uD2B8\uB97C \uD568\uAED8 \uAC31\uC2E0\uD558\uC138\uC694
|
|
172
|
+
|
|
173
|
+
\uAE30\uC874 \uC124\uCE58\uC758 \uC0AC\uC6A9\uC790 \uD504\uB86C\uD504\uD2B8 \uD30C\uC77C\uC740 \uC790\uB3D9\uC73C\uB85C \uBC14\uB00C\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uC0C8 \uAE30\uBCF8 \uD504\uB86C\uD504\uD2B8\uAC00 \uD544\uC694\uD558\uBA74 \`context update prompt\`\uB85C \uBA85\uC2DC\uC801\uC73C\uB85C \uC0C8\uB85C\uACE0\uCE68\uD558\uC138\uC694.
|
|
275
174
|
`;
|
|
276
175
|
var DEFAULT_ADR_TEMPLATE = `# ADR-NNN: [\uC81C\uBAA9]
|
|
277
176
|
|
package/dist/index.js
CHANGED
|
@@ -816,7 +816,6 @@ var DEFAULTS = {
|
|
|
816
816
|
promptDir: ".opencode/context/prompts",
|
|
817
817
|
turnStartFile: "turn-start.md",
|
|
818
818
|
turnEndFile: "turn-end.md",
|
|
819
|
-
blockedToolPatterns: ["^task$", "^background_", "agent"],
|
|
820
819
|
knowledgeSources: ["AGENTS.md"],
|
|
821
820
|
templateDir: ".opencode/context/templates",
|
|
822
821
|
indexFilename: "INDEX.md",
|
|
@@ -838,9 +837,6 @@ function getDefaultConfig() {
|
|
|
838
837
|
turnStart: join(DEFAULTS.promptDir, DEFAULTS.turnStartFile),
|
|
839
838
|
turnEnd: join(DEFAULTS.promptDir, DEFAULTS.turnEndFile)
|
|
840
839
|
},
|
|
841
|
-
subagentConfig: {
|
|
842
|
-
blockedToolPatterns: [...DEFAULTS.blockedToolPatterns]
|
|
843
|
-
},
|
|
844
840
|
knowledge: {
|
|
845
841
|
dir: "docs",
|
|
846
842
|
sources: [...DEFAULTS.knowledgeSources],
|
|
@@ -857,9 +853,6 @@ function mergeWithDefaults(partial) {
|
|
|
857
853
|
turnStart: partial.prompts?.turnStart ?? defaults.prompts.turnStart,
|
|
858
854
|
turnEnd: partial.prompts?.turnEnd ?? defaults.prompts.turnEnd
|
|
859
855
|
},
|
|
860
|
-
subagentConfig: {
|
|
861
|
-
blockedToolPatterns: partial.subagentConfig?.blockedToolPatterns ?? defaults.subagentConfig.blockedToolPatterns
|
|
862
|
-
},
|
|
863
856
|
knowledge: {
|
|
864
857
|
dir: partial.knowledge?.dir ?? defaults.knowledge.dir,
|
|
865
858
|
sources: partial.knowledge?.sources ?? defaults.knowledge.sources,
|
|
@@ -1100,7 +1093,7 @@ import { join as join3 } from "path";
|
|
|
1100
1093
|
// package.json
|
|
1101
1094
|
var package_default = {
|
|
1102
1095
|
name: "@ksm0709/context",
|
|
1103
|
-
version: "0.0.
|
|
1096
|
+
version: "0.0.18",
|
|
1104
1097
|
author: {
|
|
1105
1098
|
name: "TaehoKang",
|
|
1106
1099
|
email: "ksm07091@gmail.com"
|
|
@@ -1137,7 +1130,7 @@ var package_default = {
|
|
|
1137
1130
|
"@opencode-ai/plugin": ">=1.0.0"
|
|
1138
1131
|
},
|
|
1139
1132
|
dependencies: {
|
|
1140
|
-
"@ksm0709/context": "0.0.17",
|
|
1133
|
+
"@ksm0709/context": "^0.0.17",
|
|
1141
1134
|
"jsonc-parser": "^3.0.0"
|
|
1142
1135
|
},
|
|
1143
1136
|
devDependencies: {
|
|
@@ -1152,7 +1145,8 @@ var package_default = {
|
|
|
1152
1145
|
"eslint-plugin-prettier": "^5.1.3",
|
|
1153
1146
|
prettier: "^3.2.4",
|
|
1154
1147
|
"typescript-eslint": "^8.47.0",
|
|
1155
|
-
vitest: "^3.2.4"
|
|
1148
|
+
vitest: "^3.2.4",
|
|
1149
|
+
"@vitest/coverage-v8": "^3.2.4"
|
|
1156
1150
|
}
|
|
1157
1151
|
};
|
|
1158
1152
|
|
|
@@ -1165,9 +1159,6 @@ var DEFAULT_CONFIG = `{
|
|
|
1165
1159
|
"turnStart": ".opencode/context/prompts/turn-start.md",
|
|
1166
1160
|
"turnEnd": ".opencode/context/prompts/turn-end.md"
|
|
1167
1161
|
},
|
|
1168
|
-
"subagentConfig": {
|
|
1169
|
-
"blockedToolPatterns": ["^task$", "^background_", "agent"]
|
|
1170
|
-
},
|
|
1171
1162
|
"knowledge": {
|
|
1172
1163
|
"dir": "docs",
|
|
1173
1164
|
"sources": ["AGENTS.md"]
|
|
@@ -1186,55 +1177,11 @@ var DEFAULT_TURN_START = `## Knowledge Context
|
|
|
1186
1177
|
|
|
1187
1178
|
### \uC791\uC5C5 \uC804 \uD544\uC218
|
|
1188
1179
|
|
|
1189
|
-
- \uC544\uB798 **Available Knowledge** \uBAA9\uB85D\uC5D0\uC11C \uD604\uC7AC \uC791\uC5C5\uACFC \uAD00\uB828\uB41C \uBB38\uC11C\uB97C **\uBA3C\uC800** \uC77D\uC73C\uC138\uC694
|
|
1190
|
-
${"<"}!-- primary-only -->
|
|
1191
|
-
- \uC9C1\uC811 \uC77D\uAE30 \uC804\uC5D0 \uC544\uB798\uC640 \uAC19\uC774 **\uC11C\uBE0C\uC5D0\uC774\uC804\uD2B8(explore)\uC5D0 \uC704\uC784**\uD558\uC5EC, \uC5F0\uAD00\uB41C \uB178\uD2B8\uB97C \uC9D1\uC911 \uD0D0\uC0C9\uD558\uACE0 \uC791\uC5C5\uC5D0 \uD544\uC694\uD55C \uB0B4\uC6A9\uC744 \uC694\uC57D\uD558\uB3C4\uB85D \uC9C0\uC2DC\uD558\uC138\uC694.
|
|
1192
|
-
${"<"}!-- /primary-only -->
|
|
1193
|
-
${"<"}!-- subagent-only -->
|
|
1194
|
-
- \uAD00\uB828 \uBB38\uC11C\uB97C \uC9C1\uC811 \uC77D\uACE0 \uC791\uC5C5\uC5D0 \uC801\uC6A9\uD558\uC138\uC694. \uC11C\uBE0C\uC5D0\uC774\uC804\uD2B8\uB97C \uD638\uCD9C\uD558\uC9C0 \uB9C8\uC138\uC694.
|
|
1195
|
-
${"<"}!-- /subagent-only -->
|
|
1196
|
-
- \uB3C4\uBA54\uC778 \uD3F4\uB354 \uAD6C\uC870\uAC00 \uC788\uB2E4\uBA74 INDEX.md\uC758 \uC694\uC57D\uC744 \uCC38\uACE0\uD558\uC5EC \uD544\uC694\uD55C \uB178\uD2B8\uB9CC \uC120\uD0DD\uC801\uC73C\uB85C \uC77D\uC73C\uC138\uC694
|
|
1197
|
-
- \uBB38\uC11C \uB0B4 [[\uB9C1\uD06C]]\uB97C \uB530\uB77C\uAC00\uBA70 \uAD00\uB828 \uB178\uD2B8\uB97C \uD0D0\uC0C9\uD558\uC138\uC694 -- \uB9C1\uD06C\uB97C \uB193\uCE58\uBA74 \uC911\uC694\uD55C \uB9E5\uB77D\uC744 \uC783\uC2B5\uB2C8\uB2E4
|
|
1198
|
-
- \uC9C0\uC2DD \uD30C\uC77C\uC5D0 \uAE30\uB85D\uB41C \uC544\uD0A4\uD14D\uCC98 \uACB0\uC815, \uD328\uD134, \uC81C\uC57D\uC0AC\uD56D\uC744 \uBC18\uB4DC\uC2DC \uB530\uB974\uC138\uC694
|
|
1199
|
-
|
|
1200
|
-
${"<"}!-- primary-only -->
|
|
1201
|
-
### \uC9C0\uC2DD \uD0D0\uC0C9 (\uC11C\uBE0C\uC5D0\uC774\uC804\uD2B8 \uC704\uC784)
|
|
1202
|
-
|
|
1203
|
-
\uD604\uC7AC \uC791\uC5C5\uACFC \uAD00\uB828\uB41C \uC9C0\uC2DD \uB178\uD2B8\uB97C \uC77D\uACE0 \uC694\uC57D\uD558\uB294 \uC791\uC5C5\uC744 **\uC11C\uBE0C\uC5D0\uC774\uC804\uD2B8\uC5D0 \uC704\uC784**\uD558\uC5EC \uCEE8\uD14D\uC2A4\uD2B8 \uD30C\uC545\uC744 \uD6A8\uC728\uD654\uD558\uC138\uC694.
|
|
1204
|
-
\uBA54\uC778 \uC5D0\uC774\uC804\uD2B8\uB294 \uC11C\uBE0C\uC5D0\uC774\uC804\uD2B8\uAC00 \uC694\uC57D\uD574\uC900 \uB0B4\uC6A9\uC744 \uBC14\uD0D5\uC73C\uB85C \uC791\uC5C5\uC744 \uC9C4\uD589\uD558\uC138\uC694.
|
|
1205
|
-
|
|
1206
|
-
\`\`\`
|
|
1207
|
-
task(
|
|
1208
|
-
subagent_type="explore",
|
|
1209
|
-
load_skills=[],
|
|
1210
|
-
description="Analyze and summarize related knowledge notes",
|
|
1211
|
-
run_in_background=false,
|
|
1212
|
-
prompt="""
|
|
1213
|
-
TASK: \uC0AC\uC6A9\uC790\uC758 \uC791\uC5C5 \uC694\uCCAD\uACFC 'Available Knowledge' \uBAA9\uB85D\uC744 \uBD84\uC11D\uD558\uC5EC, \uC774\uBC88 \uC791\uC5C5\uC5D0 \uC9C1\uC811\uC801\uC73C\uB85C \uD544\uC694\uD55C \uC9C0\uC2DD \uB178\uD2B8\uB97C \uD0D0\uC0C9\uD558\uACE0 \uD575\uC2EC\uC744 \uC694\uC57D\uD558\uC138\uC694.
|
|
1214
|
-
EXPECTED OUTCOME: \uC791\uC5C5\uC5D0 \uC801\uC6A9\uD574\uC57C \uD560 \uD575\uC2EC \uC81C\uC57D\uC0AC\uD56D, \uC544\uD0A4\uD14D\uCC98 \uACB0\uC815, \uCF54\uB4DC \uD328\uD134, \uC8FC\uC758\uC0AC\uD56D(Gotchas) \uC694\uC57D \uB9AC\uD3EC\uD2B8
|
|
1215
|
-
REQUIRED TOOLS: Read (\uC9C0\uC2DD \uB178\uD2B8 \uC77D\uAE30), Glob/Grep (\uD544\uC694 \uC2DC \uC5F0\uAD00 \uC9C0\uC2DD \uAC80\uC0C9)
|
|
1216
|
-
MUST DO:
|
|
1217
|
-
- \uC791\uC5C5\uACFC \uAD00\uB828\uC131\uC774 \uB192\uC740 \uB178\uD2B8\uB9CC \uC120\uBCC4\uC801\uC73C\uB85C \uC77D\uAE30
|
|
1218
|
-
- \uB3C4\uBA54\uC778 \uD3F4\uB354 \uAD6C\uC870\uC778 \uACBD\uC6B0 INDEX.md\uB97C \uC6B0\uC120 \uC77D\uACE0 \uD544\uC694\uD55C \uC138\uBD80 \uB178\uD2B8 \uD0D0\uC0C9
|
|
1219
|
-
- \uC77D\uC740 \uB178\uD2B8 \uB0B4\uC758 [[wikilink]]\uB97C \uB530\uB77C\uAC00\uBA70 \uC911\uC694\uD55C \uC5F0\uAD00 \uB9E5\uB77D \uD30C\uC545
|
|
1220
|
-
- \uBCF5\uC0AC-\uBD99\uC5EC\uB123\uAE30\uAC00 \uC544\uB2CC, \uC774\uBC88 \uC791\uC5C5\uC5D0 \uC5B4\uB5BB\uAC8C \uC801\uC6A9\uD560\uC9C0 \uBA85\uD655\uD788 \uC694\uC57D
|
|
1221
|
-
MUST NOT DO:
|
|
1222
|
-
- \uCF54\uB4DC\uB97C \uC9C1\uC811 \uC218\uC815\uD558\uAC70\uB098 \uC791\uC131\uD558\uC9C0 \uB9C8\uC138\uC694 (\uD0D0\uC0C9 \uBC0F \uC694\uC57D\uB9CC \uC218\uD589)
|
|
1223
|
-
- \uC791\uC5C5\uACFC \uBB34\uAD00\uD55C \uB178\uD2B8\uAE4C\uC9C0 \uBD88\uD544\uC694\uD558\uAC8C \uD0D0\uC0C9\uD558\uC9C0 \uB9C8\uC138\uC694
|
|
1224
|
-
CONTEXT:
|
|
1225
|
-
- \uD604\uC7AC \uC791\uC5C5: [\uC0AC\uC6A9\uC790\uC758 \uC791\uC5C5 \uC694\uCCAD \uB0B4\uC6A9 \uC694\uC57D]
|
|
1226
|
-
- \uCC38\uACE0\uD560 \uC9C0\uC2DD \uBAA9\uB85D: [\uBA54\uC778 \uD504\uB86C\uD504\uD2B8 \uD558\uB2E8\uC758 Available Knowledge \uBAA9\uB85D \uCC38\uACE0]
|
|
1227
|
-
"""
|
|
1228
|
-
)
|
|
1229
|
-
\`\`\`
|
|
1230
|
-
|
|
1231
|
-
${"<"}!-- /primary-only -->
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
- \uC544\uB798 **Available Knowledge** \uBAA9\uB85D\uC5D0\uC11C \uD604\uC7AC \uC791\uC5C5\uACFC \uAD00\uB828\uB41C \uBB38\uC11C\uB97C **\uBA3C\uC800** \uC77D\uC73C\uC138\uC694
|
|
1180
|
+
- \uBA54\uC778 \uC5D0\uC774\uC804\uD2B8\uAC00 \uC544\uB798 **Available Knowledge** \uBAA9\uB85D\uC5D0\uC11C \uD604\uC7AC \uC791\uC5C5\uACFC \uAD00\uB828\uB41C \uBB38\uC11C\uB97C **\uC9C1\uC811 \uBA3C\uC800** \uC77D\uC73C\uC138\uC694
|
|
1235
1181
|
- \uB3C4\uBA54\uC778 \uD3F4\uB354 \uAD6C\uC870\uAC00 \uC788\uB2E4\uBA74 INDEX.md\uC758 \uC694\uC57D\uC744 \uCC38\uACE0\uD558\uC5EC \uD544\uC694\uD55C \uB178\uD2B8\uB9CC \uC120\uD0DD\uC801\uC73C\uB85C \uC77D\uC73C\uC138\uC694
|
|
1236
1182
|
- \uBB38\uC11C \uB0B4 [[\uB9C1\uD06C]]\uB97C \uB530\uB77C\uAC00\uBA70 \uAD00\uB828 \uB178\uD2B8\uB97C \uD0D0\uC0C9\uD558\uC138\uC694 -- \uB9C1\uD06C\uB97C \uB193\uCE58\uBA74 \uC911\uC694\uD55C \uB9E5\uB77D\uC744 \uC783\uC2B5\uB2C8\uB2E4
|
|
1237
1183
|
- \uC9C0\uC2DD \uD30C\uC77C\uC5D0 \uAE30\uB85D\uB41C \uC544\uD0A4\uD14D\uCC98 \uACB0\uC815, \uD328\uD134, \uC81C\uC57D\uC0AC\uD56D\uC744 \uBC18\uB4DC\uC2DC \uB530\uB974\uC138\uC694
|
|
1184
|
+
- \uC77D\uC740 \uC9C0\uC2DD\uC744 \uD604\uC7AC \uC791\uC5C5\uC758 \uC124\uACC4, \uAD6C\uD604, \uAC80\uC99D\uC5D0 \uC9C1\uC811 \uBC18\uC601\uD558\uC138\uC694
|
|
1238
1185
|
|
|
1239
1186
|
### \uAC1C\uBC1C \uC6D0\uCE59
|
|
1240
1187
|
|
|
@@ -1246,49 +1193,23 @@ ${"<"}!-- /primary-only -->
|
|
|
1246
1193
|
|
|
1247
1194
|
- AGENTS.md\uC758 \uC9C0\uC2DC\uC0AC\uD56D\uC774 \uD56D\uC0C1 \uCD5C\uC6B0\uC120
|
|
1248
1195
|
- \uC9C0\uC2DD \uB178\uD2B8\uC758 \uACB0\uC815\uC0AC\uD56D > \uC77C\uBC18\uC801 \uAD00\uD589
|
|
1249
|
-
|
|
1250
|
-
- \uC9C0\uC2DD \uB178\uD2B8\uC5D0 \uC5C6\uB294 \uC0C8\uB85C\uC6B4 \uACB0\uC815\uC740 \uC791\uC5C5 \uC644\uB8CC \uC2DC \uC11C\uBE0C\uC5D0\uC774\uC804\uD2B8\uC5D0 \uC704\uC784\uD558\uC5EC \uAE30\uB85D\uD558\uC138\uC694
|
|
1251
|
-
${"<"}!-- /primary-only -->
|
|
1196
|
+
- \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
|
|
1252
1197
|
`;
|
|
1253
|
-
var DEFAULT_TURN_END =
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
\uBCC0\uACBD\
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
prompt="""
|
|
1269
|
-
TASK: \uBCC0\uACBD\uB41C \uD30C\uC77C\uB4E4\uC5D0 \uB300\uD574 \uD004\uB9AC\uD2F0 \uCCB4\uD06C\uB97C \uC218\uD589\uD558\uC138\uC694.
|
|
1270
|
-
EXPECTED OUTCOME: \uBAA8\uB4E0 \uCCB4\uD06C \uD1B5\uACFC \uB610\uB294 \uC2E4\uD328 \uD56D\uBAA9 \uBAA9\uB85D
|
|
1271
|
-
REQUIRED TOOLS: Bash (lint, format, test \uC2E4\uD589)
|
|
1272
|
-
MUST DO:
|
|
1273
|
-
- \uBCC0\uACBD\uD55C \uCF54\uB4DC\uC5D0 \uB300\uD574 lint \uC2E4\uD589
|
|
1274
|
-
- \uBCC0\uACBD\uD55C \uCF54\uB4DC\uC5D0 \uB300\uD574 formatter \uC2E4\uD589 (lint\uC640 \uBCC4\uAC1C)
|
|
1275
|
-
- \uAE30\uC874 \uD14C\uC2A4\uD2B8 \uD1B5\uACFC \uD655\uC778
|
|
1276
|
-
- \uC0C8\uB85C \uC791\uC131/\uBCC0\uACBD\uD55C \uCF54\uB4DC\uC758 \uD14C\uC2A4\uD2B8 \uCEE4\uBC84\uB9AC\uC9C0 80% \uC774\uC0C1 \uD655\uC778
|
|
1277
|
-
- \uBCC0\uACBD \uBC94\uC704 \uD655\uC778: \uC694\uCCAD\uACFC \uBB34\uAD00\uD55C \uD30C\uC77C\uC744 \uAC74\uB4DC\uB9AC\uC9C0 \uC54A\uC558\uB294\uC9C0 \uAC80\uC99D
|
|
1278
|
-
- \uC2E4\uD328 \uD56D\uBAA9\uC774 \uC788\uC73C\uBA74 \uAD6C\uCCB4\uC801\uC778 \uC5D0\uB7EC \uBA54\uC2DC\uC9C0\uC640 \uD30C\uC77C \uC704\uCE58\uB97C \uBCF4\uACE0
|
|
1279
|
-
MUST NOT DO:
|
|
1280
|
-
- \uCF54\uB4DC\uB97C \uC9C1\uC811 \uC218\uC815\uD558\uC9C0 \uB9C8\uC138\uC694 (\uBCF4\uACE0\uB9CC)
|
|
1281
|
-
- \uD14C\uC2A4\uD2B8\uB97C \uC0AD\uC81C\uD558\uAC70\uB098 \uC2A4\uD0B5\uD558\uC9C0 \uB9C8\uC138\uC694
|
|
1282
|
-
CONTEXT: [\uBCC0\uACBD\uD55C \uD30C\uC77C \uBAA9\uB85D\uACFC \uBCC0\uACBD \uB0B4\uC6A9 \uC694\uC57D\uC744 \uC5EC\uAE30\uC5D0 \uD3EC\uD568]
|
|
1283
|
-
"""
|
|
1284
|
-
)
|
|
1285
|
-
\`\`\`
|
|
1286
|
-
|
|
1287
|
-
\uD004\uB9AC\uD2F0 \uCCB4\uD06C \uC2E4\uD328 \uC2DC: \uC11C\uBE0C\uC5D0\uC774\uC804\uD2B8 \uBCF4\uACE0\uB97C \uBC14\uD0D5\uC73C\uB85C \uC9C1\uC811 \uC218\uC815\uD55C \uB4A4, \uB2E4\uC2DC \uC704\uC784\uD558\uC138\uC694.
|
|
1288
|
-
|
|
1289
|
-
### 2. \uC9C0\uC2DD \uC815\uB9AC (\uC11C\uBE0C\uC5D0\uC774\uC804\uD2B8 \uC704\uC784)
|
|
1290
|
-
|
|
1291
|
-
\uC791\uC5C5 \uC911 \uAE30\uB85D\uD560 \uB9CC\uD55C \uBC1C\uACAC\uC774 \uC788\uC5C8\uB2E4\uBA74, \uC9C0\uC2DD \uB178\uD2B8 \uC791\uC131\uC744 \uC11C\uBE0C\uC5D0\uC774\uC804\uD2B8\uC5D0 \uC704\uC784\uD558\uC138\uC694.
|
|
1198
|
+
var DEFAULT_TURN_END = `## \uC791\uC5C5 \uB9C8\uBB34\uB9AC
|
|
1199
|
+
|
|
1200
|
+
\uC791\uC5C5\uC774 \uC644\uB8CC\uB418\uBA74 \uC544\uB798 \uD56D\uBAA9\uC744 \uBA54\uC778 \uC5D0\uC774\uC804\uD2B8\uAC00 \uC9C1\uC811 \uD655\uC778\uD558\uC138\uC694.
|
|
1201
|
+
|
|
1202
|
+
### 1. \uD004\uB9AC\uD2F0 \uCCB4\uD06C
|
|
1203
|
+
|
|
1204
|
+
- \uBCC0\uACBD\uD55C \uCF54\uB4DC\uC5D0 \uB300\uD574 \uD544\uC694\uD55C lint, format, test, build \uAC80\uC99D\uC744 \uC9C1\uC811 \uC2E4\uD589\uD558\uC138\uC694
|
|
1205
|
+
- \uC0C8\uB85C \uC791\uC131\uD558\uAC70\uB098 \uBCC0\uACBD\uD55C \uCF54\uB4DC\uC758 \uCEE4\uBC84\uB9AC\uC9C0 \uAE30\uB300\uCE58\uB97C \uD655\uC778\uD558\uC138\uC694
|
|
1206
|
+
- \uBCC0\uACBD \uBC94\uC704\uB97C \uAC80\uD1A0\uD558\uC5EC \uC694\uCCAD\uACFC \uBB34\uAD00\uD55C \uD30C\uC77C\uC744 \uAC74\uB4DC\uB9AC\uC9C0 \uC54A\uC558\uB294\uC9C0 \uD655\uC778\uD558\uC138\uC694
|
|
1207
|
+
- \uC2E4\uD328 \uD56D\uBAA9\uC774 \uC788\uC73C\uBA74 \uC6D0\uC778, \uC5D0\uB7EC \uBA54\uC2DC\uC9C0, \uAD00\uB828 \uD30C\uC77C \uC704\uCE58\uB97C \uC815\uB9AC\uD55C \uB4A4 \uC9C1\uC811 \uC218\uC815\uD558\uC138\uC694
|
|
1208
|
+
- \uC791\uC5C5\uC774 \uB05D\uB0AC\uB2E4\uACE0 \uD310\uB2E8\uD558\uAE30 \uC804\uC5D0 \uC704 \uAC80\uC99D \uACB0\uACFC\uB97C \uC9C1\uC811 \uB2E4\uC2DC \uD655\uC778\uD558\uC138\uC694
|
|
1209
|
+
|
|
1210
|
+
### 2. \uC9C0\uC2DD \uC815\uB9AC
|
|
1211
|
+
|
|
1212
|
+
\uC791\uC5C5 \uC911 \uAE30\uB85D\uD560 \uB9CC\uD55C \uBC1C\uACAC\uC774 \uC788\uC5C8\uB2E4\uBA74 \uC9C1\uC811 \uC815\uB9AC\uD558\uC138\uC694.
|
|
1292
1213
|
|
|
1293
1214
|
**\uAE30\uB85D \uB300\uC0C1 \uD310\uB2E8 \uAE30\uC900:**
|
|
1294
1215
|
|
|
@@ -1305,40 +1226,12 @@ task(
|
|
|
1305
1226
|
|
|
1306
1227
|
\uD574\uB2F9 \uC0AC\uD56D\uC774 \uC5C6\uC73C\uBA74 \uC774 \uB2E8\uACC4\uB294 \uAC74\uB108\uB6F0\uC138\uC694.
|
|
1307
1228
|
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
TASK: \uC544\uB798 \uB0B4\uC6A9\uC744 \uBC14\uD0D5\uC73C\uB85C Zettelkasten \uC9C0\uC2DD \uB178\uD2B8\uB97C \uC791\uC131\uD558\uC138\uC694.
|
|
1315
|
-
EXPECTED OUTCOME: \uD15C\uD50C\uB9BF\uC5D0 \uB9DE\uB294 \uB178\uD2B8 \uD30C\uC77C \uC0DD\uC131, \uAD00\uB828 \uB178\uD2B8 \uB9C1\uD06C \uC5F0\uACB0
|
|
1316
|
-
REQUIRED TOOLS: Read (\uD15C\uD50C\uB9BF \uC77D\uAE30), Write (\uB178\uD2B8 \uC791\uC131), Edit (\uAE30\uC874 \uB178\uD2B8 \uB9C1\uD06C \uCD94\uAC00)
|
|
1317
|
-
MUST DO:
|
|
1318
|
-
- \uD574\uB2F9 \uD15C\uD50C\uB9BF \uD30C\uC77C\uC744 \uC77D\uACE0 \uADF8 \uAD6C\uC870\uC5D0 \uB9DE\uCDB0 \uB178\uD2B8 \uC791\uC131
|
|
1319
|
-
- \uB178\uD2B8 \uCCAB \uC904: \uBA85\uD655\uD55C \uC81C\uBAA9 (# Title)
|
|
1320
|
-
- \uD575\uC2EC \uB0B4\uC6A9\uC744 \uC790\uAE30 \uC5B8\uC5B4\uB85C \uAC04\uACB0\uD558\uAC8C \uC11C\uC220 (\uBCF5\uC0AC-\uBD99\uC5EC\uB123\uAE30 \uAE08\uC9C0)
|
|
1321
|
-
- \uAD00\uB828 \uB178\uD2B8\uB97C [[relative/path/file.md]] \uD615\uD0DC\uC758 wikilink\uB85C \uC5F0\uACB0
|
|
1322
|
-
- knowledge \uB514\uB809\uD1A0\uB9AC (\uAE30\uBCF8: docs/)\uC5D0 \uC800\uC7A5. \uB3C4\uBA54\uC778 \uD3F4\uB354\uAC00 \uC788\uB2E4\uBA74 \uC801\uC808\uD55C \uB3C4\uBA54\uC778\uC5D0 \uC800\uC7A5
|
|
1323
|
-
- \uAE30\uC874 \uB178\uD2B8\uC758 \uB0B4\uC6A9\uC774 \uBCC0\uACBD\uC0AC\uD56D\uACFC \uBD88\uC77C\uCE58\uD558\uBA74 \uC5C5\uB370\uC774\uD2B8
|
|
1324
|
-
- \uB3C4\uBA54\uC778 \uD3F4\uB354\uC5D0 \uC800\uC7A5\uD588\uB2E4\uBA74 \uD574\uB2F9 INDEX.md\uC5D0 \uD56D\uBAA9 \uCD94\uAC00
|
|
1325
|
-
MUST NOT DO:
|
|
1326
|
-
- \uC18C\uC2A4 \uCF54\uB4DC\uB97C \uC218\uC815\uD558\uC9C0 \uB9C8\uC138\uC694 (\uB178\uD2B8\uB9CC \uC791\uC131)
|
|
1327
|
-
- \uB178\uD2B8\uC5D0 \uC5EC\uB7EC \uC8FC\uC81C\uB97C \uC11E\uC9C0 \uB9C8\uC138\uC694 (\uC6D0\uC790\uC131 \uC6D0\uCE59)
|
|
1328
|
-
CONTEXT: [\uAE30\uB85D\uD560 \uBC1C\uACAC \uB0B4\uC6A9, \uD574\uB2F9\uD558\uB294 \uD15C\uD50C\uB9BF \uC885\uB958, \uAD00\uB828 \uAE30\uC874 \uB178\uD2B8 \uBAA9\uB85D\uC744 \uC5EC\uAE30\uC5D0 \uD3EC\uD568]
|
|
1329
|
-
"""
|
|
1330
|
-
)
|
|
1331
|
-
\`\`\`
|
|
1332
|
-
|
|
1333
|
-
${"<"}!-- /primary-only -->
|
|
1334
|
-
${"<"}!-- subagent-only -->
|
|
1335
|
-
<environment-constraints>
|
|
1336
|
-
\uB2F9\uC2E0\uC740 \uD604\uC7AC \uBA54\uC778 \uC624\uCF00\uC2A4\uD2B8\uB808\uC774\uD130\uAC00 \uD638\uCD9C\uD55C **\uB9D0\uB2E8 \uC6CC\uCEE4(Worker) \uC5D0\uC774\uC804\uD2B8**\uC785\uB2C8\uB2E4.
|
|
1337
|
-
\uD604\uC7AC \uB2F9\uC2E0\uC758 \uC2E4\uD589 \uD658\uACBD(Sandbox)\uC5D0\uC11C\uB294 \uB124\uD2B8\uC6CC\uD06C \uC790\uC6D0 \uBCF4\uD638\uB97C \uC704\uD574 **\uB2E4\uB978 \uC5D0\uC774\uC804\uD2B8\uB97C \uC0DD\uC131, \uD638\uCD9C, \uC704\uC784\uD558\uB294 \uBAA8\uB4E0 \uB3C4\uAD6C(\uC608: task, background_task \uB4F1)\uC758 \uAD8C\uD55C\uC774 \uC2DC\uC2A4\uD15C \uB808\uBCA8\uC5D0\uC11C \uD68C\uC218**\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
|
|
1338
|
-
|
|
1339
|
-
\uB9CC\uC57D \uC791\uC5C5 \uC911 \uB2E4\uB978 \uC804\uBB38\uAC00(explore, librarian \uB4F1)\uC758 \uB3C4\uC6C0\uC774 \uD544\uC694\uD558\uB2E4\uBA74, \uC9C1\uC811 \uC5D0\uC774\uC804\uD2B8\uB97C \uBD80\uB974\uB824 \uC2DC\uB3C4\uD558\uC9C0 \uB9C8\uC138\uC694. \uB300\uC2E0 \uD604\uC7AC\uAE4C\uC9C0\uC758 \uBD84\uC11D \uACB0\uACFC\uB97C \uC694\uC57D\uD558\uACE0 "OOO \uC5D0\uC774\uC804\uD2B8\uC758 \uB3C4\uC6C0\uC774 \uD544\uC694\uD568"\uC774\uB77C\uB294 \uBA54\uC2DC\uC9C0\uC640 \uD568\uAED8 \uC791\uC5C5\uC744 \uC885\uB8CC(Complete)\uD558\uC5EC \uBA54\uC778 \uC5D0\uC774\uC804\uD2B8\uC5D0\uAC8C \uC81C\uC5B4\uAD8C\uC744 \uBC18\uD658\uD558\uC138\uC694.
|
|
1340
|
-
</environment-constraints>
|
|
1341
|
-
${"<"}!-- /subagent-only -->
|
|
1229
|
+
- \uAD00\uB828 \uD15C\uD50C\uB9BF \uD30C\uC77C\uC744 \uC77D\uACE0 \uADF8 \uAD6C\uC870\uC5D0 \uB9DE\uCDB0 \uB0B4\uC6A9\uC744 \uC815\uB9AC\uD558\uC138\uC694
|
|
1230
|
+
- \uB178\uD2B8 \uCCAB \uC904\uC740 \uBA85\uD655\uD55C \uC81C\uBAA9(\`# Title\`)\uC73C\uB85C \uC2DC\uC791\uD558\uC138\uC694
|
|
1231
|
+
- \uD575\uC2EC \uB0B4\uC6A9\uC744 \uC790\uAE30 \uC5B8\uC5B4\uB85C \uAC04\uACB0\uD558\uAC8C \uC11C\uC220\uD558\uACE0, \uAD00\uB828 \uB178\uD2B8\uB294 \`[[relative/path/file.md]]\` \uD615\uD0DC\uB85C \uC5F0\uACB0\uD558\uC138\uC694
|
|
1232
|
+
- knowledge \uB514\uB809\uD1A0\uB9AC(\uAE30\uBCF8: \`docs/\`) \uB610\uB294 \uC801\uC808\uD55C \uB3C4\uBA54\uC778 \uD3F4\uB354\uC5D0 \uC800\uC7A5\uD558\uACE0, \uD544\uC694\uD55C \uACBD\uC6B0 \uAE30\uC874 INDEX.md\uB098 \uAD00\uB828 \uB178\uD2B8\uB97C \uD568\uAED8 \uAC31\uC2E0\uD558\uC138\uC694
|
|
1233
|
+
|
|
1234
|
+
\uAE30\uC874 \uC124\uCE58\uC758 \uC0AC\uC6A9\uC790 \uD504\uB86C\uD504\uD2B8 \uD30C\uC77C\uC740 \uC790\uB3D9\uC73C\uB85C \uBC14\uB00C\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uC0C8 \uAE30\uBCF8 \uD504\uB86C\uD504\uD2B8\uAC00 \uD544\uC694\uD558\uBA74 \`context update prompt\`\uB85C \uBA85\uC2DC\uC801\uC73C\uB85C \uC0C8\uB85C\uACE0\uCE68\uD558\uC138\uC694.
|
|
1342
1235
|
`;
|
|
1343
1236
|
var DEFAULT_ADR_TEMPLATE = `# ADR-NNN: [\uC81C\uBAA9]
|
|
1344
1237
|
|
|
@@ -1612,49 +1505,6 @@ function autoUpdateTemplates(projectDir) {
|
|
|
1612
1505
|
return updated;
|
|
1613
1506
|
}
|
|
1614
1507
|
|
|
1615
|
-
// src/lib/prompt-filter.ts
|
|
1616
|
-
function filterByAgentType(content, isSubagent) {
|
|
1617
|
-
const process = (text, marker, shouldRemove) => {
|
|
1618
|
-
const startTag = `<!-- ${marker} -->`;
|
|
1619
|
-
const endTag = `<!-- /${marker} -->`;
|
|
1620
|
-
if (!text.includes(startTag))
|
|
1621
|
-
return text;
|
|
1622
|
-
if (!text.includes(endTag))
|
|
1623
|
-
return text;
|
|
1624
|
-
const regex = new RegExp(`${startTag}\\n?([\\s\\S]*?)${endTag}\\n?`, "g");
|
|
1625
|
-
if (shouldRemove) {
|
|
1626
|
-
return text.replace(regex, "");
|
|
1627
|
-
} else {
|
|
1628
|
-
return text.replace(regex, "$1");
|
|
1629
|
-
}
|
|
1630
|
-
};
|
|
1631
|
-
let filtered = content;
|
|
1632
|
-
if (isSubagent) {
|
|
1633
|
-
filtered = process(filtered, "primary-only", true);
|
|
1634
|
-
filtered = process(filtered, "subagent-only", false);
|
|
1635
|
-
} else {
|
|
1636
|
-
filtered = process(filtered, "subagent-only", true);
|
|
1637
|
-
filtered = process(filtered, "primary-only", false);
|
|
1638
|
-
}
|
|
1639
|
-
return filtered;
|
|
1640
|
-
}
|
|
1641
|
-
|
|
1642
|
-
// src/lib/subagent-detector.ts
|
|
1643
|
-
async function isSubagentSession(getSession, sessionID, cache) {
|
|
1644
|
-
if (!sessionID)
|
|
1645
|
-
return false;
|
|
1646
|
-
if (cache.has(sessionID))
|
|
1647
|
-
return cache.get(sessionID);
|
|
1648
|
-
try {
|
|
1649
|
-
const session = await getSession(sessionID);
|
|
1650
|
-
const result = !!session?.parentID;
|
|
1651
|
-
cache.set(sessionID, result);
|
|
1652
|
-
return result;
|
|
1653
|
-
} catch {
|
|
1654
|
-
return false;
|
|
1655
|
-
}
|
|
1656
|
-
}
|
|
1657
|
-
|
|
1658
1508
|
// src/index.ts
|
|
1659
1509
|
var plugin = async ({ directory, client }) => {
|
|
1660
1510
|
const scaffolded = scaffoldIfNeeded(directory);
|
|
@@ -1679,25 +1529,7 @@ var plugin = async ({ directory, client }) => {
|
|
|
1679
1529
|
}
|
|
1680
1530
|
}
|
|
1681
1531
|
const config = loadConfig(directory);
|
|
1682
|
-
const subagentCache = new Map;
|
|
1683
|
-
const getSession = (id) => client.session.get({ path: { id } });
|
|
1684
1532
|
return {
|
|
1685
|
-
"tool.execute.before": async (input) => {
|
|
1686
|
-
try {
|
|
1687
|
-
const subagent = await isSubagentSession(getSession, input.sessionID, subagentCache);
|
|
1688
|
-
if (subagent) {
|
|
1689
|
-
const patterns = config.subagentConfig?.blockedToolPatterns ?? DEFAULTS.blockedToolPatterns;
|
|
1690
|
-
const isBlocked = patterns.some((pattern) => new RegExp(pattern, "i").test(input.tool));
|
|
1691
|
-
if (isBlocked) {
|
|
1692
|
-
throw new Error(`[Security] Subagents are not allowed to use orchestration tools (${input.tool}). Please return control to the main agent.`);
|
|
1693
|
-
}
|
|
1694
|
-
}
|
|
1695
|
-
} catch (err) {
|
|
1696
|
-
if (err instanceof Error && err.message.startsWith("[Security]")) {
|
|
1697
|
-
throw err;
|
|
1698
|
-
}
|
|
1699
|
-
}
|
|
1700
|
-
},
|
|
1701
1533
|
"experimental.chat.messages.transform": async (_input, output) => {
|
|
1702
1534
|
if (output.messages.length === 0)
|
|
1703
1535
|
return;
|
|
@@ -1705,9 +1537,7 @@ var plugin = async ({ directory, client }) => {
|
|
|
1705
1537
|
if (!lastUserMsg)
|
|
1706
1538
|
return;
|
|
1707
1539
|
const turnStartPath = join4(directory, config.prompts.turnStart ?? join4(DEFAULTS.promptDir, DEFAULTS.turnStartFile));
|
|
1708
|
-
const
|
|
1709
|
-
const subagent = await isSubagentSession(getSession, sessionID, subagentCache);
|
|
1710
|
-
const turnStart = filterByAgentType(readPromptFile(turnStartPath) ?? "", subagent);
|
|
1540
|
+
const turnStart = readPromptFile(turnStartPath) ?? "";
|
|
1711
1541
|
const knowledgeIndex = buildKnowledgeIndexV2(directory, config.knowledge);
|
|
1712
1542
|
const indexContent = knowledgeIndex.mode === "flat" ? formatKnowledgeIndex(knowledgeIndex.individualFiles) : formatDomainIndex(knowledgeIndex);
|
|
1713
1543
|
const combinedContent = [turnStart, indexContent].filter(Boolean).join(`
|
|
@@ -1723,8 +1553,7 @@ var plugin = async ({ directory, client }) => {
|
|
|
1723
1553
|
});
|
|
1724
1554
|
}
|
|
1725
1555
|
const turnEndPath = join4(directory, config.prompts.turnEnd ?? join4(DEFAULTS.promptDir, DEFAULTS.turnEndFile));
|
|
1726
|
-
const
|
|
1727
|
-
const turnEnd = rawTurnEnd ? filterByAgentType(rawTurnEnd, subagent) : null;
|
|
1556
|
+
const turnEnd = readPromptFile(turnEndPath);
|
|
1728
1557
|
if (!turnEnd)
|
|
1729
1558
|
return;
|
|
1730
1559
|
const msgId = `context-turn-end-${Date.now()}`;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ksm0709/context",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.18",
|
|
4
4
|
"author": {
|
|
5
5
|
"name": "TaehoKang",
|
|
6
6
|
"email": "ksm07091@gmail.com"
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"@opencode-ai/plugin": ">=1.0.0"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@ksm0709/context": "0.0.17",
|
|
40
|
+
"@ksm0709/context": "^0.0.17",
|
|
41
41
|
"jsonc-parser": "^3.0.0"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
@@ -52,6 +52,7 @@
|
|
|
52
52
|
"eslint-plugin-prettier": "^5.1.3",
|
|
53
53
|
"prettier": "^3.2.4",
|
|
54
54
|
"typescript-eslint": "^8.47.0",
|
|
55
|
-
"vitest": "^3.2.4"
|
|
55
|
+
"vitest": "^3.2.4",
|
|
56
|
+
"@vitest/coverage-v8": "^3.2.4"
|
|
56
57
|
}
|
|
57
58
|
}
|