@descix/cli 1.0.7 → 1.0.9
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 +1 -1
- package/agent-assets/guides/README.md +1 -1
- package/agent-assets/guides/dynamic-site-pattern.md +7 -16
- package/agent-assets/instructions/app-asset-validation.md +1 -1
- package/agent-assets/reference/architecture.md +20 -25
- package/agent-assets/reference/local-dev.md +1 -6
- package/agent-assets/reference/mcp-integration.md +15 -9
- package/agent-assets/reference/platform-api-consumer.md +11 -5
- package/agent-assets/reference/workspace-config.md +2 -2
- package/bin/descix.js +211 -688
- package/lib/command-visibility.js +213 -0
- package/lib/commands/corpus.js +2 -5
- package/lib/commands/kb.js +2 -2
- package/lib/commands/media-upload.js +176 -0
- package/lib/commands/retired-kb-sync.js +5 -27
- package/lib/commands/status.js +0 -9
- package/lib/output.js +31 -0
- package/lib/sdk-assets.js +28 -0
- package/lib/verb-invokes.generated.json +233 -0
- package/lib/workspace-config.js +9 -44
- package/package.json +6 -2
- package/templates/agent-claude.md +1 -3
- package/templates/agent-cline.md +1 -2
- package/templates/agent-copilot.md +1 -2
- package/templates/agent-cursor.md +1 -2
- package/templates/scaffolds/microservice/SERVICE_README_sdk.md +1 -1
- package/templates/scaffolds/microservice/templates/SERVICE_README_TEMPLATE.md +2 -3
- package/agent-assets/rules/descix_mcp.template.mdc +0 -243
- package/lib/commands/briefer/errors.js +0 -88
- package/lib/commands/briefer/index.js +0 -322
- package/lib/commands/briefer/sources/canonical-sources.js +0 -129
- package/lib/commands/briefer/sources/entitlements.js +0 -220
- package/lib/commands/briefer/sources/environments.js +0 -205
- package/lib/commands/briefer/sources/identifiers.js +0 -214
- package/lib/commands/briefer/sources/microservice-deploy.js +0 -267
- package/lib/commands/briefer/sources/routing.js +0 -275
- package/lib/commands/briefer/sources/what-is-not.js +0 -223
- package/lib/commands/briefer/stitcher.js +0 -134
- package/lib/commands/briefer/util/source-reader.js +0 -502
- package/lib/commands/mcp.js +0 -273
- package/lib/commands/update.js +0 -581
- package/lib/wizard/setup.js +0 -585
- package/templates/descix_mcp.mdc +0 -122
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
{
|
|
2
|
+
"admin-login": [
|
|
3
|
+
"admin_bootstrap_login"
|
|
4
|
+
],
|
|
5
|
+
"airdrop execute-queue": [
|
|
6
|
+
"airdrop_execute_queue"
|
|
7
|
+
],
|
|
8
|
+
"app delete": [
|
|
9
|
+
"delete_app"
|
|
10
|
+
],
|
|
11
|
+
"app init": [
|
|
12
|
+
"create_app_for_community",
|
|
13
|
+
"get_product_context",
|
|
14
|
+
"init_git_mode_kb"
|
|
15
|
+
],
|
|
16
|
+
"app invite": [
|
|
17
|
+
"create_app_invite"
|
|
18
|
+
],
|
|
19
|
+
"app list": [
|
|
20
|
+
"fetch_my_purchases"
|
|
21
|
+
],
|
|
22
|
+
"app media-upload": [
|
|
23
|
+
"get_asset_upload_token"
|
|
24
|
+
],
|
|
25
|
+
"app open": [],
|
|
26
|
+
"app set-api-url": [
|
|
27
|
+
"update_app_metadata"
|
|
28
|
+
],
|
|
29
|
+
"app set-default-model": [
|
|
30
|
+
"clear_app_default_model",
|
|
31
|
+
"set_app_default_model"
|
|
32
|
+
],
|
|
33
|
+
"app set-listed": [
|
|
34
|
+
"update_app"
|
|
35
|
+
],
|
|
36
|
+
"app set-localpath": [],
|
|
37
|
+
"app set-name": [
|
|
38
|
+
"update_app"
|
|
39
|
+
],
|
|
40
|
+
"app set-port": [],
|
|
41
|
+
"app set-price": [
|
|
42
|
+
"update_app_metadata"
|
|
43
|
+
],
|
|
44
|
+
"app set-repo": [
|
|
45
|
+
"set_app_repo"
|
|
46
|
+
],
|
|
47
|
+
"app set-site": [],
|
|
48
|
+
"app sync-assets": [
|
|
49
|
+
"sync_app_assets"
|
|
50
|
+
],
|
|
51
|
+
"app unmap": [],
|
|
52
|
+
"buy chains": [],
|
|
53
|
+
"buy poll": [
|
|
54
|
+
"get_quote_status"
|
|
55
|
+
],
|
|
56
|
+
"buy quote": [
|
|
57
|
+
"create_crypto_quote"
|
|
58
|
+
],
|
|
59
|
+
"buy status": [
|
|
60
|
+
"get_quote_status"
|
|
61
|
+
],
|
|
62
|
+
"chat": [
|
|
63
|
+
"ask_multiple_apps",
|
|
64
|
+
"ask_question_to_app"
|
|
65
|
+
],
|
|
66
|
+
"clone": [
|
|
67
|
+
"get_repo_credentials"
|
|
68
|
+
],
|
|
69
|
+
"community check-token": [
|
|
70
|
+
"check_token_symbol_available"
|
|
71
|
+
],
|
|
72
|
+
"community contract": [
|
|
73
|
+
"get_contract_details"
|
|
74
|
+
],
|
|
75
|
+
"community create": [
|
|
76
|
+
"create_community_skeleton"
|
|
77
|
+
],
|
|
78
|
+
"community delete": [
|
|
79
|
+
"delete_community"
|
|
80
|
+
],
|
|
81
|
+
"community deploy-token": [
|
|
82
|
+
"deploy_contract"
|
|
83
|
+
],
|
|
84
|
+
"community info": [
|
|
85
|
+
"get_community"
|
|
86
|
+
],
|
|
87
|
+
"community link-token": [
|
|
88
|
+
"link_contract_to_community"
|
|
89
|
+
],
|
|
90
|
+
"community list": [
|
|
91
|
+
"find_communities"
|
|
92
|
+
],
|
|
93
|
+
"community rename": [
|
|
94
|
+
"rename_community"
|
|
95
|
+
],
|
|
96
|
+
"config init": [],
|
|
97
|
+
"config set-dev-certs": [],
|
|
98
|
+
"config set-env": [],
|
|
99
|
+
"config set-gateway-port": [],
|
|
100
|
+
"config set-powch-url": [],
|
|
101
|
+
"config set-site-url": [],
|
|
102
|
+
"config set-url": [],
|
|
103
|
+
"config show": [],
|
|
104
|
+
"credits balance": [
|
|
105
|
+
"get_credit_balance"
|
|
106
|
+
],
|
|
107
|
+
"credits buy": [
|
|
108
|
+
"create_stripe_checkout_session"
|
|
109
|
+
],
|
|
110
|
+
"credits grant": [
|
|
111
|
+
"grant_credits"
|
|
112
|
+
],
|
|
113
|
+
"credits history": [
|
|
114
|
+
"get_credit_history"
|
|
115
|
+
],
|
|
116
|
+
"credits refund": [
|
|
117
|
+
"refund_credits"
|
|
118
|
+
],
|
|
119
|
+
"doctor": [],
|
|
120
|
+
"drive pull": [],
|
|
121
|
+
"drive push": [],
|
|
122
|
+
"health": [],
|
|
123
|
+
"init": [
|
|
124
|
+
"find_communities",
|
|
125
|
+
"resolve_invite"
|
|
126
|
+
],
|
|
127
|
+
"kb clear-override-model": [
|
|
128
|
+
"clear_kb_model_override"
|
|
129
|
+
],
|
|
130
|
+
"kb corpus status": [],
|
|
131
|
+
"kb corpus sync": [
|
|
132
|
+
"get_kb_rag_status",
|
|
133
|
+
"get_product_context",
|
|
134
|
+
"kb_delete_chunks",
|
|
135
|
+
"kb_list_file_ids",
|
|
136
|
+
"kb_sync_chunks",
|
|
137
|
+
"list_knowledge_bases"
|
|
138
|
+
],
|
|
139
|
+
"kb delete": [
|
|
140
|
+
"delete_knowledge_base"
|
|
141
|
+
],
|
|
142
|
+
"kb doctor": [
|
|
143
|
+
"get_kb_rag_status"
|
|
144
|
+
],
|
|
145
|
+
"kb list": [
|
|
146
|
+
"list_knowledge_bases"
|
|
147
|
+
],
|
|
148
|
+
"kb set-override-model": [
|
|
149
|
+
"set_kb_model_override"
|
|
150
|
+
],
|
|
151
|
+
"login": [
|
|
152
|
+
"device_check_status",
|
|
153
|
+
"device_request_login",
|
|
154
|
+
"sync_auto_purchases"
|
|
155
|
+
],
|
|
156
|
+
"logout": [],
|
|
157
|
+
"mcp execute": [],
|
|
158
|
+
"mcp-serve": [],
|
|
159
|
+
"microservice health": [
|
|
160
|
+
"service_health_check"
|
|
161
|
+
],
|
|
162
|
+
"microservice init": [],
|
|
163
|
+
"microservice list": [
|
|
164
|
+
"list_services"
|
|
165
|
+
],
|
|
166
|
+
"microservice register": [
|
|
167
|
+
"register_service"
|
|
168
|
+
],
|
|
169
|
+
"microservice register-delegate": [
|
|
170
|
+
"fetch_my_purchases",
|
|
171
|
+
"register_delegate"
|
|
172
|
+
],
|
|
173
|
+
"microservice reload": [
|
|
174
|
+
"reload_service_manifests"
|
|
175
|
+
],
|
|
176
|
+
"microservice restart": [],
|
|
177
|
+
"microservice vectorize": [
|
|
178
|
+
"vectorize_service_readme"
|
|
179
|
+
],
|
|
180
|
+
"new-chat": [],
|
|
181
|
+
"purchases": [
|
|
182
|
+
"fetch_my_purchases"
|
|
183
|
+
],
|
|
184
|
+
"quickstart": [
|
|
185
|
+
"device_check_status",
|
|
186
|
+
"device_request_login",
|
|
187
|
+
"find_communities",
|
|
188
|
+
"resolve_invite",
|
|
189
|
+
"sync_auto_purchases"
|
|
190
|
+
],
|
|
191
|
+
"reconnect": [
|
|
192
|
+
"reconnect_by_wallet"
|
|
193
|
+
],
|
|
194
|
+
"referral create": [
|
|
195
|
+
"generate_referral_code"
|
|
196
|
+
],
|
|
197
|
+
"role create": [
|
|
198
|
+
"create_role"
|
|
199
|
+
],
|
|
200
|
+
"serve": [],
|
|
201
|
+
"site delete": [
|
|
202
|
+
"delete_site_files"
|
|
203
|
+
],
|
|
204
|
+
"site init": [],
|
|
205
|
+
"site list": [
|
|
206
|
+
"list_site_files"
|
|
207
|
+
],
|
|
208
|
+
"site status": [
|
|
209
|
+
"get_site_manifest"
|
|
210
|
+
],
|
|
211
|
+
"site upload": [
|
|
212
|
+
"confirm_site_deploy",
|
|
213
|
+
"get_site_build_config",
|
|
214
|
+
"get_site_deploy_token"
|
|
215
|
+
],
|
|
216
|
+
"stats": [
|
|
217
|
+
"get_user_community_stats"
|
|
218
|
+
],
|
|
219
|
+
"status": [],
|
|
220
|
+
"store generate-summary": [
|
|
221
|
+
"generate_entity_summary"
|
|
222
|
+
],
|
|
223
|
+
"store search": [
|
|
224
|
+
"search_store"
|
|
225
|
+
],
|
|
226
|
+
"tell-me-how": [
|
|
227
|
+
"tell_me_how"
|
|
228
|
+
],
|
|
229
|
+
"whoami": [
|
|
230
|
+
"fetch_my_purchases",
|
|
231
|
+
"validate_session"
|
|
232
|
+
]
|
|
233
|
+
}
|
package/lib/workspace-config.js
CHANGED
|
@@ -263,11 +263,9 @@ export class WorkspaceConfig {
|
|
|
263
263
|
* Live means the actual object inside this.env — mutate it and save() persists the mutation.
|
|
264
264
|
* getAppByAppId() and getAppEntry() both return copies and are useless for writing.
|
|
265
265
|
*
|
|
266
|
-
*
|
|
267
|
-
*
|
|
268
|
-
*
|
|
269
|
-
* failed: the loop found nothing, wrote nothing, and the command still printed success.
|
|
270
|
-
* A fourth copy here would have reproduced the same class of bug, so there is now one.
|
|
266
|
+
* The one lookup every entry setter (setMicroservicePort, setStaticSite, setLocalPath) uses. A
|
|
267
|
+
* private walk of env.products ONLY misses the platform app, finds nothing, writes nothing and
|
|
268
|
+
* still reports success.
|
|
271
269
|
*
|
|
272
270
|
* @param {string} appId - App identifier
|
|
273
271
|
* @returns {Object} the live env.platform or env.products[] entry
|
|
@@ -289,8 +287,7 @@ export class WorkspaceConfig {
|
|
|
289
287
|
/**
|
|
290
288
|
* Update an app's localPath in env.platform or env.products[].
|
|
291
289
|
*
|
|
292
|
-
* The canonical write path for localPath
|
|
293
|
-
* setSitePort/setMicroservicePort/setStaticSite all existed. Backs `descix app set-localpath`.
|
|
290
|
+
* The canonical write path for localPath. Backs `descix app set-localpath`.
|
|
294
291
|
*
|
|
295
292
|
* localPath MUST be workspace-root-relative. It is validated here through
|
|
296
293
|
* resolveWorkspacePath — the LOADER'S OWN resolver, not a second copy of its rules — so a
|
|
@@ -807,48 +804,16 @@ export class WorkspaceConfig {
|
|
|
807
804
|
return this.save();
|
|
808
805
|
}
|
|
809
806
|
|
|
810
|
-
/**
|
|
811
|
-
* Update an app's site.port in env.products[] (or env.platform if it is the platform app).
|
|
812
|
-
*
|
|
813
|
-
* Pass `null` to remove site.port; if site.{} becomes empty, site.{} is also deleted.
|
|
814
|
-
* Persists via save() at the end — same auto-save pattern as setEnvironment().
|
|
815
|
-
* Hard-fails if appId is not mapped in env.platform or env.products.
|
|
816
|
-
*
|
|
817
|
-
* @param {string} appId - App identifier (must exist in env.platform or env.products)
|
|
818
|
-
* @param {number|string|null} port - Port number to set, or null to remove site.port
|
|
819
|
-
* @returns {Promise<string>} Path to saved config (from save())
|
|
820
|
-
*/
|
|
821
|
-
async setSitePort(appId, port) {
|
|
822
|
-
if (!appId) throw new Error('appId is required');
|
|
823
|
-
|
|
824
|
-
const entry = this._liveEnvEntry(appId);
|
|
825
|
-
|
|
826
|
-
if (port === null || port === undefined) {
|
|
827
|
-
// Remove site.port; clean up empty site.{}
|
|
828
|
-
if (entry.site) {
|
|
829
|
-
delete entry.site.port;
|
|
830
|
-
if (Object.keys(entry.site).length === 0) {
|
|
831
|
-
delete entry.site;
|
|
832
|
-
}
|
|
833
|
-
}
|
|
834
|
-
} else {
|
|
835
|
-
if (!entry.site) entry.site = {};
|
|
836
|
-
entry.site.port = port;
|
|
837
|
-
}
|
|
838
|
-
|
|
839
|
-
return this.save();
|
|
840
|
-
}
|
|
841
|
-
|
|
842
807
|
/**
|
|
843
808
|
* Update an app's microservice.port in env.products[] (or env.platform if it is the platform app).
|
|
844
809
|
*
|
|
845
|
-
*
|
|
810
|
+
* Operates on the entry's microservice.{} slot.
|
|
846
811
|
* This is the canonical write path for the microservice port that `descix microservice init`
|
|
847
812
|
* reads (and hard-fails on if missing). Backs the `descix app set-port` command, closing
|
|
848
813
|
* WS-CLI-MESH-ROUTING-GAP without hand-editing workspace.json.
|
|
849
814
|
*
|
|
850
815
|
* Pass `null` to remove microservice.port; if microservice.{} becomes empty, it is also deleted.
|
|
851
|
-
* Persists via save() at the end — same auto-save pattern as
|
|
816
|
+
* Persists via save() at the end — same auto-save pattern as setEnvironment().
|
|
852
817
|
* Hard-fails if appId is not mapped in env.platform or env.products.
|
|
853
818
|
*
|
|
854
819
|
* @param {string} appId - App identifier (must exist in env.platform or env.products)
|
|
@@ -879,7 +844,7 @@ export class WorkspaceConfig {
|
|
|
879
844
|
/**
|
|
880
845
|
* Update an app's site config in env.products[] (or env.platform if it is the platform app).
|
|
881
846
|
*
|
|
882
|
-
* Parallel to
|
|
847
|
+
* Parallel to setMicroservicePort(), but operates on the entry's site.{} slot's
|
|
883
848
|
* static-site fields. This is the canonical write path for site.static — the relative path the
|
|
884
849
|
* dev gateway's staticSitePlugin serves at /p/{appId}/ (see createViteProxyConfig:
|
|
885
850
|
* site.static is resolved against the app's localPath; "." means the localPath itself).
|
|
@@ -888,7 +853,7 @@ export class WorkspaceConfig {
|
|
|
888
853
|
*
|
|
889
854
|
* Mutates site.static and/or site.port. Pass static === null to remove site.static; pass
|
|
890
855
|
* port === null to remove site.port. If site.{} becomes empty after removals it is deleted.
|
|
891
|
-
* Persists via save() at the end — same auto-save pattern as
|
|
856
|
+
* Persists via save() at the end — same auto-save pattern as setMicroservicePort().
|
|
892
857
|
* Hard-fails if appId is not mapped in env.platform or env.products.
|
|
893
858
|
*
|
|
894
859
|
* @param {string} appId - App identifier (must exist in env.platform or env.products)
|
|
@@ -914,7 +879,7 @@ export class WorkspaceConfig {
|
|
|
914
879
|
}
|
|
915
880
|
}
|
|
916
881
|
|
|
917
|
-
// site.port — set or remove (
|
|
882
|
+
// site.port — set or remove (for static+devCommand sites)
|
|
918
883
|
if ('port' in fields) {
|
|
919
884
|
if (fields.port === null || fields.port === undefined) {
|
|
920
885
|
delete entry.site.port;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@descix/cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.9",
|
|
4
4
|
"description": "DeSciX CLI and MCP Server - Unified command-line interface for DeSciX platform",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -16,7 +16,8 @@
|
|
|
16
16
|
"scripts": {
|
|
17
17
|
"test": "node --test \"tests/*.test.js\"",
|
|
18
18
|
"pack": "npm pack",
|
|
19
|
-
"check:doc-paths": "node scripts/check-doc-paths.js"
|
|
19
|
+
"check:doc-paths": "node scripts/check-doc-paths.js",
|
|
20
|
+
"briefer": "node scripts/briefer/run.mjs"
|
|
20
21
|
},
|
|
21
22
|
"keywords": [
|
|
22
23
|
"descix",
|
|
@@ -41,6 +42,9 @@
|
|
|
41
42
|
"ora": "^9.0.0",
|
|
42
43
|
"@descix/platform-api": "^2.0.0"
|
|
43
44
|
},
|
|
45
|
+
"devDependencies": {
|
|
46
|
+
"acorn": "^8.18.0"
|
|
47
|
+
},
|
|
44
48
|
"files": [
|
|
45
49
|
"bin",
|
|
46
50
|
"lib",
|
|
@@ -159,7 +159,7 @@ To see your app in a browser:
|
|
|
159
159
|
| Goal | Command |
|
|
160
160
|
|------|---------|
|
|
161
161
|
| Serve `site/` locally | `npx serve site/` or `python3 -m http.server -d site/` on any port |
|
|
162
|
-
| Register port with DeSciX | `descix site
|
|
162
|
+
| Register a framework dev-server port with DeSciX | `descix app set-site -a <app> --port <port>` (writes `env.products[].site.port`) |
|
|
163
163
|
| Run your app on the DeSciX gateway | `cd <app dir> && descix serve` — one HTTPS origin, the shell opens ON your app (**standalone** = initial view, not a reduced mode — platform views stay reachable) |
|
|
164
164
|
|
|
165
165
|
A plain static server is enough to look at your HTML. `descix serve` is what you
|
|
@@ -257,8 +257,6 @@ Every app has three parts:
|
|
|
257
257
|
|
|
258
258
|
- `descix status` may report "No workspace found" even when `.descix/workspace.json`
|
|
259
259
|
exists. This is a known bug — continue with explicit flags.
|
|
260
|
-
- `descix status` may suggest `descix setup` — that command doesn't exist. Use
|
|
261
|
-
`descix init -c <community> -a <app> -p .` instead.
|
|
262
260
|
|
|
263
261
|
## Cloud Brain Alignment
|
|
264
262
|
|
package/templates/agent-cline.md
CHANGED
|
@@ -121,7 +121,7 @@ descix kb corpus status -c <community> -a <app>
|
|
|
121
121
|
| Goal | Command |
|
|
122
122
|
|------|---------|
|
|
123
123
|
| Serve `site/` locally | `npx serve site/` or `python3 -m http.server -d site/` on any port |
|
|
124
|
-
| Register port with DeSciX | `descix site
|
|
124
|
+
| Register a framework dev-server port with DeSciX | `descix app set-site -a <app> --port <port>` (writes `env.products[].site.port`) |
|
|
125
125
|
| Run your app on the DeSciX gateway | `cd <app dir> && descix serve` — one HTTPS origin, the shell opens ON your app (**standalone** = initial view, not a reduced mode — platform views stay reachable) |
|
|
126
126
|
|
|
127
127
|
A plain static server is enough to look at your HTML. `descix serve` is what you
|
|
@@ -171,7 +171,6 @@ gateway does not rewrite paths.
|
|
|
171
171
|
## Known CLI Quirks
|
|
172
172
|
|
|
173
173
|
- `descix status` may show "No workspace found" even when config exists — use explicit flags
|
|
174
|
-
- `descix status` may suggest `descix setup` — use `descix init` instead
|
|
175
174
|
|
|
176
175
|
## Cloud Brain Alignment
|
|
177
176
|
|
|
@@ -121,7 +121,7 @@ descix kb corpus status -c <community> -a <app>
|
|
|
121
121
|
| Goal | Command |
|
|
122
122
|
|------|---------|
|
|
123
123
|
| Serve `site/` locally | `npx serve site/` or `python3 -m http.server -d site/` on any port |
|
|
124
|
-
| Register port with DeSciX | `descix site
|
|
124
|
+
| Register a framework dev-server port with DeSciX | `descix app set-site -a <app> --port <port>` (writes `env.products[].site.port`) |
|
|
125
125
|
| Run your app on the DeSciX gateway | `cd <app dir> && descix serve` — one HTTPS origin, the shell opens ON your app (**standalone** = initial view, not a reduced mode — platform views stay reachable) |
|
|
126
126
|
|
|
127
127
|
A plain static server is enough to look at your HTML. `descix serve` is what you
|
|
@@ -171,7 +171,6 @@ gateway does not rewrite paths.
|
|
|
171
171
|
## Known CLI Quirks
|
|
172
172
|
|
|
173
173
|
- `descix status` may show "No workspace found" even when config exists — use explicit flags
|
|
174
|
-
- `descix status` may suggest `descix setup` — use `descix init` instead
|
|
175
174
|
|
|
176
175
|
## Cloud Brain Alignment
|
|
177
176
|
|
|
@@ -121,7 +121,7 @@ descix kb corpus status -c <community> -a <app>
|
|
|
121
121
|
| Goal | Command |
|
|
122
122
|
|------|---------|
|
|
123
123
|
| Serve `site/` locally | `npx serve site/` or `python3 -m http.server -d site/` on any port |
|
|
124
|
-
| Register port with DeSciX | `descix site
|
|
124
|
+
| Register a framework dev-server port with DeSciX | `descix app set-site -a <app> --port <port>` (writes `env.products[].site.port`) |
|
|
125
125
|
| Run your app on the DeSciX gateway | `cd <app dir> && descix serve` — one HTTPS origin, the shell opens ON your app (**standalone** = initial view, not a reduced mode — platform views stay reachable) |
|
|
126
126
|
|
|
127
127
|
A plain static server is enough to look at your HTML. `descix serve` is what you
|
|
@@ -171,7 +171,6 @@ gateway does not rewrite paths.
|
|
|
171
171
|
## Known CLI Quirks
|
|
172
172
|
|
|
173
173
|
- `descix status` may show "No workspace found" even when config exists — use explicit flags
|
|
174
|
-
- `descix status` may suggest `descix setup` — use `descix init` instead
|
|
175
174
|
|
|
176
175
|
## Cloud Brain Alignment
|
|
177
176
|
|
|
@@ -112,7 +112,7 @@ descix tell-me-how --scope discovery "What AI training tools exist?"
|
|
|
112
112
|
### descix app init
|
|
113
113
|
|
|
114
114
|
**Description:** Create (if needed) and initialize an app: platform record + default KB + local workspace registration and scaffold. Idempotent.
|
|
115
|
-
**Use when:** Starting a new project or hydrating an existing app. This is the
|
|
115
|
+
**Use when:** Starting a new project or hydrating an existing app. This is the one command that creates an app.
|
|
116
116
|
**Options:**
|
|
117
117
|
- `-a, --app <app_id>` (required): App ID. With `-c` this is the app NAME to create.
|
|
118
118
|
- `-c, --community <id>`: Community ID — required to create an app that does not exist yet
|
|
@@ -13,8 +13,7 @@ Run this sequence ONCE to stand up a microservice that can call the mesh
|
|
|
13
13
|
`/apifront` broker:
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
|
-
descix app
|
|
17
|
-
descix app init -a {community}-{app} # scaffold site/ kb/ microservice/
|
|
16
|
+
descix app init -c {community} -a {app} # create the app (or hydrate an existing one) and scaffold it
|
|
18
17
|
descix app set-port -a {community}-{app} -p {port} # assign the microservice's loopback port in workspace.json
|
|
19
18
|
descix microservice register # register the service manifest with the Core gateway
|
|
20
19
|
# then: cp dev-overrides.example.json dev-overrides.json and fill in the developer credential
|
|
@@ -117,7 +116,7 @@ descix microservice register # register the service manifest
|
|
|
117
116
|
**Example:**
|
|
118
117
|
```bash
|
|
119
118
|
# Using the CLI
|
|
120
|
-
descix
|
|
119
|
+
descix mcp execute --tool {command_name} --params '{"param1": "value"}'
|
|
121
120
|
|
|
122
121
|
# Or via tell_me_how
|
|
123
122
|
tell_me_how("I want to {describe the workflow goal}")
|