@ksm0709/context 0.0.21 → 0.0.23
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/README.md +4 -0
- package/dist/cli/index.js +8 -116
- package/dist/index.js +65 -1227
- package/dist/mcp.js +33061 -0
- package/dist/omx/index.mjs +53 -352
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -8,6 +8,10 @@ Context plugin for Bun
|
|
|
8
8
|
|
|
9
9
|
<!-- Example usage code goes here -->
|
|
10
10
|
|
|
11
|
+
## MCP Server
|
|
12
|
+
|
|
13
|
+
This plugin automatically registers an MCP (Model Context Protocol) server named `context-mcp` with OpenCode. The server provides tools for searching knowledge base files (`.md` files in `docs/` and `.context/` directories).
|
|
14
|
+
|
|
11
15
|
## OMX Support
|
|
12
16
|
|
|
13
17
|
This plugin supports OMX (OpenCode Managed eXtension). See [[docs/omx-setup.md]] for setup instructions.
|
package/dist/cli/index.js
CHANGED
|
@@ -10,29 +10,6 @@ import { homedir } from "os";
|
|
|
10
10
|
import { existsSync as existsSync2, mkdirSync, readFileSync, writeFileSync } from "fs";
|
|
11
11
|
import { join as join2 } from "path";
|
|
12
12
|
|
|
13
|
-
// src/constants.ts
|
|
14
|
-
var DEFAULTS = {
|
|
15
|
-
configPath: ".context/config.jsonc",
|
|
16
|
-
promptDir: ".context/prompts",
|
|
17
|
-
turnStartFile: "turn-start.md",
|
|
18
|
-
turnEndFile: "turn-end.md",
|
|
19
|
-
knowledgeSources: ["AGENTS.md"],
|
|
20
|
-
templateDir: ".context/templates",
|
|
21
|
-
indexFilename: "INDEX.md",
|
|
22
|
-
maxDomainDepth: 2,
|
|
23
|
-
knowledgeDir: "docs",
|
|
24
|
-
guidesDir: ".context/guides",
|
|
25
|
-
workCompleteFile: ".context/.work-complete"
|
|
26
|
-
};
|
|
27
|
-
var LIMITS = {
|
|
28
|
-
maxPromptFileSize: 64 * 1024,
|
|
29
|
-
maxIndexEntries: 100,
|
|
30
|
-
maxTotalInjectionSize: 128 * 1024,
|
|
31
|
-
maxScanDepth: 3,
|
|
32
|
-
maxSummaryLength: 100,
|
|
33
|
-
maxIndexFileSize: 32 * 1024
|
|
34
|
-
};
|
|
35
|
-
|
|
36
13
|
// src/lib/context-dir.ts
|
|
37
14
|
import { existsSync } from "fs";
|
|
38
15
|
import { join } from "path";
|
|
@@ -50,7 +27,7 @@ function resolveContextDir(projectDir) {
|
|
|
50
27
|
// package.json
|
|
51
28
|
var package_default = {
|
|
52
29
|
name: "@ksm0709/context",
|
|
53
|
-
version: "0.0.
|
|
30
|
+
version: "0.0.23",
|
|
54
31
|
author: {
|
|
55
32
|
name: "TaehoKang",
|
|
56
33
|
email: "ksm07091@gmail.com"
|
|
@@ -80,10 +57,10 @@ var package_default = {
|
|
|
80
57
|
access: "public"
|
|
81
58
|
},
|
|
82
59
|
scripts: {
|
|
83
|
-
build: "bun build ./src/index.ts --outdir dist --target bun && bun build ./src/cli/index.ts --outdir dist/cli --target bun && bun build ./src/omx/index.ts --outdir dist/omx --target node --format esm --external jsonc-parser && mv dist/omx/index.js dist/omx/index.mjs",
|
|
60
|
+
build: "bun build ./src/index.ts --outdir dist --target bun && bun build ./src/mcp.ts --outdir dist --target bun && bun build ./src/cli/index.ts --outdir dist/cli --target bun && bun build ./src/omx/index.ts --outdir dist/omx --target node --format esm --external jsonc-parser && mv dist/omx/index.js dist/omx/index.mjs",
|
|
84
61
|
test: "vitest run",
|
|
85
62
|
lint: "eslint src --ext .ts",
|
|
86
|
-
prepublishOnly: "bun build ./src/index.ts --outdir dist --target bun && bun build ./src/cli/index.ts --outdir dist/cli --target bun && bun build ./src/omx/index.ts --outdir dist/omx --target node --format esm --external jsonc-parser && mv dist/omx/index.js dist/omx/index.mjs"
|
|
63
|
+
prepublishOnly: "bun build ./src/index.ts --outdir dist --target bun && bun build ./src/mcp.ts --outdir dist --target bun && bun build ./src/cli/index.ts --outdir dist/cli --target bun && bun build ./src/omx/index.ts --outdir dist/omx --target node --format esm --external jsonc-parser && mv dist/omx/index.js dist/omx/index.mjs"
|
|
87
64
|
},
|
|
88
65
|
files: [
|
|
89
66
|
"dist"
|
|
@@ -92,7 +69,8 @@ var package_default = {
|
|
|
92
69
|
"@opencode-ai/plugin": ">=1.0.0"
|
|
93
70
|
},
|
|
94
71
|
dependencies: {
|
|
95
|
-
"@ksm0709/context": "^0.0.
|
|
72
|
+
"@ksm0709/context": "^0.0.22",
|
|
73
|
+
"@modelcontextprotocol/sdk": "^1.27.1",
|
|
96
74
|
"jsonc-parser": "^3.0.0"
|
|
97
75
|
},
|
|
98
76
|
devDependencies: {
|
|
@@ -117,12 +95,8 @@ var PLUGIN_VERSION = package_default.version;
|
|
|
117
95
|
var DEFAULT_CONFIG = `{
|
|
118
96
|
// Context Plugin Configuration
|
|
119
97
|
// See: https://github.com/ksm0709/context
|
|
120
|
-
"prompts": {
|
|
121
|
-
"turnStart": "prompts/turn-start.md",
|
|
122
|
-
"turnEnd": "prompts/turn-end.md"
|
|
123
|
-
},
|
|
124
98
|
"knowledge": {
|
|
125
|
-
"dir": "
|
|
99
|
+
"dir": ".context/memory",
|
|
126
100
|
"sources": ["AGENTS.md"]
|
|
127
101
|
},
|
|
128
102
|
"omx": {
|
|
@@ -132,52 +106,6 @@ var DEFAULT_CONFIG = `{
|
|
|
132
106
|
}
|
|
133
107
|
}
|
|
134
108
|
}`;
|
|
135
|
-
var DEFAULT_TURN_START = `## Knowledge Context
|
|
136
|
-
|
|
137
|
-
\uC774 \uD504\uB85C\uC81D\uD2B8\uB294 **\uC81C\uD154\uCE74\uC2A4\uD150(Zettelkasten)** \uBC29\uC2DD\uC73C\uB85C \uC9C0\uC2DD\uC744 \uAD00\uB9AC\uD569\uB2C8\uB2E4.
|
|
138
|
-
\uC138\uC158 \uAC04 \uCEE8\uD14D\uC2A4\uD2B8\uB97C \uBCF4\uC874\uD558\uC5EC, \uC774\uC804 \uC138\uC158\uC758 \uACB0\uC815/\uD328\uD134/\uC2E4\uC218\uAC00 \uB2E4\uC74C \uC138\uC158\uC5D0\uC11C \uC7AC\uD65C\uC6A9\uB429\uB2C8\uB2E4.
|
|
139
|
-
|
|
140
|
-
### \uC81C\uD154\uCE74\uC2A4\uD150 \uD575\uC2EC \uC6D0\uCE59
|
|
141
|
-
|
|
142
|
-
1. **\uC6D0\uC790\uC131** -- \uD558\uB098\uC758 \uB178\uD2B8 = \uD558\uB098\uC758 \uC8FC\uC81C. \uC5EC\uB7EC \uC8FC\uC81C\uB97C \uC11E\uC9C0 \uB9C8\uC138\uC694.
|
|
143
|
-
2. **\uC5F0\uACB0** -- \uBAA8\uB4E0 \uB178\uD2B8\uB294 [[wikilink]]\uB85C \uAD00\uB828 \uB178\uD2B8\uC5D0 \uC5F0\uACB0. \uACE0\uB9BD\uB41C \uB178\uD2B8\uB294 \uBC1C\uACAC\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
|
|
144
|
-
3. **\uC790\uAE30 \uC5B8\uC5B4** -- \uBCF5\uC0AC-\uBD99\uC5EC\uB123\uAE30\uAC00 \uC544\uB2CC, \uD575\uC2EC\uC744 \uC774\uD574\uD558\uACE0 \uAC04\uACB0\uD558\uAC8C \uC11C\uC220\uD558\uC138\uC694.
|
|
145
|
-
|
|
146
|
-
### \uC791\uC5C5 \uC804 \uD544\uC218
|
|
147
|
-
|
|
148
|
-
- **\uB370\uC77C\uB9AC \uB178\uD2B8 \uD655\uC778**: \uAC00\uC7A5 \uCD5C\uADFC\uC758 \uB370\uC77C\uB9AC \uB178\uD2B8(\`{{knowledgeDir}}/daily/YYYY-MM-DD.md\`)\uB97C \uC77D\uACE0 \uC774\uC804 \uC138\uC158\uC758 \uCEE8\uD14D\uC2A4\uD2B8\uC640 \uBBF8\uD574\uACB0 \uC774\uC288\uB97C \uD30C\uC545\uD558\uC138\uC694
|
|
149
|
-
- **\uC791\uC5C5 \uC758\uB3C4 \uC120\uC5B8**: \uC791\uC5C5 \uC2DC\uC791 \uC804, \uD604\uC7AC \uC138\uC158\uC758 \uBAA9\uD45C\uC640 \uC791\uC5C5 \uC758\uB3C4\uB97C \uBA85\uD655\uD788 \uD30C\uC545\uD558\uACE0 \uC120\uC5B8\uD558\uC138\uC694 (\uCD94\uD6C4 \uC791\uC5C5 \uACBD\uB85C \uAC80\uC99D \uC2DC \uAE30\uC900\uC774 \uB429\uB2C8\uB2E4)
|
|
150
|
-
- \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
|
|
151
|
-
- \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
|
|
152
|
-
- \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
|
|
153
|
-
- \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
|
|
154
|
-
- \uC77D\uC740 \uC9C0\uC2DD\uC744 \uD604\uC7AC \uC791\uC5C5\uC758 \uC124\uACC4, \uAD6C\uD604, \uAC80\uC99D\uC5D0 \uC9C1\uC811 \uBC18\uC601\uD558\uC138\uC694
|
|
155
|
-
|
|
156
|
-
### \uAC1C\uBC1C \uC6D0\uCE59
|
|
157
|
-
|
|
158
|
-
- **TDD** (Test-Driven Development): \uD14C\uC2A4\uD2B8\uB97C \uBA3C\uC800 \uC791\uC131\uD558\uACE0(RED), \uAD6C\uD604\uD558\uC5EC \uD1B5\uACFC\uC2DC\uD0A8 \uB4A4(GREEN), \uB9AC\uD329\uD1A0\uB9C1\uD558\uC138\uC694
|
|
159
|
-
- **DDD** (Domain-Driven Design): \uB3C4\uBA54\uC778 \uAC1C\uB150\uC744 \uCF54\uB4DC \uAD6C\uC870\uC5D0 \uBC18\uC601\uD558\uC138\uC694. \uD0C0\uC785\uACFC \uBAA8\uB4C8\uC740 \uBE44\uC988\uB2C8\uC2A4 \uB3C4\uBA54\uC778\uC744 \uAE30\uC900\uC73C\uB85C \uBD84\uB9AC\uD558\uC138\uC694
|
|
160
|
-
- **\uD14C\uC2A4\uD2B8 \uCEE4\uBC84\uB9AC\uC9C0**: \uC0C8\uB85C \uC791\uC131\uD558\uAC70\uB098 \uBCC0\uACBD\uD55C \uCF54\uB4DC\uB294 \uD14C\uC2A4\uD2B8 \uCEE4\uBC84\uB9AC\uC9C0 80% \uC774\uC0C1\uC744 \uBAA9\uD45C\uB85C \uD558\uC138\uC694. \uAD6C\uD604 \uC804\uC5D0 \uD14C\uC2A4\uD2B8\uBD80\uD130 \uC791\uC131\uD558\uBA74 \uC790\uC5F0\uC2A4\uB7FD\uAC8C \uB2EC\uC131\uB429\uB2C8\uB2E4
|
|
161
|
-
|
|
162
|
-
### \uC6B0\uC120\uC21C\uC704
|
|
163
|
-
|
|
164
|
-
- AGENTS.md\uC758 \uC9C0\uC2DC\uC0AC\uD56D\uC774 \uD56D\uC0C1 \uCD5C\uC6B0\uC120
|
|
165
|
-
- \uC9C0\uC2DD \uB178\uD2B8\uC758 \uACB0\uC815\uC0AC\uD56D > \uC77C\uBC18\uC801 \uAD00\uD589
|
|
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
|
-
`;
|
|
168
|
-
var DEFAULT_TURN_END = `## TURN END \uC791\uC5C5 \uC9C0\uCE68
|
|
169
|
-
\uC544\uB798 \uBA54\uB274 \uC911 \uD558\uB098\uB97C \uC120\uD0DD\uD574 \uC9C4\uD589 \uC0C1\uD669\uC5D0 \uB9DE\uAC8C \uC218\uD589\uD558\uC138\uC694.
|
|
170
|
-
**\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
|
-
1. **\uACC4\uC18D \uC791\uC5C5**: \uAE30\uC874 \uC791\uC5C5\uC774 \uC644\uB8CC\uB418\uC9C0 \uC54A\uC558\uACE0 \uC544\uC9C1 \uC544\uB798 \uC561\uC158\uC744 \uCDE8\uD560 \uB2E8\uACC4\uAC00 \uC544\uB2C8\uB77C\uBA74 \uC791\uC5C5 \uC18D\uAC1C.
|
|
173
|
-
2. **\uB370\uC77C\uB9AC \uB178\uD2B8 \uAE30\uB85D**: [.context/guides/daily-note-guide.md] \uB370\uC77C\uB9AC \uB178\uD2B8\uC5D0 \uC911\uC694\uD55C \uCEE8\uD14D\uC2A4\uD2B8\uB97C \uAE30\uB85D\uD558\uC5EC \uB2E4\uC74C \uC138\uC158\uC774\uB098 \uC5D0\uC774\uC804\uD2B8 \uD300\uC774 \uCC38\uACE0\uD560 \uC218 \uC788\uB3C4\uB85D \uD558\uC138\uC694. \uAE30\uC874 \uB0B4\uC6A9 \uC218\uC815\uC740 \uBD88\uAC00\uD558\uBA70, \uC0C8\uB85C\uC6B4 \uBA54\uBAA8\uB97C \uCD94\uAC00 \uD558\uB294\uAC83\uB9CC \uAC00\uB2A5\uD569\uB2C8\uB2E4. \uAC04\uB7B5\uD55C \uD55C \uB450 \uBB38\uC7A5\uC73C\uB85C \uC791\uC131\uD558\uC5EC \uD575\uC2EC \uCEE8\uD14D\uC2A4\uD2B8\uAC00 \uBA85\uD655\uD788 \uC804\uB2EC\uB418\uB3C4\uB85D \uD558\uC138\uC694.
|
|
174
|
-
3. **\uC9C0\uC2DD \uB178\uD2B8 \uC791\uC131**: [.context/guides/note-guide.md] \uC791\uC5C5\uAE30\uC5B5(\uB370\uC77C\uB9AC\uB178\uD2B8, \uC138\uC158 \uCEE8\uD14D\uC2A4\uD2B8)\uBCF4\uB2E4 \uC624\uB798 \uAE30\uC5B5\uB418\uC5B4\uC57C \uD558\uB294 \uC911\uC694\uD55C \uACB0\uC815, \uD328\uD134, \uC2E4\uC218, \uBC1C\uACAC\uC740 \uC9C0\uC2DD \uB178\uD2B8\uB85C \uAE30\uB85D\uD558\uC5EC \uD504\uB85C\uC81D\uD2B8\uC758 \uC9D1\uB2E8 \uC9C0\uC2DD\uC73C\uB85C \uB0A8\uAE30\uC138\uC694.
|
|
175
|
-
4. **\uB178\uD2B8/\uC2A4\uD0AC \uAC80\uC0C9 \uBC0F \uC77D\uAE30**: [.context/guides/search-guide.md] \uC5B4\uB824\uC6C0\uC5D0 \uCC98\uD588\uB2E4\uBA74 \uD604\uC7AC \uC9C4\uD589 \uC0C1\uD669\uC5D0 \uD544\uC694\uD55C \uC9C0\uC2DD\uC774\uB098 \uC2A4\uD0AC\uC774 \uC788\uB294\uC9C0 \uD655\uC778\uD558\uACE0, \uAD00\uB828 \uB178\uD2B8\uB97C \uC77D\uC5B4\uBCF4\uC138\uC694. \uC0C8\uB85C\uC6B4 \uC544\uC774\uB514\uC5B4\uB098 \uD574\uACB0\uCC45\uC774 \uB5A0\uC624\uB97C \uC218 \uC788\uC2B5\uB2C8\uB2E4.
|
|
176
|
-
5. **\uC791\uC5C5 \uACBD\uB85C \uB9AC\uBDF0**: [.context/guides/scope-review.md] \uC0AC\uC6A9\uC790\uAC00 \uC758\uB3C4\uD55C \uC791\uC5C5 \uBC94\uC704\uB97C \uBC97\uC5B4\uB098\uC9C0 \uC54A\uC558\uB294\uC9C0, \uC791\uC5C5\uC774 \uB108\uBB34 \uD06C\uAC70\uB098 \uBCF5\uC7A1\uD574\uC9C0\uC9C0\uB294 \uC54A\uC558\uB294\uC9C0 \uAC80\uD1A0\uD558\uC138\uC694.
|
|
177
|
-
6. **\uCCB4\uD06C\uD3EC\uC778\uD2B8 \uCEE4\uBC0B**: [.context/guides/commit-guide.md] \uC791\uC5C5\uC774 \uAE38\uC5B4\uC9C8 \uACBD\uC6B0, \uC911\uC694\uD55C \uB2E8\uACC4\uB9C8\uB2E4 \uCCB4\uD06C\uD3EC\uC778\uD2B8 \uCEE4\uBC0B\uC744 \uD558\uC5EC \uC791\uC5C5 \uB0B4\uC6A9\uC744 \uC548\uC804\uD558\uAC8C \uC800\uC7A5\uD558\uACE0, \uD544\uC694 \uC2DC \uC774\uC804 \uC0C1\uD0DC\uB85C \uB3CC\uC544\uAC08 \uC218 \uC788\uB3C4\uB85D \uD558\uC138\uC694.
|
|
178
|
-
7. **\uD004\uB9AC\uD2F0 \uAC80\uC99D**: [.context/guides/quality-check.md] **\uC791\uC5C5 \uC644\uB8CC \uC804\uC5D0 \uBC18\uB4DC\uC2DC \uC218\uD589\uD558\uC138\uC694**. \uCF54\uB4DC \uB9B0\uD2B8, \uD3EC\uB9F7\uD130, \uD14C\uC2A4\uD2B8, \uBE4C\uB4DC, \uCF54\uB4DC\uB9AC\uBDF0\uB97C \uC2E4\uD589\uD558\uC5EC \uC791\uC5C5 \uACB0\uACFC\uBB3C\uC774 \uD504\uB85C\uC81D\uD2B8\uC758 \uD488\uC9C8 \uAE30\uC900\uC744 \uCDA9\uC871\uD558\uB294\uC9C0 \uD655\uC778\uD558\uC138\uC694.
|
|
179
|
-
8. **\uC791\uC5C5 \uC644\uB8CC**: [.context/guides/complete-guide.md] \uBAA8\uB4E0 \uC791\uC5C5\uC774 \uC644\uB8CC\uB418\uC5C8\uB2E4\uBA74, \uC774 \uAC00\uC774\uB4DC\uB97C \uB530\uB974\uC138\uC694. \uC774 \uC791\uC5C5 \uC9C0\uCE68\uC774 \uB354\uC774\uC0C1 \uD2B8\uB9AC\uAC70\uB418\uC9C0 \uC54A\uC744 \uAC83\uC785\uB2C8\uB2E4.
|
|
180
|
-
`;
|
|
181
109
|
var DEFAULT_ADR_TEMPLATE = `# ADR-NNN: [\uC81C\uBAA9]
|
|
182
110
|
|
|
183
111
|
## \uC0C1\uD0DC
|
|
@@ -470,15 +398,12 @@ var TEMPLATE_FILES = {
|
|
|
470
398
|
};
|
|
471
399
|
function updateScaffold(projectDir) {
|
|
472
400
|
const contextDir = join2(projectDir, resolveContextDir(projectDir));
|
|
473
|
-
mkdirSync(join2(contextDir, "prompts"), { recursive: true });
|
|
474
401
|
mkdirSync(join2(contextDir, "templates"), { recursive: true });
|
|
475
402
|
mkdirSync(join2(contextDir, "guides"), { recursive: true });
|
|
476
403
|
const templateEntries = Object.fromEntries(Object.entries(TEMPLATE_FILES).map(([filename, content]) => [`templates/${filename}`, content]));
|
|
477
404
|
const guideEntries = Object.fromEntries(Object.entries(GUIDE_FILES).map(([filename, content]) => [`guides/${filename}`, content]));
|
|
478
405
|
const templates = {
|
|
479
406
|
"config.jsonc": DEFAULT_CONFIG,
|
|
480
|
-
[`prompts/${DEFAULTS.turnStartFile}`]: DEFAULT_TURN_START,
|
|
481
|
-
[`prompts/${DEFAULTS.turnEndFile}`]: DEFAULT_TURN_END,
|
|
482
407
|
...templateEntries,
|
|
483
408
|
...guideEntries
|
|
484
409
|
};
|
|
@@ -499,26 +424,6 @@ function updateScaffold(projectDir) {
|
|
|
499
424
|
function writeVersion(contextDir, version) {
|
|
500
425
|
writeFileSync(join2(contextDir, ".version"), version, "utf-8");
|
|
501
426
|
}
|
|
502
|
-
function updatePrompts(projectDir) {
|
|
503
|
-
const contextDir = join2(projectDir, resolveContextDir(projectDir));
|
|
504
|
-
mkdirSync(join2(contextDir, "prompts"), { recursive: true });
|
|
505
|
-
const prompts = {
|
|
506
|
-
[`prompts/${DEFAULTS.turnStartFile}`]: DEFAULT_TURN_START,
|
|
507
|
-
[`prompts/${DEFAULTS.turnEndFile}`]: DEFAULT_TURN_END
|
|
508
|
-
};
|
|
509
|
-
const updated = [];
|
|
510
|
-
for (const [path, content] of Object.entries(prompts)) {
|
|
511
|
-
const filePath = join2(contextDir, path);
|
|
512
|
-
try {
|
|
513
|
-
const existing = readFileSync(filePath, "utf-8");
|
|
514
|
-
if (existing === content)
|
|
515
|
-
continue;
|
|
516
|
-
} catch {}
|
|
517
|
-
writeFileSync(filePath, content, "utf-8");
|
|
518
|
-
updated.push(path);
|
|
519
|
-
}
|
|
520
|
-
return updated;
|
|
521
|
-
}
|
|
522
427
|
|
|
523
428
|
// src/cli/commands/update.ts
|
|
524
429
|
var KNOWN_SUBCOMMANDS = ["all", "prompt", "plugin"];
|
|
@@ -530,7 +435,8 @@ function runUpdate(args) {
|
|
|
530
435
|
runUpdateAll(resolve(rest[0] ?? process.cwd()));
|
|
531
436
|
break;
|
|
532
437
|
case "prompt":
|
|
533
|
-
|
|
438
|
+
process.stdout.write(`Prompt update is no longer supported.
|
|
439
|
+
`);
|
|
534
440
|
break;
|
|
535
441
|
case "plugin":
|
|
536
442
|
runUpdatePlugin(rest[0] ?? "latest");
|
|
@@ -560,20 +466,6 @@ function runUpdateAll(projectDir) {
|
|
|
560
466
|
}
|
|
561
467
|
}
|
|
562
468
|
}
|
|
563
|
-
function runUpdatePrompt(projectDir) {
|
|
564
|
-
const updated = updatePrompts(projectDir);
|
|
565
|
-
if (updated.length === 0) {
|
|
566
|
-
process.stdout.write(`All prompt files are already up to date.
|
|
567
|
-
`);
|
|
568
|
-
} else {
|
|
569
|
-
process.stdout.write(`Updated ${updated.length} prompt file(s):
|
|
570
|
-
`);
|
|
571
|
-
for (const f of updated) {
|
|
572
|
-
process.stdout.write(` - ${f}
|
|
573
|
-
`);
|
|
574
|
-
}
|
|
575
|
-
}
|
|
576
|
-
}
|
|
577
469
|
function detectPackageManager() {
|
|
578
470
|
if (existsSync3("bun.lock") || existsSync3("bun.lockb"))
|
|
579
471
|
return "bun";
|