@super-pocock-ai/suite 2.0.7 → 2.0.9

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.
Files changed (3) hide show
  1. package/index.js +48 -1
  2. package/package.json +9 -5
  3. package/postinstall.js +59 -0
package/index.js CHANGED
@@ -1,6 +1,9 @@
1
1
  import { readFileSync, writeFileSync, mkdirSync, existsSync, readdirSync, statSync } from 'fs'
2
2
  import { join, dirname } from 'path'
3
3
  import { fileURLToPath } from 'url'
4
+ import { execSync } from 'child_process'
5
+
6
+ const SUITE_VERSION = '2.0.7'
4
7
 
5
8
  export const SuperPocockSuite = async ({ project, client, $, directory, worktree }) => {
6
9
  const agentsDir = join(process.env.HOME, '.config', 'opencode', 'agents')
@@ -14,6 +17,50 @@ export const SuperPocockSuite = async ({ project, client, $, directory, worktree
14
17
  }
15
18
 
16
19
  const configDir = join(process.env.HOME, '.config', 'opencode', 'node_modules')
20
+
21
+ // Check and update packages if needed
22
+ const checkAndUpdate = async () => {
23
+ const suiteDir = join(configDir, '@super-pocock-ai', 'suite')
24
+ const suitePackageJson = join(suiteDir, 'package.json')
25
+
26
+ if (existsSync(suitePackageJson)) {
27
+ const installed = JSON.parse(readFileSync(suitePackageJson, 'utf-8'))
28
+ if (installed.version !== SUITE_VERSION) {
29
+ await client.app.log({
30
+ body: {
31
+ service: 'super-pocock-suite',
32
+ level: 'info',
33
+ message: `Updating suite from v${installed.version} to v${SUITE_VERSION}...`
34
+ }
35
+ })
36
+
37
+ try {
38
+ execSync('npm update @super-pocock-ai/suite --save', {
39
+ cwd: join(process.env.HOME, '.config', 'opencode'),
40
+ stdio: 'pipe'
41
+ })
42
+
43
+ await client.app.log({
44
+ body: {
45
+ service: 'super-pocock-suite',
46
+ level: 'info',
47
+ message: 'Suite updated successfully'
48
+ }
49
+ })
50
+ } catch (e) {
51
+ await client.app.log({
52
+ body: {
53
+ service: 'super-pocock-suite',
54
+ level: 'warn',
55
+ message: `Auto-update failed: ${e.message}. Please run: rm -rf ~/.cache/opencode/node_modules`
56
+ }
57
+ })
58
+ }
59
+ }
60
+ }
61
+ }
62
+
63
+ await checkAndUpdate()
17
64
 
18
65
  // Helper: install agents from a directory
19
66
  const installAgents = async (sourceDir, label) => {
@@ -88,7 +135,7 @@ export const SuperPocockSuite = async ({ project, client, $, directory, worktree
88
135
  body: {
89
136
  service: 'super-pocock-suite',
90
137
  level: 'info',
91
- message: 'Superpocock Suite loaded'
138
+ message: `Superpocock Suite v${SUITE_VERSION} loaded`
92
139
  }
93
140
  })
94
141
  }
package/package.json CHANGED
@@ -1,18 +1,22 @@
1
1
  {
2
2
  "name": "@super-pocock-ai/suite",
3
- "version": "2.0.7",
3
+ "version": "2.0.9",
4
4
  "description": "Superpocock 完整套件,包含记忆系统和工作流",
5
5
  "type": "module",
6
6
  "main": "index.js",
7
7
  "files": [
8
8
  "index.js",
9
+ "postinstall.js",
9
10
  "README.md"
10
11
  ],
12
+ "scripts": {
13
+ "postinstall": "node postinstall.js"
14
+ },
11
15
  "dependencies": {
12
- "@super-pocock-ai/memory-core": "2.0.7",
13
- "@super-pocock-ai/memory-agents": "2.0.7",
14
- "@super-pocock-ai/compose-workflow": "2.0.7",
15
- "@super-pocock-ai/compose-agents": "2.0.7"
16
+ "@super-pocock-ai/memory-core": "2.0.9",
17
+ "@super-pocock-ai/memory-agents": "2.0.9",
18
+ "@super-pocock-ai/compose-workflow": "2.0.9",
19
+ "@super-pocock-ai/compose-agents": "2.0.9"
16
20
  },
17
21
  "keywords": [
18
22
  "opencode",
package/postinstall.js ADDED
@@ -0,0 +1,59 @@
1
+ #!/usr/bin/env node
2
+ import { existsSync, mkdirSync, readdirSync, statSync, copyFileSync } from 'fs'
3
+ import { join } from 'path'
4
+
5
+ const HOME = process.env.HOME
6
+ const CACHE_SUITE = join(HOME, '.cache', 'opencode', 'packages', '@super-pocock-ai', 'suite')
7
+ const CONFIG_MODULES = join(HOME, '.config', 'opencode', 'node_modules', '@super-pocock-ai')
8
+
9
+ // 确保目标目录存在
10
+ if (!existsSync(CONFIG_MODULES)) {
11
+ mkdirSync(CONFIG_MODULES, { recursive: true })
12
+ }
13
+
14
+ // 从缓存复制包到配置目录
15
+ const packages = ['suite', 'compose-agents', 'compose-workflow', 'memory-agents', 'memory-core']
16
+
17
+ for (const pkg of packages) {
18
+ const src = join(CACHE_SUITE, 'node_modules', '@super-pocock-ai', pkg)
19
+ const dest = join(CONFIG_MODULES, pkg)
20
+
21
+ if (existsSync(src) && !existsSync(dest)) {
22
+ mkdirSync(dest, { recursive: true })
23
+
24
+ // 复制 package.json
25
+ copyFileSync(join(src, 'package.json'), join(dest, 'package.json'))
26
+
27
+ // 复制其他文件和目录
28
+ const items = readdirSync(src)
29
+ for (const item of items) {
30
+ if (item === 'node_modules' || item === 'package.json') continue
31
+
32
+ const srcPath = join(src, item)
33
+ const destPath = join(dest, item)
34
+
35
+ if (statSync(srcPath).isDirectory()) {
36
+ // 递归复制目录
37
+ const copyDir = (s, d) => {
38
+ mkdirSync(d, { recursive: true })
39
+ for (const f of readdirSync(s)) {
40
+ const sf = join(s, f)
41
+ const df = join(d, f)
42
+ if (statSync(sf).isDirectory()) {
43
+ copyDir(sf, df)
44
+ } else {
45
+ copyFileSync(sf, df)
46
+ }
47
+ }
48
+ }
49
+ copyDir(srcPath, destPath)
50
+ } else {
51
+ copyFileSync(srcPath, destPath)
52
+ }
53
+ }
54
+
55
+ console.log(`[super-pocock-suite] Copied ${pkg} to config`)
56
+ }
57
+ }
58
+
59
+ console.log('[super-pocock-suite] Postinstall complete')