@akira-tl/forgerelay 1.1.2 → 1.2.0
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/CHANGELOG.md +38 -0
- package/README.md +14 -0
- package/dist/activity/runtime/mcp-query-tools.js +15 -5
- package/dist/cli/config/inspect.js +331 -0
- package/dist/cli/config/migrate.js +351 -0
- package/dist/cli/init/setup-config.js +41 -0
- package/dist/cli/init.js +128 -130
- package/dist/cli/maintenance.js +15 -5
- package/dist/cli/mcp/external-mcp.js +14 -10
- package/dist/cli/mcp/status.js +11 -6
- package/dist/cli.js +40 -7
- package/dist/lsp/language-server-config.js +66 -144
- package/dist/lsp/runtime/manager.js +35 -4
- package/dist/mcp/hooks/config.js +141 -0
- package/dist/mcp/hooks/external-mcp-transform.js +22 -13
- package/dist/mcp/hooks/hook-cli.js +62 -52
- package/dist/mcp/hooks/hooks.js +111 -85
- package/dist/mcp/operations/external-mcp/external-mcp-runtime.js +8 -5
- package/dist/mcp/operations/external-mcp/external-mcp.js +9 -2
- package/dist/mcp/server/core/capability-support.js +7 -0
- package/dist/runtime/config/config.js +142 -64
- package/dist/runtime/config/definition/catalog.js +12 -0
- package/dist/runtime/config/definition/definition.js +115 -0
- package/dist/runtime/config/definition/external-mcp.js +58 -0
- package/dist/runtime/config/definition/general-config.js +258 -0
- package/dist/runtime/config/definition/language-servers.js +116 -0
- package/dist/runtime/config/definition/schema.js +113 -0
- package/dist/runtime/config/definition/types.js +2 -0
- package/dist/runtime/config/external-mcp-auth-store.js +105 -29
- package/dist/runtime/config/external-mcp-config.js +39 -0
- package/dist/runtime/config/external-mcp-registry.js +284 -106
- package/dist/runtime/config/inspection/live.js +77 -0
- package/dist/runtime/config/resolution/general.js +93 -0
- package/dist/runtime/config/resolution/hooks.js +315 -0
- package/dist/runtime/config/resolution/language-servers.js +237 -0
- package/dist/runtime/config/resolution/project-sources.js +159 -0
- package/dist/runtime/config/resolution/resolver.js +485 -0
- package/dist/runtime/config/resolution/types.js +1 -0
- package/dist/runtime/config/runtime/config-runtime.js +74 -0
- package/dist/runtime/config/runtime/source-refresh.js +263 -0
- package/dist/runtime/config/user-config.js +38 -31
- package/dist/runtime/security/project-execution-trust.js +34 -0
- package/dist/runtime/testing/server-fixture.js +9 -8
- package/dist/server.js +10 -6
- package/dist/subagents/profiles.js +336 -53
- package/dist/subagents/sessions/execution.js +6 -35
- package/dist/subagents/sessions/manager.js +14 -2
- package/dist/ui/.vite/manifest.json +275 -275
- package/dist/ui/activity-panel-app.html +1 -1
- package/dist/ui/assets/{activity-panel-app-Bw7ZFX2g.js → activity-panel-app-BeDiwd7D.js} +3 -3
- package/dist/ui/assets/{angular-html-DeUNP12X.js → angular-html-DuoCE7nn.js} +1 -1
- package/dist/ui/assets/{angular-ts-B3v8FKi_.js → angular-ts-D5tGk0hL.js} +1 -1
- package/dist/ui/assets/{apl-Bs3iQm4P.js → apl-lciOTPbw.js} +1 -1
- package/dist/ui/assets/{astro-D6GHecBY.js → astro-vJbqfNnJ.js} +1 -1
- package/dist/ui/assets/{blade-BMNbVOHv.js → blade-C7655Q4K.js} +1 -1
- package/dist/ui/assets/{c-BquuA6bv.js → c-DdHp1Jrw.js} +1 -1
- package/dist/ui/assets/{cobol-BuZ6kfps.js → cobol-DgvzQxZP.js} +1 -1
- package/dist/ui/assets/{coffee-DgC5uBzL.js → coffee-BIjVUOUd.js} +1 -1
- package/dist/ui/assets/{cpp-BdvWqCaB.js → cpp-CU8tGzvI.js} +1 -1
- package/dist/ui/assets/{crystal-0Q5qBvNI.js → crystal-CUQAwsg9.js} +1 -1
- package/dist/ui/assets/{css-Be_T8idh.js → css-DtMTqD3F.js} +1 -1
- package/dist/ui/assets/{edge-DaGLdgh_.js → edge-DoCX9RnL.js} +1 -1
- package/dist/ui/assets/{elixir-CMgiFIzB.js → elixir-DJxV9_U6.js} +1 -1
- package/dist/ui/assets/{elm-B-ufMlMC.js → elm-DIgWqK4r.js} +1 -1
- package/dist/ui/assets/{erb-CaGiOZM-.js → erb-BHxP0c_e.js} +1 -1
- package/dist/ui/assets/{git-rebase-CpwUWCzK.js → git-rebase-HbI_Vo8d.js} +1 -1
- package/dist/ui/assets/{glimmer-js-BRxccvnE.js → glimmer-js-CthY4Ty_.js} +1 -1
- package/dist/ui/assets/{glimmer-ts-CgQbPzlT.js → glimmer-ts-B2-_A1Xz.js} +1 -1
- package/dist/ui/assets/{glsl-D7JmHFr0.js → glsl-D9V9gq98.js} +1 -1
- package/dist/ui/assets/{graphql-C8n0eUBK.js → graphql-CddeAaS3.js} +1 -1
- package/dist/ui/assets/{hack-lVN7KVQv.js → hack-D_loGkOT.js} +1 -1
- package/dist/ui/assets/{haml-h18lG0pS.js → haml-BoWDczd0.js} +1 -1
- package/dist/ui/assets/{handlebars-lRFjRPfj.js → handlebars-ZoSOvw9y.js} +1 -1
- package/dist/ui/assets/{heavy-payload-Cqx9MOkH.js → heavy-payload-DO34LwoZ.js} +3 -3
- package/dist/ui/assets/{html-DtILqTE1.js → html-CE-obXVo.js} +1 -1
- package/dist/ui/assets/{html-derivative-CSTSmPup.js → html-derivative-Cd-smAbW.js} +1 -1
- package/dist/ui/assets/{http-DNI8fsbY.js → http-CZrkbrSl.js} +1 -1
- package/dist/ui/assets/{hurl-DgRi60JG.js → hurl-CxTuxBt1.js} +1 -1
- package/dist/ui/assets/{java-CW9pZ5bh.js → java-BshLjCat.js} +1 -1
- package/dist/ui/assets/{javascript-Cvg2UrWL.js → javascript-D2pxQTiX.js} +1 -1
- package/dist/ui/assets/{jinja-CZw_S1FB.js → jinja-kbfPP7-F.js} +1 -1
- package/dist/ui/assets/{jison-C56u_FZv.js → jison-C2mt9l1M.js} +1 -1
- package/dist/ui/assets/{json-DW2UTv1q.js → json-DU_rg_AU.js} +1 -1
- package/dist/ui/assets/{jsx-Zj5gobdD.js → jsx-D_8aQMlx.js} +1 -1
- package/dist/ui/assets/{julia-Cvcrre-L.js → julia-BmefTaVV.js} +1 -1
- package/dist/ui/assets/{just-8CZ2u6Tj.js → just-DXV8vk1S.js} +1 -1
- package/dist/ui/assets/{latex-D289AXWG.js → latex-Cjm2MvGW.js} +1 -1
- package/dist/ui/assets/{liquid-CFEX3SkZ.js → liquid-DyQDlo0u.js} +1 -1
- package/dist/ui/assets/{lua-BKpJ0ybO.js → lua-B2A1vzzy.js} +1 -1
- package/dist/ui/assets/{marko-D9maZ0a6.js → marko-B9vOkXOU.js} +1 -1
- package/dist/ui/assets/{mdc-rM9l0qWR.js → mdc-D42m6spU.js} +1 -1
- package/dist/ui/assets/{nginx-C9w6p2C9.js → nginx-TpfVxSUY.js} +1 -1
- package/dist/ui/assets/{nim-BRePHk0J.js → nim-CJr5T1FK.js} +1 -1
- package/dist/ui/assets/{perl-CskTmiPQ.js → perl-cJZcsdm9.js} +1 -1
- package/dist/ui/assets/{php-DCU_FvNI.js → php-CSZL5KRT.js} +1 -1
- package/dist/ui/assets/{pug-XLaVxTvv.js → pug-B1eMKzuA.js} +1 -1
- package/dist/ui/assets/{qml-CaONKSl-.js → qml-Dl2_7zc9.js} +1 -1
- package/dist/ui/assets/{r-BCVR0ZE3.js → r-F0aaO9gG.js} +1 -1
- package/dist/ui/assets/{razor-DDnGXxnU.js → razor-BPnkSMCw.js} +1 -1
- package/dist/ui/assets/{regexp-DWGTYYVx.js → regexp-BnGHMFbv.js} +1 -1
- package/dist/ui/assets/{rst-Dz3GWvQm.js → rst-B3CO7WYO.js} +1 -1
- package/dist/ui/assets/{ruby-DC3jGtMY.js → ruby-B6VMzT1T.js} +1 -1
- package/dist/ui/assets/{sas-7mNpvsjZ.js → sas-Df2lHVuU.js} +1 -1
- package/dist/ui/assets/{scss-uBsoCJVy.js → scss-4XxI6sgu.js} +1 -1
- package/dist/ui/assets/{shellscript-BCN9N_Jf.js → shellscript-DYASCN4r.js} +1 -1
- package/dist/ui/assets/{shellsession-Hsw46VXV.js → shellsession-Br6AGJO_.js} +1 -1
- package/dist/ui/assets/{soy-D6KV69HU.js → soy-p3ZNq1We.js} +1 -1
- package/dist/ui/assets/{sql-CVzVQkJh.js → sql-CAdv2OXL.js} +1 -1
- package/dist/ui/assets/{stata-BwUjXNhI.js → stata-Dx7yUbG_.js} +1 -1
- package/dist/ui/assets/{surrealql-CgloWqRa.js → surrealql-6YsE8HQa.js} +1 -1
- package/dist/ui/assets/{svelte-DcC3n6IC.js → svelte-YgzedwpD.js} +1 -1
- package/dist/ui/assets/{templ-DOFfnWTJ.js → templ-Bahqx3uD.js} +1 -1
- package/dist/ui/assets/{tex-ln89VPaX.js → tex-o6fTQjkH.js} +1 -1
- package/dist/ui/assets/{ts-tags-CWMzCstH.js → ts-tags-BO-Co0Ju.js} +1 -1
- package/dist/ui/assets/{tsx-DgzfiGeK.js → tsx-DtQe5AoH.js} +1 -1
- package/dist/ui/assets/{twig-Bi2itZL9.js → twig-BcUs6Kqc.js} +1 -1
- package/dist/ui/assets/{typescript-CQ24f4zW.js → typescript-BPtM8h4u.js} +1 -1
- package/dist/ui/assets/{vue-BS8jE5u6.js → vue-5KkGUzJJ.js} +1 -1
- package/dist/ui/assets/{vue-html-o38xqhyB.js → vue-html-Df_Xfsz9.js} +1 -1
- package/dist/ui/assets/{vue-vine-D2NvKv50.js → vue-vine-hUIe_u_Y.js} +1 -1
- package/dist/ui/assets/{xml-_44rx9_2.js → xml-C3Jy7as5.js} +1 -1
- package/dist/ui/assets/{xsl-B5QWQPoi.js → xsl-BnF9OuFo.js} +1 -1
- package/dist/ui/assets/{yaml-CKL2pEWe.js → yaml-DyrFgCou.js} +1 -1
- package/dist/workspaces/conversation-test-support.js +3 -11
- package/dist/workspaces/sessions.js +2 -0
- package/dist/workspaces/state/project-context.js +221 -0
- package/dist/workspaces.js +3 -1
- package/docs/chatgpt-coding-workflow.md +8 -3
- package/docs/configuration.md +99 -41
- package/docs/gotchas.md +24 -5
- package/docs/security.md +14 -3
- package/docs/setup.md +12 -7
- package/package.json +12 -3
- package/schemas/v1/config.project-local.schema.json +14 -0
- package/schemas/v1/config.project.schema.json +14 -0
- package/schemas/v1/config.user.schema.json +538 -0
- package/schemas/v1/hooks.project-local.schema.json +118 -0
- package/schemas/v1/hooks.project.schema.json +118 -0
- package/schemas/v1/hooks.user.schema.json +118 -0
- package/schemas/v1/language-servers.project-local.schema.json +230 -0
- package/schemas/v1/language-servers.project.schema.json +230 -0
- package/schemas/v1/language-servers.user.schema.json +230 -0
- package/schemas/v1/mcp.project-local.schema.json +143 -0
- package/schemas/v1/mcp.project.schema.json +143 -0
- package/schemas/v1/mcp.user.schema.json +143 -0
- package/scripts/ci/architecture.mjs +54 -4
- package/scripts/ci/cmd-acceptance.mjs +9 -9
- package/scripts/ci/config-v2-product-acceptance.mjs +639 -0
- package/scripts/ci/gates/acceptance-artifact.mjs +66 -0
- package/scripts/ci/gates/core-contract.mjs +27 -0
- package/scripts/ci/gates/platform-tests.mjs +38 -0
- package/scripts/ci/gates/prepare-windows-product.mjs +57 -0
- package/scripts/ci/gates/test-shard.mjs +71 -0
- package/scripts/ci/powershell51-acceptance.mjs +9 -9
- package/scripts/ci/pwsh-acceptance.mjs +9 -9
- package/scripts/ci/verify.mjs +2 -0
- package/scripts/ci/windows-product-acceptance.mjs +9 -10
- package/scripts/config/schema-text.mjs +4 -0
- package/scripts/config/schema-text.test.mjs +18 -0
- package/scripts/config/schema.mjs +74 -0
- package/scripts/lsp/interop.mjs +4 -1
- package/scripts/release/pack.mjs +64 -4
- package/scripts/release/release-gate.test.mjs +93 -27
- package/scripts/release-parity.mjs +19 -2
- package/templates/instructions/cmd.md +12 -0
- package/templates/instructions/fish.md +11 -0
- package/templates/instructions/powershell.md +14 -0
- package/templates/instructions/pwsh.md +14 -0
- package/templates/instructions/zsh.md +11 -0
- package/dist/runtime/instructions/powershell-skill.js +0 -65
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"anyOf": [
|
|
4
|
+
{
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"event": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"enum": [
|
|
10
|
+
"WorkspaceOpen",
|
|
11
|
+
"BeforeTool",
|
|
12
|
+
"AfterTool",
|
|
13
|
+
"AfterToolFailure",
|
|
14
|
+
"ExternalMcpBeforeForward",
|
|
15
|
+
"ExternalMcpAfterForward",
|
|
16
|
+
"AfterFileChange",
|
|
17
|
+
"BeforeWorktreeClose",
|
|
18
|
+
"AfterWorktreeClose",
|
|
19
|
+
"SubagentStart",
|
|
20
|
+
"SubagentStop"
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
"matcher": {
|
|
24
|
+
"type": "object",
|
|
25
|
+
"properties": {
|
|
26
|
+
"tool": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"minLength": 1
|
|
29
|
+
},
|
|
30
|
+
"commandRegex": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"minLength": 1
|
|
33
|
+
},
|
|
34
|
+
"pathRegex": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"minLength": 1
|
|
37
|
+
},
|
|
38
|
+
"provider": {
|
|
39
|
+
"type": "string",
|
|
40
|
+
"minLength": 1
|
|
41
|
+
},
|
|
42
|
+
"workspaceMode": {
|
|
43
|
+
"type": "string",
|
|
44
|
+
"enum": [
|
|
45
|
+
"checkout",
|
|
46
|
+
"worktree"
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
"capability": {
|
|
50
|
+
"type": "string",
|
|
51
|
+
"minLength": 1
|
|
52
|
+
},
|
|
53
|
+
"externalServer": {
|
|
54
|
+
"type": "string",
|
|
55
|
+
"minLength": 1
|
|
56
|
+
},
|
|
57
|
+
"externalTool": {
|
|
58
|
+
"type": "string",
|
|
59
|
+
"minLength": 1
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"additionalProperties": false
|
|
63
|
+
},
|
|
64
|
+
"command": {
|
|
65
|
+
"type": "string",
|
|
66
|
+
"minLength": 1
|
|
67
|
+
},
|
|
68
|
+
"timeoutSeconds": {
|
|
69
|
+
"type": "integer",
|
|
70
|
+
"minimum": 1,
|
|
71
|
+
"maximum": 300
|
|
72
|
+
},
|
|
73
|
+
"report": {
|
|
74
|
+
"type": "boolean"
|
|
75
|
+
},
|
|
76
|
+
"$schema": {
|
|
77
|
+
"description": "Editor-only JSON Schema URL. Ignored by ForgeRelay resolution.",
|
|
78
|
+
"type": "string"
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
"required": [
|
|
82
|
+
"event",
|
|
83
|
+
"command"
|
|
84
|
+
],
|
|
85
|
+
"additionalProperties": false
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"type": "object",
|
|
89
|
+
"properties": {
|
|
90
|
+
"disabled": {
|
|
91
|
+
"type": "boolean",
|
|
92
|
+
"const": true
|
|
93
|
+
},
|
|
94
|
+
"$schema": {
|
|
95
|
+
"description": "Editor-only JSON Schema URL. Ignored by ForgeRelay resolution.",
|
|
96
|
+
"type": "string"
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
"required": [
|
|
100
|
+
"disabled"
|
|
101
|
+
],
|
|
102
|
+
"additionalProperties": false
|
|
103
|
+
}
|
|
104
|
+
],
|
|
105
|
+
"$id": "https://raw.githubusercontent.com/Akira-TL/forgerelay/main/schemas/v1/hooks.project.schema.json",
|
|
106
|
+
"title": "ForgeRelay Lifecycle Hook configuration (project)",
|
|
107
|
+
"description": "Lifecycle Hook files composed by stable file name across user, project, and Project Local scopes.",
|
|
108
|
+
"x-forgerelay-scopes": [
|
|
109
|
+
"project-local",
|
|
110
|
+
"project",
|
|
111
|
+
"user"
|
|
112
|
+
],
|
|
113
|
+
"x-forgerelay-merge": "keyed",
|
|
114
|
+
"x-forgerelay-reload": "hot",
|
|
115
|
+
"x-forgerelay-sensitivity": "sensitive",
|
|
116
|
+
"x-forgerelay-interpolation": "none",
|
|
117
|
+
"x-forgerelay-execution-effect": "dynamic"
|
|
118
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"anyOf": [
|
|
4
|
+
{
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"event": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"enum": [
|
|
10
|
+
"WorkspaceOpen",
|
|
11
|
+
"BeforeTool",
|
|
12
|
+
"AfterTool",
|
|
13
|
+
"AfterToolFailure",
|
|
14
|
+
"ExternalMcpBeforeForward",
|
|
15
|
+
"ExternalMcpAfterForward",
|
|
16
|
+
"AfterFileChange",
|
|
17
|
+
"BeforeWorktreeClose",
|
|
18
|
+
"AfterWorktreeClose",
|
|
19
|
+
"SubagentStart",
|
|
20
|
+
"SubagentStop"
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
"matcher": {
|
|
24
|
+
"type": "object",
|
|
25
|
+
"properties": {
|
|
26
|
+
"tool": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"minLength": 1
|
|
29
|
+
},
|
|
30
|
+
"commandRegex": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"minLength": 1
|
|
33
|
+
},
|
|
34
|
+
"pathRegex": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"minLength": 1
|
|
37
|
+
},
|
|
38
|
+
"provider": {
|
|
39
|
+
"type": "string",
|
|
40
|
+
"minLength": 1
|
|
41
|
+
},
|
|
42
|
+
"workspaceMode": {
|
|
43
|
+
"type": "string",
|
|
44
|
+
"enum": [
|
|
45
|
+
"checkout",
|
|
46
|
+
"worktree"
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
"capability": {
|
|
50
|
+
"type": "string",
|
|
51
|
+
"minLength": 1
|
|
52
|
+
},
|
|
53
|
+
"externalServer": {
|
|
54
|
+
"type": "string",
|
|
55
|
+
"minLength": 1
|
|
56
|
+
},
|
|
57
|
+
"externalTool": {
|
|
58
|
+
"type": "string",
|
|
59
|
+
"minLength": 1
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"additionalProperties": false
|
|
63
|
+
},
|
|
64
|
+
"command": {
|
|
65
|
+
"type": "string",
|
|
66
|
+
"minLength": 1
|
|
67
|
+
},
|
|
68
|
+
"timeoutSeconds": {
|
|
69
|
+
"type": "integer",
|
|
70
|
+
"minimum": 1,
|
|
71
|
+
"maximum": 300
|
|
72
|
+
},
|
|
73
|
+
"report": {
|
|
74
|
+
"type": "boolean"
|
|
75
|
+
},
|
|
76
|
+
"$schema": {
|
|
77
|
+
"description": "Editor-only JSON Schema URL. Ignored by ForgeRelay resolution.",
|
|
78
|
+
"type": "string"
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
"required": [
|
|
82
|
+
"event",
|
|
83
|
+
"command"
|
|
84
|
+
],
|
|
85
|
+
"additionalProperties": false
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"type": "object",
|
|
89
|
+
"properties": {
|
|
90
|
+
"disabled": {
|
|
91
|
+
"type": "boolean",
|
|
92
|
+
"const": true
|
|
93
|
+
},
|
|
94
|
+
"$schema": {
|
|
95
|
+
"description": "Editor-only JSON Schema URL. Ignored by ForgeRelay resolution.",
|
|
96
|
+
"type": "string"
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
"required": [
|
|
100
|
+
"disabled"
|
|
101
|
+
],
|
|
102
|
+
"additionalProperties": false
|
|
103
|
+
}
|
|
104
|
+
],
|
|
105
|
+
"$id": "https://raw.githubusercontent.com/Akira-TL/forgerelay/main/schemas/v1/hooks.user.schema.json",
|
|
106
|
+
"title": "ForgeRelay Lifecycle Hook configuration (user)",
|
|
107
|
+
"description": "Lifecycle Hook files composed by stable file name across user, project, and Project Local scopes.",
|
|
108
|
+
"x-forgerelay-scopes": [
|
|
109
|
+
"project-local",
|
|
110
|
+
"project",
|
|
111
|
+
"user"
|
|
112
|
+
],
|
|
113
|
+
"x-forgerelay-merge": "keyed",
|
|
114
|
+
"x-forgerelay-reload": "hot",
|
|
115
|
+
"x-forgerelay-sensitivity": "sensitive",
|
|
116
|
+
"x-forgerelay-interpolation": "none",
|
|
117
|
+
"x-forgerelay-execution-effect": "dynamic"
|
|
118
|
+
}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"type": "object",
|
|
4
|
+
"propertyNames": {
|
|
5
|
+
"type": "string",
|
|
6
|
+
"minLength": 1
|
|
7
|
+
},
|
|
8
|
+
"additionalProperties": {
|
|
9
|
+
"anyOf": [
|
|
10
|
+
{
|
|
11
|
+
"type": "object",
|
|
12
|
+
"properties": {
|
|
13
|
+
"disabled": {
|
|
14
|
+
"type": "boolean",
|
|
15
|
+
"const": true
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"required": [
|
|
19
|
+
"disabled"
|
|
20
|
+
],
|
|
21
|
+
"additionalProperties": false
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"type": "object",
|
|
25
|
+
"properties": {
|
|
26
|
+
"command": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"minLength": 1
|
|
29
|
+
},
|
|
30
|
+
"args": {
|
|
31
|
+
"type": "array",
|
|
32
|
+
"items": {
|
|
33
|
+
"type": "string"
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"env": {
|
|
37
|
+
"type": "object",
|
|
38
|
+
"propertyNames": {
|
|
39
|
+
"type": "string"
|
|
40
|
+
},
|
|
41
|
+
"additionalProperties": {
|
|
42
|
+
"type": "string"
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"languages": {
|
|
46
|
+
"minItems": 1,
|
|
47
|
+
"type": "array",
|
|
48
|
+
"items": {
|
|
49
|
+
"type": "string",
|
|
50
|
+
"minLength": 1
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"extensions": {
|
|
54
|
+
"minItems": 1,
|
|
55
|
+
"type": "array",
|
|
56
|
+
"items": {
|
|
57
|
+
"type": "string",
|
|
58
|
+
"pattern": "^\\."
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"languageIdByExtension": {
|
|
62
|
+
"type": "object",
|
|
63
|
+
"propertyNames": {
|
|
64
|
+
"type": "string",
|
|
65
|
+
"pattern": "^\\."
|
|
66
|
+
},
|
|
67
|
+
"additionalProperties": {
|
|
68
|
+
"type": "string",
|
|
69
|
+
"minLength": 1
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
"projectMarkers": {
|
|
73
|
+
"type": "array",
|
|
74
|
+
"items": {
|
|
75
|
+
"type": "string",
|
|
76
|
+
"minLength": 1
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
"disabled": {
|
|
80
|
+
"type": "boolean",
|
|
81
|
+
"const": false
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
"additionalProperties": false
|
|
85
|
+
}
|
|
86
|
+
]
|
|
87
|
+
},
|
|
88
|
+
"$id": "https://raw.githubusercontent.com/Akira-TL/forgerelay/main/schemas/v1/language-servers.project-local.schema.json",
|
|
89
|
+
"title": "ForgeRelay Language Server configuration (project-local)",
|
|
90
|
+
"description": "Language Server definitions used by Code Intelligence.",
|
|
91
|
+
"properties": {
|
|
92
|
+
"$schema": {
|
|
93
|
+
"type": "string",
|
|
94
|
+
"description": "Editor-only JSON Schema URL. Ignored by ForgeRelay resolution."
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
"default": {
|
|
98
|
+
"typescript": {
|
|
99
|
+
"args": [
|
|
100
|
+
"--stdio"
|
|
101
|
+
],
|
|
102
|
+
"languages": [
|
|
103
|
+
"typescript",
|
|
104
|
+
"typescriptreact",
|
|
105
|
+
"javascript",
|
|
106
|
+
"javascriptreact"
|
|
107
|
+
],
|
|
108
|
+
"extensions": [
|
|
109
|
+
".ts",
|
|
110
|
+
".tsx",
|
|
111
|
+
".js",
|
|
112
|
+
".jsx",
|
|
113
|
+
".mjs",
|
|
114
|
+
".cjs"
|
|
115
|
+
],
|
|
116
|
+
"languageIdByExtension": {
|
|
117
|
+
".ts": "typescript",
|
|
118
|
+
".tsx": "typescriptreact",
|
|
119
|
+
".js": "javascript",
|
|
120
|
+
".jsx": "javascriptreact",
|
|
121
|
+
".mjs": "javascript",
|
|
122
|
+
".cjs": "javascript"
|
|
123
|
+
},
|
|
124
|
+
"projectMarkers": [
|
|
125
|
+
"tsconfig.json",
|
|
126
|
+
"jsconfig.json",
|
|
127
|
+
"package.json"
|
|
128
|
+
]
|
|
129
|
+
},
|
|
130
|
+
"pyright": {
|
|
131
|
+
"args": [
|
|
132
|
+
"--stdio"
|
|
133
|
+
],
|
|
134
|
+
"languages": [
|
|
135
|
+
"python"
|
|
136
|
+
],
|
|
137
|
+
"extensions": [
|
|
138
|
+
".py",
|
|
139
|
+
".pyi"
|
|
140
|
+
],
|
|
141
|
+
"languageIdByExtension": {
|
|
142
|
+
".py": "python",
|
|
143
|
+
".pyi": "python"
|
|
144
|
+
},
|
|
145
|
+
"projectMarkers": [
|
|
146
|
+
"pyrightconfig.json",
|
|
147
|
+
"pyproject.toml",
|
|
148
|
+
"setup.cfg",
|
|
149
|
+
"setup.py"
|
|
150
|
+
]
|
|
151
|
+
},
|
|
152
|
+
"rust-analyzer": {
|
|
153
|
+
"languages": [
|
|
154
|
+
"rust"
|
|
155
|
+
],
|
|
156
|
+
"extensions": [
|
|
157
|
+
".rs"
|
|
158
|
+
],
|
|
159
|
+
"languageIdByExtension": {
|
|
160
|
+
".rs": "rust"
|
|
161
|
+
},
|
|
162
|
+
"projectMarkers": [
|
|
163
|
+
"Cargo.toml"
|
|
164
|
+
]
|
|
165
|
+
},
|
|
166
|
+
"gopls": {
|
|
167
|
+
"languages": [
|
|
168
|
+
"go"
|
|
169
|
+
],
|
|
170
|
+
"extensions": [
|
|
171
|
+
".go"
|
|
172
|
+
],
|
|
173
|
+
"languageIdByExtension": {
|
|
174
|
+
".go": "go"
|
|
175
|
+
},
|
|
176
|
+
"projectMarkers": [
|
|
177
|
+
"go.work",
|
|
178
|
+
"go.mod"
|
|
179
|
+
]
|
|
180
|
+
},
|
|
181
|
+
"clangd": {
|
|
182
|
+
"languages": [
|
|
183
|
+
"c",
|
|
184
|
+
"cpp",
|
|
185
|
+
"objective-c",
|
|
186
|
+
"objective-cpp"
|
|
187
|
+
],
|
|
188
|
+
"extensions": [
|
|
189
|
+
".c",
|
|
190
|
+
".cc",
|
|
191
|
+
".cpp",
|
|
192
|
+
".cxx",
|
|
193
|
+
".h",
|
|
194
|
+
".hh",
|
|
195
|
+
".hpp",
|
|
196
|
+
".hxx",
|
|
197
|
+
".m",
|
|
198
|
+
".mm"
|
|
199
|
+
],
|
|
200
|
+
"languageIdByExtension": {
|
|
201
|
+
".c": "c",
|
|
202
|
+
".cc": "cpp",
|
|
203
|
+
".cpp": "cpp",
|
|
204
|
+
".cxx": "cpp",
|
|
205
|
+
".h": "cpp",
|
|
206
|
+
".hh": "cpp",
|
|
207
|
+
".hpp": "cpp",
|
|
208
|
+
".hxx": "cpp",
|
|
209
|
+
".m": "objective-c",
|
|
210
|
+
".mm": "objective-cpp"
|
|
211
|
+
},
|
|
212
|
+
"projectMarkers": [
|
|
213
|
+
"compile_commands.json",
|
|
214
|
+
"compile_flags.txt",
|
|
215
|
+
".clangd"
|
|
216
|
+
]
|
|
217
|
+
}
|
|
218
|
+
},
|
|
219
|
+
"x-forgerelay-scopes": [
|
|
220
|
+
"project-local",
|
|
221
|
+
"project",
|
|
222
|
+
"user",
|
|
223
|
+
"built-in"
|
|
224
|
+
],
|
|
225
|
+
"x-forgerelay-merge": "keyed",
|
|
226
|
+
"x-forgerelay-reload": "hot",
|
|
227
|
+
"x-forgerelay-sensitivity": "sensitive",
|
|
228
|
+
"x-forgerelay-interpolation": "env",
|
|
229
|
+
"x-forgerelay-execution-effect": "dynamic"
|
|
230
|
+
}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"type": "object",
|
|
4
|
+
"propertyNames": {
|
|
5
|
+
"type": "string",
|
|
6
|
+
"minLength": 1
|
|
7
|
+
},
|
|
8
|
+
"additionalProperties": {
|
|
9
|
+
"anyOf": [
|
|
10
|
+
{
|
|
11
|
+
"type": "object",
|
|
12
|
+
"properties": {
|
|
13
|
+
"disabled": {
|
|
14
|
+
"type": "boolean",
|
|
15
|
+
"const": true
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"required": [
|
|
19
|
+
"disabled"
|
|
20
|
+
],
|
|
21
|
+
"additionalProperties": false
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"type": "object",
|
|
25
|
+
"properties": {
|
|
26
|
+
"command": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"minLength": 1
|
|
29
|
+
},
|
|
30
|
+
"args": {
|
|
31
|
+
"type": "array",
|
|
32
|
+
"items": {
|
|
33
|
+
"type": "string"
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"env": {
|
|
37
|
+
"type": "object",
|
|
38
|
+
"propertyNames": {
|
|
39
|
+
"type": "string"
|
|
40
|
+
},
|
|
41
|
+
"additionalProperties": {
|
|
42
|
+
"type": "string"
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"languages": {
|
|
46
|
+
"minItems": 1,
|
|
47
|
+
"type": "array",
|
|
48
|
+
"items": {
|
|
49
|
+
"type": "string",
|
|
50
|
+
"minLength": 1
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"extensions": {
|
|
54
|
+
"minItems": 1,
|
|
55
|
+
"type": "array",
|
|
56
|
+
"items": {
|
|
57
|
+
"type": "string",
|
|
58
|
+
"pattern": "^\\."
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"languageIdByExtension": {
|
|
62
|
+
"type": "object",
|
|
63
|
+
"propertyNames": {
|
|
64
|
+
"type": "string",
|
|
65
|
+
"pattern": "^\\."
|
|
66
|
+
},
|
|
67
|
+
"additionalProperties": {
|
|
68
|
+
"type": "string",
|
|
69
|
+
"minLength": 1
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
"projectMarkers": {
|
|
73
|
+
"type": "array",
|
|
74
|
+
"items": {
|
|
75
|
+
"type": "string",
|
|
76
|
+
"minLength": 1
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
"disabled": {
|
|
80
|
+
"type": "boolean",
|
|
81
|
+
"const": false
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
"additionalProperties": false
|
|
85
|
+
}
|
|
86
|
+
]
|
|
87
|
+
},
|
|
88
|
+
"$id": "https://raw.githubusercontent.com/Akira-TL/forgerelay/main/schemas/v1/language-servers.project.schema.json",
|
|
89
|
+
"title": "ForgeRelay Language Server configuration (project)",
|
|
90
|
+
"description": "Language Server definitions used by Code Intelligence.",
|
|
91
|
+
"properties": {
|
|
92
|
+
"$schema": {
|
|
93
|
+
"type": "string",
|
|
94
|
+
"description": "Editor-only JSON Schema URL. Ignored by ForgeRelay resolution."
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
"default": {
|
|
98
|
+
"typescript": {
|
|
99
|
+
"args": [
|
|
100
|
+
"--stdio"
|
|
101
|
+
],
|
|
102
|
+
"languages": [
|
|
103
|
+
"typescript",
|
|
104
|
+
"typescriptreact",
|
|
105
|
+
"javascript",
|
|
106
|
+
"javascriptreact"
|
|
107
|
+
],
|
|
108
|
+
"extensions": [
|
|
109
|
+
".ts",
|
|
110
|
+
".tsx",
|
|
111
|
+
".js",
|
|
112
|
+
".jsx",
|
|
113
|
+
".mjs",
|
|
114
|
+
".cjs"
|
|
115
|
+
],
|
|
116
|
+
"languageIdByExtension": {
|
|
117
|
+
".ts": "typescript",
|
|
118
|
+
".tsx": "typescriptreact",
|
|
119
|
+
".js": "javascript",
|
|
120
|
+
".jsx": "javascriptreact",
|
|
121
|
+
".mjs": "javascript",
|
|
122
|
+
".cjs": "javascript"
|
|
123
|
+
},
|
|
124
|
+
"projectMarkers": [
|
|
125
|
+
"tsconfig.json",
|
|
126
|
+
"jsconfig.json",
|
|
127
|
+
"package.json"
|
|
128
|
+
]
|
|
129
|
+
},
|
|
130
|
+
"pyright": {
|
|
131
|
+
"args": [
|
|
132
|
+
"--stdio"
|
|
133
|
+
],
|
|
134
|
+
"languages": [
|
|
135
|
+
"python"
|
|
136
|
+
],
|
|
137
|
+
"extensions": [
|
|
138
|
+
".py",
|
|
139
|
+
".pyi"
|
|
140
|
+
],
|
|
141
|
+
"languageIdByExtension": {
|
|
142
|
+
".py": "python",
|
|
143
|
+
".pyi": "python"
|
|
144
|
+
},
|
|
145
|
+
"projectMarkers": [
|
|
146
|
+
"pyrightconfig.json",
|
|
147
|
+
"pyproject.toml",
|
|
148
|
+
"setup.cfg",
|
|
149
|
+
"setup.py"
|
|
150
|
+
]
|
|
151
|
+
},
|
|
152
|
+
"rust-analyzer": {
|
|
153
|
+
"languages": [
|
|
154
|
+
"rust"
|
|
155
|
+
],
|
|
156
|
+
"extensions": [
|
|
157
|
+
".rs"
|
|
158
|
+
],
|
|
159
|
+
"languageIdByExtension": {
|
|
160
|
+
".rs": "rust"
|
|
161
|
+
},
|
|
162
|
+
"projectMarkers": [
|
|
163
|
+
"Cargo.toml"
|
|
164
|
+
]
|
|
165
|
+
},
|
|
166
|
+
"gopls": {
|
|
167
|
+
"languages": [
|
|
168
|
+
"go"
|
|
169
|
+
],
|
|
170
|
+
"extensions": [
|
|
171
|
+
".go"
|
|
172
|
+
],
|
|
173
|
+
"languageIdByExtension": {
|
|
174
|
+
".go": "go"
|
|
175
|
+
},
|
|
176
|
+
"projectMarkers": [
|
|
177
|
+
"go.work",
|
|
178
|
+
"go.mod"
|
|
179
|
+
]
|
|
180
|
+
},
|
|
181
|
+
"clangd": {
|
|
182
|
+
"languages": [
|
|
183
|
+
"c",
|
|
184
|
+
"cpp",
|
|
185
|
+
"objective-c",
|
|
186
|
+
"objective-cpp"
|
|
187
|
+
],
|
|
188
|
+
"extensions": [
|
|
189
|
+
".c",
|
|
190
|
+
".cc",
|
|
191
|
+
".cpp",
|
|
192
|
+
".cxx",
|
|
193
|
+
".h",
|
|
194
|
+
".hh",
|
|
195
|
+
".hpp",
|
|
196
|
+
".hxx",
|
|
197
|
+
".m",
|
|
198
|
+
".mm"
|
|
199
|
+
],
|
|
200
|
+
"languageIdByExtension": {
|
|
201
|
+
".c": "c",
|
|
202
|
+
".cc": "cpp",
|
|
203
|
+
".cpp": "cpp",
|
|
204
|
+
".cxx": "cpp",
|
|
205
|
+
".h": "cpp",
|
|
206
|
+
".hh": "cpp",
|
|
207
|
+
".hpp": "cpp",
|
|
208
|
+
".hxx": "cpp",
|
|
209
|
+
".m": "objective-c",
|
|
210
|
+
".mm": "objective-cpp"
|
|
211
|
+
},
|
|
212
|
+
"projectMarkers": [
|
|
213
|
+
"compile_commands.json",
|
|
214
|
+
"compile_flags.txt",
|
|
215
|
+
".clangd"
|
|
216
|
+
]
|
|
217
|
+
}
|
|
218
|
+
},
|
|
219
|
+
"x-forgerelay-scopes": [
|
|
220
|
+
"project-local",
|
|
221
|
+
"project",
|
|
222
|
+
"user",
|
|
223
|
+
"built-in"
|
|
224
|
+
],
|
|
225
|
+
"x-forgerelay-merge": "keyed",
|
|
226
|
+
"x-forgerelay-reload": "hot",
|
|
227
|
+
"x-forgerelay-sensitivity": "sensitive",
|
|
228
|
+
"x-forgerelay-interpolation": "env",
|
|
229
|
+
"x-forgerelay-execution-effect": "dynamic"
|
|
230
|
+
}
|