deveco-harness 0.1.0
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.en.md +71 -0
- package/README.md +71 -0
- package/deveco-harness.example.jsonc +32 -0
- package/dist/index.js +758 -0
- package/package.json +48 -0
- package/prompts/build.txt +164 -0
- package/prompts/plan.txt +118 -0
- package/skills/arkts-error-fixes/README.md +151 -0
- package/skills/arkts-error-fixes/SKILL.md +150 -0
- package/skills/arkts-error-fixes/assets/AnyTypeError.ets +269 -0
- package/skills/arkts-error-fixes/assets/AppStorageError.ets +22 -0
- package/skills/arkts-error-fixes/assets/ArrowFunctionConversionError.ets +42 -0
- package/skills/arkts-error-fixes/assets/AvoidAreaTypeError.ets +43 -0
- package/skills/arkts-error-fixes/assets/BreakpointTypeError.ets +71 -0
- package/skills/arkts-error-fixes/assets/CatchClauseTypeError.ets +54 -0
- package/skills/arkts-error-fixes/assets/ColorConsistencyError.ets +88 -0
- package/skills/arkts-error-fixes/assets/ColorPropertyError.ets +39 -0
- package/skills/arkts-error-fixes/assets/ContextTypeError.ets +105 -0
- package/skills/arkts-error-fixes/assets/DecoratorStateError.ets +64 -0
- package/skills/arkts-error-fixes/assets/DisplayListenerTypeError.ets +129 -0
- package/skills/arkts-error-fixes/assets/DuplicateEntryError.ets +35 -0
- package/skills/arkts-error-fixes/assets/ESObjectTypeError.ets +137 -0
- package/skills/arkts-error-fixes/assets/FontColorPropertyError.ets +42 -0
- package/skills/arkts-error-fixes/assets/FunctionReturnTypeError.ets +41 -0
- package/skills/arkts-error-fixes/assets/IDataSourceError.ets +79 -0
- package/skills/arkts-error-fixes/assets/ImplementationNotAllowedError.ets +38 -0
- package/skills/arkts-error-fixes/assets/InterfaceMethodSignatureError.ets +43 -0
- package/skills/arkts-error-fixes/assets/NotificationError.ets +34 -0
- package/skills/arkts-error-fixes/assets/ObjectLiteralInterfaceError.ets +49 -0
- package/skills/arkts-error-fixes/assets/ObjectLiteralTypeError.ets +54 -0
- package/skills/arkts-error-fixes/assets/ObjectSpreadError.ets +29 -0
- package/skills/arkts-error-fixes/assets/PossiblyNullError.ets +32 -0
- package/skills/arkts-error-fixes/assets/ResourceConversionError.ets +159 -0
- package/skills/arkts-error-fixes/assets/StandaloneFunctionContext.ets +116 -0
- package/skills/arkts-error-fixes/assets/StandaloneFunctionError.ets +85 -0
- package/skills/arkts-error-fixes/assets/StorageLinkDefaultError.ets +41 -0
- package/skills/arkts-error-fixes/assets/TitleButtonRectTypeError.ets +86 -0
- package/skills/arkts-error-fixes/assets/UnusedVariableWarning.ets +102 -0
- package/skills/arkts-error-fixes/assets/UtilityTypeError.ets +176 -0
- package/skills/arkts-error-fixes/assets/WindowRectSizeError.ets +65 -0
- package/skills/arkts-error-fixes/assets/WindowTypeError.ets +37 -0
- package/skills/arkts-error-fixes/reference/any_type_errors.md +433 -0
- package/skills/arkts-error-fixes/reference/appstorage_errors.md +95 -0
- package/skills/arkts-error-fixes/reference/arrow_function_conversion_errors.md +163 -0
- package/skills/arkts-error-fixes/reference/avoid_area_type_errors.md +59 -0
- package/skills/arkts-error-fixes/reference/breakpoint_type_errors.md +122 -0
- package/skills/arkts-error-fixes/reference/catch_clause_type_errors.md +89 -0
- package/skills/arkts-error-fixes/reference/color_consistency_errors.md +209 -0
- package/skills/arkts-error-fixes/reference/color_property_errors.md +136 -0
- package/skills/arkts-error-fixes/reference/context_type_errors.md +260 -0
- package/skills/arkts-error-fixes/reference/decorator_state_errors.md +109 -0
- package/skills/arkts-error-fixes/reference/display_listener_type_errors.md +149 -0
- package/skills/arkts-error-fixes/reference/duplicate_entry_errors.md +193 -0
- package/skills/arkts-error-fixes/reference/esobject_type_errors.md +110 -0
- package/skills/arkts-error-fixes/reference/fontcolor_property_errors.md +104 -0
- package/skills/arkts-error-fixes/reference/function_return_type_errors.md +194 -0
- package/skills/arkts-error-fixes/reference/idata_source_errors.md +77 -0
- package/skills/arkts-error-fixes/reference/implementation_not_allowed_errors.md +191 -0
- package/skills/arkts-error-fixes/reference/interface_method_signature_errors.md +143 -0
- package/skills/arkts-error-fixes/reference/notification_errors.md +110 -0
- package/skills/arkts-error-fixes/reference/object_literal_interface_errors.md +156 -0
- package/skills/arkts-error-fixes/reference/object_literal_type_errors.md +110 -0
- package/skills/arkts-error-fixes/reference/object_spread_errors.md +105 -0
- package/skills/arkts-error-fixes/reference/possibly_null_errors.md +156 -0
- package/skills/arkts-error-fixes/reference/resource_conversion_errors.md +154 -0
- package/skills/arkts-error-fixes/reference/standalone_function_errors.md +68 -0
- package/skills/arkts-error-fixes/reference/storage_link_default_errors.md +124 -0
- package/skills/arkts-error-fixes/reference/title_button_rect_type_errors.md +167 -0
- package/skills/arkts-error-fixes/reference/unused_variable_warnings.md +295 -0
- package/skills/arkts-error-fixes/reference/utility_type_errors.md +290 -0
- package/skills/arkts-error-fixes/reference/window_rect_size_errors.md +70 -0
- package/skills/arkts-error-fixes/reference/window_type_errors.md +95 -0
- package/skills/arkts-grammar-standards/SKILL.md +71 -0
- package/skills/arkts-grammar-standards/references/basic-syntax.md +103 -0
- package/skills/arkts-grammar-standards/references/restrictions.md +100 -0
- package/skills/arkts-grammar-standards/references/topic-aliases.json +93 -0
- package/skills/arkts-grammar-standards/references/ts-diff.md +108 -0
- package/skills/arkts-runtime-fix/SKILL.md +152 -0
- package/skills/arkts-runtime-fix/SKILL_CN.md +123 -0
- package/skills/arkts-runtime-fix/evals/evals.json +17 -0
- package/skills/arkts-runtime-fix/scripts/collect-hilog.mjs +116 -0
- package/skills/arkts-runtime-fix/scripts/collect-hilog.ts +115 -0
- package/skills/arkts-runtime-fix/scripts/fetch-faultlog.mjs +117 -0
- package/skills/arkts-runtime-fix/scripts/fetch-faultlog.ts +116 -0
- package/skills/arkts-runtime-fix/scripts/jscrash-report.mjs +149 -0
- package/skills/arkts-runtime-fix/scripts/parse-jscrash-log.mjs +126 -0
- package/skills/arkts-runtime-fix/scripts/parse-jscrash-log.ts +126 -0
- package/skills/arkts-runtime-fix/scripts/probe-faultlogger.mjs +160 -0
- package/skills/arkts-runtime-fix/scripts/probe-faultlogger.ts +160 -0
- package/skills/arkts-runtime-fix/scripts/shared/hdc.mjs +107 -0
- package/skills/arkts-runtime-fix/scripts/shared/hdc.ts +58 -0
- package/skills/arkts-runtime-fix/scripts/shared/jscrash-faultlogger.mjs +143 -0
- package/skills/arkts-runtime-fix/scripts/shared/jscrash-faultlogger.ts +148 -0
- package/skills/arkts-runtime-fix/scripts/shared/jscrash-parse.mjs +389 -0
- package/skills/arkts-runtime-fix/scripts/shared/jscrash-parse.ts +409 -0
- package/skills/arkts-runtime-fix/scripts/shared/utils.mjs +27 -0
- package/skills/arkts-runtime-fix/scripts/shared/utils.ts +27 -0
- package/skills/arkui-knowledge/SKILL.md +90 -0
- package/skills/arkui-knowledge/references/api-guardrails.md +60 -0
- package/skills/arkui-knowledge/references/common-mistakes.md +119 -0
- package/skills/arkui-knowledge/references/component-cookbook.md +135 -0
- package/skills/arkui-knowledge/references/ui-quality-checklist.md +36 -0
- package/skills/deveco-create-project/SKILL.md +144 -0
- package/skills/deveco-create-project/application/AppScope/app.json5 +10 -0
- package/skills/deveco-create-project/application/AppScope/resources/base/element/string.json +8 -0
- package/skills/deveco-create-project/application/AppScope/resources/base/media/background.png +0 -0
- package/skills/deveco-create-project/application/AppScope/resources/base/media/foreground.png +0 -0
- package/skills/deveco-create-project/application/AppScope/resources/base/media/layered_image.json +7 -0
- package/skills/deveco-create-project/application/build-profile.json5 +42 -0
- package/skills/deveco-create-project/application/code-linter.json5 +32 -0
- package/skills/deveco-create-project/application/entry/build-profile.json5 +33 -0
- package/skills/deveco-create-project/application/entry/hvigorfile.ts +7 -0
- package/skills/deveco-create-project/application/entry/obfuscation-rules.txt +23 -0
- package/skills/deveco-create-project/application/entry/oh-package.json5 +10 -0
- package/skills/deveco-create-project/application/entry/src/main/ets/entryability/EntryAbility.ets +63 -0
- package/skills/deveco-create-project/application/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets +31 -0
- package/skills/deveco-create-project/application/entry/src/main/ets/pages/Index.ets +38 -0
- package/skills/deveco-create-project/application/entry/src/main/module.json5 +50 -0
- package/skills/deveco-create-project/application/entry/src/main/resources/base/element/color.json +8 -0
- package/skills/deveco-create-project/application/entry/src/main/resources/base/element/float.json +8 -0
- package/skills/deveco-create-project/application/entry/src/main/resources/base/element/string.json +16 -0
- package/skills/deveco-create-project/application/entry/src/main/resources/base/media/background.png +0 -0
- package/skills/deveco-create-project/application/entry/src/main/resources/base/media/foreground.png +0 -0
- package/skills/deveco-create-project/application/entry/src/main/resources/base/media/layered_image.json +7 -0
- package/skills/deveco-create-project/application/entry/src/main/resources/base/media/startIcon.png +0 -0
- package/skills/deveco-create-project/application/entry/src/main/resources/base/profile/backup_config.json +3 -0
- package/skills/deveco-create-project/application/entry/src/main/resources/base/profile/main_pages.json +5 -0
- package/skills/deveco-create-project/application/entry/src/main/resources/dark/element/color.json +8 -0
- package/skills/deveco-create-project/application/hvigor/hvigor-config.json5 +23 -0
- package/skills/deveco-create-project/application/hvigorfile.ts +7 -0
- package/skills/deveco-create-project/application/oh-package.json5 +10 -0
- package/skills/deveco-create-project/scripts/copy-template.mjs +216 -0
- package/skills/deveco-create-project/scripts/copy-template.ts +214 -0
- package/skills/deveco-create-project/scripts/detect-sdk.mjs +82 -0
- package/skills/deveco-create-project/scripts/detect-sdk.ts +95 -0
package/README.en.md
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# deveco-harness
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<a href="README.md">简体中文</a> · English
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
OpenCode plugin for DevEco and HarmonyOS development workflows.
|
|
8
|
+
|
|
9
|
+
## What It Adds
|
|
10
|
+
|
|
11
|
+
- **Agents**: DevEco Code-style `build` and `plan` overrides, plus any custom agents from `deveco-harness.jsonc`.
|
|
12
|
+
- **Tools**: DevEco Code-compatible names (`arkts_knowledge_search`, `build_project`, `start_app`, `hdc_log`, `switch_cwd`, `check_ets_files`, `plan_write`, UI verification tools through MCP bridge).
|
|
13
|
+
- **Skills**: migrated DevEco Code skills (`arkts-error-fixes`, `arkts-grammar-standards`, `arkts-runtime-fix`, `arkui-knowledge`, `deveco-create-project`) injected through OpenCode `skills.paths`.
|
|
14
|
+
|
|
15
|
+
## Installation
|
|
16
|
+
|
|
17
|
+
### Via DevEco CLI (recommended)
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
deveco plugin deveco-harness
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Global install:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
deveco plugin deveco-harness --global
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Local development
|
|
30
|
+
|
|
31
|
+
Build this package first:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
bun install
|
|
35
|
+
bun run build
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Then add it to OpenCode config:
|
|
39
|
+
|
|
40
|
+
```jsonc
|
|
41
|
+
{
|
|
42
|
+
"plugin": ["file:///absolute/path/to/deveco-harness"]
|
|
43
|
+
}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
For this workspace on Windows, the local plugin path is:
|
|
47
|
+
|
|
48
|
+
```jsonc
|
|
49
|
+
{
|
|
50
|
+
"plugin": ["file:///c:/DiskF/gitcode/oc_omo/deveco-harness"]
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Configuration
|
|
55
|
+
|
|
56
|
+
Create `deveco-harness.jsonc` in one of these locations:
|
|
57
|
+
|
|
58
|
+
- `~/.config/opencode/deveco-harness.jsonc`
|
|
59
|
+
- `<project>/deveco-harness.jsonc`
|
|
60
|
+
- `<project>/.opencode/deveco-harness.jsonc`
|
|
61
|
+
|
|
62
|
+
See `deveco-harness.example.jsonc` for all supported options.
|
|
63
|
+
|
|
64
|
+
## Architecture
|
|
65
|
+
|
|
66
|
+
This follows the OpenCode plugin architecture used by `oh-my-openagent`:
|
|
67
|
+
|
|
68
|
+
1. `src/index.ts` default-exports a `PluginModule`.
|
|
69
|
+
2. `src/create-plugin-module.ts` builds the `server()` plugin and returns hooks.
|
|
70
|
+
3. `config` hook overrides OpenCode `build` / `plan` agents and injects skill paths.
|
|
71
|
+
4. `tool` hook exposes DevEco CLI tools.
|
package/README.md
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# DEVECO-HARNESS
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<a href="README.en.md">English</a> · 简体中文
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
面向 DevEco 与 HarmonyOS 开发工作流的 OpenCode 插件。
|
|
8
|
+
|
|
9
|
+
## 功能概览
|
|
10
|
+
|
|
11
|
+
- **Agents**:覆盖 DevEco Code 风格的 `build` 与 `plan`,并支持通过 `deveco-harness.jsonc` 自定义 Agent。
|
|
12
|
+
- **Tools**:兼容 DevEco Code 工具名(`arkts_knowledge_search`、`build_project`、`start_app`、`hdc_log`、`switch_cwd`、`check_ets_files`、`plan_write`,以及通过 MCP bridge 提供的 UI 验证工具)。
|
|
13
|
+
- **Skills**:迁移自 DevEco Code 的 Skills(`arkts-error-fixes`、`arkts-grammar-standards`、`arkts-runtime-fix`、`arkui-knowledge`、`deveco-create-project`),通过 OpenCode `skills.paths` 注入。
|
|
14
|
+
|
|
15
|
+
## 安装
|
|
16
|
+
|
|
17
|
+
### 通过 DevEco CLI 安装(推荐)
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
deveco plugin deveco-harness
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
全局安装:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
deveco plugin deveco-harness --global
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### 本地开发
|
|
30
|
+
|
|
31
|
+
先构建本包:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
bun install
|
|
35
|
+
bun run build
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
然后在 OpenCode 配置中添加插件:
|
|
39
|
+
|
|
40
|
+
```jsonc
|
|
41
|
+
{
|
|
42
|
+
"plugin": ["file:///absolute/path/to/deveco-harness"]
|
|
43
|
+
}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
在本工作区(Windows)的本地插件路径示例:
|
|
47
|
+
|
|
48
|
+
```jsonc
|
|
49
|
+
{
|
|
50
|
+
"plugin": ["file:///c:/DiskF/gitcode/oc_omo/deveco-harness"]
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## 配置
|
|
55
|
+
|
|
56
|
+
在以下任一位置创建 `deveco-harness.jsonc`:
|
|
57
|
+
|
|
58
|
+
- `~/.config/opencode/deveco-harness.jsonc`
|
|
59
|
+
- `<project>/deveco-harness.jsonc`
|
|
60
|
+
- `<project>/.opencode/deveco-harness.jsonc`
|
|
61
|
+
|
|
62
|
+
完整配置项见 `deveco-harness.example.jsonc`。
|
|
63
|
+
|
|
64
|
+
## 架构
|
|
65
|
+
|
|
66
|
+
遵循 `oh-my-openagent` 使用的 OpenCode 插件架构:
|
|
67
|
+
|
|
68
|
+
1. `src/index.ts` 默认导出 `PluginModule`。
|
|
69
|
+
2. `src/create-plugin-module.ts` 构建 `server()` 插件并返回 hooks。
|
|
70
|
+
3. `config` hook 覆盖 OpenCode 的 `build` / `plan` Agent,并注入 skill 路径。
|
|
71
|
+
4. `tool` hook 暴露 DevEco CLI 工具。
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
// Optional. Override the migrated DevEco Code build/plan agents or add your own agents.
|
|
3
|
+
"agents": {
|
|
4
|
+
"build": {
|
|
5
|
+
"model": "anthropic/claude-sonnet-4-5",
|
|
6
|
+
"prompt": "You are a HarmonyOS expert. Prefer DevEco CLI evidence before making build or device claims.",
|
|
7
|
+
"permission": {
|
|
8
|
+
"start_app": "ask"
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"plan": {
|
|
12
|
+
"model": "anthropic/claude-sonnet-4-5",
|
|
13
|
+
"permission": {
|
|
14
|
+
"plan_exit": "ask"
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
|
|
19
|
+
// Optional. Disable individual plugin tools.
|
|
20
|
+
"tools": {
|
|
21
|
+
"knowledge": true,
|
|
22
|
+
"build": true,
|
|
23
|
+
"run": true,
|
|
24
|
+
"log": true
|
|
25
|
+
},
|
|
26
|
+
|
|
27
|
+
// Optional. Add extra skill folders. Bundled DevEco Code skills are enabled by default.
|
|
28
|
+
"skills": {
|
|
29
|
+
"enabled": true,
|
|
30
|
+
"paths": []
|
|
31
|
+
}
|
|
32
|
+
}
|