dsh-env-manager-plugin 0.1.0 → 0.1.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/LICENSE +21 -21
- package/README.md +274 -250
- package/client.js +2581 -2581
- package/cordis.patch.yml +4 -4
- package/docs/00-project/current-state.md +32 -6
- package/docs/00-project/glossary.md +215 -215
- package/docs/00-project/project-brief.md +114 -114
- package/docs/00-project/roadmap.md +89 -89
- package/docs/01-architecture/DSH_Environment_Service_Memory_Skill_Brainstorm.md +493 -493
- package/docs/01-architecture/api-verification.md +416 -416
- package/docs/01-architecture/architecture-overview.md +222 -222
- package/docs/01-architecture/data-model.md +930 -930
- package/docs/01-architecture/decisions/ADR-0001-plugin-as-bundle.md +29 -29
- package/docs/01-architecture/decisions/ADR-0002-file-based-storage.md +25 -25
- package/docs/01-architecture/decisions/ADR-0003-skill-router-over-search.md +25 -25
- package/docs/01-architecture/decisions/ADR-0004-typescript-host-js-client.md +31 -31
- package/docs/01-architecture/decisions/ADR-0005-layered-rule-resolution.md +36 -36
- package/docs/01-architecture/decisions/ADR-0006-credentials-as-references.md +30 -30
- package/docs/01-architecture/decisions/ADR-0007-session-scoped-default-environment.md +28 -28
- package/docs/01-architecture/decisions/ADR-0008-memory-bridge-not-second-store.md +31 -31
- package/docs/01-architecture/decisions/ADR-0009-client-host-http-transport.md +87 -87
- package/docs/01-architecture/decisions/ADR-0010-environment-plane-model.md +87 -87
- package/docs/01-architecture/decisions/ADR-0011-k8s-node-execution-model.md +92 -92
- package/docs/01-architecture/design.md +666 -666
- package/docs/01-architecture/detailed-design.md +961 -961
- package/docs/01-architecture/implementation-plan.md +323 -323
- package/docs/01-architecture/module-boundaries.md +306 -306
- package/docs/01-architecture/security-model.md +227 -227
- package/docs/01-architecture/storage-contract.md +224 -224
- package/docs/01-architecture/tool-contract.md +438 -438
- package/docs/01-architecture/ui-design.md +587 -587
- package/docs/02-harness/agent-behavior.md +36 -36
- package/docs/02-harness/change-snapshot-policy.md +29 -29
- package/docs/02-harness/client-ui-integration.md +110 -110
- package/docs/02-harness/context-policy.md +43 -43
- package/docs/02-harness/harness-standard.md +91 -91
- package/docs/02-harness/task-execution-policy.md +26 -26
- package/docs/02-harness/verification-policy.md +97 -97
- package/docs/03-openspec/archive-rule.md +25 -25
- package/docs/03-openspec/bugfix-rule.md +30 -30
- package/docs/03-openspec/design-rule.md +33 -33
- package/docs/03-openspec/openspec-usage-guide.md +31 -31
- package/docs/03-openspec/proposal-rule.md +70 -70
- package/docs/03-openspec/spec-rule.md +33 -33
- package/docs/03-openspec/tasks-rule.md +31 -31
- package/docs/04-development/coding-style.md +67 -67
- package/docs/04-development/dependency-policy.md +43 -43
- package/docs/04-development/development-guide.md +85 -85
- package/docs/04-development/directory-convention.md +105 -105
- package/docs/04-development/local-run-guide.md +61 -55
- package/docs/04-development/testing-guide.md +102 -102
- package/docs/05-domain/deployment-template.md +76 -76
- package/docs/05-domain/environment-template.md +165 -165
- package/docs/05-domain/operation-binding-template.md +55 -55
- package/docs/05-domain/operation-record-template.md +55 -55
- package/docs/05-domain/prompt-template.md +90 -90
- package/docs/05-domain/rule-template.md +73 -73
- package/docs/05-domain/service-template.md +39 -39
- package/docs/06-operations/deployment-guide.md +54 -54
- package/docs/06-operations/release.md +198 -188
- package/docs/06-operations/security-policy.md +53 -53
- package/docs/06-operations/troubleshooting.md +141 -91
- package/docs/07-templates/adr-template.md +21 -21
- package/docs/07-templates/bugfix-template.md +11 -11
- package/docs/07-templates/case-template.md +15 -15
- package/docs/07-templates/design-template.md +29 -29
- package/docs/07-templates/proposal-template.md +19 -19
- package/docs/07-templates/spec-template.md +15 -15
- package/docs/07-templates/tasks-template.md +12 -12
- package/docs/99-archive/README.md +13 -13
- package/docs/README.md +142 -142
- package/icon.svg +4 -4
- package/index.js +31 -8
- package/lib/app/app.d.ts +1 -1
- package/lib/app/app.js +4 -1
- package/lib/app/app.js.map +1 -1
- package/lib/skill.js +37 -37
- package/locale/en.json +6 -6
- package/locale/zh.json +6 -6
- package/package.json +101 -99
- package/scripts/repair-profile.mjs +141 -0
package/cordis.patch.yml
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
- insert:
|
|
2
|
-
- id: dsh-env-manager
|
|
3
|
-
name: dsh-env-manager-plugin
|
|
4
|
-
config: {}
|
|
1
|
+
- insert:
|
|
2
|
+
- id: dsh-env-manager
|
|
3
|
+
name: dsh-env-manager-plugin
|
|
4
|
+
config: {}
|
|
@@ -11,7 +11,7 @@ surfaces.**
|
|
|
11
11
|
|
|
12
12
|
The V1 Host is implemented in TypeScript under `src/` and compiled to `lib/`. Storage,
|
|
13
13
|
registry, resolver, router, session store, application service, ten tools and the
|
|
14
|
-
same-origin HTTP API are in place, with
|
|
14
|
+
same-origin HTTP API are in place, with 51 Vitest tests passing. The Client panel is
|
|
15
15
|
implemented in `client.js` and its sidebar/main slot registrations are live. The sidebar
|
|
16
16
|
glyph follows the host `sidebar.panellist` contract: it honors the owner's
|
|
17
17
|
`size`/`active` props and renders monochrome with `currentColor`; the contract is recorded
|
|
@@ -31,11 +31,37 @@ the tarball, publishes with npm Trusted Publisher/OIDC, and creates a GitHub Rel
|
|
|
31
31
|
The first publish must be bootstrapped manually before Trusted Publisher can be bound;
|
|
32
32
|
the exact steps are in [`release.md`](../06-operations/release.md).
|
|
33
33
|
|
|
34
|
-
**Release status (2026-11-01):**
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
34
|
+
**Release status (2026-11-01):** `dsh-env-manager-plugin@0.1.0` is published and is the
|
|
35
|
+
`latest` npm tag (`gitHead` `4d884e7`). The
|
|
36
|
+
[GitHub Release v0.1.0](https://github.com/zhiwuli0228/dsh-env-manager/releases/tag/v0.1.0)
|
|
37
|
+
contains `dsh-env-manager-plugin-0.1.0.tgz`; workflow run
|
|
38
|
+
[`41323001406`](https://github.com/zhiwuli0228/dsh-env-manager/actions/runs/41323001406)
|
|
39
|
+
completed successfully. The 0.1.0 publish itself was bootstrapped manually; the workflow
|
|
40
|
+
detected the existing version, skipped npm publish, and created the Release. Later versions
|
|
41
|
+
use npm Trusted Publisher/OIDC through the same workflow.
|
|
42
|
+
|
|
43
|
+
**Plugin directory:** submitted to
|
|
44
|
+
[`awesome-dsh-plugin/awesome-dsh-plugin`](https://github.com/awesome-dsh-plugin/awesome-dsh-plugin)
|
|
45
|
+
as PR [#11185](https://github.com/awesome-dsh-plugin/awesome-dsh-plugin/pull/11185)
|
|
46
|
+
(`data/plugins/zhiwuli0228__dsh-env-manager.yml`, category `dev`). The repository has the
|
|
47
|
+
`dsh-plugin` topic; the listing is pending CI/review.
|
|
48
|
+
|
|
49
|
+
**Installation smoke test (2026-11-02):** removed the old local bundle
|
|
50
|
+
`dsh-env-manager` from the `desktop` profile, including its package dependency, bundle
|
|
51
|
+
entry, lockfile reference and stale `node_modules/dsh-env-manager` symlink. Reinstalled
|
|
52
|
+
the published package as `dsh-env-manager-plugin@0.1.0` from npm. The discovery Skill,
|
|
53
|
+
ten tools, sidebar panel and `/env-manager/api` transport all came back; the API reported
|
|
54
|
+
the preserved registry data (2 environments, 3 services, 3 deployments, 0 rule profiles,
|
|
55
|
+
0 operation bindings) and no warnings. Registry data was intentionally not deleted during
|
|
56
|
+
uninstall.
|
|
57
|
+
|
|
58
|
+
**Install hardening (2026-11-03):** reproduced the reported failure from a clean clone:
|
|
59
|
+
`lib/` was git-ignored, so a checkout installed without a build had no `lib/index.js`.
|
|
60
|
+
The compiled `lib/` tree is now committed, `index.js` reports a specific missing-build
|
|
61
|
+
error, and the install docs use `plugin_manager install_bundle` instead of the
|
|
62
|
+
dependency-only `dsh plugin add` command. `scripts/repair-profile.mjs` detects duplicate
|
|
63
|
+
or legacy bundle entries and offers an atomic `--fix` with a backup. The published
|
|
64
|
+
`0.1.0` npm tarball already contained `lib/`; this fixes checkout and git installs.
|
|
39
65
|
|
|
40
66
|
The panel uses a centered 1080 px column, 22 px title with a glyph mark, underline tabs,
|
|
41
67
|
compact stat cards and a master/detail environment view. **Environments is the first and
|
|
@@ -1,215 +1,215 @@
|
|
|
1
|
-
# Glossary
|
|
2
|
-
|
|
3
|
-
## Environment
|
|
4
|
-
|
|
5
|
-
One complete network and one configuration page, such as `dev`, `test-a`, `staging` or
|
|
6
|
-
`production`.
|
|
7
|
-
|
|
8
|
-
Contains the role catalogue, hosts, clusters and access endpoints in one record. An
|
|
9
|
-
environment must declare at least one logical role; the panel seeds management, business,
|
|
10
|
-
database and expansion by default.
|
|
11
|
-
|
|
12
|
-
## Plane
|
|
13
|
-
|
|
14
|
-
A role view over an environment's nodes: management, business, database or expansion.
|
|
15
|
-
|
|
16
|
-
A plane is **not** a separate environment and has no node copies. Opening a plane tab
|
|
17
|
-
filters the environment's single `hosts[]` collection. A node that serves two planes is one
|
|
18
|
-
host with two roles.
|
|
19
|
-
|
|
20
|
-
## Node
|
|
21
|
-
|
|
22
|
-
The user-facing name for a host inside an environment. See **Host**.
|
|
23
|
-
|
|
24
|
-
## Host
|
|
25
|
-
|
|
26
|
-
A single compute machine inside one environment: a VM, physical machine, Kubernetes node or
|
|
27
|
-
Pod-hosting machine. A Pod is not a Host.
|
|
28
|
-
|
|
29
|
-
Attributes: hostname, kind, OS, IP, SSH port, roles, command access and a `credentialRef`. A
|
|
30
|
-
host must declare at least one role; it may carry several roles, which is how co-location is
|
|
31
|
-
expressed. It may have zero accounts, or accounts that each carry their own `credentialRef`.
|
|
32
|
-
|
|
33
|
-
## Node Kind
|
|
34
|
-
|
|
35
|
-
The machine classification on `Host.kind`: `vm`, `physical`, `k8s-all-in-one`, `k8s-worker`
|
|
36
|
-
or `pod-host`. It describes how the machine participates in the deployment, not which
|
|
37
|
-
logical plane it serves. A missing kind reads as `vm`.
|
|
38
|
-
|
|
39
|
-
## Command Surface
|
|
40
|
-
|
|
41
|
-
The command entry points available on a host, recorded in `Host.access`: `ssh`, `kubectl`
|
|
42
|
-
or `docker`. This is capability metadata, not an authorization grant and not a credential.
|
|
43
|
-
|
|
44
|
-
## Pod Host
|
|
45
|
-
|
|
46
|
-
A machine running Pods that operators reach with `docker exec`, recorded as
|
|
47
|
-
`Host.kind: pod-host`. It is one Host even when it runs many Pods; individual Pods belong to
|
|
48
|
-
the deployment model, not `hosts[]`.
|
|
49
|
-
|
|
50
|
-
## Web Login
|
|
51
|
-
|
|
52
|
-
A management or business console login recorded on `HostAccount`: `loginUrl` is the console
|
|
53
|
-
entry URL, `username` is the login name and `credentialRef` points to the password in the
|
|
54
|
-
DSH credential service. The URL is configuration, never a secret; the password is never
|
|
55
|
-
stored in the environment YAML.
|
|
56
|
-
|
|
57
|
-
## Cluster
|
|
58
|
-
|
|
59
|
-
A Kubernetes or Docker cluster inside one environment.
|
|
60
|
-
|
|
61
|
-
Attributes: kind, optional topology (`all-in-one`, `separate` or `external`), API endpoint,
|
|
62
|
-
namespaces and a `credentialRef`. Kubernetes and Pod-host nodes reference it through
|
|
63
|
-
`Host.clusterRef`.
|
|
64
|
-
|
|
65
|
-
## Cluster Topology
|
|
66
|
-
|
|
67
|
-
A descriptive label on `Cluster.topology`:
|
|
68
|
-
|
|
69
|
-
- `all-in-one` — control plane and worker on the same machine;
|
|
70
|
-
- `separate` — dedicated control plane and worker machines;
|
|
71
|
-
- `external` — a cluster managed outside this environment.
|
|
72
|
-
|
|
73
|
-
Per-host `Host.kind` is authoritative; topology does not replace it.
|
|
74
|
-
|
|
75
|
-
## Logical Role
|
|
76
|
-
|
|
77
|
-
A named function a host can serve, such as `management`, `business`, `database` or
|
|
78
|
-
`extension`.
|
|
79
|
-
|
|
80
|
-
Hosts and roles are many-to-many via `Host.roles`. Standard role ids are seeded on
|
|
81
|
-
environment creation; custom ids are allowed but must be declared before use.
|
|
82
|
-
|
|
83
|
-
## Service
|
|
84
|
-
|
|
85
|
-
A deployable software component described independently of any environment.
|
|
86
|
-
|
|
87
|
-
Attributes: id, name, aliases, category, Git URL and branch, build tool, artifact name, supported deploy modes and ordered rule profile references.
|
|
88
|
-
|
|
89
|
-
## Deployment Binding
|
|
90
|
-
|
|
91
|
-
The relationship "this service runs here, in this runtime mode".
|
|
92
|
-
|
|
93
|
-
One service may have several bindings in one environment, so `(environmentId, serviceId)` is not unique.
|
|
94
|
-
|
|
95
|
-
## Runtime Mode
|
|
96
|
-
|
|
97
|
-
`native`, `docker` or `kubernetes`. Determines which location fields and which log source apply.
|
|
98
|
-
|
|
99
|
-
## Rule Profile
|
|
100
|
-
|
|
101
|
-
A reusable set of variables, paths, log sources and class locations.
|
|
102
|
-
|
|
103
|
-
Referenced by services in order; later profiles win on field conflicts.
|
|
104
|
-
|
|
105
|
-
## Rule Override
|
|
106
|
-
|
|
107
|
-
A field-level override carried by an environment or a deployment.
|
|
108
|
-
|
|
109
|
-
Overriding one field leaves the other fields of the profile intact.
|
|
110
|
-
|
|
111
|
-
## Rule Layer
|
|
112
|
-
|
|
113
|
-
One of `global`, `service`, `environment`, `deployment`, in ascending priority.
|
|
114
|
-
|
|
115
|
-
## Template
|
|
116
|
-
|
|
117
|
-
A string containing `${...}` references, resolved by interpolation only.
|
|
118
|
-
|
|
119
|
-
No functions, operators, conditionals or shell execution.
|
|
120
|
-
|
|
121
|
-
## Provenance
|
|
122
|
-
|
|
123
|
-
The explanation attached to a resolved value:
|
|
124
|
-
|
|
125
|
-
- `definedBy` — the layer and profile that supplied the winning template;
|
|
126
|
-
- `inputs` — referenced fields and the layer that supplied each;
|
|
127
|
-
- `shadowed` — lower-priority definitions that lost.
|
|
128
|
-
|
|
129
|
-
## Derived Value
|
|
130
|
-
|
|
131
|
-
A value produced by rule resolution. It is not evidence that a file or endpoint exists.
|
|
132
|
-
|
|
133
|
-
## Verified Value
|
|
134
|
-
|
|
135
|
-
A value confirmed by an online check. V1 does not produce verified values.
|
|
136
|
-
|
|
137
|
-
## Service Context
|
|
138
|
-
|
|
139
|
-
The structured result of resolving an environment, service, deployment, rules and credential status.
|
|
140
|
-
|
|
141
|
-
Returned by `env_resolve`.
|
|
142
|
-
|
|
143
|
-
## Operation Binding
|
|
144
|
-
|
|
145
|
-
A predicate mapping an operation in a given context to a specific Skill, with parameter templates and policy.
|
|
146
|
-
|
|
147
|
-
## Match Level
|
|
148
|
-
|
|
149
|
-
How specific a binding is: `deployment`, `environment-service`, `service`, `category-mode`, `global`.
|
|
150
|
-
|
|
151
|
-
Higher levels win; same-level ties are conflicts.
|
|
152
|
-
|
|
153
|
-
## Skill Reference
|
|
154
|
-
|
|
155
|
-
A pointer to a DSH Skill: name, optional expected source and provider.
|
|
156
|
-
|
|
157
|
-
It is discovery information, not execution authorization.
|
|
158
|
-
|
|
159
|
-
## Approval Policy
|
|
160
|
-
|
|
161
|
-
The `requiresApproval` and `allowProduction` fields on a binding.
|
|
162
|
-
|
|
163
|
-
Write operations default to requiring approval; production defaults to denied.
|
|
164
|
-
|
|
165
|
-
## Credential Reference
|
|
166
|
-
|
|
167
|
-
A `credentialRef` string stored in a registry record.
|
|
168
|
-
|
|
169
|
-
The value behind it lives in the DSH credential service or an external vault and is never returned by this plugin.
|
|
170
|
-
|
|
171
|
-
## Credential Status
|
|
172
|
-
|
|
173
|
-
`configured`, `missing` or `unavailable`, obtained from the credential service without reading the value.
|
|
174
|
-
|
|
175
|
-
## Session Context
|
|
176
|
-
|
|
177
|
-
The per-session default environment.
|
|
178
|
-
|
|
179
|
-
Advisory only; it never changes registry records or another session's state.
|
|
180
|
-
|
|
181
|
-
## Operation Record
|
|
182
|
-
|
|
183
|
-
A structured, redacted description of a performed operation: scope, operation, Skill reference, timing, outcome, evidence references and summary.
|
|
184
|
-
|
|
185
|
-
Owned by the memory plugin from P1 onward.
|
|
186
|
-
|
|
187
|
-
## Evidence Reference
|
|
188
|
-
|
|
189
|
-
An opaque, sanitized pointer to evidence produced during an operation.
|
|
190
|
-
|
|
191
|
-
Not the evidence itself.
|
|
192
|
-
|
|
193
|
-
## Memory Scope
|
|
194
|
-
|
|
195
|
-
The environment/service/deployment scope attached to a memory query or record.
|
|
196
|
-
|
|
197
|
-
Prevents a single-environment conclusion from becoming a global rule.
|
|
198
|
-
|
|
199
|
-
## Memory Bridge
|
|
200
|
-
|
|
201
|
-
The optional adapter between this plugin and the memory plugin.
|
|
202
|
-
|
|
203
|
-
Introduces no second store of environment facts and applies nothing automatically.
|
|
204
|
-
|
|
205
|
-
## Review Queue
|
|
206
|
-
|
|
207
|
-
The place where candidate rule or Skill changes wait for a human decision.
|
|
208
|
-
|
|
209
|
-
## Source of Truth
|
|
210
|
-
|
|
211
|
-
The durable data representation. Here: YAML registry files under the plugin data directory.
|
|
212
|
-
|
|
213
|
-
## Harness
|
|
214
|
-
|
|
215
|
-
The project-level control system for AI-assisted development: context rules, constraints, execution and verification policies, and continuity practices.
|
|
1
|
+
# Glossary
|
|
2
|
+
|
|
3
|
+
## Environment
|
|
4
|
+
|
|
5
|
+
One complete network and one configuration page, such as `dev`, `test-a`, `staging` or
|
|
6
|
+
`production`.
|
|
7
|
+
|
|
8
|
+
Contains the role catalogue, hosts, clusters and access endpoints in one record. An
|
|
9
|
+
environment must declare at least one logical role; the panel seeds management, business,
|
|
10
|
+
database and expansion by default.
|
|
11
|
+
|
|
12
|
+
## Plane
|
|
13
|
+
|
|
14
|
+
A role view over an environment's nodes: management, business, database or expansion.
|
|
15
|
+
|
|
16
|
+
A plane is **not** a separate environment and has no node copies. Opening a plane tab
|
|
17
|
+
filters the environment's single `hosts[]` collection. A node that serves two planes is one
|
|
18
|
+
host with two roles.
|
|
19
|
+
|
|
20
|
+
## Node
|
|
21
|
+
|
|
22
|
+
The user-facing name for a host inside an environment. See **Host**.
|
|
23
|
+
|
|
24
|
+
## Host
|
|
25
|
+
|
|
26
|
+
A single compute machine inside one environment: a VM, physical machine, Kubernetes node or
|
|
27
|
+
Pod-hosting machine. A Pod is not a Host.
|
|
28
|
+
|
|
29
|
+
Attributes: hostname, kind, OS, IP, SSH port, roles, command access and a `credentialRef`. A
|
|
30
|
+
host must declare at least one role; it may carry several roles, which is how co-location is
|
|
31
|
+
expressed. It may have zero accounts, or accounts that each carry their own `credentialRef`.
|
|
32
|
+
|
|
33
|
+
## Node Kind
|
|
34
|
+
|
|
35
|
+
The machine classification on `Host.kind`: `vm`, `physical`, `k8s-all-in-one`, `k8s-worker`
|
|
36
|
+
or `pod-host`. It describes how the machine participates in the deployment, not which
|
|
37
|
+
logical plane it serves. A missing kind reads as `vm`.
|
|
38
|
+
|
|
39
|
+
## Command Surface
|
|
40
|
+
|
|
41
|
+
The command entry points available on a host, recorded in `Host.access`: `ssh`, `kubectl`
|
|
42
|
+
or `docker`. This is capability metadata, not an authorization grant and not a credential.
|
|
43
|
+
|
|
44
|
+
## Pod Host
|
|
45
|
+
|
|
46
|
+
A machine running Pods that operators reach with `docker exec`, recorded as
|
|
47
|
+
`Host.kind: pod-host`. It is one Host even when it runs many Pods; individual Pods belong to
|
|
48
|
+
the deployment model, not `hosts[]`.
|
|
49
|
+
|
|
50
|
+
## Web Login
|
|
51
|
+
|
|
52
|
+
A management or business console login recorded on `HostAccount`: `loginUrl` is the console
|
|
53
|
+
entry URL, `username` is the login name and `credentialRef` points to the password in the
|
|
54
|
+
DSH credential service. The URL is configuration, never a secret; the password is never
|
|
55
|
+
stored in the environment YAML.
|
|
56
|
+
|
|
57
|
+
## Cluster
|
|
58
|
+
|
|
59
|
+
A Kubernetes or Docker cluster inside one environment.
|
|
60
|
+
|
|
61
|
+
Attributes: kind, optional topology (`all-in-one`, `separate` or `external`), API endpoint,
|
|
62
|
+
namespaces and a `credentialRef`. Kubernetes and Pod-host nodes reference it through
|
|
63
|
+
`Host.clusterRef`.
|
|
64
|
+
|
|
65
|
+
## Cluster Topology
|
|
66
|
+
|
|
67
|
+
A descriptive label on `Cluster.topology`:
|
|
68
|
+
|
|
69
|
+
- `all-in-one` — control plane and worker on the same machine;
|
|
70
|
+
- `separate` — dedicated control plane and worker machines;
|
|
71
|
+
- `external` — a cluster managed outside this environment.
|
|
72
|
+
|
|
73
|
+
Per-host `Host.kind` is authoritative; topology does not replace it.
|
|
74
|
+
|
|
75
|
+
## Logical Role
|
|
76
|
+
|
|
77
|
+
A named function a host can serve, such as `management`, `business`, `database` or
|
|
78
|
+
`extension`.
|
|
79
|
+
|
|
80
|
+
Hosts and roles are many-to-many via `Host.roles`. Standard role ids are seeded on
|
|
81
|
+
environment creation; custom ids are allowed but must be declared before use.
|
|
82
|
+
|
|
83
|
+
## Service
|
|
84
|
+
|
|
85
|
+
A deployable software component described independently of any environment.
|
|
86
|
+
|
|
87
|
+
Attributes: id, name, aliases, category, Git URL and branch, build tool, artifact name, supported deploy modes and ordered rule profile references.
|
|
88
|
+
|
|
89
|
+
## Deployment Binding
|
|
90
|
+
|
|
91
|
+
The relationship "this service runs here, in this runtime mode".
|
|
92
|
+
|
|
93
|
+
One service may have several bindings in one environment, so `(environmentId, serviceId)` is not unique.
|
|
94
|
+
|
|
95
|
+
## Runtime Mode
|
|
96
|
+
|
|
97
|
+
`native`, `docker` or `kubernetes`. Determines which location fields and which log source apply.
|
|
98
|
+
|
|
99
|
+
## Rule Profile
|
|
100
|
+
|
|
101
|
+
A reusable set of variables, paths, log sources and class locations.
|
|
102
|
+
|
|
103
|
+
Referenced by services in order; later profiles win on field conflicts.
|
|
104
|
+
|
|
105
|
+
## Rule Override
|
|
106
|
+
|
|
107
|
+
A field-level override carried by an environment or a deployment.
|
|
108
|
+
|
|
109
|
+
Overriding one field leaves the other fields of the profile intact.
|
|
110
|
+
|
|
111
|
+
## Rule Layer
|
|
112
|
+
|
|
113
|
+
One of `global`, `service`, `environment`, `deployment`, in ascending priority.
|
|
114
|
+
|
|
115
|
+
## Template
|
|
116
|
+
|
|
117
|
+
A string containing `${...}` references, resolved by interpolation only.
|
|
118
|
+
|
|
119
|
+
No functions, operators, conditionals or shell execution.
|
|
120
|
+
|
|
121
|
+
## Provenance
|
|
122
|
+
|
|
123
|
+
The explanation attached to a resolved value:
|
|
124
|
+
|
|
125
|
+
- `definedBy` — the layer and profile that supplied the winning template;
|
|
126
|
+
- `inputs` — referenced fields and the layer that supplied each;
|
|
127
|
+
- `shadowed` — lower-priority definitions that lost.
|
|
128
|
+
|
|
129
|
+
## Derived Value
|
|
130
|
+
|
|
131
|
+
A value produced by rule resolution. It is not evidence that a file or endpoint exists.
|
|
132
|
+
|
|
133
|
+
## Verified Value
|
|
134
|
+
|
|
135
|
+
A value confirmed by an online check. V1 does not produce verified values.
|
|
136
|
+
|
|
137
|
+
## Service Context
|
|
138
|
+
|
|
139
|
+
The structured result of resolving an environment, service, deployment, rules and credential status.
|
|
140
|
+
|
|
141
|
+
Returned by `env_resolve`.
|
|
142
|
+
|
|
143
|
+
## Operation Binding
|
|
144
|
+
|
|
145
|
+
A predicate mapping an operation in a given context to a specific Skill, with parameter templates and policy.
|
|
146
|
+
|
|
147
|
+
## Match Level
|
|
148
|
+
|
|
149
|
+
How specific a binding is: `deployment`, `environment-service`, `service`, `category-mode`, `global`.
|
|
150
|
+
|
|
151
|
+
Higher levels win; same-level ties are conflicts.
|
|
152
|
+
|
|
153
|
+
## Skill Reference
|
|
154
|
+
|
|
155
|
+
A pointer to a DSH Skill: name, optional expected source and provider.
|
|
156
|
+
|
|
157
|
+
It is discovery information, not execution authorization.
|
|
158
|
+
|
|
159
|
+
## Approval Policy
|
|
160
|
+
|
|
161
|
+
The `requiresApproval` and `allowProduction` fields on a binding.
|
|
162
|
+
|
|
163
|
+
Write operations default to requiring approval; production defaults to denied.
|
|
164
|
+
|
|
165
|
+
## Credential Reference
|
|
166
|
+
|
|
167
|
+
A `credentialRef` string stored in a registry record.
|
|
168
|
+
|
|
169
|
+
The value behind it lives in the DSH credential service or an external vault and is never returned by this plugin.
|
|
170
|
+
|
|
171
|
+
## Credential Status
|
|
172
|
+
|
|
173
|
+
`configured`, `missing` or `unavailable`, obtained from the credential service without reading the value.
|
|
174
|
+
|
|
175
|
+
## Session Context
|
|
176
|
+
|
|
177
|
+
The per-session default environment.
|
|
178
|
+
|
|
179
|
+
Advisory only; it never changes registry records or another session's state.
|
|
180
|
+
|
|
181
|
+
## Operation Record
|
|
182
|
+
|
|
183
|
+
A structured, redacted description of a performed operation: scope, operation, Skill reference, timing, outcome, evidence references and summary.
|
|
184
|
+
|
|
185
|
+
Owned by the memory plugin from P1 onward.
|
|
186
|
+
|
|
187
|
+
## Evidence Reference
|
|
188
|
+
|
|
189
|
+
An opaque, sanitized pointer to evidence produced during an operation.
|
|
190
|
+
|
|
191
|
+
Not the evidence itself.
|
|
192
|
+
|
|
193
|
+
## Memory Scope
|
|
194
|
+
|
|
195
|
+
The environment/service/deployment scope attached to a memory query or record.
|
|
196
|
+
|
|
197
|
+
Prevents a single-environment conclusion from becoming a global rule.
|
|
198
|
+
|
|
199
|
+
## Memory Bridge
|
|
200
|
+
|
|
201
|
+
The optional adapter between this plugin and the memory plugin.
|
|
202
|
+
|
|
203
|
+
Introduces no second store of environment facts and applies nothing automatically.
|
|
204
|
+
|
|
205
|
+
## Review Queue
|
|
206
|
+
|
|
207
|
+
The place where candidate rule or Skill changes wait for a human decision.
|
|
208
|
+
|
|
209
|
+
## Source of Truth
|
|
210
|
+
|
|
211
|
+
The durable data representation. Here: YAML registry files under the plugin data directory.
|
|
212
|
+
|
|
213
|
+
## Harness
|
|
214
|
+
|
|
215
|
+
The project-level control system for AI-assisted development: context rules, constraints, execution and verification policies, and continuity practices.
|