opendevbrowser 0.0.20 → 0.0.22
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/README.md +18 -8
- package/dist/chunk-3ILXPKSJ.js +86 -0
- package/dist/chunk-3ILXPKSJ.js.map +1 -0
- package/dist/{chunk-LMNFPJRI.js → chunk-OGE5KJ4X.js} +18 -12
- package/dist/{chunk-LMNFPJRI.js.map → chunk-OGE5KJ4X.js.map} +1 -1
- package/dist/chunk-QVWOPIZJ.js +612 -0
- package/dist/chunk-QVWOPIZJ.js.map +1 -0
- package/dist/{chunk-3VA6XR25.js → chunk-STGGGVYT.js} +23 -100
- package/dist/chunk-STGGGVYT.js.map +1 -0
- package/dist/{chunk-C6QUKABT.js → chunk-ZE2E7ZGH.js} +243 -37
- package/dist/chunk-ZE2E7ZGH.js.map +1 -0
- package/dist/cli/commands/macro-resolve.d.ts.map +1 -1
- package/dist/cli/commands/uninstall.d.ts +1 -0
- package/dist/cli/commands/uninstall.d.ts.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/index.js +296 -617
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/installers/postinstall-skill-sync.d.ts +15 -0
- package/dist/cli/installers/postinstall-skill-sync.d.ts.map +1 -0
- package/dist/cli/installers/postinstall-skill-sync.js +48 -0
- package/dist/cli/installers/postinstall-skill-sync.js.map +1 -0
- package/dist/cli/installers/skills.d.ts +9 -14
- package/dist/cli/installers/skills.d.ts.map +1 -1
- package/dist/cli/skill-lifecycle.d.ts +26 -0
- package/dist/cli/skill-lifecycle.d.ts.map +1 -0
- package/dist/cli/update-skill-modes.d.ts +3 -0
- package/dist/cli/update-skill-modes.d.ts.map +1 -0
- package/dist/cli/utils/workflow-message.d.ts.map +1 -1
- package/dist/index.js +9 -8
- package/dist/index.js.map +1 -1
- package/dist/inspiredesign/handoff.d.ts +34 -0
- package/dist/inspiredesign/handoff.d.ts.map +1 -0
- package/dist/opendevbrowser.js +9 -8
- package/dist/opendevbrowser.js.map +1 -1
- package/dist/providers/inspiredesign-contract.d.ts +33 -0
- package/dist/providers/inspiredesign-contract.d.ts.map +1 -1
- package/dist/providers/renderer.d.ts +3 -1
- package/dist/providers/renderer.d.ts.map +1 -1
- package/dist/providers/workflow-handoff.d.ts +14 -0
- package/dist/providers/workflow-handoff.d.ts.map +1 -0
- package/dist/providers/workflows.d.ts.map +1 -1
- package/dist/{providers-3VBLTNAX.js → providers-ZIVHHH4F.js} +2 -2
- package/dist/public-surface/generated-manifest.d.ts +3 -3
- package/dist/public-surface/generated-manifest.d.ts.map +1 -1
- package/dist/public-surface/source.d.ts +4 -4
- package/dist/skills/skill-loader.js +2 -1
- package/extension/manifest.json +1 -1
- package/package.json +6 -4
- package/scripts/postinstall-sync-skills.mjs +33 -0
- package/skills/opendevbrowser-product-presentation-asset/SKILL.md +2 -2
- package/dist/chunk-3VA6XR25.js.map +0 -1
- package/dist/chunk-C6QUKABT.js.map +0 -1
- /package/dist/{providers-3VBLTNAX.js.map → providers-ZIVHHH4F.js.map} +0 -0
package/README.md
CHANGED
|
@@ -99,20 +99,29 @@ cd <public-repo-root>
|
|
|
99
99
|
npm pack
|
|
100
100
|
|
|
101
101
|
WORKDIR=$(mktemp -d /tmp/opendevbrowser-first-run-XXXXXX)
|
|
102
|
+
ISOLATED_ROOT=$(mktemp -d /tmp/opendevbrowser-first-run-isolated-XXXXXX)
|
|
103
|
+
export HOME="$ISOLATED_ROOT/home"
|
|
104
|
+
export OPENCODE_CONFIG_DIR="$ISOLATED_ROOT/opencode-config"
|
|
105
|
+
export OPENCODE_CACHE_DIR="$ISOLATED_ROOT/opencode-cache"
|
|
106
|
+
export CODEX_HOME="$ISOLATED_ROOT/codex-home"
|
|
107
|
+
export CLAUDECODE_HOME="$ISOLATED_ROOT/claudecode-home"
|
|
108
|
+
export AMP_CLI_HOME="$ISOLATED_ROOT/ampcli-home"
|
|
102
109
|
cd "$WORKDIR"
|
|
103
110
|
npm init -y
|
|
104
|
-
npm install <public-repo-root>/opendevbrowser-0.0.
|
|
111
|
+
npm install <public-repo-root>/opendevbrowser-0.0.21.tgz
|
|
105
112
|
npx --no-install opendevbrowser --help
|
|
106
113
|
npx --no-install opendevbrowser help
|
|
107
114
|
```
|
|
108
115
|
|
|
109
116
|
Published npm consumer proof is tracked separately in [docs/RELEASE_RUNBOOK.md](docs/RELEASE_RUNBOOK.md) through `scripts/registry-consumer-smoke.mjs`.
|
|
110
117
|
|
|
118
|
+
Set `OPDEVBROWSER_SKIP_POSTINSTALL_SKILL_SYNC=1` before `npm install` only if you need a packaging smoke test that avoids the install-time managed-skill refresh entirely.
|
|
119
|
+
|
|
111
120
|
See [docs/FIRST_RUN_ONBOARDING.md](docs/FIRST_RUN_ONBOARDING.md) for the full onboarding checklist, [docs/DEPENDENCIES.md](docs/DEPENDENCIES.md) for runtime inventory, and [docs/SURFACE_REFERENCE.md](docs/SURFACE_REFERENCE.md) for the live CLI and tool surface.
|
|
112
121
|
|
|
113
122
|
Successful installs reconcile daemon auto-start on supported platforms so the relay is available on login. If the current CLI entrypoint lives under a transient temp-root path such as a first-run `/tmp` or `/private/tmp` workspace, OpenDevBrowser refuses to persist that path as auto-start. Rerun `opendevbrowser daemon install`, or `npx --no-install opendevbrowser daemon install` from a persistent local package install, from a stable install location if you want login auto-start; remove it later with `opendevbrowser daemon uninstall`.
|
|
114
123
|
|
|
115
|
-
Bundled skills sync to **OpenCode, Codex, ClaudeCode, and AmpCLI** targets during install.
|
|
124
|
+
Bundled skills sync to **OpenCode, Codex, ClaudeCode, and AmpCLI** targets during install. `npx opendevbrowser` manages global or project-local targets according to the selected skills mode, and package installation (`npm install -g`, local tarball install, or equivalent) best-effort syncs the canonical bundled packs into the managed global targets during package `postinstall`. See [docs/CLI.md](docs/CLI.md) for exact target paths.
|
|
116
125
|
|
|
117
126
|
### CLI + Extension (No OpenCode)
|
|
118
127
|
|
|
@@ -265,12 +274,12 @@ Start every surface check from generated help when you need the current public l
|
|
|
265
274
|
|
|
266
275
|
## Recent Features
|
|
267
276
|
|
|
268
|
-
### v0.0.
|
|
277
|
+
### v0.0.21 (Current release cycle)
|
|
269
278
|
|
|
270
|
-
- **
|
|
271
|
-
- **
|
|
272
|
-
- **
|
|
273
|
-
- **
|
|
279
|
+
- **Workflow success handoffs are now first-class across the main workflow lanes** with explicit follow-through metadata for research, shopping, product-video, and Inspire Design instead of generic success text.
|
|
280
|
+
- **Macro execution reports blocker truthfully** because `macro-resolve --execute` now preserves blocked execution wording when runtime blocker metadata survives the run.
|
|
281
|
+
- **Release validation is more stable under extension mode** because the live harnesses reuse healthy relay ownership and the product-video follow-through or timeout teardown paths no longer drift into false failures.
|
|
282
|
+
- **Help and docs now treat Inspire Design's canvas handoff as the reference workflow contract** for operator next-step guidance.
|
|
274
283
|
|
|
275
284
|
### v0.0.16
|
|
276
285
|
|
|
@@ -478,8 +487,9 @@ OpenDevBrowser includes **9 OpenDevBrowser-specific skill packs**. Install, upda
|
|
|
478
487
|
|
|
479
488
|
Installer note:
|
|
480
489
|
- `--skills-global` and `--skills-local` sync the 9 canonical `opendevbrowser-*` packs into managed global or project-local agent directories.
|
|
490
|
+
- Managed installs write a target-level ownership marker, so later update and uninstall only act on CLI-managed skill targets or older config installs that already contain canonical packs.
|
|
481
491
|
- Reinstall and update refresh drifted managed copies and leave matching packs unchanged.
|
|
482
|
-
- Uninstall removes managed canonical packs
|
|
492
|
+
- Uninstall removes managed canonical packs, retires repo-owned legacy alias directories that match shipped content, and leaves unrelated directories untouched.
|
|
483
493
|
|
|
484
494
|
Skills are discovered from (priority order):
|
|
485
495
|
1. `.opencode/skill/` (project)
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
// src/utils/package-assets.ts
|
|
2
|
+
import * as fs from "fs";
|
|
3
|
+
import * as path from "path";
|
|
4
|
+
import { fileURLToPath } from "url";
|
|
5
|
+
var PACKAGE_NAME = "opendevbrowser";
|
|
6
|
+
var SKILLS_DIR_NAME = "skills";
|
|
7
|
+
var cachedPackageRoot = null;
|
|
8
|
+
function findPackageRoot(startDir) {
|
|
9
|
+
let current = startDir;
|
|
10
|
+
while (true) {
|
|
11
|
+
const pkgPath = path.join(current, "package.json");
|
|
12
|
+
if (fs.existsSync(pkgPath)) {
|
|
13
|
+
try {
|
|
14
|
+
const parsed = JSON.parse(fs.readFileSync(pkgPath, "utf-8"));
|
|
15
|
+
if (parsed.name === PACKAGE_NAME) {
|
|
16
|
+
return current;
|
|
17
|
+
}
|
|
18
|
+
} catch {
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
const parent = path.dirname(current);
|
|
22
|
+
if (parent === current) {
|
|
23
|
+
break;
|
|
24
|
+
}
|
|
25
|
+
current = parent;
|
|
26
|
+
}
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
function getPackageRoot() {
|
|
30
|
+
if (cachedPackageRoot) {
|
|
31
|
+
return cachedPackageRoot;
|
|
32
|
+
}
|
|
33
|
+
const moduleDir = path.dirname(fileURLToPath(import.meta.url));
|
|
34
|
+
const packageRoot = findPackageRoot(moduleDir);
|
|
35
|
+
if (!packageRoot) {
|
|
36
|
+
throw new Error(`Unable to locate ${PACKAGE_NAME} package root.`);
|
|
37
|
+
}
|
|
38
|
+
cachedPackageRoot = packageRoot;
|
|
39
|
+
return cachedPackageRoot;
|
|
40
|
+
}
|
|
41
|
+
function findBundledSkillsDir() {
|
|
42
|
+
try {
|
|
43
|
+
const skillsDir = path.join(getPackageRoot(), SKILLS_DIR_NAME);
|
|
44
|
+
return fs.existsSync(skillsDir) ? skillsDir : null;
|
|
45
|
+
} catch {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
function getBundledSkillsDir() {
|
|
50
|
+
const skillsDir = findBundledSkillsDir();
|
|
51
|
+
if (!skillsDir) {
|
|
52
|
+
throw new Error(`Bundled skills directory not found in ${PACKAGE_NAME} package.`);
|
|
53
|
+
}
|
|
54
|
+
return skillsDir;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// src/skills/bundled-skill-directories.ts
|
|
58
|
+
var bundledSkillDirectories = [
|
|
59
|
+
{ name: "opendevbrowser-best-practices" },
|
|
60
|
+
{ name: "opendevbrowser-continuity-ledger" },
|
|
61
|
+
{ name: "opendevbrowser-data-extraction" },
|
|
62
|
+
{ name: "opendevbrowser-design-agent" },
|
|
63
|
+
{ name: "opendevbrowser-form-testing" },
|
|
64
|
+
{ name: "opendevbrowser-login-automation" },
|
|
65
|
+
{ name: "opendevbrowser-product-presentation-asset" },
|
|
66
|
+
{ name: "opendevbrowser-research" },
|
|
67
|
+
{ name: "opendevbrowser-shopping" }
|
|
68
|
+
];
|
|
69
|
+
var bundledSkillDirectoryByName = new Map(
|
|
70
|
+
bundledSkillDirectories.map((entry) => [entry.name, entry])
|
|
71
|
+
);
|
|
72
|
+
function listBundledSkillDirectories() {
|
|
73
|
+
return [...bundledSkillDirectories];
|
|
74
|
+
}
|
|
75
|
+
function isBundledSkillName(name) {
|
|
76
|
+
return bundledSkillDirectoryByName.has(name);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export {
|
|
80
|
+
getPackageRoot,
|
|
81
|
+
findBundledSkillsDir,
|
|
82
|
+
getBundledSkillsDir,
|
|
83
|
+
listBundledSkillDirectories,
|
|
84
|
+
isBundledSkillName
|
|
85
|
+
};
|
|
86
|
+
//# sourceMappingURL=chunk-3ILXPKSJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/package-assets.ts","../src/skills/bundled-skill-directories.ts"],"sourcesContent":["import * as fs from \"fs\";\nimport * as path from \"path\";\nimport { fileURLToPath } from \"url\";\n\nconst PACKAGE_NAME = \"opendevbrowser\";\nconst SKILLS_DIR_NAME = \"skills\";\n\nlet cachedPackageRoot: string | null = null;\n\nfunction findPackageRoot(startDir: string): string | null {\n let current = startDir;\n\n while (true) {\n const pkgPath = path.join(current, \"package.json\");\n if (fs.existsSync(pkgPath)) {\n try {\n const parsed = JSON.parse(fs.readFileSync(pkgPath, \"utf-8\")) as { name?: string };\n if (parsed.name === PACKAGE_NAME) {\n return current;\n }\n } catch {\n void 0;\n }\n }\n\n const parent = path.dirname(current);\n if (parent === current) {\n break;\n }\n current = parent;\n }\n\n return null;\n}\n\nexport function getPackageRoot(): string {\n if (cachedPackageRoot) {\n return cachedPackageRoot;\n }\n const moduleDir = path.dirname(fileURLToPath(import.meta.url));\n const packageRoot = findPackageRoot(moduleDir);\n if (!packageRoot) {\n throw new Error(`Unable to locate ${PACKAGE_NAME} package root.`);\n }\n cachedPackageRoot = packageRoot;\n return cachedPackageRoot;\n}\n\nexport function findBundledSkillsDir(): string | null {\n try {\n const skillsDir = path.join(getPackageRoot(), SKILLS_DIR_NAME);\n return fs.existsSync(skillsDir) ? skillsDir : null;\n } catch {\n return null;\n }\n}\n\nexport function getBundledSkillsDir(): string {\n const skillsDir = findBundledSkillsDir();\n if (!skillsDir) {\n throw new Error(`Bundled skills directory not found in ${PACKAGE_NAME} package.`);\n }\n return skillsDir;\n}\n","export interface BundledSkillDirectory {\n name: string;\n}\n\nexport const bundledSkillDirectories: BundledSkillDirectory[] = [\n { name: \"opendevbrowser-best-practices\" },\n { name: \"opendevbrowser-continuity-ledger\" },\n { name: \"opendevbrowser-data-extraction\" },\n { name: \"opendevbrowser-design-agent\" },\n { name: \"opendevbrowser-form-testing\" },\n { name: \"opendevbrowser-login-automation\" },\n { name: \"opendevbrowser-product-presentation-asset\" },\n { name: \"opendevbrowser-research\" },\n { name: \"opendevbrowser-shopping\" }\n];\n\nconst bundledSkillDirectoryByName = new Map(\n bundledSkillDirectories.map((entry) => [entry.name, entry] as const)\n);\n\nexport function listBundledSkillDirectories(): BundledSkillDirectory[] {\n return [...bundledSkillDirectories];\n}\n\nexport function getBundledSkillDirectory(name: string): BundledSkillDirectory | null {\n return bundledSkillDirectoryByName.get(name) ?? null;\n}\n\nexport function isBundledSkillName(name: string): boolean {\n return bundledSkillDirectoryByName.has(name);\n}\n"],"mappings":";AAAA,YAAY,QAAQ;AACpB,YAAY,UAAU;AACtB,SAAS,qBAAqB;AAE9B,IAAM,eAAe;AACrB,IAAM,kBAAkB;AAExB,IAAI,oBAAmC;AAEvC,SAAS,gBAAgB,UAAiC;AACxD,MAAI,UAAU;AAEd,SAAO,MAAM;AACX,UAAM,UAAe,UAAK,SAAS,cAAc;AACjD,QAAO,cAAW,OAAO,GAAG;AAC1B,UAAI;AACF,cAAM,SAAS,KAAK,MAAS,gBAAa,SAAS,OAAO,CAAC;AAC3D,YAAI,OAAO,SAAS,cAAc;AAChC,iBAAO;AAAA,QACT;AAAA,MACF,QAAQ;AAAA,MAER;AAAA,IACF;AAEA,UAAM,SAAc,aAAQ,OAAO;AACnC,QAAI,WAAW,SAAS;AACtB;AAAA,IACF;AACA,cAAU;AAAA,EACZ;AAEA,SAAO;AACT;AAEO,SAAS,iBAAyB;AACvC,MAAI,mBAAmB;AACrB,WAAO;AAAA,EACT;AACA,QAAM,YAAiB,aAAQ,cAAc,YAAY,GAAG,CAAC;AAC7D,QAAM,cAAc,gBAAgB,SAAS;AAC7C,MAAI,CAAC,aAAa;AAChB,UAAM,IAAI,MAAM,oBAAoB,YAAY,gBAAgB;AAAA,EAClE;AACA,sBAAoB;AACpB,SAAO;AACT;AAEO,SAAS,uBAAsC;AACpD,MAAI;AACF,UAAM,YAAiB,UAAK,eAAe,GAAG,eAAe;AAC7D,WAAU,cAAW,SAAS,IAAI,YAAY;AAAA,EAChD,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEO,SAAS,sBAA8B;AAC5C,QAAM,YAAY,qBAAqB;AACvC,MAAI,CAAC,WAAW;AACd,UAAM,IAAI,MAAM,yCAAyC,YAAY,WAAW;AAAA,EAClF;AACA,SAAO;AACT;;;AC3DO,IAAM,0BAAmD;AAAA,EAC9D,EAAE,MAAM,gCAAgC;AAAA,EACxC,EAAE,MAAM,mCAAmC;AAAA,EAC3C,EAAE,MAAM,iCAAiC;AAAA,EACzC,EAAE,MAAM,8BAA8B;AAAA,EACtC,EAAE,MAAM,8BAA8B;AAAA,EACtC,EAAE,MAAM,kCAAkC;AAAA,EAC1C,EAAE,MAAM,4CAA4C;AAAA,EACpD,EAAE,MAAM,0BAA0B;AAAA,EAClC,EAAE,MAAM,0BAA0B;AACpC;AAEA,IAAM,8BAA8B,IAAI;AAAA,EACtC,wBAAwB,IAAI,CAAC,UAAU,CAAC,MAAM,MAAM,KAAK,CAAU;AACrE;AAEO,SAAS,8BAAuD;AACrE,SAAO,CAAC,GAAG,uBAAuB;AACpC;AAMO,SAAS,mBAAmB,MAAuB;AACxD,SAAO,4BAA4B,IAAI,IAAI;AAC7C;","names":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SkillLoader
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-STGGGVYT.js";
|
|
4
4
|
import {
|
|
5
5
|
writeFileAtomic
|
|
6
6
|
} from "./chunk-TBUCZX4A.js";
|
|
@@ -27,7 +27,7 @@ import {
|
|
|
27
27
|
runResearchWorkflow,
|
|
28
28
|
runShoppingWorkflow,
|
|
29
29
|
toSnippet
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-ZE2E7ZGH.js";
|
|
31
31
|
import {
|
|
32
32
|
ProviderRuntimeError
|
|
33
33
|
} from "./chunk-FUSXMW3G.js";
|
|
@@ -31811,7 +31811,7 @@ var DAEMON_STATUS_RETRY_OPTIONS = {
|
|
|
31811
31811
|
retryDelayMs: 250
|
|
31812
31812
|
};
|
|
31813
31813
|
var DAEMON_RESTART_STATUS_TIMEOUT_MS = 5e3;
|
|
31814
|
-
var
|
|
31814
|
+
var DAEMON_RESTART_READY_TIMEOUT_MS = 15e3;
|
|
31815
31815
|
var DAEMON_RESTART_POLL_DELAY_MS = 250;
|
|
31816
31816
|
var cachedClientState;
|
|
31817
31817
|
var getClientStateFilePath = () => {
|
|
@@ -32172,18 +32172,19 @@ var restartDaemonConnection = async (connection) => {
|
|
|
32172
32172
|
child.unref();
|
|
32173
32173
|
};
|
|
32174
32174
|
var waitForCurrentDaemonStatus = async (connection) => {
|
|
32175
|
-
|
|
32175
|
+
const deadline = Date.now() + DAEMON_RESTART_READY_TIMEOUT_MS;
|
|
32176
|
+
while (true) {
|
|
32176
32177
|
const status = await fetchDaemonStatus(connection.port, connection.token, {
|
|
32177
32178
|
timeoutMs: DAEMON_RESTART_STATUS_TIMEOUT_MS
|
|
32178
32179
|
});
|
|
32179
32180
|
if (status?.ok && isCurrentDaemonFingerprint(status.fingerprint)) {
|
|
32180
32181
|
return status;
|
|
32181
32182
|
}
|
|
32182
|
-
if (
|
|
32183
|
-
|
|
32183
|
+
if (Date.now() >= deadline) {
|
|
32184
|
+
return null;
|
|
32184
32185
|
}
|
|
32186
|
+
await sleep3(DAEMON_RESTART_POLL_DELAY_MS);
|
|
32185
32187
|
}
|
|
32186
|
-
return null;
|
|
32187
32188
|
};
|
|
32188
32189
|
var resolveMetadataConnection = async (metadataConnection, configuredConnection) => {
|
|
32189
32190
|
const status = await fetchDaemonStatus(
|
|
@@ -32294,6 +32295,7 @@ var onboarding_metadata_default = {
|
|
|
32294
32295
|
skillTopic: "quick start",
|
|
32295
32296
|
validatedSkillTopic: "validated capability lanes",
|
|
32296
32297
|
designSkillName: "opendevbrowser-design-agent",
|
|
32298
|
+
designSkillTopic: "canvas-contract",
|
|
32297
32299
|
localOnlyToolNames: [
|
|
32298
32300
|
"opendevbrowser_prompting_guide",
|
|
32299
32301
|
"opendevbrowser_skill_list",
|
|
@@ -32440,7 +32442,7 @@ var buildAnnotateResult = async (payload) => {
|
|
|
32440
32442
|
// src/public-surface/generated-manifest.ts
|
|
32441
32443
|
var PUBLIC_SURFACE_MANIFEST = {
|
|
32442
32444
|
"schemaVersion": "2026-04-04",
|
|
32443
|
-
"generatedAt": "2026-04-
|
|
32445
|
+
"generatedAt": "2026-04-20T04:16:59.279Z",
|
|
32444
32446
|
"cli": {
|
|
32445
32447
|
"groups": [
|
|
32446
32448
|
{
|
|
@@ -32635,10 +32637,13 @@ var PUBLIC_SURFACE_MANIFEST = {
|
|
|
32635
32637
|
{
|
|
32636
32638
|
"name": "update",
|
|
32637
32639
|
"description": "Clear cached plugin and refresh managed skill packs",
|
|
32638
|
-
"usage": "npx opendevbrowser update [--global|--local]",
|
|
32640
|
+
"usage": "npx opendevbrowser update [--global|--local] [--skills-global|--skills-local|--no-skills]",
|
|
32639
32641
|
"flags": [
|
|
32640
32642
|
"--global",
|
|
32641
|
-
"--local"
|
|
32643
|
+
"--local",
|
|
32644
|
+
"--skills-global",
|
|
32645
|
+
"--skills-local",
|
|
32646
|
+
"--no-skills"
|
|
32642
32647
|
],
|
|
32643
32648
|
"groupId": "install_lifecycle",
|
|
32644
32649
|
"groupTitle": "Install & Lifecycle",
|
|
@@ -32647,10 +32652,11 @@ var PUBLIC_SURFACE_MANIFEST = {
|
|
|
32647
32652
|
{
|
|
32648
32653
|
"name": "uninstall",
|
|
32649
32654
|
"description": "Remove plugin from config and clean managed skill packs",
|
|
32650
|
-
"usage": "npx opendevbrowser uninstall [--global|--local] [--no-prompt] [--quiet]",
|
|
32655
|
+
"usage": "npx opendevbrowser uninstall [--global|--local] [--no-skills] [--no-prompt] [--quiet]",
|
|
32651
32656
|
"flags": [
|
|
32652
32657
|
"--global",
|
|
32653
32658
|
"--local",
|
|
32659
|
+
"--no-skills",
|
|
32654
32660
|
"--no-prompt",
|
|
32655
32661
|
"--quiet"
|
|
32656
32662
|
],
|
|
@@ -35013,4 +35019,4 @@ export {
|
|
|
35013
35019
|
TOOL_SURFACE_ENTRIES
|
|
35014
35020
|
};
|
|
35015
35021
|
/* v8 ignore next -- @preserve */
|
|
35016
|
-
//# sourceMappingURL=chunk-
|
|
35022
|
+
//# sourceMappingURL=chunk-OGE5KJ4X.js.map
|