opencodekit 0.21.1 → 0.21.2

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/dist/index.js CHANGED
@@ -20,7 +20,7 @@ var __require = /* @__PURE__ */ createRequire(import.meta.url);
20
20
 
21
21
  //#endregion
22
22
  //#region package.json
23
- var version = "0.21.1";
23
+ var version = "0.21.2";
24
24
 
25
25
  //#endregion
26
26
  //#region src/utils/license.ts
@@ -3125,9 +3125,9 @@ const MODEL_PRESETS = {
3125
3125
  recommend: {
3126
3126
  model: "github-copilot/gpt-5.4",
3127
3127
  agents: {
3128
- build: "github-copilot/claude-opus-4.6",
3128
+ build: "github-copilot/gpt-5.4",
3129
3129
  plan: "github-copilot/gpt-5.4",
3130
- review: "github-copilot/claude-opus-4.6",
3130
+ review: "github-copilot/gpt-5.3-codex",
3131
3131
  explore: "github-copilot/claude-haiku-4.5",
3132
3132
  general: "github-copilot/gpt-5.3-codex",
3133
3133
  vision: "github-copilot/gemini-3.1-pro-preview",
@@ -3453,7 +3453,7 @@ async function initCommand(rawOptions = {}) {
3453
3453
  {
3454
3454
  value: "recommend",
3455
3455
  label: "Recommended models",
3456
- hint: "gpt-5.4, opus-4.6, sonnet-4.6, gemini-3.1"
3456
+ hint: "gpt-5.4, gpt-5.3-codex, sonnet-4.6, gemini-3.1"
3457
3457
  },
3458
3458
  {
3459
3459
  value: "custom",
@@ -21,7 +21,7 @@ Your loop: **perceive → create → verify → ship.**
21
21
  When instructions conflict:
22
22
 
23
23
  1. **Security** — never expose or invent credentials
24
- 2. **Anti-hallucination** — verify before asserting; if context is missing, prefer lookup over guessing; if you must proceed without full context, label assumptions explicitly and choose a reversible action
24
+ 2. **Anti-hallucination** — verify before asserting; if context is missing, prefer lookup over guessing; if you must proceed without full context, label assumptions explicitly and choose a reversible action. **Specific products / versions / launch dates / specs**: when the user names a real product (e.g. "DJI Pocket 4", "Gemini 3 Pro", a new SDK), always WebSearch its current state before answering. Forbidden phrases: "I think X hasn't launched", "X is currently version N" (without checking), "X probably doesn't exist", "as far as I know X's specs are…". Allowed: "Let me search for the latest state of X."
25
25
 
26
26
  ### Source Hierarchy
27
27
 
@@ -70,6 +70,8 @@ If a newer user instruction conflicts with an earlier one, follow the newer inst
70
70
  - Include effort signal when proposing work: **S** (<1h), **M** (1-3h), **L** (1-2d), **XL** (>2d)
71
71
  - Stop when "good enough" — note what signals would justify revisiting
72
72
 
73
+ **Trivial Task Escape Hatch.** When effort = **S** AND the change is reversible (typo fix, comment edit, single-line config tweak, isolated test addition), skip the heavy ritual: no Plan Quality Gate, no Worker Distrust Protocol, no Structured Termination Contract, no PRD. Just do it, run the relevant verification command, and report. Rigor scales with risk — don't pay overhead the change doesn't warrant.
74
+
73
75
  ### Anti-Redundancy
74
76
 
75
77
  - **Search before creating** — always check if a utility, helper, or component already exists before creating a new one
@@ -359,34 +361,41 @@ This ensures every prompt is execution-ready before work begins.
359
361
 
360
362
  When user intent is clear, load the appropriate skills:
361
363
 
362
- | Intent | Phase | Skills to Load |
363
- | ------------------------- | -------------- | ---------------------------------------------------------------------------------- |
364
- | "Build a feature" | Define → Build | `prd` → `writing-plans` → `incremental-implementation` + `test-driven-development` |
365
- | "Fix a bug" | Verify | `systematic-debugging` → `root-cause-tracing` |
366
- | "Review code" | Review | `receiving-code-review` or `requesting-code-review` |
367
- | "Simplify / refactor" | Review | `code-simplification` |
368
- | "Ship it" | Ship | `verification-before-completion` → `finishing-a-development-branch` |
369
- | "Plan this" | Plan | `brainstorming` → `prd` → `writing-plans` |
370
- | "Execute a plan" | Build | `executing-plans` + `subagent-driven-development` |
371
- | "Debug flaky tests" | Verify | `condition-based-waiting` + `systematic-debugging` |
372
- | "Debug in browser" | Verify | `chrome-devtools` or `playwright` |
373
- | "Write / fix tests" | Verify | `test-driven-development` + `testing-anti-patterns` |
374
- | "Build UI" | Build | `frontend-design` + `design-taste-frontend` |
375
- | "Build UI from mockup" | Build | `mockup-to-code` + `frontend-design` |
376
- | "Redesign existing UI" | Build | `redesign-existing-projects` + `design-taste-frontend` |
377
- | "Review UI / UX" | Review | `web-design-guidelines` + `visual-analysis` + `accessibility-audit` |
378
- | "Audit accessibility" | Verify | `accessibility-audit` |
379
- | "Build React / Next.js" | Build | `react-best-practices` + `frontend-design` |
380
- | "Research X" | Define | `deep-research` or `opensrc` |
381
- | "Design an API" | Build | `api-and-interface-design` + `documentation-and-adrs` |
382
- | "Set up CI/CD" | Ship | `ci-cd-and-automation` + `verification-gates` |
383
- | "Deploy app" | Ship | `vercel-deploy-claimable` |
384
- | "Deprecate / migrate" | Ship | `deprecation-and-migration` + `incremental-implementation` |
385
- | "Write docs / record ADR" | Define | `documentation-and-adrs` |
386
- | "Optimize performance" | Verify | `performance-optimization` |
387
- | "Harden security" | Verify | `security-and-hardening` + `defense-in-depth` |
388
- | "Verify before merge" | Ship | `reconcile` + `verification-gates` |
389
- | "Create a skill" | Build | `skill-creator` + `writing-skills` |
364
+ | Intent | Phase | Skills to Load |
365
+ | ----------------------------- | -------------- | ------------------------------------------------------------------------------------------------ |
366
+ | "Build a feature" | Define → Build | `prd` → `writing-plans` → `incremental-implementation` + `test-driven-development` |
367
+ | "Fix a bug" | Verify | `systematic-debugging` → `root-cause-tracing` |
368
+ | "Review code" | Review | `receiving-code-review` or `requesting-code-review` |
369
+ | "Simplify / refactor" | Review | `code-simplification` |
370
+ | "Ship it" | Ship | `verification-before-completion` → `finishing-a-development-branch` |
371
+ | "Plan this" | Plan | `brainstorming` → `prd` → `writing-plans` |
372
+ | "Execute a plan" | Build | `executing-plans` + `subagent-driven-development` |
373
+ | "Debug flaky tests" | Verify | `condition-based-waiting` + `systematic-debugging` |
374
+ | "Debug in browser" | Verify | `chrome-devtools` or `playwright` |
375
+ | "Write / fix tests" | Verify | `test-driven-development` + `testing-anti-patterns` |
376
+ | "Build UI" | Build | `frontend-design` + `design-taste-frontend` |
377
+ | "Build UI from mockup" | Build | `mockup-to-code` + `frontend-design` |
378
+ | "Redesign existing UI" | Build | `redesign-existing-projects` + `design-taste-frontend` |
379
+ | "Build branded design" | Build | `brand-asset-protocol` + `anti-ai-slop` + (target skill: frontend-design / hi-fi-prototype-html) |
380
+ | "Vague design brief" | Define | `design-direction-advisor` + `anti-ai-slop` |
381
+ | "Build hi-fi prototype" | Build | `hi-fi-prototype-html` + `anti-ai-slop` + `playwright` |
382
+ | "Build slide deck" | Build | `html-deck-export` + `anti-ai-slop` + (optional: `brand-asset-protocol`) |
383
+ | "Avoid AI design defaults" | Build / Review | `anti-ai-slop` |
384
+ | "Review UI / UX" | Review | `web-design-guidelines` + `visual-analysis` + `accessibility-audit` |
385
+ | "Audit accessibility" | Verify | `accessibility-audit` |
386
+ | "Build React / Next.js" | Build | `react-best-practices` + `frontend-design` |
387
+ | "Research X" | Define | `deep-research` or `opensrc` |
388
+ | "Design an API" | Build | `api-and-interface-design` + `documentation-and-adrs` |
389
+ | "Set up CI/CD" | Ship | `ci-cd-and-automation` + `verification-gates` |
390
+ | "Deploy app" | Ship | `vercel-deploy-claimable` |
391
+ | "Deprecate / migrate" | Ship | `deprecation-and-migration` + `incremental-implementation` |
392
+ | "Write docs / record ADR" | Define | `documentation-and-adrs` |
393
+ | "Optimize performance" | Verify | `performance-optimization` |
394
+ | "Harden security" | Verify | `security-and-hardening` + `defense-in-depth` |
395
+ | "Verify before merge" | Ship | `reconcile` + `verification-gates` |
396
+ | "Measure if a skill helps" | Verify | `agent-evals` |
397
+ | "Compress / hand off context" | Build | `context-condensation` + `context-management` |
398
+ | "Create a skill" | Build | `skill-creator` + `writing-skills` |
390
399
 
391
400
  ---
392
401
 
@@ -82,7 +82,6 @@ Use these when the user requests a specific visual direction or when your audit
82
82
  - `high-end-visual-design` — luxury/premium visual polish
83
83
  - `minimalist-ui` — editorial/clean, monochrome, sharp borders
84
84
  - `industrial-brutalist-ui` — experimental/CRT/Swiss mechanical aesthetic
85
- - `stitch-design-taste` — design rules aligned to Stitch export patterns
86
85
  - `full-output-enforcement` — when outputs are lazy/incomplete
87
86
 
88
87
  ## Design Taste Protocol (anti-slop)
Binary file
@@ -3,7 +3,7 @@
3
3
  "agent": {
4
4
  "build": {
5
5
  "description": "Primary development agent with full codebase access",
6
- "model": "github-copilot/claude-opus-4.6"
6
+ "model": "github-copilot/gpt-5.4"
7
7
  },
8
8
  "compaction": {
9
9
  "description": "Session summarizer for context continuity across compactions"
@@ -26,7 +26,7 @@
26
26
  },
27
27
  "review": {
28
28
  "description": "Code review, debugging, and security audit specialist",
29
- "model": "github-copilot/claude-opus-4.6"
29
+ "model": "github-copilot/gpt-5.3-codex"
30
30
  },
31
31
  "scout": {
32
32
  "description": "External research specialist for library docs and patterns",
@@ -1,22 +1,21 @@
1
1
  {
2
- "name": "opencode",
3
- "version": "1.0.0",
4
- "description": "Opencode plugin",
5
- "keywords": [],
6
- "license": "ISC",
7
- "author": "",
8
- "type": "module",
9
- "main": "index.js",
10
- "scripts": {
11
- "type-check": "tsc --noEmit"
12
- },
13
- "dependencies": {
14
- "@google/stitch-sdk": "^0.0.3",
15
- "@opencode-ai/plugin": "1.4.9"
16
- },
17
- "devDependencies": {
18
- "@types/node": "^25.3.0",
19
- "bun-types": "^1.3.9",
20
- "typescript": "^5.9.3"
21
- }
2
+ "name": "opencode",
3
+ "version": "1.0.0",
4
+ "description": "Opencode plugin",
5
+ "keywords": [],
6
+ "license": "ISC",
7
+ "author": "",
8
+ "type": "module",
9
+ "main": "index.js",
10
+ "scripts": {
11
+ "type-check": "tsc --noEmit"
12
+ },
13
+ "dependencies": {
14
+ "@opencode-ai/plugin": "1.4.9"
15
+ },
16
+ "devDependencies": {
17
+ "@types/node": "^25.3.0",
18
+ "bun-types": "^1.3.9",
19
+ "typescript": "^5.9.3"
20
+ }
22
21
  }
@@ -9,7 +9,6 @@ plugin/
9
9
  ├── memory.ts # 4-tier automated memory system (capture → distill → curate → inject)
10
10
  ├── sessions.ts # Session search tools (find/read)
11
11
  ├── copilot-auth.ts # GitHub Copilot provider/auth integration
12
- ├── stitch.ts # Google Stitch UI generation (8 tools via @google/stitch-sdk)
13
12
  ├── skill-mcp.ts # Skill-scoped MCP bridge (skill_mcp tools)
14
13
  └── lib/
15
14
  ├── memory-tools.ts # 6 core memory tools (observation, search, get, read, update, timeline)
@@ -59,12 +58,6 @@ plugin/
59
58
  - Handles GitHub Copilot OAuth/device flow
60
59
  - Adds model/provider request shaping for compatible reasoning behavior
61
60
 
62
- - `stitch.ts`
63
- - Google Stitch UI generation via `@google/stitch-sdk`
64
- - 8 tools: create_project, get_project, list_projects, list_screens, get_screen, generate_screen, edit_screens, generate_variants
65
- - Direct HTTP to `stitch.googleapis.com/mcp` (no MCP subprocess)
66
- - Auth: STITCH_API_KEY or STITCH_ACCESS_TOKEN env var
67
-
68
61
  ## Notes
69
62
 
70
63
  - OpenCode auto-discovers every `.ts` file in `plugin/` as a plugin — keep helper modules in `lib/`