@aryaminus/controlkeel-opencode 0.2.46 → 0.2.47
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/.opencode/plugins/controlkeel-governance.ts +8 -5
- package/AGENTS.md +3 -2
- package/index.js +8 -5
- package/package.json +1 -1
|
@@ -360,24 +360,27 @@ export const ControlKeelGovernance: Plugin = async ({ project, client, $, direct
|
|
|
360
360
|
const openError = typeof openPayload?.open_error === "string" ? openPayload.open_error.trim() : ""
|
|
361
361
|
const openFailure = typeof openPayload?.error === "string" ? openPayload.error.trim() : ""
|
|
362
362
|
const browserNotOpened = openPayload?.opened !== true
|
|
363
|
+
const serverUnavailable = openPayload?.server_serving === false
|
|
363
364
|
|
|
364
365
|
const remoteLocalhostMismatch =
|
|
365
366
|
typeof browserUrl === "string" &&
|
|
366
367
|
browserUrl.includes("localhost") &&
|
|
367
368
|
openPayload?.remote === true
|
|
368
369
|
|
|
369
|
-
if (!browserUrl || openError || openFailure || remoteLocalhostMismatch || browserNotOpened) {
|
|
370
|
+
if (!browserUrl || serverUnavailable || openError || openFailure || remoteLocalhostMismatch || browserNotOpened) {
|
|
370
371
|
return buildPlanResult({
|
|
371
372
|
waitSkipped: true,
|
|
372
373
|
manualApprovalRequired: true,
|
|
373
374
|
reason:
|
|
374
375
|
!browserUrl
|
|
375
376
|
? "browser_url_unavailable"
|
|
376
|
-
:
|
|
377
|
-
? "
|
|
378
|
-
:
|
|
377
|
+
: serverUnavailable
|
|
378
|
+
? "review_server_unavailable"
|
|
379
|
+
: browserNotOpened
|
|
380
|
+
? "browser_not_opened"
|
|
381
|
+
: "browser_unreachable",
|
|
379
382
|
guidance:
|
|
380
|
-
"Browser review is unavailable
|
|
383
|
+
"Browser review is unavailable, the CK review server is not reachable, or the browser did not actually open. Ask the user for explicit approval in chat, then record it with `controlkeel review plan respond --id <review_id> --decision approved --feedback-notes \"User approved in chat; browser/review server unavailable\" --json` or `ck_review_feedback`.",
|
|
381
384
|
})
|
|
382
385
|
}
|
|
383
386
|
|
package/AGENTS.md
CHANGED
|
@@ -11,8 +11,9 @@ Required workflow:
|
|
|
11
11
|
2. Call `ck_validate` before writing code, config, shell, or deploy content.
|
|
12
12
|
3. Submit plans or approval packets with `ck_review_submit` and check `ck_review_status` before execution.
|
|
13
13
|
4. Record any human-review issue with `ck_finding`.
|
|
14
|
-
5. Check `ck_budget` before expensive model or multi-agent work.
|
|
15
|
-
6.
|
|
14
|
+
5. Check `ck_budget` before expensive model or multi-agent work, and keep `ck_context` compact unless full raw context is needed.
|
|
15
|
+
6. Before AFK or delegated implementation, split large work into human-approved vertical slices with explicit dependencies; prefer durable behavior-first issues, stable deep-module interfaces, and branch-level automated review plus human QA before merge.
|
|
16
|
+
7. Use `ck_route`, `ck_skill_list`, and `ck_skill_load` to delegate or activate specialized CK workflows.
|
|
16
17
|
|
|
17
18
|
Install ControlKeel:
|
|
18
19
|
- Homebrew: `brew tap aryaminus/controlkeel && brew install controlkeel`
|
package/index.js
CHANGED
|
@@ -343,24 +343,27 @@ export const ControlKeelGovernance = async ({ $, directory }) => {
|
|
|
343
343
|
const openError = typeof openPayload?.open_error === "string" ? openPayload.open_error.trim() : ""
|
|
344
344
|
const openFailure = typeof openPayload?.error === "string" ? openPayload.error.trim() : ""
|
|
345
345
|
const browserNotOpened = openPayload?.opened !== true
|
|
346
|
+
const serverUnavailable = openPayload?.server_serving === false
|
|
346
347
|
|
|
347
348
|
const remoteLocalhostMismatch =
|
|
348
349
|
typeof browserUrl === "string" &&
|
|
349
350
|
browserUrl.includes("localhost") &&
|
|
350
351
|
openPayload?.remote === true
|
|
351
352
|
|
|
352
|
-
if (!browserUrl || openError || openFailure || remoteLocalhostMismatch || browserNotOpened) {
|
|
353
|
+
if (!browserUrl || serverUnavailable || openError || openFailure || remoteLocalhostMismatch || browserNotOpened) {
|
|
353
354
|
return buildPlanResult({
|
|
354
355
|
waitSkipped: true,
|
|
355
356
|
manualApprovalRequired: true,
|
|
356
357
|
reason:
|
|
357
358
|
!browserUrl
|
|
358
359
|
? "browser_url_unavailable"
|
|
359
|
-
:
|
|
360
|
-
? "
|
|
361
|
-
:
|
|
360
|
+
: serverUnavailable
|
|
361
|
+
? "review_server_unavailable"
|
|
362
|
+
: browserNotOpened
|
|
363
|
+
? "browser_not_opened"
|
|
364
|
+
: "browser_unreachable",
|
|
362
365
|
guidance:
|
|
363
|
-
"Browser review is unavailable
|
|
366
|
+
"Browser review is unavailable, the CK review server is not reachable, or the browser did not actually open. Ask the user for explicit approval in chat, then record it with `controlkeel review plan respond --id <review_id> --decision approved --feedback-notes \"User approved in chat; browser/review server unavailable\" --json` or `ck_review_feedback`.",
|
|
364
367
|
})
|
|
365
368
|
}
|
|
366
369
|
|
package/package.json
CHANGED