backeer-opencode 0.1.5 → 0.2.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 +17 -0
- package/README.md +57 -9
- package/dist/backeer-permission.js +529 -6
- package/package.json +2 -2
- package/src/config.js +46 -0
- package/src/diagnostics.js +148 -0
- package/src/lifecycle-controller.js +205 -0
- package/src/lifecycle-publishers.js +187 -0
- package/src/management.js +21 -2
- package/src/plugin.js +12 -1
- package/src/updates.js +1 -1
package/src/plugin.js
CHANGED
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
createBackeerCommandHandler,
|
|
11
11
|
registerBackeerCommand,
|
|
12
12
|
} from "./management.js"
|
|
13
|
+
import { createLifecycleController } from "./lifecycle-controller.js"
|
|
13
14
|
import { createPermissionController } from "./permission-controller.js"
|
|
14
15
|
import { createConsoleReporter } from "./reporter.js"
|
|
15
16
|
import {
|
|
@@ -21,7 +22,8 @@ import { rememberBounded } from "./utilities.js"
|
|
|
21
22
|
/**
|
|
22
23
|
* OpenCode server plugin entrypoint.
|
|
23
24
|
*
|
|
24
|
-
* Supported options: origin, tokenFile, permissions, questions, todos,
|
|
25
|
+
* Supported options: origin, tokenFile, permissions, questions, todos,
|
|
26
|
+
* lifecycle, logLevel.
|
|
25
27
|
* The ingest token is intentionally accepted only through the environment or a
|
|
26
28
|
* protected file so it cannot accidentally be committed in opencode.json.
|
|
27
29
|
*/
|
|
@@ -45,6 +47,12 @@ export default async function BackeerPlugin({ client, directory }, options = {})
|
|
|
45
47
|
client,
|
|
46
48
|
directory,
|
|
47
49
|
})
|
|
50
|
+
const lifecycleController = createLifecycleController({
|
|
51
|
+
config,
|
|
52
|
+
reporter,
|
|
53
|
+
client,
|
|
54
|
+
directory,
|
|
55
|
+
})
|
|
48
56
|
const todoCompletionBySessionID = new Map()
|
|
49
57
|
const publishedQuestions = new Map()
|
|
50
58
|
const updateChecker = createUpdateChecker()
|
|
@@ -135,6 +143,8 @@ export default async function BackeerPlugin({ client, directory }, options = {})
|
|
|
135
143
|
event: async ({ event }) => {
|
|
136
144
|
if (!config.token) return
|
|
137
145
|
|
|
146
|
+
lifecycleController.handle(event)
|
|
147
|
+
|
|
138
148
|
if (config.permissions && event.type === "permission.asked") {
|
|
139
149
|
await handlePermissionAsked(event)
|
|
140
150
|
return
|
|
@@ -162,6 +172,7 @@ export default async function BackeerPlugin({ client, directory }, options = {})
|
|
|
162
172
|
|
|
163
173
|
dispose: async () => {
|
|
164
174
|
await permissionController.dispose()
|
|
175
|
+
lifecycleController.dispose()
|
|
165
176
|
todoCompletionBySessionID.clear()
|
|
166
177
|
publishedQuestions.clear()
|
|
167
178
|
},
|
package/src/updates.js
CHANGED