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.
Files changed (135) hide show
  1. package/README.en.md +71 -0
  2. package/README.md +71 -0
  3. package/deveco-harness.example.jsonc +32 -0
  4. package/dist/index.js +758 -0
  5. package/package.json +48 -0
  6. package/prompts/build.txt +164 -0
  7. package/prompts/plan.txt +118 -0
  8. package/skills/arkts-error-fixes/README.md +151 -0
  9. package/skills/arkts-error-fixes/SKILL.md +150 -0
  10. package/skills/arkts-error-fixes/assets/AnyTypeError.ets +269 -0
  11. package/skills/arkts-error-fixes/assets/AppStorageError.ets +22 -0
  12. package/skills/arkts-error-fixes/assets/ArrowFunctionConversionError.ets +42 -0
  13. package/skills/arkts-error-fixes/assets/AvoidAreaTypeError.ets +43 -0
  14. package/skills/arkts-error-fixes/assets/BreakpointTypeError.ets +71 -0
  15. package/skills/arkts-error-fixes/assets/CatchClauseTypeError.ets +54 -0
  16. package/skills/arkts-error-fixes/assets/ColorConsistencyError.ets +88 -0
  17. package/skills/arkts-error-fixes/assets/ColorPropertyError.ets +39 -0
  18. package/skills/arkts-error-fixes/assets/ContextTypeError.ets +105 -0
  19. package/skills/arkts-error-fixes/assets/DecoratorStateError.ets +64 -0
  20. package/skills/arkts-error-fixes/assets/DisplayListenerTypeError.ets +129 -0
  21. package/skills/arkts-error-fixes/assets/DuplicateEntryError.ets +35 -0
  22. package/skills/arkts-error-fixes/assets/ESObjectTypeError.ets +137 -0
  23. package/skills/arkts-error-fixes/assets/FontColorPropertyError.ets +42 -0
  24. package/skills/arkts-error-fixes/assets/FunctionReturnTypeError.ets +41 -0
  25. package/skills/arkts-error-fixes/assets/IDataSourceError.ets +79 -0
  26. package/skills/arkts-error-fixes/assets/ImplementationNotAllowedError.ets +38 -0
  27. package/skills/arkts-error-fixes/assets/InterfaceMethodSignatureError.ets +43 -0
  28. package/skills/arkts-error-fixes/assets/NotificationError.ets +34 -0
  29. package/skills/arkts-error-fixes/assets/ObjectLiteralInterfaceError.ets +49 -0
  30. package/skills/arkts-error-fixes/assets/ObjectLiteralTypeError.ets +54 -0
  31. package/skills/arkts-error-fixes/assets/ObjectSpreadError.ets +29 -0
  32. package/skills/arkts-error-fixes/assets/PossiblyNullError.ets +32 -0
  33. package/skills/arkts-error-fixes/assets/ResourceConversionError.ets +159 -0
  34. package/skills/arkts-error-fixes/assets/StandaloneFunctionContext.ets +116 -0
  35. package/skills/arkts-error-fixes/assets/StandaloneFunctionError.ets +85 -0
  36. package/skills/arkts-error-fixes/assets/StorageLinkDefaultError.ets +41 -0
  37. package/skills/arkts-error-fixes/assets/TitleButtonRectTypeError.ets +86 -0
  38. package/skills/arkts-error-fixes/assets/UnusedVariableWarning.ets +102 -0
  39. package/skills/arkts-error-fixes/assets/UtilityTypeError.ets +176 -0
  40. package/skills/arkts-error-fixes/assets/WindowRectSizeError.ets +65 -0
  41. package/skills/arkts-error-fixes/assets/WindowTypeError.ets +37 -0
  42. package/skills/arkts-error-fixes/reference/any_type_errors.md +433 -0
  43. package/skills/arkts-error-fixes/reference/appstorage_errors.md +95 -0
  44. package/skills/arkts-error-fixes/reference/arrow_function_conversion_errors.md +163 -0
  45. package/skills/arkts-error-fixes/reference/avoid_area_type_errors.md +59 -0
  46. package/skills/arkts-error-fixes/reference/breakpoint_type_errors.md +122 -0
  47. package/skills/arkts-error-fixes/reference/catch_clause_type_errors.md +89 -0
  48. package/skills/arkts-error-fixes/reference/color_consistency_errors.md +209 -0
  49. package/skills/arkts-error-fixes/reference/color_property_errors.md +136 -0
  50. package/skills/arkts-error-fixes/reference/context_type_errors.md +260 -0
  51. package/skills/arkts-error-fixes/reference/decorator_state_errors.md +109 -0
  52. package/skills/arkts-error-fixes/reference/display_listener_type_errors.md +149 -0
  53. package/skills/arkts-error-fixes/reference/duplicate_entry_errors.md +193 -0
  54. package/skills/arkts-error-fixes/reference/esobject_type_errors.md +110 -0
  55. package/skills/arkts-error-fixes/reference/fontcolor_property_errors.md +104 -0
  56. package/skills/arkts-error-fixes/reference/function_return_type_errors.md +194 -0
  57. package/skills/arkts-error-fixes/reference/idata_source_errors.md +77 -0
  58. package/skills/arkts-error-fixes/reference/implementation_not_allowed_errors.md +191 -0
  59. package/skills/arkts-error-fixes/reference/interface_method_signature_errors.md +143 -0
  60. package/skills/arkts-error-fixes/reference/notification_errors.md +110 -0
  61. package/skills/arkts-error-fixes/reference/object_literal_interface_errors.md +156 -0
  62. package/skills/arkts-error-fixes/reference/object_literal_type_errors.md +110 -0
  63. package/skills/arkts-error-fixes/reference/object_spread_errors.md +105 -0
  64. package/skills/arkts-error-fixes/reference/possibly_null_errors.md +156 -0
  65. package/skills/arkts-error-fixes/reference/resource_conversion_errors.md +154 -0
  66. package/skills/arkts-error-fixes/reference/standalone_function_errors.md +68 -0
  67. package/skills/arkts-error-fixes/reference/storage_link_default_errors.md +124 -0
  68. package/skills/arkts-error-fixes/reference/title_button_rect_type_errors.md +167 -0
  69. package/skills/arkts-error-fixes/reference/unused_variable_warnings.md +295 -0
  70. package/skills/arkts-error-fixes/reference/utility_type_errors.md +290 -0
  71. package/skills/arkts-error-fixes/reference/window_rect_size_errors.md +70 -0
  72. package/skills/arkts-error-fixes/reference/window_type_errors.md +95 -0
  73. package/skills/arkts-grammar-standards/SKILL.md +71 -0
  74. package/skills/arkts-grammar-standards/references/basic-syntax.md +103 -0
  75. package/skills/arkts-grammar-standards/references/restrictions.md +100 -0
  76. package/skills/arkts-grammar-standards/references/topic-aliases.json +93 -0
  77. package/skills/arkts-grammar-standards/references/ts-diff.md +108 -0
  78. package/skills/arkts-runtime-fix/SKILL.md +152 -0
  79. package/skills/arkts-runtime-fix/SKILL_CN.md +123 -0
  80. package/skills/arkts-runtime-fix/evals/evals.json +17 -0
  81. package/skills/arkts-runtime-fix/scripts/collect-hilog.mjs +116 -0
  82. package/skills/arkts-runtime-fix/scripts/collect-hilog.ts +115 -0
  83. package/skills/arkts-runtime-fix/scripts/fetch-faultlog.mjs +117 -0
  84. package/skills/arkts-runtime-fix/scripts/fetch-faultlog.ts +116 -0
  85. package/skills/arkts-runtime-fix/scripts/jscrash-report.mjs +149 -0
  86. package/skills/arkts-runtime-fix/scripts/parse-jscrash-log.mjs +126 -0
  87. package/skills/arkts-runtime-fix/scripts/parse-jscrash-log.ts +126 -0
  88. package/skills/arkts-runtime-fix/scripts/probe-faultlogger.mjs +160 -0
  89. package/skills/arkts-runtime-fix/scripts/probe-faultlogger.ts +160 -0
  90. package/skills/arkts-runtime-fix/scripts/shared/hdc.mjs +107 -0
  91. package/skills/arkts-runtime-fix/scripts/shared/hdc.ts +58 -0
  92. package/skills/arkts-runtime-fix/scripts/shared/jscrash-faultlogger.mjs +143 -0
  93. package/skills/arkts-runtime-fix/scripts/shared/jscrash-faultlogger.ts +148 -0
  94. package/skills/arkts-runtime-fix/scripts/shared/jscrash-parse.mjs +389 -0
  95. package/skills/arkts-runtime-fix/scripts/shared/jscrash-parse.ts +409 -0
  96. package/skills/arkts-runtime-fix/scripts/shared/utils.mjs +27 -0
  97. package/skills/arkts-runtime-fix/scripts/shared/utils.ts +27 -0
  98. package/skills/arkui-knowledge/SKILL.md +90 -0
  99. package/skills/arkui-knowledge/references/api-guardrails.md +60 -0
  100. package/skills/arkui-knowledge/references/common-mistakes.md +119 -0
  101. package/skills/arkui-knowledge/references/component-cookbook.md +135 -0
  102. package/skills/arkui-knowledge/references/ui-quality-checklist.md +36 -0
  103. package/skills/deveco-create-project/SKILL.md +144 -0
  104. package/skills/deveco-create-project/application/AppScope/app.json5 +10 -0
  105. package/skills/deveco-create-project/application/AppScope/resources/base/element/string.json +8 -0
  106. package/skills/deveco-create-project/application/AppScope/resources/base/media/background.png +0 -0
  107. package/skills/deveco-create-project/application/AppScope/resources/base/media/foreground.png +0 -0
  108. package/skills/deveco-create-project/application/AppScope/resources/base/media/layered_image.json +7 -0
  109. package/skills/deveco-create-project/application/build-profile.json5 +42 -0
  110. package/skills/deveco-create-project/application/code-linter.json5 +32 -0
  111. package/skills/deveco-create-project/application/entry/build-profile.json5 +33 -0
  112. package/skills/deveco-create-project/application/entry/hvigorfile.ts +7 -0
  113. package/skills/deveco-create-project/application/entry/obfuscation-rules.txt +23 -0
  114. package/skills/deveco-create-project/application/entry/oh-package.json5 +10 -0
  115. package/skills/deveco-create-project/application/entry/src/main/ets/entryability/EntryAbility.ets +63 -0
  116. package/skills/deveco-create-project/application/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets +31 -0
  117. package/skills/deveco-create-project/application/entry/src/main/ets/pages/Index.ets +38 -0
  118. package/skills/deveco-create-project/application/entry/src/main/module.json5 +50 -0
  119. package/skills/deveco-create-project/application/entry/src/main/resources/base/element/color.json +8 -0
  120. package/skills/deveco-create-project/application/entry/src/main/resources/base/element/float.json +8 -0
  121. package/skills/deveco-create-project/application/entry/src/main/resources/base/element/string.json +16 -0
  122. package/skills/deveco-create-project/application/entry/src/main/resources/base/media/background.png +0 -0
  123. package/skills/deveco-create-project/application/entry/src/main/resources/base/media/foreground.png +0 -0
  124. package/skills/deveco-create-project/application/entry/src/main/resources/base/media/layered_image.json +7 -0
  125. package/skills/deveco-create-project/application/entry/src/main/resources/base/media/startIcon.png +0 -0
  126. package/skills/deveco-create-project/application/entry/src/main/resources/base/profile/backup_config.json +3 -0
  127. package/skills/deveco-create-project/application/entry/src/main/resources/base/profile/main_pages.json +5 -0
  128. package/skills/deveco-create-project/application/entry/src/main/resources/dark/element/color.json +8 -0
  129. package/skills/deveco-create-project/application/hvigor/hvigor-config.json5 +23 -0
  130. package/skills/deveco-create-project/application/hvigorfile.ts +7 -0
  131. package/skills/deveco-create-project/application/oh-package.json5 +10 -0
  132. package/skills/deveco-create-project/scripts/copy-template.mjs +216 -0
  133. package/skills/deveco-create-project/scripts/copy-template.ts +214 -0
  134. package/skills/deveco-create-project/scripts/detect-sdk.mjs +82 -0
  135. 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
+ }