@foggy-projects/deepseek-harness-plugin 0.4.0-beta.13 → 0.4.0-beta.15
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.md +24 -14
- package/docs/PUBLIC-BETA-READINESS.md +32 -6
- package/docs/WINDOWS-BETA-ACCEPTANCE.md +28 -14
- package/experience/linux/prepare.sh +1 -1
- package/lib/client.js +191 -24
- package/lib/index.js +66 -0
- package/lib/remote-descriptor.js +15 -2
- package/lib/runtime-settings.js +89 -0
- package/package.json +2 -2
- package/skills/foggy-deepseek-onboarding/SKILL.md +106 -127
- package/skills/foggy-deepseek-onboarding/assets/connection.schema.json +6 -8
- package/skills/foggy-deepseek-onboarding/assets/datasource.example.json +3 -2
- package/skills/foggy-deepseek-onboarding/assets/env.example +4 -4
- package/skills/foggy-deepseek-onboarding/assets/onboarding-state.schema.json +23 -1
- package/skills/foggy-deepseek-onboarding/assets/versions.json +2 -2
- package/skills/foggy-deepseek-onboarding/references/onboarding-workflow.md +113 -123
- package/skills/foggy-deepseek-onboarding/scripts/onboarding.py +200 -27
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "foggy-deepseek-onboarding-versions/v1",
|
|
3
|
-
"packageVersion": "0.4.0-beta.
|
|
3
|
+
"packageVersion": "0.4.0-beta.15",
|
|
4
4
|
"validatedAt": "2026-09-04",
|
|
5
5
|
"components": {
|
|
6
6
|
"deepseekHarness": {
|
|
@@ -129,7 +129,7 @@
|
|
|
129
129
|
}
|
|
130
130
|
},
|
|
131
131
|
"defaults": {
|
|
132
|
-
"port":
|
|
132
|
+
"port": 18166,
|
|
133
133
|
"namespace": "default",
|
|
134
134
|
"readinessTimeoutSeconds": 180,
|
|
135
135
|
"securityMode": "none-dev-test-only"
|
|
@@ -1,156 +1,146 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
Use the
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
# Development datasource and semantic-model workflow
|
|
2
|
+
|
|
3
|
+
Use this workflow after the Foggy plugin is initialized. It is designed for local experience and
|
|
4
|
+
model development in DeepSeek Harness, not for production deployment.
|
|
5
|
+
|
|
6
|
+
## Connection input
|
|
7
|
+
|
|
8
|
+
The simplest local connection contract may contain a direct password:
|
|
9
|
+
|
|
10
|
+
```json
|
|
11
|
+
{
|
|
12
|
+
"schemaVersion": "foggy-deepseek-connection/v1",
|
|
13
|
+
"profile": "business",
|
|
14
|
+
"name": "business-db",
|
|
15
|
+
"type": "mysql",
|
|
16
|
+
"jdbcUrl": "jdbc:mysql://127.0.0.1:3306/business",
|
|
17
|
+
"username": "business_dev",
|
|
18
|
+
"password": "local-development-password",
|
|
19
|
+
"namespace": "business",
|
|
20
|
+
"modelsDir": "models",
|
|
21
|
+
"evidenceDir": ".foggy/onboarding-command-evidence/business"
|
|
22
|
+
}
|
|
23
|
+
```
|
|
12
24
|
|
|
13
|
-
|
|
25
|
+
The wrapper uses the direct password only while submitting the datasource to the public Runtime API.
|
|
26
|
+
It does not copy it into onboarding state, command evidence, TM/QM files, or conversational output.
|
|
27
|
+
The source connection file is user-managed; do not commit it. The local Runtime currently stores a
|
|
28
|
+
direct password in its private datasource registry, so use `passwordRef`-style production credential
|
|
29
|
+
management when moving beyond local development.
|
|
30
|
+
|
|
31
|
+
An environment variable is an optional alternative:
|
|
32
|
+
|
|
33
|
+
```json
|
|
34
|
+
{
|
|
35
|
+
"schemaVersion": "foggy-deepseek-connection/v1",
|
|
36
|
+
"profile": "business",
|
|
37
|
+
"name": "business-db",
|
|
38
|
+
"type": "mysql",
|
|
39
|
+
"jdbcUrl": "jdbc:mysql://127.0.0.1:3306/business",
|
|
40
|
+
"username": "business_dev",
|
|
41
|
+
"passwordEnv": "FOGGY_BUSINESS_DB_PASSWORD",
|
|
42
|
+
"namespace": "business",
|
|
43
|
+
"modelsDir": "models"
|
|
44
|
+
}
|
|
45
|
+
```
|
|
14
46
|
|
|
15
|
-
|
|
47
|
+
Here `passwordEnv` is read by the onboarding wrapper and submitted online to the already-running
|
|
48
|
+
Runtime. Do not restart Runtime merely to make the variable part of the Java process environment.
|
|
49
|
+
Opaque CLI profiles remain supported for users who already prefer them, but are not required for a
|
|
50
|
+
normal DSH experience.
|
|
16
51
|
|
|
17
|
-
|
|
18
|
-
2. datasource name, database type, and namespace from the CLI's public profile summary;
|
|
19
|
-
3. optional schemas, the project-relative semantic model directory, and a project-relative evidence directory.
|
|
52
|
+
## Normal sequence
|
|
20
53
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
line, logs, or evidence. For non-SQLite databases, ask the user to set the named environment variable
|
|
24
|
-
before Runtime starts so the Java process inherits it. Recommend a read-only database account.
|
|
54
|
+
Run the platform-specific wrapper from this Skill directory. `onboard-datasource-run` performs the
|
|
55
|
+
online datasource setup, namespace binding, and schema discovery against the healthy Runtime:
|
|
25
56
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
57
|
+
```text
|
|
58
|
+
onboard-datasource-run --project-root <current-workspace> \
|
|
59
|
+
--connection-file <connection-json> \
|
|
60
|
+
--approve-configure --approve-bind --include-indexes
|
|
61
|
+
```
|
|
31
62
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
63
|
+
If the user already requested the complete connection experience, include both approval flags in the
|
|
64
|
+
first call. They refer only to adding the named development datasource and binding the requested
|
|
65
|
+
namespace. Do not add `--replace` unless replacement was explicitly requested.
|
|
35
66
|
|
|
36
|
-
|
|
37
|
-
Migration validates the opaque profile schema, rejects embedded passwords and conflicts, writes the
|
|
38
|
-
destination with private permissions, verifies it, and moves the legacy JSON to a recoverable private
|
|
39
|
-
backup below the Foggy data root.
|
|
40
|
-
Do not manually copy or edit opaque profile JSON.
|
|
67
|
+
The command performs:
|
|
41
68
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
69
|
+
```text
|
|
70
|
+
datasource add -> datasource test -> namespace bind -> diagnostics
|
|
71
|
+
tables list -> bounded schema inspection
|
|
72
|
+
```
|
|
46
73
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
normalized contracts to the user before accepting mutation approvals; do not combine contract drafting
|
|
50
|
-
and approval into an unseen one-turn mutation.
|
|
74
|
+
It does not stop or restart Runtime. Repeated calls reuse completed checkpoints when the public
|
|
75
|
+
connection contract is unchanged. Inline password values are excluded from the comparison.
|
|
51
76
|
|
|
52
|
-
|
|
53
|
-
|
|
77
|
+
After discovery, use `foggy-ai-analysis` to create TM/QM drafts from actual tables, columns, keys,
|
|
78
|
+
small read-only samples when useful, and the user's business questions. Keep the files in the current
|
|
79
|
+
workspace, normally:
|
|
54
80
|
|
|
55
|
-
|
|
81
|
+
```text
|
|
82
|
+
models/
|
|
83
|
+
model/
|
|
84
|
+
<Name>.tm
|
|
85
|
+
query/
|
|
86
|
+
<Name>QueryModel.qm
|
|
87
|
+
```
|
|
56
88
|
|
|
57
|
-
|
|
58
|
-
evidence internally and refuses to cross an unapproved mutation gate:
|
|
89
|
+
Then run the semantic composite:
|
|
59
90
|
|
|
60
91
|
```text
|
|
61
|
-
onboard-
|
|
62
|
-
--
|
|
63
|
-
--
|
|
64
|
-
|
|
65
|
-
# After authoring the registered TM/QM draft from schema metadata:
|
|
66
|
-
onboard-semantic-run --project-root <current-session-workspace> \
|
|
67
|
-
--semantic-plan <approved-json> --query-payload <approved-json> \
|
|
92
|
+
onboard-semantic-run --project-root <current-workspace> \
|
|
93
|
+
--semantic-plan <semantic-json> \
|
|
94
|
+
--query-payload <bounded-query-json> \
|
|
68
95
|
--approve-validate --approve-publish --approve-execute
|
|
69
96
|
```
|
|
70
97
|
|
|
71
|
-
|
|
72
|
-
|
|
98
|
+
For an explicitly requested end-to-end local experience, these flags may be used together. The command
|
|
99
|
+
validates the model files, copies them to the approved model directory when needed, registers or
|
|
100
|
+
updates the local Runtime Bundle, refreshes/describes the declared QueryModels, validates the bounded
|
|
101
|
+
query, and executes it. It never means production publication.
|
|
73
102
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
registering the same bundle twice. If query validation fails after publication, correct the project-local
|
|
77
|
-
payload and rerun `onboard-semantic-run`; it resumes at query verification and leaves the active bundle in
|
|
78
|
-
place. A same-name datasource is accepted idempotently only when its public name and database type match
|
|
79
|
-
the approved plan; otherwise replacement still requires explicit approval.
|
|
103
|
+
Use `--watch` only when the user wants the local Runtime to follow model-file edits. Use `--prune` or
|
|
104
|
+
bundle replacement only when the user clearly asks for those changes.
|
|
80
105
|
|
|
81
|
-
|
|
82
|
-
current workspace as a binding only if the approved connection contract is identical and the datasource,
|
|
83
|
-
schema, and semantic publication checkpoints are complete. The semantic composite then accepts the same
|
|
84
|
-
published draft digest from the bound workspace and performs a workspace-specific bounded verification
|
|
85
|
-
query. It refuses semantic replacement from the secondary workspace.
|
|
106
|
+
## Iteration and troubleshooting
|
|
86
107
|
|
|
87
|
-
The granular commands
|
|
88
|
-
the composite commands into this list during a normal Harness turn.
|
|
108
|
+
The granular commands remain available when a specific stage needs repair:
|
|
89
109
|
|
|
90
110
|
```text
|
|
91
111
|
onboard-plan --connection-file <json> --profile <profile>
|
|
92
|
-
datasource-configure --profile <profile>
|
|
93
|
-
datasource-
|
|
94
|
-
|
|
95
|
-
datasource-verify --profile <profile> --bind
|
|
96
|
-
schema-discover --profile <profile> --include-indexes
|
|
112
|
+
datasource-configure --profile <profile> [--apply]
|
|
113
|
+
datasource-verify --profile <profile> [--bind]
|
|
114
|
+
schema-discover --profile <profile> [--include-indexes]
|
|
97
115
|
semantic-draft --profile <profile> --semantic-plan <json>
|
|
98
|
-
semantic-validate --profile <profile>
|
|
99
|
-
semantic-
|
|
100
|
-
semantic-
|
|
101
|
-
semantic-publish --profile <profile> --apply
|
|
102
|
-
semantic-verify --profile <profile> --project-root <current-session-workspace> --query-payload <json>
|
|
103
|
-
semantic-verify --profile <profile> --project-root <current-session-workspace> --query-payload <json> --execute
|
|
116
|
+
semantic-validate --profile <profile> [--apply]
|
|
117
|
+
semantic-publish --profile <profile> [--apply]
|
|
118
|
+
semantic-verify --profile <profile> --query-payload <json> [--execute]
|
|
104
119
|
onboard-status --profile <profile>
|
|
120
|
+
onboard-resume --profile <profile>
|
|
105
121
|
```
|
|
106
122
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
explicitly approves replacing an existing datasource definition.
|
|
111
|
-
|
|
112
|
-
Schema discovery is metadata-only and inspects at most 25 tables by default. Use repeated `--schema` or
|
|
113
|
-
`--table` arguments to narrow scope, `--list-only` for inventory only, and raise `--max-tables` only when
|
|
114
|
-
the user needs broader inspection. The resulting evidence remains under the private Runtime data root.
|
|
115
|
-
|
|
116
|
-
## Semantic authoring and publishing
|
|
117
|
-
|
|
118
|
-
After `schemaDiscovered=completed`, review table names, columns, keys, and relationships with the user.
|
|
119
|
-
Use `foggy-ai-analysis` for TM/QM authoring in a separate project-local draft directory. Do not invent
|
|
120
|
-
business definitions, joins, units, enum meanings, or date semantics. Create a plan using
|
|
121
|
-
`assets/semantic-plan.schema.json`; its declared query-model names must exist in the draft `.qm` files.
|
|
122
|
-
|
|
123
|
-
`semantic-draft` records TM/QM hashes. Any later file change invalidates the recorded validation and must
|
|
124
|
-
be registered and validated again. `semantic-validate` is a dry run until `--apply`; applying it may
|
|
125
|
-
replace the Runtime validation catalog, so explain that mutation before approval.
|
|
126
|
-
|
|
127
|
-
`semantic-publish` shows added, updated, unchanged, preserved, and optionally removed files. Applying it:
|
|
123
|
+
A standalone `datasource-configure --apply` can resolve `passwordEnv` from its current Agent process.
|
|
124
|
+
For a direct `password`, use the composite datasource command with the original connection file so the
|
|
125
|
+
secret stays ephemeral to that invocation.
|
|
128
126
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
4. registers the bundle;
|
|
133
|
-
5. refreshes only the declared query models.
|
|
127
|
+
When a failure occurs, repair only the failed input and rerun the same composite command. Do not remove
|
|
128
|
+
a successfully registered Bundle merely because later query validation failed. Keep SQL samples small,
|
|
129
|
+
read-only, and relevant to semantic authoring.
|
|
134
130
|
|
|
135
|
-
|
|
136
|
-
when the user approves replacing an existing Runtime bundle, and `--watch` only when file watching is
|
|
137
|
-
desired. A failure before refresh restores project files; a refresh failure is reported as a partial
|
|
138
|
-
Runtime publication and must be diagnosed before retrying.
|
|
131
|
+
## Git handoff
|
|
139
132
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
133
|
+
When validation and representative questions pass, recommend placing the model directory under the
|
|
134
|
+
user's existing Git repository. Git is the source of truth for model history; Runtime Bundle
|
|
135
|
+
registration only makes a selected local directory active. Do not create commits, remotes, tags, or
|
|
136
|
+
pushes without the user's request.
|
|
144
137
|
|
|
145
|
-
|
|
146
|
-
`projectRoot`, has a bounded limit, and targets a query model declared in the approved semantic plan.
|
|
147
|
-
After publication, `semantic-verify` always describes the live model before validation. If a field is
|
|
148
|
-
rejected, update the payload from those described names and rerun the same composite command.
|
|
138
|
+
## Production handoff
|
|
149
139
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
140
|
+
Stop the local onboarding flow when the user asks to publish or update a formal environment. A separate
|
|
141
|
+
manual or dedicated deployment workflow should collect the exact target, Launcher version, model Git
|
|
142
|
+
commit/tag, namespace, production datasource procedure, access credentials, verification plan, and
|
|
143
|
+
rollback point. It should then install/start Runtime if needed, prepare the target datasource, register
|
|
144
|
+
the versioned model directory, refresh, and run a narrow smoke check.
|
|
154
145
|
|
|
155
|
-
|
|
156
|
-
or environment, and run `onboard-resume` to continue from the first incomplete step.
|
|
146
|
+
Local onboarding credentials and approvals do not authorize production access or publication.
|