@huaqiu/dsh-hqsch 0.4.8
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/LICENSE +21 -0
- package/README.md +43 -0
- package/cordis.patch.yml +13 -0
- package/lib/index.d.mts +98 -0
- package/lib/index.mjs +159 -0
- package/package.json +40 -0
- package/skills/hqsch-scenario-b/AGENTS.md +209 -0
- package/skills/hqsch-scenario-b/CLAUDE.md +209 -0
- package/skills/hqsch-scenario-b/INSTALL.md +140 -0
- package/skills/hqsch-scenario-b/SKILL.md +107 -0
- package/skills/hqsch-scenario-b/SYSTEM-PROMPT.md +209 -0
- package/skills/hqsch-scenario-b/docs/circuit-pattern-layout.md +304 -0
- package/skills/hqsch-scenario-b/docs/editing-a-circuit.md +167 -0
- package/skills/hqsch-scenario-b/docs/part-search.md +244 -0
- package/skills/hqsch-scenario-b/docs/placement-conventions.md +714 -0
- package/skills/hqsch-scenario-b/docs/property-conventions.md +225 -0
- package/skills/hqsch-scenario-b/docs/quickstart.md +99 -0
- package/skills/hqsch-scenario-b/docs/reading-a-circuit.md +317 -0
- package/skills/hqsch-scenario-b/docs/rpc/canvas-auto-connect-objects-by-id.md +98 -0
- package/skills/hqsch-scenario-b/docs/rpc/canvas-delete-objects-by-ids.md +94 -0
- package/skills/hqsch-scenario-b/docs/rpc/canvas-find-object-by-property.md +101 -0
- package/skills/hqsch-scenario-b/docs/rpc/canvas-list-wire-segments.md +94 -0
- package/skills/hqsch-scenario-b/docs/rpc/canvas-mirror-objects-by-ids.md +96 -0
- package/skills/hqsch-scenario-b/docs/rpc/canvas-rotate-objects-by-ids.md +94 -0
- package/skills/hqsch-scenario-b/docs/rpc/canvas-set-object-property.md +99 -0
- package/skills/hqsch-scenario-b/docs/rpc/canvas-zoom-all.md +92 -0
- package/skills/hqsch-scenario-b/docs/rpc/find-find-object.md +96 -0
- package/skills/hqsch-scenario-b/docs/rpc/kernel-get-snapshot.md +104 -0
- package/skills/hqsch-scenario-b/docs/rpc/netlist-get-active-page-net-list.md +87 -0
- package/skills/hqsch-scenario-b/docs/rpc/netlist-get-port-pairing.md +34 -0
- package/skills/hqsch-scenario-b/docs/rpc/obj-place-place-pin-stub-wire-and-net-alias.md +114 -0
- package/skills/hqsch-scenario-b/docs/rpc/pattern-layout-apply-circuit-pattern.md +125 -0
- package/skills/hqsch-scenario-b/docs/rpc/pattern-layout-get-page-occupancy.md +100 -0
- package/skills/hqsch-scenario-b/docs/rpc/pattern-layout-list-circuit-patterns.md +97 -0
- package/skills/hqsch-scenario-b/docs/rpc/placement-list-part-libraries.md +94 -0
- package/skills/hqsch-scenario-b/docs/rpc/placement-list-symbol-libraries.md +94 -0
- package/skills/hqsch-scenario-b/docs/rpc/placement-place-kicad-symbol.md +105 -0
- package/skills/hqsch-scenario-b/docs/rpc/placement-place-part-from-library.md +106 -0
- package/skills/hqsch-scenario-b/docs/rpc/placement-place-symbol-from-library.md +108 -0
- package/skills/hqsch-scenario-b/docs/rpc/project-get-active-project.md +96 -0
- package/skills/hqsch-scenario-b/docs/rpc/project-list-open-projects.md +99 -0
- package/skills/hqsch-scenario-b/docs/rpc-availability.md +97 -0
- package/skills/hqsch-scenario-b/docs/rpc-index/canvas.md +81 -0
- package/skills/hqsch-scenario-b/docs/rpc-index/find.md +36 -0
- package/skills/hqsch-scenario-b/docs/rpc-index/kernel.md +36 -0
- package/skills/hqsch-scenario-b/docs/rpc-index/netlist.md +38 -0
- package/skills/hqsch-scenario-b/docs/rpc-index/obj-place.md +76 -0
- package/skills/hqsch-scenario-b/docs/rpc-index/pattern-layout.md +38 -0
- package/skills/hqsch-scenario-b/docs/rpc-index/placement.md +48 -0
- package/skills/hqsch-scenario-b/docs/rpc-index/project.md +47 -0
- package/skills/hqsch-scenario-b/docs/serialization.md +60 -0
- package/skills/hqsch-scenario-b/docs/skill-dependencies.md +93 -0
- package/skills/hqsch-scenario-b/skill.json +13 -0
- package/skills/hqsch-scenario-b/template/package.json +16 -0
- package/skills/hqsch-scenario-b/template/scripts/edit-property-by-ref.ts +44 -0
- package/skills/hqsch-scenario-b/template/scripts/fix-designators.ts +52 -0
- package/skills/hqsch-scenario-b/template/scripts/hello.ts +46 -0
- package/skills/hqsch-scenario-b/template/scripts/read-circuit.ts +357 -0
- package/skills/hqsch-scenario-b/template/scripts/replace-part-by-ref.ts +44 -0
- package/skills/hqsch-scenario-b/template/scripts/rewire-pin-by-ref.ts +42 -0
- package/skills/hqsch-scenario-b/template/tsconfig.json +11 -0
- package/src/config.ts +25 -0
- package/src/index.ts +186 -0
- package/src/paths.ts +48 -0
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pattern-layout-get-page-occupancy
|
|
3
|
+
metadata:
|
|
4
|
+
category: pattern-layout
|
|
5
|
+
service: PatternLayoutService
|
|
6
|
+
method: GetPageOccupancy
|
|
7
|
+
rpcKind: unary
|
|
8
|
+
description: >-
|
|
9
|
+
Bounding boxes of what is already on the page, for floorplanning / avoidance.
|
|
10
|
+
version: 0.1.0
|
|
11
|
+
vendor: Huaqiu Electronics
|
|
12
|
+
tags:
|
|
13
|
+
- eda
|
|
14
|
+
- huaqiu
|
|
15
|
+
- pattern-layout
|
|
16
|
+
entry: "@huaqiu/hqeda"
|
|
17
|
+
manifest: "@huaqiu/hqeda/skill.json"
|
|
18
|
+
inputSchema:
|
|
19
|
+
name: GetPageOccupancyRequestSchema
|
|
20
|
+
namespace: HqServicesV1PatternLayoutService
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# Get Page Occupancy
|
|
24
|
+
|
|
25
|
+
Bounding boxes of what is already on the page, for floorplanning / avoidance.
|
|
26
|
+
|
|
27
|
+
## Overview
|
|
28
|
+
|
|
29
|
+
This skill provides access to the **`PatternLayoutService.GetPageOccupancy`** RPC method on the Huaqiu EDA engine. It is part of the **pattern-layout** domain and executes against the `patternLayout` client.
|
|
30
|
+
|
|
31
|
+
| Property | Value |
|
|
32
|
+
| --- | --- |
|
|
33
|
+
| Skill ID | `pattern-layout-get-page-occupancy` |
|
|
34
|
+
| Service | `PatternLayoutService` |
|
|
35
|
+
| Method | `GetPageOccupancy` |
|
|
36
|
+
| Transport | Unary (unary) |
|
|
37
|
+
| Domain | pattern-layout |
|
|
38
|
+
| Request type | `GetPageOccupancyRequest` |
|
|
39
|
+
| Response type | `GetPageOccupancyResponse` |
|
|
40
|
+
|
|
41
|
+
## Parameters
|
|
42
|
+
|
|
43
|
+
| Name | Type | Required | Repeated | Description |
|
|
44
|
+
| --- | --- | --- | --- | --- |
|
|
45
|
+
| `context` | `ProjectContext` | no | no | — |
|
|
46
|
+
| `area` | `Box2i64` | no | no | Restrict the scan to this box; empty (all-zero) box = whole page. |
|
|
47
|
+
| `includeWires` | `boolean` | yes | no | Include wires / buses / graphics, not just parts and symbols. |
|
|
48
|
+
|
|
49
|
+
## Response
|
|
50
|
+
|
|
51
|
+
Returns a `GetPageOccupancyResponse` message with the following fields:
|
|
52
|
+
|
|
53
|
+
| Name | Type | Repeated | Description |
|
|
54
|
+
| --- | --- | --- | --- |
|
|
55
|
+
| `pageBox` | `Box2i64` | no | — |
|
|
56
|
+
| `items` | `PageOccupancyItem[]` | yes | — |
|
|
57
|
+
|
|
58
|
+
## Response Example
|
|
59
|
+
|
|
60
|
+
Representative response structure (field values are placeholders):
|
|
61
|
+
|
|
62
|
+
```json
|
|
63
|
+
{
|
|
64
|
+
"pageBox": {},
|
|
65
|
+
"items": [
|
|
66
|
+
{}
|
|
67
|
+
]
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Prerequisites
|
|
72
|
+
|
|
73
|
+
- [project-get-active-project](../../project/get-active-project/SKILL.md) — Discover the active project before building project-scoped context.
|
|
74
|
+
|
|
75
|
+
See also [skill-dependencies.md](../../references/skill-dependencies.md) for common workflows.
|
|
76
|
+
|
|
77
|
+
## How to Use
|
|
78
|
+
|
|
79
|
+
Execute via the HQ EDA skill runtime with a connected `EditorClient`. See [quickstart.md](../../references/quickstart.md) for the full `listEditors` → `connect` → `getSkill` → `execute` chain.
|
|
80
|
+
|
|
81
|
+
```typescript
|
|
82
|
+
import { getSkill, toJsonString } from "@huaqiu/hqeda";
|
|
83
|
+
|
|
84
|
+
const skill = getSkill("pattern-layout-get-page-occupancy");
|
|
85
|
+
const result = await skill.execute({ client }, {
|
|
86
|
+
context: "<ProjectContext via client.createProjectContext('my-project')>",
|
|
87
|
+
area: {},
|
|
88
|
+
includeWires: false,
|
|
89
|
+
});
|
|
90
|
+
console.log(toJsonString(result, { prettySpaces: 2 }));
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Serialize responses with `toJsonString()` — see [serialization.md](../../references/serialization.md).
|
|
94
|
+
|
|
95
|
+
## Related Skills
|
|
96
|
+
|
|
97
|
+
- Other **pattern-layout** skills: [`pattern-layout/`](../)
|
|
98
|
+
- Full index: [All EDA skills](../../SKILL.md)
|
|
99
|
+
- Install: `npx skills add Huaqiu-Electronics/skills --path eda/pattern-layout/get-page-occupancy`
|
|
100
|
+
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pattern-layout-list-circuit-patterns
|
|
3
|
+
metadata:
|
|
4
|
+
category: pattern-layout
|
|
5
|
+
service: PatternLayoutService
|
|
6
|
+
method: ListCircuitPatterns
|
|
7
|
+
rpcKind: unary
|
|
8
|
+
description: >-
|
|
9
|
+
Self-describing catalog — keeps the skill docs from drifting away from the implementation. Call it before Apply to learn the roles/terminals/options.
|
|
10
|
+
version: 0.1.0
|
|
11
|
+
vendor: Huaqiu Electronics
|
|
12
|
+
tags:
|
|
13
|
+
- eda
|
|
14
|
+
- huaqiu
|
|
15
|
+
- pattern-layout
|
|
16
|
+
entry: "@huaqiu/hqeda"
|
|
17
|
+
manifest: "@huaqiu/hqeda/skill.json"
|
|
18
|
+
inputSchema:
|
|
19
|
+
name: ListCircuitPatternsRequestSchema
|
|
20
|
+
namespace: HqServicesV1PatternLayoutService
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# List Circuit Patterns
|
|
24
|
+
|
|
25
|
+
Self-describing catalog — keeps the skill docs from drifting away from the
|
|
26
|
+
implementation. Call it before Apply to learn the roles/terminals/options.
|
|
27
|
+
|
|
28
|
+
## Overview
|
|
29
|
+
|
|
30
|
+
This skill provides access to the **`PatternLayoutService.ListCircuitPatterns`** RPC method on the Huaqiu EDA engine. It is part of the **pattern-layout** domain and executes against the `patternLayout` client.
|
|
31
|
+
|
|
32
|
+
| Property | Value |
|
|
33
|
+
| --- | --- |
|
|
34
|
+
| Skill ID | `pattern-layout-list-circuit-patterns` |
|
|
35
|
+
| Service | `PatternLayoutService` |
|
|
36
|
+
| Method | `ListCircuitPatterns` |
|
|
37
|
+
| Transport | Unary (unary) |
|
|
38
|
+
| Domain | pattern-layout |
|
|
39
|
+
| Request type | `ListCircuitPatternsRequest` |
|
|
40
|
+
| Response type | `ListCircuitPatternsResponse` |
|
|
41
|
+
|
|
42
|
+
## Parameters
|
|
43
|
+
|
|
44
|
+
| Name | Type | Required | Repeated | Description |
|
|
45
|
+
| --- | --- | --- | --- | --- |
|
|
46
|
+
| `context` | `ProjectContext` | no | no | — |
|
|
47
|
+
| `pattern` | `CircuitPatternId` | yes | no | 0 / UNSPECIFIED = every pattern. |
|
|
48
|
+
|
|
49
|
+
## Response
|
|
50
|
+
|
|
51
|
+
Returns a `ListCircuitPatternsResponse` message with the following fields:
|
|
52
|
+
|
|
53
|
+
| Name | Type | Repeated | Description |
|
|
54
|
+
| --- | --- | --- | --- |
|
|
55
|
+
| `patterns` | `CircuitPatternDescriptor[]` | yes | — |
|
|
56
|
+
|
|
57
|
+
## Response Example
|
|
58
|
+
|
|
59
|
+
Representative response structure (field values are placeholders):
|
|
60
|
+
|
|
61
|
+
```json
|
|
62
|
+
{
|
|
63
|
+
"patterns": [
|
|
64
|
+
{}
|
|
65
|
+
]
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Prerequisites
|
|
70
|
+
|
|
71
|
+
- [project-get-active-project](../../project/get-active-project/SKILL.md) — Discover the active project before building project-scoped context.
|
|
72
|
+
|
|
73
|
+
See also [skill-dependencies.md](../../references/skill-dependencies.md) for common workflows.
|
|
74
|
+
|
|
75
|
+
## How to Use
|
|
76
|
+
|
|
77
|
+
Execute via the HQ EDA skill runtime with a connected `EditorClient`. See [quickstart.md](../../references/quickstart.md) for the full `listEditors` → `connect` → `getSkill` → `execute` chain.
|
|
78
|
+
|
|
79
|
+
```typescript
|
|
80
|
+
import { getSkill, toJsonString } from "@huaqiu/hqeda";
|
|
81
|
+
|
|
82
|
+
const skill = getSkill("pattern-layout-list-circuit-patterns");
|
|
83
|
+
const result = await skill.execute({ client }, {
|
|
84
|
+
context: "<ProjectContext via client.createProjectContext('my-project')>",
|
|
85
|
+
pattern: {},
|
|
86
|
+
});
|
|
87
|
+
console.log(toJsonString(result, { prettySpaces: 2 }));
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Serialize responses with `toJsonString()` — see [serialization.md](../../references/serialization.md).
|
|
91
|
+
|
|
92
|
+
## Related Skills
|
|
93
|
+
|
|
94
|
+
- Other **pattern-layout** skills: [`pattern-layout/`](../)
|
|
95
|
+
- Full index: [All EDA skills](../../SKILL.md)
|
|
96
|
+
- Install: `npx skills add Huaqiu-Electronics/skills --path eda/pattern-layout/list-circuit-patterns`
|
|
97
|
+
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: placement-list-part-libraries
|
|
3
|
+
metadata:
|
|
4
|
+
category: placement
|
|
5
|
+
service: ComponentPlaceService
|
|
6
|
+
method: ListPartLibraries
|
|
7
|
+
rpcKind: unary
|
|
8
|
+
description: >-
|
|
9
|
+
Fallback listing for local/builtin part libraries — agents prefer online part-search (searchParts → getEdaModels) first
|
|
10
|
+
version: 0.1.0
|
|
11
|
+
vendor: Huaqiu Electronics
|
|
12
|
+
tags:
|
|
13
|
+
- eda
|
|
14
|
+
- huaqiu
|
|
15
|
+
- placement
|
|
16
|
+
entry: "@huaqiu/hqeda"
|
|
17
|
+
manifest: "@huaqiu/hqeda/skill.json"
|
|
18
|
+
inputSchema:
|
|
19
|
+
name: ListPartLibrariesRequestSchema
|
|
20
|
+
namespace: HqServicesV1ComponentPlaceService
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# List Part Libraries
|
|
24
|
+
|
|
25
|
+
Fallback listing for local/builtin part libraries — agents prefer online part-search (searchParts → getEdaModels) first
|
|
26
|
+
|
|
27
|
+
## Overview
|
|
28
|
+
|
|
29
|
+
This skill provides access to the **`ComponentPlaceService.ListPartLibraries`** RPC method on the Huaqiu EDA engine. It is part of the **placement** domain and executes against the `componentPlace` client.
|
|
30
|
+
|
|
31
|
+
| Property | Value |
|
|
32
|
+
| --- | --- |
|
|
33
|
+
| Skill ID | `placement-list-part-libraries` |
|
|
34
|
+
| Service | `ComponentPlaceService` |
|
|
35
|
+
| Method | `ListPartLibraries` |
|
|
36
|
+
| Transport | Unary (unary) |
|
|
37
|
+
| Domain | placement |
|
|
38
|
+
| Request type | `ListPartLibrariesRequest` |
|
|
39
|
+
| Response type | `ListPartLibrariesResponse` |
|
|
40
|
+
|
|
41
|
+
## Parameters
|
|
42
|
+
|
|
43
|
+
| Name | Type | Required | Repeated | Description |
|
|
44
|
+
| --- | --- | --- | --- | --- |
|
|
45
|
+
| `context` | `ProjectContext` | no | no | — |
|
|
46
|
+
|
|
47
|
+
## Response
|
|
48
|
+
|
|
49
|
+
Returns a `ListPartLibrariesResponse` message with the following fields:
|
|
50
|
+
|
|
51
|
+
| Name | Type | Repeated | Description |
|
|
52
|
+
| --- | --- | --- | --- |
|
|
53
|
+
| `libraries` | `PartLibraryInfo[]` | yes | — |
|
|
54
|
+
|
|
55
|
+
## Response Example
|
|
56
|
+
|
|
57
|
+
Representative response structure (field values are placeholders):
|
|
58
|
+
|
|
59
|
+
```json
|
|
60
|
+
{
|
|
61
|
+
"libraries": [
|
|
62
|
+
{}
|
|
63
|
+
]
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Prerequisites
|
|
68
|
+
|
|
69
|
+
- [project-get-active-project](../../project/get-active-project/SKILL.md) — Discover the active project before building project-scoped context.
|
|
70
|
+
|
|
71
|
+
See also [skill-dependencies.md](../../references/skill-dependencies.md) for common workflows.
|
|
72
|
+
|
|
73
|
+
## How to Use
|
|
74
|
+
|
|
75
|
+
Execute via the HQ EDA skill runtime with a connected `EditorClient`. See [quickstart.md](../../references/quickstart.md) for the full `listEditors` → `connect` → `getSkill` → `execute` chain.
|
|
76
|
+
|
|
77
|
+
```typescript
|
|
78
|
+
import { getSkill, toJsonString } from "@huaqiu/hqeda";
|
|
79
|
+
|
|
80
|
+
const skill = getSkill("placement-list-part-libraries");
|
|
81
|
+
const result = await skill.execute({ client }, {
|
|
82
|
+
context: "<ProjectContext via client.createProjectContext('my-project')>",
|
|
83
|
+
});
|
|
84
|
+
console.log(toJsonString(result, { prettySpaces: 2 }));
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Serialize responses with `toJsonString()` — see [serialization.md](../../references/serialization.md).
|
|
88
|
+
|
|
89
|
+
## Related Skills
|
|
90
|
+
|
|
91
|
+
- Other **placement** skills: [`placement/`](../)
|
|
92
|
+
- Full index: [All EDA skills](../../SKILL.md)
|
|
93
|
+
- Install: `npx skills add Huaqiu-Electronics/skills --path eda/placement/list-part-libraries`
|
|
94
|
+
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: placement-list-symbol-libraries
|
|
3
|
+
metadata:
|
|
4
|
+
category: placement
|
|
5
|
+
service: ComponentPlaceService
|
|
6
|
+
method: ListSymbolLibraries
|
|
7
|
+
rpcKind: unary
|
|
8
|
+
description: >-
|
|
9
|
+
Agent path: list global/power/gnd, port, off-page symbols — call before PlaceSymbolFromLibrary
|
|
10
|
+
version: 0.1.0
|
|
11
|
+
vendor: Huaqiu Electronics
|
|
12
|
+
tags:
|
|
13
|
+
- eda
|
|
14
|
+
- huaqiu
|
|
15
|
+
- placement
|
|
16
|
+
entry: "@huaqiu/hqeda"
|
|
17
|
+
manifest: "@huaqiu/hqeda/skill.json"
|
|
18
|
+
inputSchema:
|
|
19
|
+
name: ListSymbolLibrariesRequestSchema
|
|
20
|
+
namespace: HqServicesV1ComponentPlaceService
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# List Symbol Libraries
|
|
24
|
+
|
|
25
|
+
Agent path: list global/power/gnd, port, off-page symbols — call before PlaceSymbolFromLibrary
|
|
26
|
+
|
|
27
|
+
## Overview
|
|
28
|
+
|
|
29
|
+
This skill provides access to the **`ComponentPlaceService.ListSymbolLibraries`** RPC method on the Huaqiu EDA engine. It is part of the **placement** domain and executes against the `componentPlace` client.
|
|
30
|
+
|
|
31
|
+
| Property | Value |
|
|
32
|
+
| --- | --- |
|
|
33
|
+
| Skill ID | `placement-list-symbol-libraries` |
|
|
34
|
+
| Service | `ComponentPlaceService` |
|
|
35
|
+
| Method | `ListSymbolLibraries` |
|
|
36
|
+
| Transport | Unary (unary) |
|
|
37
|
+
| Domain | placement |
|
|
38
|
+
| Request type | `ListSymbolLibrariesRequest` |
|
|
39
|
+
| Response type | `ListSymbolLibrariesResponse` |
|
|
40
|
+
|
|
41
|
+
## Parameters
|
|
42
|
+
|
|
43
|
+
| Name | Type | Required | Repeated | Description |
|
|
44
|
+
| --- | --- | --- | --- | --- |
|
|
45
|
+
| `context` | `ProjectContext` | no | no | — |
|
|
46
|
+
|
|
47
|
+
## Response
|
|
48
|
+
|
|
49
|
+
Returns a `ListSymbolLibrariesResponse` message with the following fields:
|
|
50
|
+
|
|
51
|
+
| Name | Type | Repeated | Description |
|
|
52
|
+
| --- | --- | --- | --- |
|
|
53
|
+
| `libraries` | `SymbolLibraryInfo[]` | yes | — |
|
|
54
|
+
|
|
55
|
+
## Response Example
|
|
56
|
+
|
|
57
|
+
Representative response structure (field values are placeholders):
|
|
58
|
+
|
|
59
|
+
```json
|
|
60
|
+
{
|
|
61
|
+
"libraries": [
|
|
62
|
+
{}
|
|
63
|
+
]
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Prerequisites
|
|
68
|
+
|
|
69
|
+
- [project-get-active-project](../../project/get-active-project/SKILL.md) — Discover the active project before building project-scoped context.
|
|
70
|
+
|
|
71
|
+
See also [skill-dependencies.md](../../references/skill-dependencies.md) for common workflows.
|
|
72
|
+
|
|
73
|
+
## How to Use
|
|
74
|
+
|
|
75
|
+
Execute via the HQ EDA skill runtime with a connected `EditorClient`. See [quickstart.md](../../references/quickstart.md) for the full `listEditors` → `connect` → `getSkill` → `execute` chain.
|
|
76
|
+
|
|
77
|
+
```typescript
|
|
78
|
+
import { getSkill, toJsonString } from "@huaqiu/hqeda";
|
|
79
|
+
|
|
80
|
+
const skill = getSkill("placement-list-symbol-libraries");
|
|
81
|
+
const result = await skill.execute({ client }, {
|
|
82
|
+
context: "<ProjectContext via client.createProjectContext('my-project')>",
|
|
83
|
+
});
|
|
84
|
+
console.log(toJsonString(result, { prettySpaces: 2 }));
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Serialize responses with `toJsonString()` — see [serialization.md](../../references/serialization.md).
|
|
88
|
+
|
|
89
|
+
## Related Skills
|
|
90
|
+
|
|
91
|
+
- Other **placement** skills: [`placement/`](../)
|
|
92
|
+
- Full index: [All EDA skills](../../SKILL.md)
|
|
93
|
+
- Install: `npx skills add Huaqiu-Electronics/skills --path eda/placement/list-symbol-libraries`
|
|
94
|
+
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: placement-place-kicad-symbol
|
|
3
|
+
metadata:
|
|
4
|
+
category: placement
|
|
5
|
+
service: ComponentPlaceService
|
|
6
|
+
method: PlaceKicadSymbol
|
|
7
|
+
rpcKind: unary
|
|
8
|
+
description: >-
|
|
9
|
+
Place R/C/Q/U from online KiCad symbol URL (SCH_PlaceKicadSymbolFromResource). Invoke after part-search getEdaModels returns symbol.uri; requires active schematic page and project context.
|
|
10
|
+
version: 0.1.0
|
|
11
|
+
vendor: Huaqiu Electronics
|
|
12
|
+
tags:
|
|
13
|
+
- eda
|
|
14
|
+
- huaqiu
|
|
15
|
+
- placement
|
|
16
|
+
entry: "@huaqiu/hqeda"
|
|
17
|
+
manifest: "@huaqiu/hqeda/skill.json"
|
|
18
|
+
inputSchema:
|
|
19
|
+
name: PlaceKicadSymbolRequestSchema
|
|
20
|
+
namespace: HqServicesV1ComponentPlaceService
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# Place Kicad Symbol
|
|
24
|
+
|
|
25
|
+
Place R/C/Q/U from online KiCad symbol URL (SCH_PlaceKicadSymbolFromResource). Invoke after part-search getEdaModels returns symbol.uri; requires active schematic page and project context.
|
|
26
|
+
|
|
27
|
+
## Overview
|
|
28
|
+
|
|
29
|
+
This skill provides access to the **`ComponentPlaceService.PlaceKicadSymbol`** RPC method on the Huaqiu EDA engine. It is part of the **placement** domain and executes against the `componentPlace` client.
|
|
30
|
+
|
|
31
|
+
| Property | Value |
|
|
32
|
+
| --- | --- |
|
|
33
|
+
| Skill ID | `placement-place-kicad-symbol` |
|
|
34
|
+
| Service | `ComponentPlaceService` |
|
|
35
|
+
| Method | `PlaceKicadSymbol` |
|
|
36
|
+
| Transport | Unary (unary) |
|
|
37
|
+
| Domain | placement |
|
|
38
|
+
| Request type | `PlaceKicadSymbolRequest` |
|
|
39
|
+
| Response type | `ObjectPlaceResponse` |
|
|
40
|
+
|
|
41
|
+
## Parameters
|
|
42
|
+
|
|
43
|
+
| Name | Type | Required | Repeated | Description |
|
|
44
|
+
| --- | --- | --- | --- | --- |
|
|
45
|
+
| `context` | `ProjectContext` | no | no | — |
|
|
46
|
+
| `component` | `ComponentResource` | no | no | — |
|
|
47
|
+
| `localPos` | `Vector2i64` | no | no | — |
|
|
48
|
+
| `sectionPlacements` | `SectionPlacement[]` | no | yes | — |
|
|
49
|
+
|
|
50
|
+
## Response
|
|
51
|
+
|
|
52
|
+
Returns a `ObjectPlaceResponse` message with the following fields:
|
|
53
|
+
|
|
54
|
+
| Name | Type | Repeated | Description |
|
|
55
|
+
| --- | --- | --- | --- |
|
|
56
|
+
| `success` | `boolean` | no | — |
|
|
57
|
+
| `objectId` | `bigint` | no | Canvas object id (objBase::m_nID). For part/symbol placement (PlacePart / PlacePartFromLibrary / PlaceKicadSymbol / PlaceSymbol / PlaceSymbolFromLibrary), this is the schem_part_enc container id — same as kernel snapshot symbol_instances[].canvas_object_id and pin_instances[].canvas_object_id. |
|
|
58
|
+
| `objectIds` | `bigint[]` | yes | All placed section object ids (PlaceKicadSymbol multi-section loop). |
|
|
59
|
+
| `sectionCount` | `number` | no | Number of sections in the package (GetSectionCount); set by PlaceKicadSymbol when available. |
|
|
60
|
+
|
|
61
|
+
## Response Example
|
|
62
|
+
|
|
63
|
+
Representative response structure (field values are placeholders):
|
|
64
|
+
|
|
65
|
+
```json
|
|
66
|
+
{
|
|
67
|
+
"success": false,
|
|
68
|
+
"objectId": "123456789",
|
|
69
|
+
"objectIds": [
|
|
70
|
+
"123456789"
|
|
71
|
+
],
|
|
72
|
+
"sectionCount": 0
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Prerequisites
|
|
77
|
+
|
|
78
|
+
- [project-get-active-project](../../project/get-active-project/SKILL.md) — Discover the active project before building project-scoped context.
|
|
79
|
+
|
|
80
|
+
See also [skill-dependencies.md](../../references/skill-dependencies.md) for common workflows.
|
|
81
|
+
|
|
82
|
+
## How to Use
|
|
83
|
+
|
|
84
|
+
Execute via the HQ EDA skill runtime with a connected `EditorClient`. See [quickstart.md](../../references/quickstart.md) for the full `listEditors` → `connect` → `getSkill` → `execute` chain.
|
|
85
|
+
|
|
86
|
+
```typescript
|
|
87
|
+
import { getSkill, toJsonString } from "@huaqiu/hqeda";
|
|
88
|
+
|
|
89
|
+
const skill = getSkill("placement-place-kicad-symbol");
|
|
90
|
+
const result = await skill.execute({ client }, {
|
|
91
|
+
context: "<ProjectContext via client.createProjectContext('my-project')>",
|
|
92
|
+
component: {},
|
|
93
|
+
localPos: {"x":0,"y":0},
|
|
94
|
+
});
|
|
95
|
+
console.log(toJsonString(result, { prettySpaces: 2 }));
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Serialize responses with `toJsonString()` — see [serialization.md](../../references/serialization.md).
|
|
99
|
+
|
|
100
|
+
## Related Skills
|
|
101
|
+
|
|
102
|
+
- Other **placement** skills: [`placement/`](../)
|
|
103
|
+
- Full index: [All EDA skills](../../SKILL.md)
|
|
104
|
+
- Install: `npx skills add Huaqiu-Electronics/skills --path eda/placement/place-kicad-symbol`
|
|
105
|
+
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: placement-place-part-from-library
|
|
3
|
+
metadata:
|
|
4
|
+
category: placement
|
|
5
|
+
service: ComponentPlaceService
|
|
6
|
+
method: PlacePartFromLibrary
|
|
7
|
+
rpcKind: unary
|
|
8
|
+
description: >-
|
|
9
|
+
Place a part from local/builtin library (discrete, etc.). Invoke when online part-search has no match or user specifies a local libraryName/partName; requires active schematic page.
|
|
10
|
+
version: 0.1.0
|
|
11
|
+
vendor: Huaqiu Electronics
|
|
12
|
+
tags:
|
|
13
|
+
- eda
|
|
14
|
+
- huaqiu
|
|
15
|
+
- placement
|
|
16
|
+
entry: "@huaqiu/hqeda"
|
|
17
|
+
manifest: "@huaqiu/hqeda/skill.json"
|
|
18
|
+
inputSchema:
|
|
19
|
+
name: PlacePartFromLibraryRequestSchema
|
|
20
|
+
namespace: HqServicesV1ComponentPlaceService
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# Place Part From Library
|
|
24
|
+
|
|
25
|
+
Place a part from local/builtin library (discrete, etc.). Invoke when online part-search has no match or user specifies a local libraryName/partName; requires active schematic page.
|
|
26
|
+
|
|
27
|
+
## Overview
|
|
28
|
+
|
|
29
|
+
This skill provides access to the **`ComponentPlaceService.PlacePartFromLibrary`** RPC method on the Huaqiu EDA engine. It is part of the **placement** domain and executes against the `componentPlace` client.
|
|
30
|
+
|
|
31
|
+
| Property | Value |
|
|
32
|
+
| --- | --- |
|
|
33
|
+
| Skill ID | `placement-place-part-from-library` |
|
|
34
|
+
| Service | `ComponentPlaceService` |
|
|
35
|
+
| Method | `PlacePartFromLibrary` |
|
|
36
|
+
| Transport | Unary (unary) |
|
|
37
|
+
| Domain | placement |
|
|
38
|
+
| Request type | `PlacePartFromLibraryRequest` |
|
|
39
|
+
| Response type | `ObjectPlaceResponse` |
|
|
40
|
+
|
|
41
|
+
## Parameters
|
|
42
|
+
|
|
43
|
+
| Name | Type | Required | Repeated | Description |
|
|
44
|
+
| --- | --- | --- | --- | --- |
|
|
45
|
+
| `context` | `ProjectContext` | no | no | — |
|
|
46
|
+
| `localPos` | `Vector2i64` | no | no | — |
|
|
47
|
+
| `libraryName` | `string` | yes | no | — |
|
|
48
|
+
| `partName` | `string` | yes | no | — |
|
|
49
|
+
| `libraryFilePath` | `string` | yes | no | — |
|
|
50
|
+
|
|
51
|
+
## Response
|
|
52
|
+
|
|
53
|
+
Returns a `ObjectPlaceResponse` message with the following fields:
|
|
54
|
+
|
|
55
|
+
| Name | Type | Repeated | Description |
|
|
56
|
+
| --- | --- | --- | --- |
|
|
57
|
+
| `success` | `boolean` | no | — |
|
|
58
|
+
| `objectId` | `bigint` | no | Canvas object id (objBase::m_nID). For part/symbol placement (PlacePart / PlacePartFromLibrary / PlaceKicadSymbol / PlaceSymbol / PlaceSymbolFromLibrary), this is the schem_part_enc container id — same as kernel snapshot symbol_instances[].canvas_object_id and pin_instances[].canvas_object_id. |
|
|
59
|
+
| `objectIds` | `bigint[]` | yes | All placed section object ids (PlaceKicadSymbol multi-section loop). |
|
|
60
|
+
| `sectionCount` | `number` | no | Number of sections in the package (GetSectionCount); set by PlaceKicadSymbol when available. |
|
|
61
|
+
|
|
62
|
+
## Response Example
|
|
63
|
+
|
|
64
|
+
Representative response structure (field values are placeholders):
|
|
65
|
+
|
|
66
|
+
```json
|
|
67
|
+
{
|
|
68
|
+
"success": false,
|
|
69
|
+
"objectId": "123456789",
|
|
70
|
+
"objectIds": [
|
|
71
|
+
"123456789"
|
|
72
|
+
],
|
|
73
|
+
"sectionCount": 0
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Prerequisites
|
|
78
|
+
|
|
79
|
+
- [project-get-active-project](../../project/get-active-project/SKILL.md) — Discover the active project before building project-scoped context.
|
|
80
|
+
|
|
81
|
+
See also [skill-dependencies.md](../../references/skill-dependencies.md) for common workflows.
|
|
82
|
+
|
|
83
|
+
## How to Use
|
|
84
|
+
|
|
85
|
+
Execute via the HQ EDA skill runtime with a connected `EditorClient`. See [quickstart.md](../../references/quickstart.md) for the full `listEditors` → `connect` → `getSkill` → `execute` chain.
|
|
86
|
+
|
|
87
|
+
```typescript
|
|
88
|
+
import { getSkill, toJsonString } from "@huaqiu/hqeda";
|
|
89
|
+
|
|
90
|
+
const skill = getSkill("placement-place-part-from-library");
|
|
91
|
+
const result = await skill.execute({ client }, {
|
|
92
|
+
context: "<ProjectContext via client.createProjectContext('my-project')>",
|
|
93
|
+
localPos: {"x":0,"y":0},
|
|
94
|
+
libraryName: "Device",
|
|
95
|
+
});
|
|
96
|
+
console.log(toJsonString(result, { prettySpaces: 2 }));
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Serialize responses with `toJsonString()` — see [serialization.md](../../references/serialization.md).
|
|
100
|
+
|
|
101
|
+
## Related Skills
|
|
102
|
+
|
|
103
|
+
- Other **placement** skills: [`placement/`](../)
|
|
104
|
+
- Full index: [All EDA skills](../../SKILL.md)
|
|
105
|
+
- Install: `npx skills add Huaqiu-Electronics/skills --path eda/placement/place-part-from-library`
|
|
106
|
+
|