opencode-plan-cards-plugin 0.1.0 → 0.1.1
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/CHANGELOG.md +16 -0
- package/README.en.md +23 -3
- package/README.ja.md +23 -3
- package/README.md +23 -3
- package/README.zh-CN.md +23 -3
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +234 -0
- package/package.json +5 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [0.1.1] - 2026-02-16
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- CLI setup command for one-command installation:
|
|
10
|
+
- `npx -y opencode-plan-cards-plugin@latest setup`
|
|
11
|
+
- Automatic `opencode.json` update with:
|
|
12
|
+
- `plugin: ["opencode-plan-cards-plugin@0.1.1"]`
|
|
13
|
+
- `agent.ask.hidden = true`
|
|
14
|
+
- Automatic backup creation before writing config.
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
|
|
18
|
+
- Added package binary entry for CLI execution.
|
|
19
|
+
- Updated multilingual README files with one-command setup guide.
|
|
20
|
+
|
|
5
21
|
## [0.1.0] - 2026-02-16
|
|
6
22
|
|
|
7
23
|
### Added
|
package/README.en.md
CHANGED
|
@@ -15,8 +15,28 @@ A plugin that enhances card-based planning interactions for original OpenCode (D
|
|
|
15
15
|
|
|
16
16
|
- OpenCode: `1.2.x` (Desktop / CLI)
|
|
17
17
|
- Plugin distribution: both `file://` and npm package
|
|
18
|
+
- One-command installer: Node.js `18+`
|
|
18
19
|
|
|
19
|
-
## Installation (Method A:
|
|
20
|
+
## Installation (Method A: npm one-command setup, recommended)
|
|
21
|
+
|
|
22
|
+
```powershell
|
|
23
|
+
npx -y opencode-plan-cards-plugin@latest setup
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
By default this command:
|
|
27
|
+
|
|
28
|
+
- creates a backup of `~/.config/opencode/opencode.json`
|
|
29
|
+
- writes `plugin: ["opencode-plan-cards-plugin@0.1.1"]`
|
|
30
|
+
- writes `agent.ask.hidden = true`
|
|
31
|
+
|
|
32
|
+
Optional flags:
|
|
33
|
+
|
|
34
|
+
```powershell
|
|
35
|
+
npx -y opencode-plan-cards-plugin@latest setup --plugin opencode-plan-cards-plugin@0.1.1
|
|
36
|
+
npx -y opencode-plan-cards-plugin@latest setup --config "C:\Users\<you>\.config\opencode\opencode.json"
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Installation (Method B: Git + file://)
|
|
20
40
|
|
|
21
41
|
```powershell
|
|
22
42
|
git clone <your-repo-url> opencode-plan-cards-plugin
|
|
@@ -43,7 +63,7 @@ Configure plugin in `~/.config/opencode/opencode.json`:
|
|
|
43
63
|
|
|
44
64
|
> On Windows, use `file:///` paths and encode spaces as `%20`.
|
|
45
65
|
|
|
46
|
-
## Installation (Method
|
|
66
|
+
## Installation (Method C: npm manual config)
|
|
47
67
|
|
|
48
68
|
After publishing, user config:
|
|
49
69
|
|
|
@@ -51,7 +71,7 @@ After publishing, user config:
|
|
|
51
71
|
{
|
|
52
72
|
"$schema": "https://opencode.ai/config.json",
|
|
53
73
|
"plugin": [
|
|
54
|
-
"opencode-plan-cards-plugin@0.1.
|
|
74
|
+
"opencode-plan-cards-plugin@0.1.1"
|
|
55
75
|
],
|
|
56
76
|
"agent": {
|
|
57
77
|
"ask": {
|
package/README.ja.md
CHANGED
|
@@ -15,8 +15,28 @@
|
|
|
15
15
|
|
|
16
16
|
- OpenCode: `1.2.x`(Desktop / CLI)
|
|
17
17
|
- プラグイン配布形態:`file://` と npm の両対応
|
|
18
|
+
- ワンコマンド設定: Node.js `18+`
|
|
18
19
|
|
|
19
|
-
## インストール(方式 A:
|
|
20
|
+
## インストール(方式 A:npm ワンコマンド設定、推奨)
|
|
21
|
+
|
|
22
|
+
```powershell
|
|
23
|
+
npx -y opencode-plan-cards-plugin@latest setup
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
このコマンドは自動で以下を実行します:
|
|
27
|
+
|
|
28
|
+
- `~/.config/opencode/opencode.json` のバックアップ作成
|
|
29
|
+
- `plugin: ["opencode-plan-cards-plugin@0.1.1"]` を設定
|
|
30
|
+
- `agent.ask.hidden = true` を設定
|
|
31
|
+
|
|
32
|
+
オプション:
|
|
33
|
+
|
|
34
|
+
```powershell
|
|
35
|
+
npx -y opencode-plan-cards-plugin@latest setup --plugin opencode-plan-cards-plugin@0.1.1
|
|
36
|
+
npx -y opencode-plan-cards-plugin@latest setup --config "C:\Users\<you>\.config\opencode\opencode.json"
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## インストール(方式 B:Git + file://)
|
|
20
40
|
|
|
21
41
|
```powershell
|
|
22
42
|
git clone <your-repo-url> opencode-plan-cards-plugin
|
|
@@ -43,7 +63,7 @@ npm run build
|
|
|
43
63
|
|
|
44
64
|
> Windows では `file:///` 形式を使用し、空白は `%20` にしてください。
|
|
45
65
|
|
|
46
|
-
## インストール(方式
|
|
66
|
+
## インストール(方式 C:npm 手動設定)
|
|
47
67
|
|
|
48
68
|
公開後、ユーザー設定:
|
|
49
69
|
|
|
@@ -51,7 +71,7 @@ npm run build
|
|
|
51
71
|
{
|
|
52
72
|
"$schema": "https://opencode.ai/config.json",
|
|
53
73
|
"plugin": [
|
|
54
|
-
"opencode-plan-cards-plugin@0.1.
|
|
74
|
+
"opencode-plan-cards-plugin@0.1.1"
|
|
55
75
|
],
|
|
56
76
|
"agent": {
|
|
57
77
|
"ask": {
|
package/README.md
CHANGED
|
@@ -20,8 +20,28 @@ Language / 语言 / 言語:
|
|
|
20
20
|
|
|
21
21
|
- OpenCode: `1.2.x`(桌面端 / CLI)
|
|
22
22
|
- 插件形态:`file://` 与 npm 包均可
|
|
23
|
+
- 一键安装器:Node.js `18+`
|
|
23
24
|
|
|
24
|
-
## 安装(方式 A:
|
|
25
|
+
## 安装(方式 A:npm 一键写配置,推荐)
|
|
26
|
+
|
|
27
|
+
```powershell
|
|
28
|
+
npx -y opencode-plan-cards-plugin@latest setup
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
默认会自动:
|
|
32
|
+
|
|
33
|
+
- 备份 `~/.config/opencode/opencode.json`
|
|
34
|
+
- 写入 `plugin: ["opencode-plan-cards-plugin@0.1.1"]`
|
|
35
|
+
- 写入 `agent.ask.hidden = true`
|
|
36
|
+
|
|
37
|
+
可选参数:
|
|
38
|
+
|
|
39
|
+
```powershell
|
|
40
|
+
npx -y opencode-plan-cards-plugin@latest setup --plugin opencode-plan-cards-plugin@0.1.1
|
|
41
|
+
npx -y opencode-plan-cards-plugin@latest setup --config "C:\Users\<you>\.config\opencode\opencode.json"
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## 安装(方式 B:Git + file://)
|
|
25
45
|
|
|
26
46
|
```powershell
|
|
27
47
|
git clone <your-repo-url> opencode-plan-cards-plugin
|
|
@@ -48,7 +68,7 @@ npm run build
|
|
|
48
68
|
|
|
49
69
|
> Windows 路径需要使用 `file:///`,空格写成 `%20`。
|
|
50
70
|
|
|
51
|
-
## 安装(方式
|
|
71
|
+
## 安装(方式 C:npm 手动配置)
|
|
52
72
|
|
|
53
73
|
发布后,用户配置:
|
|
54
74
|
|
|
@@ -56,7 +76,7 @@ npm run build
|
|
|
56
76
|
{
|
|
57
77
|
"$schema": "https://opencode.ai/config.json",
|
|
58
78
|
"plugin": [
|
|
59
|
-
"opencode-plan-cards-plugin@0.1.
|
|
79
|
+
"opencode-plan-cards-plugin@0.1.1"
|
|
60
80
|
],
|
|
61
81
|
"agent": {
|
|
62
82
|
"ask": {
|
package/README.zh-CN.md
CHANGED
|
@@ -15,8 +15,28 @@
|
|
|
15
15
|
|
|
16
16
|
- OpenCode: `1.2.x`(桌面端 / CLI)
|
|
17
17
|
- 插件形态:`file://` 与 npm 包均可
|
|
18
|
+
- 一键安装器:Node.js `18+`
|
|
18
19
|
|
|
19
|
-
## 安装(方式 A:
|
|
20
|
+
## 安装(方式 A:npm 一键写配置,推荐)
|
|
21
|
+
|
|
22
|
+
```powershell
|
|
23
|
+
npx -y opencode-plan-cards-plugin@latest setup
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
默认会自动:
|
|
27
|
+
|
|
28
|
+
- 备份 `~/.config/opencode/opencode.json`
|
|
29
|
+
- 写入 `plugin: ["opencode-plan-cards-plugin@0.1.1"]`
|
|
30
|
+
- 写入 `agent.ask.hidden = true`
|
|
31
|
+
|
|
32
|
+
可选参数:
|
|
33
|
+
|
|
34
|
+
```powershell
|
|
35
|
+
npx -y opencode-plan-cards-plugin@latest setup --plugin opencode-plan-cards-plugin@0.1.1
|
|
36
|
+
npx -y opencode-plan-cards-plugin@latest setup --config "C:\Users\<you>\.config\opencode\opencode.json"
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## 安装(方式 B:Git + file://)
|
|
20
40
|
|
|
21
41
|
```powershell
|
|
22
42
|
git clone <your-repo-url> opencode-plan-cards-plugin
|
|
@@ -43,7 +63,7 @@ npm run build
|
|
|
43
63
|
|
|
44
64
|
> Windows 路径需要使用 `file:///`,空格写成 `%20`。
|
|
45
65
|
|
|
46
|
-
## 安装(方式
|
|
66
|
+
## 安装(方式 C:npm 手动配置)
|
|
47
67
|
|
|
48
68
|
发布后,用户配置:
|
|
49
69
|
|
|
@@ -51,7 +71,7 @@ npm run build
|
|
|
51
71
|
{
|
|
52
72
|
"$schema": "https://opencode.ai/config.json",
|
|
53
73
|
"plugin": [
|
|
54
|
-
"opencode-plan-cards-plugin@0.1.
|
|
74
|
+
"opencode-plan-cards-plugin@0.1.1"
|
|
55
75
|
],
|
|
56
76
|
"agent": {
|
|
57
77
|
"ask": {
|
package/dist/cli.d.ts
ADDED
package/dist/cli.js
ADDED
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { copyFileSync, existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
3
|
+
import { createRequire } from "node:module";
|
|
4
|
+
import { homedir } from "node:os";
|
|
5
|
+
import { dirname, join, resolve } from "node:path";
|
|
6
|
+
const require = createRequire(import.meta.url);
|
|
7
|
+
const pkg = require("../package.json");
|
|
8
|
+
function usage() {
|
|
9
|
+
const defaultPlugin = `${pkg.name ?? "opencode-plan-cards-plugin"}@${pkg.version ?? "latest"}`;
|
|
10
|
+
return [
|
|
11
|
+
"Usage:",
|
|
12
|
+
" opencode-plan-cards-plugin setup [options]",
|
|
13
|
+
"",
|
|
14
|
+
"Options:",
|
|
15
|
+
" --plugin <spec> Plugin spec to inject (default: current package version)",
|
|
16
|
+
" --config <path> Path to opencode.json",
|
|
17
|
+
" --dry-run Preview changes without writing files",
|
|
18
|
+
" --no-backup Skip backup file creation",
|
|
19
|
+
" -h, --help Show help",
|
|
20
|
+
"",
|
|
21
|
+
"Example:",
|
|
22
|
+
` npx -y ${pkg.name ?? "opencode-plan-cards-plugin"}@latest setup`,
|
|
23
|
+
` npx -y ${pkg.name ?? "opencode-plan-cards-plugin"}@latest setup --plugin ${defaultPlugin}`,
|
|
24
|
+
].join("\n");
|
|
25
|
+
}
|
|
26
|
+
function parseArgs(argv) {
|
|
27
|
+
const options = {
|
|
28
|
+
dryRun: false,
|
|
29
|
+
noBackup: false,
|
|
30
|
+
help: false,
|
|
31
|
+
};
|
|
32
|
+
for (let index = 0; index < argv.length; index += 1) {
|
|
33
|
+
const arg = argv[index];
|
|
34
|
+
if (arg === "-h" || arg === "--help") {
|
|
35
|
+
options.help = true;
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
if (arg === "--dry-run") {
|
|
39
|
+
options.dryRun = true;
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
if (arg === "--no-backup") {
|
|
43
|
+
options.noBackup = true;
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
if (arg === "--plugin") {
|
|
47
|
+
const value = argv[index + 1];
|
|
48
|
+
if (!value)
|
|
49
|
+
throw new Error("Missing value for --plugin");
|
|
50
|
+
options.plugin = value.trim();
|
|
51
|
+
index += 1;
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
if (arg.startsWith("--plugin=")) {
|
|
55
|
+
options.plugin = arg.slice("--plugin=".length).trim();
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
if (arg === "--config") {
|
|
59
|
+
const value = argv[index + 1];
|
|
60
|
+
if (!value)
|
|
61
|
+
throw new Error("Missing value for --config");
|
|
62
|
+
options.config = value.trim();
|
|
63
|
+
index += 1;
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
if (arg.startsWith("--config=")) {
|
|
67
|
+
options.config = arg.slice("--config=".length).trim();
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
if (!options.command && !arg.startsWith("-")) {
|
|
71
|
+
options.command = arg;
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
throw new Error(`Unknown argument: ${arg}`);
|
|
75
|
+
}
|
|
76
|
+
return options;
|
|
77
|
+
}
|
|
78
|
+
function resolveConfigPath(configOverride) {
|
|
79
|
+
if (configOverride && configOverride.trim()) {
|
|
80
|
+
return resolve(configOverride.trim());
|
|
81
|
+
}
|
|
82
|
+
const configRoot = process.env.XDG_CONFIG_HOME?.trim() || join(homedir(), ".config");
|
|
83
|
+
return join(configRoot, "opencode", "opencode.json");
|
|
84
|
+
}
|
|
85
|
+
function readJSONFile(filePath) {
|
|
86
|
+
if (!existsSync(filePath))
|
|
87
|
+
return {};
|
|
88
|
+
const raw = readFileSync(filePath, "utf8");
|
|
89
|
+
const normalized = raw.replace(/^\uFEFF/, "");
|
|
90
|
+
if (!normalized.trim())
|
|
91
|
+
return {};
|
|
92
|
+
let parsed;
|
|
93
|
+
try {
|
|
94
|
+
parsed = JSON.parse(normalized);
|
|
95
|
+
}
|
|
96
|
+
catch {
|
|
97
|
+
throw new Error(`Invalid JSON in config file: ${filePath}`);
|
|
98
|
+
}
|
|
99
|
+
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
|
|
100
|
+
throw new Error(`Config root must be a JSON object: ${filePath}`);
|
|
101
|
+
}
|
|
102
|
+
return parsed;
|
|
103
|
+
}
|
|
104
|
+
function extractPackageName(spec) {
|
|
105
|
+
const trimmed = spec.trim();
|
|
106
|
+
const match = /^(@[^/\s]+\/[^@\s/]+|[^@\s/]+)(?:@.+)?$/.exec(trimmed);
|
|
107
|
+
return match?.[1];
|
|
108
|
+
}
|
|
109
|
+
function isSamePlugin(existing, targetSpec) {
|
|
110
|
+
if (existing === targetSpec)
|
|
111
|
+
return true;
|
|
112
|
+
const targetName = extractPackageName(targetSpec);
|
|
113
|
+
if (!targetName)
|
|
114
|
+
return false;
|
|
115
|
+
const existingName = extractPackageName(existing);
|
|
116
|
+
return !!existingName && existingName === targetName;
|
|
117
|
+
}
|
|
118
|
+
function upsertPlugin(config, pluginSpec) {
|
|
119
|
+
const current = config.plugin;
|
|
120
|
+
if (current !== undefined &&
|
|
121
|
+
typeof current !== "string" &&
|
|
122
|
+
!Array.isArray(current)) {
|
|
123
|
+
throw new Error('Config key "plugin" must be a string or an array');
|
|
124
|
+
}
|
|
125
|
+
const pluginList = Array.isArray(current)
|
|
126
|
+
? [...current]
|
|
127
|
+
: typeof current === "string"
|
|
128
|
+
? [current]
|
|
129
|
+
: [];
|
|
130
|
+
let matched = false;
|
|
131
|
+
let changed = !Array.isArray(current);
|
|
132
|
+
for (let index = 0; index < pluginList.length; index += 1) {
|
|
133
|
+
const value = pluginList[index];
|
|
134
|
+
if (typeof value !== "string")
|
|
135
|
+
continue;
|
|
136
|
+
if (!isSamePlugin(value, pluginSpec))
|
|
137
|
+
continue;
|
|
138
|
+
matched = true;
|
|
139
|
+
if (value !== pluginSpec) {
|
|
140
|
+
pluginList[index] = pluginSpec;
|
|
141
|
+
changed = true;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
if (!matched) {
|
|
145
|
+
pluginList.push(pluginSpec);
|
|
146
|
+
changed = true;
|
|
147
|
+
}
|
|
148
|
+
config.plugin = pluginList;
|
|
149
|
+
return changed;
|
|
150
|
+
}
|
|
151
|
+
function ensureObject(parent, key) {
|
|
152
|
+
const value = parent[key];
|
|
153
|
+
if (value && typeof value === "object" && !Array.isArray(value)) {
|
|
154
|
+
return value;
|
|
155
|
+
}
|
|
156
|
+
const next = {};
|
|
157
|
+
parent[key] = next;
|
|
158
|
+
return next;
|
|
159
|
+
}
|
|
160
|
+
function updateAskHidden(config) {
|
|
161
|
+
const agent = ensureObject(config, "agent");
|
|
162
|
+
const ask = ensureObject(agent, "ask");
|
|
163
|
+
if (ask.hidden === true)
|
|
164
|
+
return false;
|
|
165
|
+
ask.hidden = true;
|
|
166
|
+
return true;
|
|
167
|
+
}
|
|
168
|
+
function applySetup(config, pluginSpec) {
|
|
169
|
+
const pluginUpdated = upsertPlugin(config, pluginSpec);
|
|
170
|
+
const askHiddenUpdated = updateAskHidden(config);
|
|
171
|
+
return {
|
|
172
|
+
changed: pluginUpdated || askHiddenUpdated,
|
|
173
|
+
pluginUpdated,
|
|
174
|
+
askHiddenUpdated,
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
function backupPath(configPath) {
|
|
178
|
+
const stamp = new Date().toISOString().replace(/\.\d{3}Z$/, "Z").replace(/[:]/g, "-");
|
|
179
|
+
return `${configPath}.bak-${stamp}`;
|
|
180
|
+
}
|
|
181
|
+
function writeConfig(configPath, config, createBackup) {
|
|
182
|
+
mkdirSync(dirname(configPath), { recursive: true });
|
|
183
|
+
let savedBackup;
|
|
184
|
+
if (createBackup && existsSync(configPath)) {
|
|
185
|
+
savedBackup = backupPath(configPath);
|
|
186
|
+
copyFileSync(configPath, savedBackup);
|
|
187
|
+
}
|
|
188
|
+
writeFileSync(configPath, `${JSON.stringify(config, null, 2)}\n`, "utf8");
|
|
189
|
+
return savedBackup;
|
|
190
|
+
}
|
|
191
|
+
function run() {
|
|
192
|
+
const options = parseArgs(process.argv.slice(2));
|
|
193
|
+
if (options.help || !options.command) {
|
|
194
|
+
console.log(usage());
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
if (options.command !== "setup") {
|
|
198
|
+
throw new Error(`Unknown command: ${options.command}`);
|
|
199
|
+
}
|
|
200
|
+
const packageName = pkg.name ?? "opencode-plan-cards-plugin";
|
|
201
|
+
const packageVersion = pkg.version ?? "latest";
|
|
202
|
+
const pluginSpec = options.plugin?.trim() || `${packageName}@${packageVersion}`;
|
|
203
|
+
const configPath = resolveConfigPath(options.config);
|
|
204
|
+
const config = readJSONFile(configPath);
|
|
205
|
+
const result = applySetup(config, pluginSpec);
|
|
206
|
+
if (!result.changed) {
|
|
207
|
+
console.log(`No changes needed: ${configPath}`);
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
if (options.dryRun) {
|
|
211
|
+
console.log(`[dry-run] Config file: ${configPath}`);
|
|
212
|
+
console.log(`[dry-run] plugin updated: ${result.pluginUpdated}`);
|
|
213
|
+
console.log(`[dry-run] ask.hidden updated: ${result.askHiddenUpdated}`);
|
|
214
|
+
console.log(JSON.stringify(config, null, 2));
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
const savedBackup = writeConfig(configPath, config, !options.noBackup);
|
|
218
|
+
console.log(`Updated: ${configPath}`);
|
|
219
|
+
if (savedBackup) {
|
|
220
|
+
console.log(`Backup: ${savedBackup}`);
|
|
221
|
+
}
|
|
222
|
+
console.log(`Plugin: ${pluginSpec}`);
|
|
223
|
+
console.log("Done. Restart OpenCode and run /plan card on in your session.");
|
|
224
|
+
}
|
|
225
|
+
try {
|
|
226
|
+
run();
|
|
227
|
+
}
|
|
228
|
+
catch (error) {
|
|
229
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
230
|
+
console.error(`Error: ${message}`);
|
|
231
|
+
console.error("");
|
|
232
|
+
console.error(usage());
|
|
233
|
+
process.exitCode = 1;
|
|
234
|
+
}
|
package/package.json
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opencode-plan-cards-plugin",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Plan card interaction enhancement plugin for OpenCode",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"opencode-plan-cards-plugin": "./dist/cli.js"
|
|
9
|
+
},
|
|
7
10
|
"types": "dist/index.d.ts",
|
|
8
11
|
"exports": {
|
|
9
12
|
".": {
|
|
@@ -34,6 +37,7 @@
|
|
|
34
37
|
"devDependencies": {
|
|
35
38
|
"@opencode-ai/plugin": "^1.2.0",
|
|
36
39
|
"@opencode-ai/sdk": "^1.2.0",
|
|
40
|
+
"@types/node": "^22.13.10",
|
|
37
41
|
"typescript": "^5.7.3"
|
|
38
42
|
}
|
|
39
43
|
}
|