@ksm0709/context 0.0.3 → 0.0.5
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/index.js +258 -21
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -817,7 +817,8 @@ var DEFAULTS = {
|
|
|
817
817
|
turnStartFile: "turn-start.md",
|
|
818
818
|
turnEndFile: "turn-end.md",
|
|
819
819
|
knowledgeSources: ["AGENTS.md"],
|
|
820
|
-
knowledgeDir: "docs"
|
|
820
|
+
knowledgeDir: "docs",
|
|
821
|
+
templateDir: ".opencode/context/templates"
|
|
821
822
|
};
|
|
822
823
|
var LIMITS = {
|
|
823
824
|
maxPromptFileSize: 64 * 1024,
|
|
@@ -970,14 +971,23 @@ var DEFAULT_CONFIG = `{
|
|
|
970
971
|
}`;
|
|
971
972
|
var DEFAULT_TURN_START = `## Knowledge Context
|
|
972
973
|
|
|
973
|
-
\uC774 \uD504\uB85C\uC81D\uD2B8\uB294
|
|
974
|
+
\uC774 \uD504\uB85C\uC81D\uD2B8\uB294 **\uC81C\uD154\uCE74\uC2A4\uD150(Zettelkasten)** \uBC29\uC2DD\uC73C\uB85C \uC9C0\uC2DD\uC744 \uAD00\uB9AC\uD569\uB2C8\uB2E4.
|
|
975
|
+
\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.
|
|
976
|
+
|
|
977
|
+
### \uC81C\uD154\uCE74\uC2A4\uD150 \uD575\uC2EC \uC6D0\uCE59
|
|
978
|
+
|
|
979
|
+
1. **\uC6D0\uC790\uC131** -- \uD558\uB098\uC758 \uB178\uD2B8 = \uD558\uB098\uC758 \uC8FC\uC81C. \uC5EC\uB7EC \uC8FC\uC81C\uB97C \uC11E\uC9C0 \uB9C8\uC138\uC694.
|
|
980
|
+
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.
|
|
981
|
+
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.
|
|
974
982
|
|
|
975
983
|
### \uC791\uC5C5 \uC804 \uD544\uC218
|
|
976
|
-
|
|
984
|
+
|
|
985
|
+
- \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
|
|
986
|
+
- \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
|
|
977
987
|
- \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
|
|
978
|
-
- \uBB38\uC11C \uB0B4 [[\uB9C1\uD06C]]\uB97C \uB530\uB77C\uAC00\uBA70 \uAD00\uB828 \uB178\uD2B8\uB97C \uD0D0\uC0C9\uD558\uC138\uC694 \u2014 \uB9C1\uD06C\uB97C \uB193\uCE58\uBA74 \uC911\uC694\uD55C \uB9E5\uB77D\uC744 \uC783\uC2B5\uB2C8\uB2E4
|
|
979
988
|
|
|
980
989
|
### \uC6B0\uC120\uC21C\uC704
|
|
990
|
+
|
|
981
991
|
- AGENTS.md\uC758 \uC9C0\uC2DC\uC0AC\uD56D\uC774 \uD56D\uC0C1 \uCD5C\uC6B0\uC120
|
|
982
992
|
- \uC9C0\uC2DD \uB178\uD2B8\uC758 \uACB0\uC815\uC0AC\uD56D > \uC77C\uBC18\uC801 \uAD00\uD589
|
|
983
993
|
- \uC9C0\uC2DD \uB178\uD2B8\uC5D0 \uC5C6\uB294 \uC0C8\uB85C\uC6B4 \uACB0\uC815\uC740 \uC791\uC5C5 \uC644\uB8CC \uC2DC \uAE30\uB85D\uD558\uC138\uC694
|
|
@@ -987,19 +997,239 @@ var DEFAULT_TURN_END = `## \uC791\uC5C5 \uB9C8\uBB34\uB9AC \uCCB4\uD06C\uB9AC\uC
|
|
|
987
997
|
\uC791\uC5C5\uC744 \uC644\uB8CC\uD558\uAE30 \uC804\uC5D0 \uBC18\uB4DC\uC2DC:
|
|
988
998
|
|
|
989
999
|
### \uD004\uB9AC\uD2F0 \uBCF4\uC7A5
|
|
1000
|
+
|
|
990
1001
|
- [ ] \uBCC0\uACBD\uD55C \uCF54\uB4DC\uC5D0 \uB300\uD574 lint \uC2E4\uD589
|
|
991
1002
|
- [ ] \uD0C0\uC785 \uC5D0\uB7EC \uD655\uC778
|
|
992
1003
|
- [ ] \uAE30\uC874 \uD14C\uC2A4\uD2B8 \uD1B5\uACFC \uD655\uC778
|
|
993
1004
|
|
|
994
1005
|
### \uC9C0\uC2DD \uC815\uB9AC (Zettelkasten)
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1006
|
+
|
|
1007
|
+
\uC544\uB798 \uC0C1\uD669\uC5D0 \uD574\uB2F9\uD558\uBA74, \uD574\uB2F9 \uD15C\uD50C\uB9BF \uD30C\uC77C\uC744 \uC77D\uACE0 \uADF8 \uAD6C\uC870\uC5D0 \uB9DE\uCDB0 \uB178\uD2B8\uB97C \uC791\uC131\uD558\uC138\uC694.
|
|
1008
|
+
|
|
1009
|
+
| \uC0C1\uD669 | \uD15C\uD50C\uB9BF | \uD30C\uC77C\uBA85 \uD328\uD134 |
|
|
1010
|
+
| ------------------------------- | --------------------------------------------------- | --------------------------- |
|
|
1011
|
+
| \uC544\uD0A4\uD14D\uCC98/\uAE30\uC220 \uC2A4\uD0DD \uC911\uB300 \uACB0\uC815 | [ADR](.opencode/context/templates/adr.md) | \`adr-NNN-\uC81C\uBAA9.md\` |
|
|
1012
|
+
| \uBC18\uBCF5 \uC0AC\uC6A9\uD560 \uCF54\uB4DC \uD328\uD134 \uBC1C\uACAC | [Pattern](.opencode/context/templates/pattern.md) | \`pattern-\uC81C\uBAA9.md\` |
|
|
1013
|
+
| \uBE44\uC790\uBA85\uD55C \uBC84\uADF8 \uD574\uACB0 | [Bug](.opencode/context/templates/bug.md) | \`bug-\uC81C\uBAA9.md\` |
|
|
1014
|
+
| \uC678\uBD80 API/\uB77C\uC774\uBE0C\uB7EC\uB9AC \uC608\uC0C1\uC678 \uB3D9\uC791 | [Gotcha](.opencode/context/templates/gotcha.md) | \`gotcha-\uB77C\uC774\uBE0C\uB7EC\uB9AC-\uC81C\uBAA9.md\` |
|
|
1015
|
+
| \uC791\uC740 \uAE30\uC220\uC801 \uC120\uD0DD | [Decision](.opencode/context/templates/decision.md) | \`decision-\uC81C\uBAA9.md\` |
|
|
1016
|
+
| \uBAA8\uB4C8/\uD504\uB85C\uC81D\uD2B8 \uAC1C\uC694 \uD544\uC694 | [Context](.opencode/context/templates/context.md) | \`context-\uC81C\uBAA9.md\` |
|
|
1017
|
+
| \uBC18\uBCF5 \uAC00\uB2A5\uD55C \uD504\uB85C\uC138\uC2A4 \uC815\uB9BD | [Runbook](.opencode/context/templates/runbook.md) | \`runbook-\uC81C\uBAA9.md\` |
|
|
1018
|
+
| \uC2E4\uD5D8/\uB514\uBC84\uAE45 \uC911 \uD559\uC2B5 | [Insight](.opencode/context/templates/insight.md) | \`insight-\uC81C\uBAA9.md\` |
|
|
1019
|
+
|
|
1020
|
+
- [ ] \uC704 \uC0C1\uD669\uC5D0 \uD574\uB2F9\uD558\uB294 \uBC1C\uACAC\uC774 \uC788\uC5C8\uB2E4\uBA74 \uB178\uD2B8\uB97C \uC791\uC131\uD588\uB294\uAC00?
|
|
1021
|
+
- [ ] \uAD00\uB828 \uAE30\uC874 \uB178\uD2B8\uC5D0 [[\uB9C1\uD06C]]\uB97C \uCD94\uAC00\uD588\uB294\uAC00?
|
|
1022
|
+
- [ ] \uAE30\uC874 \uB178\uD2B8\uC758 \uB0B4\uC6A9\uC774 \uBCC0\uACBD\uC0AC\uD56D\uACFC \uBD88\uC77C\uCE58\uD558\uBA74 \uC5C5\uB370\uC774\uD2B8\uD588\uB294\uAC00?
|
|
1023
|
+
|
|
1024
|
+
#### \uB178\uD2B8 \uC791\uC131 \uADDC\uCE59
|
|
1025
|
+
|
|
1026
|
+
- \uCCAB \uC904: \uBA85\uD655\uD55C \uC81C\uBAA9 (\`# Title\`)
|
|
1027
|
+
- \uD575\uC2EC \uB0B4\uC6A9\uC744 \uC790\uC2E0\uC758 \uC5B8\uC5B4\uB85C \uAC04\uACB0\uD558\uAC8C \uC11C\uC220
|
|
1028
|
+
- \uAD00\uB828 \uB178\uD2B8\uB97C \`[[relative/path/file.md]]\` \uD615\uD0DC\uC758 wikilink\uB85C \uC5F0\uACB0
|
|
1029
|
+
- knowledge \uB514\uB809\uD1A0\uB9AC (\uAE30\uBCF8: \`docs/\`)\uC5D0 \uC800\uC7A5
|
|
1030
|
+
`;
|
|
1031
|
+
var DEFAULT_ADR_TEMPLATE = `# ADR-NNN: [\uC81C\uBAA9]
|
|
1032
|
+
|
|
1033
|
+
## \uC0C1\uD0DC
|
|
1034
|
+
|
|
1035
|
+
Accepted | Deprecated | Superseded by [[ADR-YYY]]
|
|
1036
|
+
|
|
1037
|
+
## \uB9E5\uB77D
|
|
1038
|
+
|
|
1039
|
+
\uC774 \uACB0\uC815\uC744 \uB0B4\uB9AC\uAC8C \uB41C \uBC30\uACBD/\uBB38\uC81C \uC0C1\uD669
|
|
1040
|
+
|
|
1041
|
+
## \uACB0\uC815
|
|
1042
|
+
|
|
1043
|
+
\uBB34\uC5C7\uC744 \uC5B4\uB5BB\uAC8C \uD558\uAE30\uB85C \uD588\uB294\uC9C0
|
|
1044
|
+
|
|
1045
|
+
## \uACB0\uACFC
|
|
1046
|
+
|
|
1047
|
+
### \uAE0D\uC815\uC801
|
|
1048
|
+
|
|
1049
|
+
- ...
|
|
1050
|
+
|
|
1051
|
+
### \uBD80\uC815\uC801 (\uD2B8\uB808\uC774\uB4DC\uC624\uD504)
|
|
1052
|
+
|
|
1053
|
+
- ...
|
|
1054
|
+
|
|
1055
|
+
## \uAD00\uB828 \uB178\uD2B8
|
|
1056
|
+
|
|
1057
|
+
- [[\uAD00\uB828-\uACB0\uC815.md]] / [[\uAD00\uB828-\uD328\uD134.md]]
|
|
1058
|
+
`;
|
|
1059
|
+
var DEFAULT_PATTERN_TEMPLATE = `# Pattern: [\uD328\uD134 \uC774\uB984]
|
|
1060
|
+
|
|
1061
|
+
## \uBB38\uC81C
|
|
1062
|
+
|
|
1063
|
+
\uC774 \uD328\uD134\uC774 \uD574\uACB0\uD558\uB294 \uBB38\uC81C
|
|
1064
|
+
|
|
1065
|
+
## \uD574\uBC95
|
|
1066
|
+
|
|
1067
|
+
// \uD328\uD134\uC758 \uB300\uD45C\uC801 \uC608\uC2DC \uCF54\uB4DC
|
|
1068
|
+
|
|
1069
|
+
## \uC0AC\uC6A9 \uC2DC\uC810
|
|
1070
|
+
|
|
1071
|
+
- \uC774\uB7F4 \uB54C \uC0AC\uC6A9
|
|
1072
|
+
|
|
1073
|
+
## \uC0AC\uC6A9\uD558\uC9C0 \uB9D0 \uAC83
|
|
1074
|
+
|
|
1075
|
+
- \uC774\uB7F4 \uB54C\uB294 \uC0AC\uC6A9 \uAE08\uC9C0 (\uC548\uD2F0\uD328\uD134 \uACBD\uACE0)
|
|
1076
|
+
|
|
1077
|
+
## \uCF54\uB4DC\uBCA0\uC774\uC2A4 \uB0B4 \uC608\uC2DC
|
|
1078
|
+
|
|
1079
|
+
- [[\uACBD\uB85C/\uD30C\uC77C.ts]] -- \uC2E4\uC81C \uC801\uC6A9 \uC0AC\uB840
|
|
1080
|
+
|
|
1081
|
+
## \uAD00\uB828 \uD328\uD134
|
|
1082
|
+
|
|
1083
|
+
- [[\uB300\uC548-\uD328\uD134.md]] / [[\uBCF4\uC644-\uD328\uD134.md]]
|
|
1084
|
+
`;
|
|
1085
|
+
var DEFAULT_BUG_TEMPLATE = `# Bug: [\uAC04\uB2E8\uD55C \uC124\uBA85]
|
|
1086
|
+
|
|
1087
|
+
## \uC99D\uC0C1
|
|
1088
|
+
|
|
1089
|
+
- \uC5D0\uB7EC \uBA54\uC2DC\uC9C0: \`...\`
|
|
1090
|
+
- \uAD00\uCC30\uB41C \uB3D9\uC791: ...
|
|
1091
|
+
|
|
1092
|
+
## \uC6D0\uC778
|
|
1093
|
+
|
|
1094
|
+
\uC2E4\uC81C \uC6D0\uC778 \uBD84\uC11D
|
|
1095
|
+
|
|
1096
|
+
## \uD574\uACB0
|
|
1097
|
+
|
|
1098
|
+
// \uC218\uC815 \uCF54\uB4DC
|
|
1099
|
+
|
|
1100
|
+
## \uC608\uBC29
|
|
1101
|
+
|
|
1102
|
+
\uD5A5\uD6C4 \uAC19\uC740 \uBB38\uC81C\uB97C \uBC29\uC9C0\uD558\uB294 \uBC29\uBC95
|
|
1103
|
+
|
|
1104
|
+
## \uAD00\uB828 \uB178\uD2B8
|
|
1105
|
+
|
|
1106
|
+
- [[\uC720\uC0AC-\uBC84\uADF8.md]] / [[\uC608\uBC29-\uD328\uD134.md]]
|
|
1107
|
+
`;
|
|
1108
|
+
var DEFAULT_GOTCHA_TEMPLATE = `# Gotcha: [\uB77C\uC774\uBE0C\uB7EC\uB9AC] -- [\uD568\uC815 \uC124\uBA85]
|
|
1109
|
+
|
|
1110
|
+
## \uC608\uC0C1 vs \uC2E4\uC81C
|
|
1111
|
+
|
|
1112
|
+
\uC608\uC0C1\uD55C \uB3D9\uC791\uACFC \uC2E4\uC81C \uB3D9\uC791\uC758 \uCC28\uC774
|
|
1113
|
+
|
|
1114
|
+
## \uC6B0\uD68C\uBC95
|
|
1115
|
+
|
|
1116
|
+
// \uC791\uB3D9\uD558\uB294 \uD574\uACB0 \uCF54\uB4DC
|
|
1117
|
+
|
|
1118
|
+
## \uC6D0\uC778 (\uC54C\uB824\uC9C4 \uACBD\uC6B0)
|
|
1119
|
+
|
|
1120
|
+
\uC65C \uC774\uB807\uAC8C \uB3D9\uC791\uD558\uB294\uC9C0
|
|
1121
|
+
|
|
1122
|
+
## \uAD00\uB828
|
|
1123
|
+
|
|
1124
|
+
- \uC774\uC288: [GitHub issue / \uBB38\uC11C \uB9C1\uD06C]
|
|
1125
|
+
- [[\uAD00\uB828-gotcha.md]]
|
|
1002
1126
|
`;
|
|
1127
|
+
var DEFAULT_DECISION_TEMPLATE = `# Decision: [\uC81C\uBAA9]
|
|
1128
|
+
|
|
1129
|
+
## \uACB0\uC815
|
|
1130
|
+
|
|
1131
|
+
\uBB34\uC5C7\uC744 \uC120\uD0DD\uD588\uB294\uC9C0
|
|
1132
|
+
|
|
1133
|
+
## \uADFC\uAC70
|
|
1134
|
+
|
|
1135
|
+
\uC65C \uC774\uAC83\uC744 \uC120\uD0DD\uD588\uB294\uC9C0
|
|
1136
|
+
|
|
1137
|
+
## \uACE0\uB824\uD55C \uB300\uC548
|
|
1138
|
+
|
|
1139
|
+
- \uB300\uC548 1: \uD0C8\uB77D \uC774\uC720
|
|
1140
|
+
- \uB300\uC548 2: \uD0C8\uB77D \uC774\uC720
|
|
1141
|
+
|
|
1142
|
+
## \uAD00\uB828 \uB178\uD2B8
|
|
1143
|
+
|
|
1144
|
+
- [[\uAD00\uB828-ADR.md]] / [[\uAD00\uB828-\uD328\uD134.md]]
|
|
1145
|
+
`;
|
|
1146
|
+
var DEFAULT_CONTEXT_TEMPLATE = `# Context: [\uD504\uB85C\uC81D\uD2B8/\uBAA8\uB4C8\uBA85]
|
|
1147
|
+
|
|
1148
|
+
## \uAC1C\uC694
|
|
1149
|
+
|
|
1150
|
+
\uBB34\uC5C7\uC774\uACE0 \uBB34\uC5C7\uC744 \uD558\uB294\uC9C0
|
|
1151
|
+
|
|
1152
|
+
## \uAE30\uC220 \uC2A4\uD0DD
|
|
1153
|
+
|
|
1154
|
+
- \uC5B8\uC5B4 / \uD504\uB808\uC784\uC6CC\uD06C / \uC8FC\uC694 \uB77C\uC774\uBE0C\uB7EC\uB9AC
|
|
1155
|
+
|
|
1156
|
+
## \uC544\uD0A4\uD14D\uCC98
|
|
1157
|
+
|
|
1158
|
+
\uACE0\uC218\uC900 \uAD6C\uC870\uC640 \uD328\uD134
|
|
1159
|
+
|
|
1160
|
+
## \uCEE8\uBCA4\uC158
|
|
1161
|
+
|
|
1162
|
+
- \uD30C\uC77C \uAD6C\uC870 / \uB124\uC774\uBC0D / \uD14C\uC2A4\uD2B8 \uBC29\uC2DD
|
|
1163
|
+
|
|
1164
|
+
## \uC9C4\uC785\uC810
|
|
1165
|
+
|
|
1166
|
+
- [[src/index.ts]] / [[config.json]]
|
|
1167
|
+
|
|
1168
|
+
## \uAD00\uB828 \uB178\uD2B8
|
|
1169
|
+
|
|
1170
|
+
- [[\uAD00\uB828-context.md]] / [[\uC8FC\uC694-ADR.md]]
|
|
1171
|
+
`;
|
|
1172
|
+
var DEFAULT_RUNBOOK_TEMPLATE = `# Runbook: [\uC808\uCC28 \uC774\uB984]
|
|
1173
|
+
|
|
1174
|
+
## \uBAA9\uC801
|
|
1175
|
+
|
|
1176
|
+
\uC774 \uC808\uCC28\uAC00 \uB2EC\uC131\uD558\uB294 \uAC83
|
|
1177
|
+
|
|
1178
|
+
## \uC0AC\uC804 \uC870\uAC74
|
|
1179
|
+
|
|
1180
|
+
- \uD544\uC694\uD55C \uAC83 1
|
|
1181
|
+
|
|
1182
|
+
## \uB2E8\uACC4
|
|
1183
|
+
|
|
1184
|
+
1. \uCCAB \uBC88\uC9F8 \uB2E8\uACC4
|
|
1185
|
+
2. \uB450 \uBC88\uC9F8 \uB2E8\uACC4
|
|
1186
|
+
|
|
1187
|
+
## \uD655\uC778 \uBC29\uBC95
|
|
1188
|
+
|
|
1189
|
+
\uC131\uACF5\uD588\uB294\uC9C0 \uD655\uC778\uD558\uB294 \uBC29\uBC95
|
|
1190
|
+
|
|
1191
|
+
## \uBB38\uC81C \uD574\uACB0
|
|
1192
|
+
|
|
1193
|
+
| \uC99D\uC0C1 | \uD574\uACB0 |
|
|
1194
|
+
| ------ | --------------- |
|
|
1195
|
+
| \uC774\uC288 1 | [[\uAD00\uB828-bug.md]] |
|
|
1196
|
+
|
|
1197
|
+
## \uAD00\uB828 \uB178\uD2B8
|
|
1198
|
+
|
|
1199
|
+
- [[\uAD00\uB828-runbook.md]] / [[\uAD00\uB828-context.md]]
|
|
1200
|
+
`;
|
|
1201
|
+
var DEFAULT_INSIGHT_TEMPLATE = `# Insight: [\uBC1C\uACAC \uC81C\uBAA9]
|
|
1202
|
+
|
|
1203
|
+
## \uBC1C\uACAC
|
|
1204
|
+
|
|
1205
|
+
\uBB34\uC5C7\uC744 \uC54C\uAC8C \uB418\uC5C8\uB294\uC9C0
|
|
1206
|
+
|
|
1207
|
+
## \uB9E5\uB77D
|
|
1208
|
+
|
|
1209
|
+
\uC5B4\uB5BB\uAC8C \uBC1C\uACAC\uD588\uB294\uC9C0 (\uC5B4\uB5A4 \uC791\uC5C5 \uC911, \uC5B4\uB5A4 \uC2E4\uD5D8)
|
|
1210
|
+
|
|
1211
|
+
## \uC2DC\uC0AC\uC810
|
|
1212
|
+
|
|
1213
|
+
\uC774\uAC83\uC774 \uD5A5\uD6C4 \uC791\uC5C5\uC5D0 \uBBF8\uCE58\uB294 \uC601\uD5A5
|
|
1214
|
+
|
|
1215
|
+
## \uC801\uC6A9
|
|
1216
|
+
|
|
1217
|
+
\uC774 \uBC1C\uACAC\uC744 \uBC14\uD0D5\uC73C\uB85C \uC5B4\uB5BB\uAC8C \uD589\uB3D9\uC744 \uBC14\uAFD4\uC57C \uD558\uB294\uC9C0
|
|
1218
|
+
|
|
1219
|
+
## \uAD00\uB828 \uB178\uD2B8
|
|
1220
|
+
|
|
1221
|
+
- [[\uAD00\uB828-insight.md]] / [[\uC601\uD5A5\uBC1B\uB294-\uD328\uD134.md]] / [[\uAD00\uB828-ADR.md]]
|
|
1222
|
+
`;
|
|
1223
|
+
var TEMPLATE_FILES = {
|
|
1224
|
+
"adr.md": DEFAULT_ADR_TEMPLATE,
|
|
1225
|
+
"pattern.md": DEFAULT_PATTERN_TEMPLATE,
|
|
1226
|
+
"bug.md": DEFAULT_BUG_TEMPLATE,
|
|
1227
|
+
"gotcha.md": DEFAULT_GOTCHA_TEMPLATE,
|
|
1228
|
+
"decision.md": DEFAULT_DECISION_TEMPLATE,
|
|
1229
|
+
"context.md": DEFAULT_CONTEXT_TEMPLATE,
|
|
1230
|
+
"runbook.md": DEFAULT_RUNBOOK_TEMPLATE,
|
|
1231
|
+
"insight.md": DEFAULT_INSIGHT_TEMPLATE
|
|
1232
|
+
};
|
|
1003
1233
|
function scaffoldIfNeeded(projectDir) {
|
|
1004
1234
|
const contextDir = join3(projectDir, ".opencode", "context");
|
|
1005
1235
|
if (existsSync2(contextDir)) {
|
|
@@ -1008,9 +1238,14 @@ function scaffoldIfNeeded(projectDir) {
|
|
|
1008
1238
|
try {
|
|
1009
1239
|
const promptsDir = join3(contextDir, "prompts");
|
|
1010
1240
|
mkdirSync(promptsDir, { recursive: true });
|
|
1241
|
+
const templatesDir = join3(contextDir, "templates");
|
|
1242
|
+
mkdirSync(templatesDir, { recursive: true });
|
|
1011
1243
|
writeFileSync(join3(contextDir, "config.jsonc"), DEFAULT_CONFIG, "utf-8");
|
|
1012
1244
|
writeFileSync(join3(promptsDir, DEFAULTS.turnStartFile), DEFAULT_TURN_START, "utf-8");
|
|
1013
1245
|
writeFileSync(join3(promptsDir, DEFAULTS.turnEndFile), DEFAULT_TURN_END, "utf-8");
|
|
1246
|
+
for (const [filename, content] of Object.entries(TEMPLATE_FILES)) {
|
|
1247
|
+
writeFileSync(join3(templatesDir, filename), content, "utf-8");
|
|
1248
|
+
}
|
|
1014
1249
|
return true;
|
|
1015
1250
|
} catch {
|
|
1016
1251
|
return false;
|
|
@@ -1019,10 +1254,13 @@ function scaffoldIfNeeded(projectDir) {
|
|
|
1019
1254
|
function updateScaffold(projectDir) {
|
|
1020
1255
|
const contextDir = join3(projectDir, ".opencode", "context");
|
|
1021
1256
|
mkdirSync(join3(contextDir, "prompts"), { recursive: true });
|
|
1257
|
+
mkdirSync(join3(contextDir, "templates"), { recursive: true });
|
|
1258
|
+
const templateEntries = Object.fromEntries(Object.entries(TEMPLATE_FILES).map(([filename, content]) => [`templates/${filename}`, content]));
|
|
1022
1259
|
const templates = {
|
|
1023
1260
|
"config.jsonc": DEFAULT_CONFIG,
|
|
1024
1261
|
[`prompts/${DEFAULTS.turnStartFile}`]: DEFAULT_TURN_START,
|
|
1025
|
-
[`prompts/${DEFAULTS.turnEndFile}`]: DEFAULT_TURN_END
|
|
1262
|
+
[`prompts/${DEFAULTS.turnEndFile}`]: DEFAULT_TURN_END,
|
|
1263
|
+
...templateEntries
|
|
1026
1264
|
};
|
|
1027
1265
|
const updated = [];
|
|
1028
1266
|
for (const [path, content] of Object.entries(templates)) {
|
|
@@ -1072,13 +1310,6 @@ var plugin = async ({ directory, client }) => {
|
|
|
1072
1310
|
${lines}` }];
|
|
1073
1311
|
}
|
|
1074
1312
|
},
|
|
1075
|
-
"experimental.chat.system.transform": async (_input, output) => {
|
|
1076
|
-
const knowledgeSources = [config.knowledge.dir, ...config.knowledge.sources].filter((s) => Boolean(s));
|
|
1077
|
-
const entries = buildKnowledgeIndex(directory, knowledgeSources);
|
|
1078
|
-
const indexContent = formatKnowledgeIndex(entries);
|
|
1079
|
-
if (indexContent)
|
|
1080
|
-
output.system.push(indexContent);
|
|
1081
|
-
},
|
|
1082
1313
|
"experimental.chat.messages.transform": async (_input, output) => {
|
|
1083
1314
|
if (output.messages.length === 0)
|
|
1084
1315
|
return;
|
|
@@ -1087,13 +1318,19 @@ ${lines}` }];
|
|
|
1087
1318
|
return;
|
|
1088
1319
|
const turnStartPath = join4(directory, config.prompts.turnStart ?? join4(DEFAULTS.promptDir, DEFAULTS.turnStartFile));
|
|
1089
1320
|
const turnStart = readPromptFile(turnStartPath);
|
|
1090
|
-
|
|
1321
|
+
const knowledgeSources = [config.knowledge.dir, ...config.knowledge.sources].filter((s) => Boolean(s));
|
|
1322
|
+
const entries = buildKnowledgeIndex(directory, knowledgeSources);
|
|
1323
|
+
const indexContent = formatKnowledgeIndex(entries);
|
|
1324
|
+
const combinedContent = [turnStart, indexContent].filter(Boolean).join(`
|
|
1325
|
+
|
|
1326
|
+
`);
|
|
1327
|
+
if (combinedContent) {
|
|
1091
1328
|
lastUserMsg.parts.push({
|
|
1092
1329
|
id: `context-turn-start-${Date.now()}`,
|
|
1093
1330
|
sessionID: lastUserMsg.info.sessionID,
|
|
1094
1331
|
messageID: lastUserMsg.info.id,
|
|
1095
1332
|
type: "text",
|
|
1096
|
-
text:
|
|
1333
|
+
text: combinedContent
|
|
1097
1334
|
});
|
|
1098
1335
|
}
|
|
1099
1336
|
const turnEndPath = join4(directory, config.prompts.turnEnd ?? join4(DEFAULTS.promptDir, DEFAULTS.turnEndFile));
|