@fragment-dev/cli 2026.6.23-1 → 2026.6.23-10
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 +0 -25
- package/dist/{chunk-RYBPAM35.js → chunk-273N6ZXQ.js} +3 -3
- package/dist/{chunk-3Z7YOSNF.js → chunk-2BXFOBDR.js} +1 -1
- package/dist/{chunk-THGLXMNF.js → chunk-2TY723F2.js} +9700 -481
- package/dist/{chunk-65ZH3QK2.js → chunk-2XVJPTGJ.js} +5 -5
- package/dist/{chunk-4GFUVXOU.js → chunk-4ON2JBLL.js} +1 -1
- package/dist/{chunk-YFK5FYC3.js → chunk-5UQJOVVA.js} +2 -2
- package/dist/{chunk-7VZGNWZU.js → chunk-7FAAI43J.js} +2 -2
- package/dist/{chunk-QG5ISRA6.js → chunk-BBZDU3B4.js} +1 -1
- package/dist/{chunk-ZA25L4BB.js → chunk-CZDYCUNU.js} +2 -2
- package/dist/{chunk-IH5353LR.js → chunk-DEQKFNI7.js} +2 -2
- package/dist/{chunk-7ODKTNDM.js → chunk-DRO64DIW.js} +2 -2
- package/dist/{chunk-54TES6VA.js → chunk-DSRAWD4N.js} +1 -1
- package/dist/{chunk-XIZTVCPY.js → chunk-FWFNCG6R.js} +2 -2
- package/dist/{chunk-426XTAUO.js → chunk-HKNXFZFT.js} +1 -1
- package/dist/{chunk-TLN6TZFS.js → chunk-INAIBX5Q.js} +3506 -11
- package/dist/{chunk-HLYDHSCC.js → chunk-L7ZGDLYU.js} +121 -103
- package/dist/{chunk-TUJDC72W.js → chunk-LQOUDLSN.js} +2 -2
- package/dist/{chunk-6OHUBHOM.js → chunk-MOQTJOKZ.js} +1 -1
- package/dist/{chunk-4WW4FP3U.js → chunk-MRTEC2MR.js} +27 -32
- package/dist/{chunk-KWPWX7YO.js → chunk-OKUHODEP.js} +2 -2
- package/dist/{chunk-KRY3SN6D.js → chunk-Q4ZQFJOW.js} +1 -1
- package/dist/{chunk-F3APAVQ6.js → chunk-R3UOJOBB.js} +1 -1
- package/dist/{chunk-LUXIPN36.js → chunk-RAVIBG3R.js} +1 -1
- package/dist/{chunk-KITXRL7V.js → chunk-S5ZYP5UA.js} +2 -2
- package/dist/{chunk-ASNIF3XW.js → chunk-UMTPP457.js} +3 -3
- package/dist/{chunk-RBQFB2R6.js → chunk-W2XQHKPZ.js} +3 -3
- package/dist/{chunk-IDKZFORS.js → chunk-WAMB7442.js} +2 -2
- package/dist/{chunk-5DN7VDST.js → chunk-Y32HJLPJ.js} +2 -2
- package/dist/{chunk-PYQBNBYQ.js → chunk-Y7M36OPF.js} +1 -1
- package/dist/{chunk-66AHNAX3.js → chunk-YKKDKAMP.js} +2 -2
- package/dist/{chunk-MJFFSZAZ.js → chunk-YNEY7R37.js} +3 -3
- package/dist/{chunk-7ANSQIHO.js → chunk-ZNXOMYLU.js} +2 -2
- package/dist/commands/add-ledger-entry.js +7 -9
- package/dist/commands/create-custom-link.js +7 -9
- package/dist/commands/create-ledger.js +7 -9
- package/dist/commands/delete-custom-txs.js +7 -9
- package/dist/commands/delete-ledger.js +7 -9
- package/dist/commands/delete-schema.js +7 -9
- package/dist/commands/gen-graphql.js +8 -10
- package/dist/commands/get-schema.js +8 -11
- package/dist/commands/init.js +6 -8
- package/dist/commands/login.js +7 -10
- package/dist/commands/migrate-ledger-entry.js +7 -9
- package/dist/commands/query/ledgerAccounts.js +7 -9
- package/dist/commands/query/ledgers.js +7 -9
- package/dist/commands/query/schema.js +7 -9
- package/dist/commands/query/schemas.js +7 -9
- package/dist/commands/reverse-ledger-entry.js +7 -9
- package/dist/commands/start.js +6 -8
- package/dist/commands/store-schema.js +7 -9
- package/dist/commands/token.js +7 -9
- package/dist/commands/update-ledger-account.js +7 -9
- package/dist/commands/update.js +7 -10
- package/dist/commands/verify-schema.js +8 -10
- package/dist/commands/workspace.js +7 -9
- package/dist/commands.js +35 -39
- package/dist/graphql.js +2 -2
- package/dist/index.js +35 -39
- package/dist/lib/auth.js +2 -3
- package/dist/lib/authenticatedCommand.js +6 -8
- package/dist/lib/baseCommand.js +5 -7
- package/dist/utils/formatValidationErrors.js +2 -3
- package/dist/utils/schemaValidation.js +3 -4
- package/dist/version.js +2 -3
- package/oclif.manifest.json +1 -44
- package/package.json +1 -3
- package/dist/chunk-4NJIQ4GG.js +0 -168
- package/dist/chunk-66MJVSVR.js +0 -14200
- package/dist/chunk-BRU5ITZE.js +0 -229
- package/dist/chunk-OAOBQSDM.js +0 -9275
- package/dist/chunk-UDV5USSB.js +0 -120
- package/dist/chunk-W6O4UGRF.js +0 -3517
- package/dist/commands/designer-mcp.js +0 -19
- package/dist/designer/commandQueue.js +0 -7
- package/dist/designer/mcpServer.js +0 -8
- package/dist/designer/server.js +0 -13557
- package/dist/{chunk-WEG4FG46.js → chunk-PGXQFGGZ.js} +3 -3
package/dist/graphql.js
CHANGED
|
@@ -8,13 +8,13 @@ import {
|
|
|
8
8
|
isValidGraphQlName,
|
|
9
9
|
schemaToEntryDefinitions,
|
|
10
10
|
validateOutputName
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-PGXQFGGZ.js";
|
|
12
12
|
import "./chunk-FMY4RHS4.js";
|
|
13
13
|
import "./chunk-ZMFGVGZP.js";
|
|
14
14
|
import "./chunk-2Y3TU546.js";
|
|
15
15
|
import "./chunk-Q76GHHV3.js";
|
|
16
|
-
import "./chunk-XK2D2Z44.js";
|
|
17
16
|
import "./chunk-7K4RMTU4.js";
|
|
17
|
+
import "./chunk-XK2D2Z44.js";
|
|
18
18
|
import "./chunk-7GH3YGSC.js";
|
|
19
19
|
export {
|
|
20
20
|
camelCase,
|
package/dist/index.js
CHANGED
|
@@ -1,57 +1,53 @@
|
|
|
1
1
|
import {
|
|
2
2
|
COMMANDS
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-ASNIF3XW.js";
|
|
13
|
-
import "./chunk-426XTAUO.js";
|
|
3
|
+
} from "./chunk-MRTEC2MR.js";
|
|
4
|
+
import "./chunk-OKUHODEP.js";
|
|
5
|
+
import "./chunk-Y7M36OPF.js";
|
|
6
|
+
import "./chunk-S5ZYP5UA.js";
|
|
7
|
+
import "./chunk-R3UOJOBB.js";
|
|
8
|
+
import "./chunk-FWFNCG6R.js";
|
|
9
|
+
import "./chunk-Y32HJLPJ.js";
|
|
10
|
+
import "./chunk-UMTPP457.js";
|
|
11
|
+
import "./chunk-HKNXFZFT.js";
|
|
14
12
|
import "./chunk-A4BSWX5D.js";
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-MOQTJOKZ.js";
|
|
14
|
+
import "./chunk-YNEY7R37.js";
|
|
15
|
+
import "./chunk-DSRAWD4N.js";
|
|
16
|
+
import "./chunk-2XVJPTGJ.js";
|
|
17
|
+
import "./chunk-INAIBX5Q.js";
|
|
18
|
+
import "./chunk-ZNXOMYLU.js";
|
|
19
|
+
import "./chunk-CZDYCUNU.js";
|
|
20
|
+
import "./chunk-Q4ZQFJOW.js";
|
|
21
|
+
import "./chunk-DRO64DIW.js";
|
|
22
|
+
import "./chunk-4ON2JBLL.js";
|
|
23
|
+
import "./chunk-DEQKFNI7.js";
|
|
24
|
+
import "./chunk-YKKDKAMP.js";
|
|
25
|
+
import "./chunk-7FAAI43J.js";
|
|
26
|
+
import "./chunk-5UQJOVVA.js";
|
|
27
|
+
import "./chunk-LQOUDLSN.js";
|
|
28
|
+
import "./chunk-WAMB7442.js";
|
|
29
|
+
import "./chunk-RAVIBG3R.js";
|
|
30
|
+
import "./chunk-JSQLWL2J.js";
|
|
31
|
+
import "./chunk-273N6ZXQ.js";
|
|
32
|
+
import "./chunk-PGXQFGGZ.js";
|
|
17
33
|
import "./chunk-FMY4RHS4.js";
|
|
18
34
|
import "./chunk-ZMFGVGZP.js";
|
|
19
35
|
import "./chunk-YUG6IFIF.js";
|
|
20
|
-
import "./chunk-
|
|
36
|
+
import "./chunk-W2XQHKPZ.js";
|
|
21
37
|
import "./chunk-2Y3TU546.js";
|
|
22
38
|
import "./chunk-Q76GHHV3.js";
|
|
23
|
-
import "./chunk-MJFFSZAZ.js";
|
|
24
|
-
import "./chunk-54TES6VA.js";
|
|
25
|
-
import "./chunk-65ZH3QK2.js";
|
|
26
|
-
import "./chunk-TLN6TZFS.js";
|
|
27
|
-
import "./chunk-W6O4UGRF.js";
|
|
28
|
-
import "./chunk-7ANSQIHO.js";
|
|
29
|
-
import "./chunk-ZA25L4BB.js";
|
|
30
|
-
import "./chunk-KRY3SN6D.js";
|
|
31
|
-
import "./chunk-7ODKTNDM.js";
|
|
32
|
-
import "./chunk-IH5353LR.js";
|
|
33
|
-
import "./chunk-66AHNAX3.js";
|
|
34
|
-
import "./chunk-7VZGNWZU.js";
|
|
35
|
-
import "./chunk-YFK5FYC3.js";
|
|
36
|
-
import "./chunk-TUJDC72W.js";
|
|
37
|
-
import "./chunk-IDKZFORS.js";
|
|
38
|
-
import "./chunk-LUXIPN36.js";
|
|
39
|
-
import "./chunk-JSQLWL2J.js";
|
|
40
|
-
import "./chunk-UDV5USSB.js";
|
|
41
39
|
import {
|
|
42
40
|
require_lib
|
|
43
|
-
} from "./chunk-
|
|
44
|
-
import "./chunk-QG5ISRA6.js";
|
|
41
|
+
} from "./chunk-2TY723F2.js";
|
|
45
42
|
import "./chunk-O7AE4SQS.js";
|
|
43
|
+
import "./chunk-BBZDU3B4.js";
|
|
46
44
|
import "./chunk-QF5EN33L.js";
|
|
47
45
|
import "./chunk-CW4UI44G.js";
|
|
48
|
-
import "./chunk-OAOBQSDM.js";
|
|
49
|
-
import "./chunk-XK2D2Z44.js";
|
|
50
46
|
import "./chunk-7K4RMTU4.js";
|
|
51
|
-
import "./chunk-
|
|
52
|
-
import "./chunk-
|
|
47
|
+
import "./chunk-2BXFOBDR.js";
|
|
48
|
+
import "./chunk-L7ZGDLYU.js";
|
|
53
49
|
import "./chunk-WS2PJBP6.js";
|
|
54
|
-
import "./chunk-
|
|
50
|
+
import "./chunk-XK2D2Z44.js";
|
|
55
51
|
import {
|
|
56
52
|
__toESM,
|
|
57
53
|
init_cjs_shims
|
package/dist/lib/auth.js
CHANGED
|
@@ -4,10 +4,9 @@ import {
|
|
|
4
4
|
attemptToCacheToken,
|
|
5
5
|
getToken,
|
|
6
6
|
readUnexpiredAccessToken
|
|
7
|
-
} from "../chunk-
|
|
8
|
-
import "../chunk-
|
|
7
|
+
} from "../chunk-2BXFOBDR.js";
|
|
8
|
+
import "../chunk-L7ZGDLYU.js";
|
|
9
9
|
import "../chunk-WS2PJBP6.js";
|
|
10
|
-
import "../chunk-HLYDHSCC.js";
|
|
11
10
|
import "../chunk-7GH3YGSC.js";
|
|
12
11
|
export {
|
|
13
12
|
AccessTokenSchema,
|
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AuthenticatedCommand
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-RAVIBG3R.js";
|
|
4
4
|
import "../chunk-JSQLWL2J.js";
|
|
5
|
-
import "../chunk-
|
|
6
|
-
import "../chunk-QG5ISRA6.js";
|
|
5
|
+
import "../chunk-2TY723F2.js";
|
|
7
6
|
import "../chunk-O7AE4SQS.js";
|
|
7
|
+
import "../chunk-BBZDU3B4.js";
|
|
8
8
|
import "../chunk-QF5EN33L.js";
|
|
9
9
|
import "../chunk-CW4UI44G.js";
|
|
10
|
-
import "../chunk-OAOBQSDM.js";
|
|
11
|
-
import "../chunk-XK2D2Z44.js";
|
|
12
10
|
import "../chunk-7K4RMTU4.js";
|
|
13
|
-
import "../chunk-
|
|
14
|
-
import "../chunk-
|
|
11
|
+
import "../chunk-2BXFOBDR.js";
|
|
12
|
+
import "../chunk-L7ZGDLYU.js";
|
|
15
13
|
import "../chunk-WS2PJBP6.js";
|
|
16
|
-
import "../chunk-
|
|
14
|
+
import "../chunk-XK2D2Z44.js";
|
|
17
15
|
import "../chunk-7GH3YGSC.js";
|
|
18
16
|
export {
|
|
19
17
|
AuthenticatedCommand
|
package/dist/lib/baseCommand.js
CHANGED
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
FragmentCommand
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-QG5ISRA6.js";
|
|
3
|
+
} from "../chunk-2TY723F2.js";
|
|
5
4
|
import "../chunk-O7AE4SQS.js";
|
|
5
|
+
import "../chunk-BBZDU3B4.js";
|
|
6
6
|
import "../chunk-QF5EN33L.js";
|
|
7
7
|
import "../chunk-CW4UI44G.js";
|
|
8
|
-
import "../chunk-OAOBQSDM.js";
|
|
9
|
-
import "../chunk-XK2D2Z44.js";
|
|
10
8
|
import "../chunk-7K4RMTU4.js";
|
|
11
|
-
import "../chunk-
|
|
12
|
-
import "../chunk-
|
|
9
|
+
import "../chunk-2BXFOBDR.js";
|
|
10
|
+
import "../chunk-L7ZGDLYU.js";
|
|
13
11
|
import "../chunk-WS2PJBP6.js";
|
|
14
|
-
import "../chunk-
|
|
12
|
+
import "../chunk-XK2D2Z44.js";
|
|
15
13
|
import "../chunk-7GH3YGSC.js";
|
|
16
14
|
export {
|
|
17
15
|
FragmentCommand
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
formatValidationErrors,
|
|
3
3
|
logValidationErrors
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-W2XQHKPZ.js";
|
|
5
5
|
import "../chunk-Q76GHHV3.js";
|
|
6
|
+
import "../chunk-L7ZGDLYU.js";
|
|
6
7
|
import "../chunk-XK2D2Z44.js";
|
|
7
|
-
import "../chunk-BRU5ITZE.js";
|
|
8
|
-
import "../chunk-HLYDHSCC.js";
|
|
9
8
|
import "../chunk-7GH3YGSC.js";
|
|
10
9
|
export {
|
|
11
10
|
formatValidationErrors,
|
|
@@ -3,14 +3,13 @@ import {
|
|
|
3
3
|
extractSchemaMetadata,
|
|
4
4
|
isJsonParseError,
|
|
5
5
|
validateSchemaStructure
|
|
6
|
-
} from "../chunk-
|
|
6
|
+
} from "../chunk-HKNXFZFT.js";
|
|
7
7
|
import "../chunk-YUG6IFIF.js";
|
|
8
|
-
import "../chunk-
|
|
8
|
+
import "../chunk-W2XQHKPZ.js";
|
|
9
9
|
import "../chunk-2Y3TU546.js";
|
|
10
10
|
import "../chunk-Q76GHHV3.js";
|
|
11
|
+
import "../chunk-L7ZGDLYU.js";
|
|
11
12
|
import "../chunk-XK2D2Z44.js";
|
|
12
|
-
import "../chunk-BRU5ITZE.js";
|
|
13
|
-
import "../chunk-HLYDHSCC.js";
|
|
14
13
|
import "../chunk-7GH3YGSC.js";
|
|
15
14
|
export {
|
|
16
15
|
countAccountsRecursively,
|
package/dist/version.js
CHANGED
|
@@ -2,10 +2,9 @@ import {
|
|
|
2
2
|
VersionSchema,
|
|
3
3
|
readVersionFile,
|
|
4
4
|
updateVersionFile
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-BBZDU3B4.js";
|
|
6
|
+
import "./chunk-L7ZGDLYU.js";
|
|
7
7
|
import "./chunk-WS2PJBP6.js";
|
|
8
|
-
import "./chunk-HLYDHSCC.js";
|
|
9
8
|
import "./chunk-7GH3YGSC.js";
|
|
10
9
|
export {
|
|
11
10
|
VersionSchema,
|
package/oclif.manifest.json
CHANGED
|
@@ -774,49 +774,6 @@
|
|
|
774
774
|
"pluginType": "core",
|
|
775
775
|
"summary": "Reverse a Ledger Entry."
|
|
776
776
|
},
|
|
777
|
-
"designer-mcp": {
|
|
778
|
-
"aliases": [],
|
|
779
|
-
"args": {},
|
|
780
|
-
"description": "Connect your LLM to the Fragment Schema designer (experimental)",
|
|
781
|
-
"examples": [
|
|
782
|
-
"<%= config.bin %> <%= command.id %>",
|
|
783
|
-
"<%= config.bin %> <%= command.id %> --port 4321",
|
|
784
|
-
"<%= config.bin %> <%= command.id %> --host 127.0.0.1 --port 5000"
|
|
785
|
-
],
|
|
786
|
-
"flags": {
|
|
787
|
-
"port": {
|
|
788
|
-
"char": "p",
|
|
789
|
-
"description": "Port to bind the HTTP server on",
|
|
790
|
-
"name": "port",
|
|
791
|
-
"default": 4321,
|
|
792
|
-
"hasDynamicHelp": false,
|
|
793
|
-
"multiple": false,
|
|
794
|
-
"type": "option"
|
|
795
|
-
},
|
|
796
|
-
"host": {
|
|
797
|
-
"description": "Host to bind the HTTP server on",
|
|
798
|
-
"name": "host",
|
|
799
|
-
"default": "127.0.0.1",
|
|
800
|
-
"hasDynamicHelp": false,
|
|
801
|
-
"multiple": false,
|
|
802
|
-
"type": "option"
|
|
803
|
-
},
|
|
804
|
-
"allowed-origin": {
|
|
805
|
-
"description": "Additional CORS origin to allow (repeatable). Localhost is always allowed.",
|
|
806
|
-
"name": "allowed-origin",
|
|
807
|
-
"hasDynamicHelp": false,
|
|
808
|
-
"multiple": true,
|
|
809
|
-
"type": "option"
|
|
810
|
-
}
|
|
811
|
-
},
|
|
812
|
-
"hasDynamicHelp": false,
|
|
813
|
-
"hiddenAliases": [],
|
|
814
|
-
"id": "designer-mcp",
|
|
815
|
-
"pluginAlias": "@fragment-dev/cli",
|
|
816
|
-
"pluginName": "@fragment-dev/cli",
|
|
817
|
-
"pluginType": "core",
|
|
818
|
-
"strict": true
|
|
819
|
-
},
|
|
820
777
|
"query:ledgerAccounts": {
|
|
821
778
|
"aliases": [],
|
|
822
779
|
"args": {},
|
|
@@ -1023,5 +980,5 @@
|
|
|
1023
980
|
"help": "Generate GraphQL queries from your Schema for your SDK."
|
|
1024
981
|
}
|
|
1025
982
|
},
|
|
1026
|
-
"version": "2026.6.23-
|
|
983
|
+
"version": "2026.6.23-10"
|
|
1027
984
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fragment-dev/cli",
|
|
3
|
-
"version": "2026.6.23-
|
|
3
|
+
"version": "2026.6.23-10",
|
|
4
4
|
"description": "FRAGMENT CLI",
|
|
5
5
|
"author": "hello@fragment.dev",
|
|
6
6
|
"bin": {
|
|
@@ -31,9 +31,7 @@
|
|
|
31
31
|
"@graphql-codegen/typescript-operations": "^4.4.0",
|
|
32
32
|
"@oclif/test": "4.1.18",
|
|
33
33
|
"@types/chai": "^4",
|
|
34
|
-
"@types/cors": "^2.8.17",
|
|
35
34
|
"@types/cross-spawn": "^6.0.2",
|
|
36
|
-
"@types/express": "^4.17.21",
|
|
37
35
|
"@types/inquirer": "^9.0.7",
|
|
38
36
|
"@types/mocha": "^9.0.0",
|
|
39
37
|
"@types/node": "^20.11.16",
|
package/dist/chunk-4NJIQ4GG.js
DELETED
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
init_cjs_shims
|
|
3
|
-
} from "./chunk-7GH3YGSC.js";
|
|
4
|
-
|
|
5
|
-
// src/designer/commandQueue.ts
|
|
6
|
-
init_cjs_shims();
|
|
7
|
-
import { randomUUID } from "node:crypto";
|
|
8
|
-
|
|
9
|
-
// ../../libs/designer-mcp-protocol/index.ts
|
|
10
|
-
init_cjs_shims();
|
|
11
|
-
var DESIGNER_BRIDGE_VERSION = 5;
|
|
12
|
-
var DESIGNER_POLL_TIMEOUT_MS = 25e3;
|
|
13
|
-
var DESIGNER_COMMAND_TIMEOUT_MS = 3e4;
|
|
14
|
-
|
|
15
|
-
// src/designer/commandQueue.ts
|
|
16
|
-
var DEFAULT_COMMAND_TIMEOUT_MS = DESIGNER_COMMAND_TIMEOUT_MS;
|
|
17
|
-
var DEFAULT_POLL_TIMEOUT_MS = DESIGNER_POLL_TIMEOUT_MS;
|
|
18
|
-
var REDELIVERY_GRACE_MS = 5e3;
|
|
19
|
-
var createCommandQueue = () => {
|
|
20
|
-
const pending = /* @__PURE__ */ new Map();
|
|
21
|
-
const waiters = [];
|
|
22
|
-
let dashboardLastSeenMs = 0;
|
|
23
|
-
let closed = false;
|
|
24
|
-
const markDashboardSeen = () => {
|
|
25
|
-
dashboardLastSeenMs = Date.now();
|
|
26
|
-
};
|
|
27
|
-
const isRedeliverable = (entry, now) => entry.deliveredAtMs === void 0 || now - entry.deliveredAtMs >= REDELIVERY_GRACE_MS;
|
|
28
|
-
const takeDeliverable = (now) => {
|
|
29
|
-
const batch = [];
|
|
30
|
-
pending.forEach((entry) => {
|
|
31
|
-
if (isRedeliverable(entry, now)) {
|
|
32
|
-
entry.deliveredAtMs = now;
|
|
33
|
-
batch.push(entry.command);
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
return batch;
|
|
37
|
-
};
|
|
38
|
-
const nextRedeliveryDelay = (now) => {
|
|
39
|
-
let soonest;
|
|
40
|
-
pending.forEach((entry) => {
|
|
41
|
-
if (entry.deliveredAtMs === void 0)
|
|
42
|
-
return;
|
|
43
|
-
const readyIn = entry.deliveredAtMs + REDELIVERY_GRACE_MS - now;
|
|
44
|
-
if (readyIn > 0 && (soonest === void 0 || readyIn < soonest)) {
|
|
45
|
-
soonest = readyIn;
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
return soonest;
|
|
49
|
-
};
|
|
50
|
-
const failPending = (id, error) => {
|
|
51
|
-
const entry = pending.get(id);
|
|
52
|
-
if (!entry) {
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
clearTimeout(entry.timer);
|
|
56
|
-
pending.delete(id);
|
|
57
|
-
entry.resolve({ id, ok: false, error });
|
|
58
|
-
};
|
|
59
|
-
const deliverPendingToWaiter = () => {
|
|
60
|
-
if (waiters.length === 0) {
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
const batch = takeDeliverable(Date.now());
|
|
64
|
-
if (batch.length === 0) {
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
const waiter = waiters.shift();
|
|
68
|
-
if (!waiter) {
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
clearTimeout(waiter.timer);
|
|
72
|
-
waiter.resolve(batch);
|
|
73
|
-
};
|
|
74
|
-
const enqueue = (name, args, timeoutMs = DEFAULT_COMMAND_TIMEOUT_MS) => new Promise((resolve) => {
|
|
75
|
-
if (closed) {
|
|
76
|
-
const id = randomUUID();
|
|
77
|
-
resolve({
|
|
78
|
-
id,
|
|
79
|
-
ok: false,
|
|
80
|
-
error: "Designer MCP server shutting down"
|
|
81
|
-
});
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
const command = {
|
|
85
|
-
id: randomUUID(),
|
|
86
|
-
name,
|
|
87
|
-
args,
|
|
88
|
-
issuedAtMs: Date.now()
|
|
89
|
-
};
|
|
90
|
-
const timer = setTimeout(() => {
|
|
91
|
-
failPending(
|
|
92
|
-
command.id,
|
|
93
|
-
"Dashboard did not respond in time. Is the schema designer open?"
|
|
94
|
-
);
|
|
95
|
-
}, timeoutMs);
|
|
96
|
-
timer.unref?.();
|
|
97
|
-
pending.set(command.id, { command, resolve, timer });
|
|
98
|
-
deliverPendingToWaiter();
|
|
99
|
-
});
|
|
100
|
-
const drainForPoll = (timeoutMs = DEFAULT_POLL_TIMEOUT_MS) => new Promise((resolve) => {
|
|
101
|
-
markDashboardSeen();
|
|
102
|
-
const batch = takeDeliverable(Date.now());
|
|
103
|
-
if (batch.length > 0) {
|
|
104
|
-
resolve(batch);
|
|
105
|
-
return;
|
|
106
|
-
}
|
|
107
|
-
const redeliveryDelay = nextRedeliveryDelay(Date.now());
|
|
108
|
-
const waitMs = redeliveryDelay === void 0 ? timeoutMs : Math.min(timeoutMs, redeliveryDelay);
|
|
109
|
-
const timer = setTimeout(() => {
|
|
110
|
-
const idx = waiters.indexOf(waiter);
|
|
111
|
-
if (idx !== -1) {
|
|
112
|
-
waiters.splice(idx, 1);
|
|
113
|
-
}
|
|
114
|
-
resolve(takeDeliverable(Date.now()));
|
|
115
|
-
}, waitMs);
|
|
116
|
-
timer.unref?.();
|
|
117
|
-
const waiter = { resolve, timer };
|
|
118
|
-
waiters.push(waiter);
|
|
119
|
-
});
|
|
120
|
-
const resolveCommand = (response) => {
|
|
121
|
-
const entry = pending.get(response.id);
|
|
122
|
-
if (!entry) {
|
|
123
|
-
return false;
|
|
124
|
-
}
|
|
125
|
-
clearTimeout(entry.timer);
|
|
126
|
-
pending.delete(response.id);
|
|
127
|
-
entry.resolve(response);
|
|
128
|
-
return true;
|
|
129
|
-
};
|
|
130
|
-
const getDashboardLastSeenMs = () => dashboardLastSeenMs;
|
|
131
|
-
const isDashboardConnected = (staleThresholdMs = DEFAULT_COMMAND_TIMEOUT_MS) => {
|
|
132
|
-
if (dashboardLastSeenMs === 0)
|
|
133
|
-
return false;
|
|
134
|
-
return Date.now() - dashboardLastSeenMs < staleThresholdMs;
|
|
135
|
-
};
|
|
136
|
-
const shutdown = () => {
|
|
137
|
-
closed = true;
|
|
138
|
-
pending.forEach((entry, id) => {
|
|
139
|
-
clearTimeout(entry.timer);
|
|
140
|
-
entry.resolve({
|
|
141
|
-
id,
|
|
142
|
-
ok: false,
|
|
143
|
-
error: "Designer MCP server shutting down"
|
|
144
|
-
});
|
|
145
|
-
});
|
|
146
|
-
pending.clear();
|
|
147
|
-
waiters.forEach((waiter) => {
|
|
148
|
-
clearTimeout(waiter.timer);
|
|
149
|
-
waiter.resolve([]);
|
|
150
|
-
});
|
|
151
|
-
waiters.length = 0;
|
|
152
|
-
};
|
|
153
|
-
return {
|
|
154
|
-
enqueue,
|
|
155
|
-
drainForPoll,
|
|
156
|
-
resolveCommand,
|
|
157
|
-
markDashboardSeen,
|
|
158
|
-
getDashboardLastSeenMs,
|
|
159
|
-
isDashboardConnected,
|
|
160
|
-
shutdown
|
|
161
|
-
};
|
|
162
|
-
};
|
|
163
|
-
|
|
164
|
-
export {
|
|
165
|
-
DESIGNER_BRIDGE_VERSION,
|
|
166
|
-
DESIGNER_POLL_TIMEOUT_MS,
|
|
167
|
-
createCommandQueue
|
|
168
|
-
};
|