golutra-mcp 0.1.1 → 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/CHANGELOG.md CHANGED
@@ -6,6 +6,16 @@ The format follows Keep a Changelog, and this project uses Semantic Versioning.
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.1.2] - 2026-03-22
10
+
11
+ ### Changed
12
+
13
+ - Clarified the runtime `workspacePath` contract so per-tool `workspacePath` input is treated as a one-time override, while `golutra-set-context` remains the only way to persist a new default workspace
14
+ - Added regression tests to lock the workspace context behavior at both `ContextStore` level and workspace-aware tool level
15
+ - Expanded README and `STARTUP_PROCESS.md` so AI hosts can understand the recommended runtime flow for diagnostics, workspace switching, and normal tool execution
16
+ - Added `docs/WORKSPACE_CONTEXT_EXAMPLES.md` with concrete examples for stored defaults, one-off workspace overrides, recommended tool order, and a real chat flow
17
+ - Updated the diagnostic examples to explain that a `workspacePath` passed to `golutra-diagnose` affects only that call and does not mutate the stored default context
18
+
9
19
  ## [0.1.1] - 2026-03-21
10
20
 
11
21
  ### Changed
package/README.md CHANGED
@@ -1,8 +1,44 @@
1
- # golutra-mcp
2
-
3
- `golutra-mcp` is an MCP bridge project for Golutra.
4
-
5
- `golutra-mcp` 是一个面向 Golutra 的 MCP 桥接项目。
1
+ <p align="center">
2
+ <a href="https://www.golutra.com/" target="_blank" rel="noopener noreferrer">
3
+ <img
4
+ width="96"
5
+ src="./assets/readme/golutra-logo.png"
6
+ alt="golutra logo"
7
+ />
8
+ </a>
9
+ </p>
10
+
11
+ <h1 align="center">golutra-mcp</h1>
12
+
13
+ <p align="center">
14
+ MCP bridge for Golutra via golutra-cli. <br />
15
+ 通过 golutra-cli 暴露 Golutra 能力的 MCP 桥接层。
16
+ </p>
17
+
18
+ <p align="center">
19
+ <a href="https://www.npmjs.com/package/golutra-mcp"><img src="https://img.shields.io/npm/v/golutra-mcp?label=npm" alt="npm version"></a>
20
+ <a href="https://www.npmjs.com/package/golutra-mcp"><img src="https://img.shields.io/npm/dm/golutra-mcp?label=downloads" alt="npm downloads"></a>
21
+ <a href="https://github.com/golutra/golutra-mcp/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/golutra/golutra-mcp/ci.yml?branch=main&label=ci" alt="ci"></a>
22
+ <a href="https://www.npmjs.com/package/golutra-mcp"><img src="https://img.shields.io/badge/node-%3E%3D20.11-2f7af8" alt="node version"></a>
23
+ <a href="./LICENSE"><img src="https://img.shields.io/badge/license-Apache%202.0-ff9f1a" alt="license"></a>
24
+ </p>
25
+
26
+ <p align="center">
27
+ <a href="#english">English</a> ·
28
+ <a href="#中文">中文</a> ·
29
+ <a href="https://www.npmjs.com/package/golutra-mcp">npm</a> ·
30
+ <a href="https://github.com/golutra/golutra-mcp">GitHub</a> ·
31
+ <a href="./STARTUP_PROCESS.md">Startup Process</a> ·
32
+ <a href="./docs/WORKSPACE_CONTEXT_EXAMPLES.md">Workspace Examples</a> ·
33
+ <a href="./docs/GOLUTRA_DIAGNOSE_EXAMPLES.md">Diagnose Examples</a>
34
+ </p>
35
+
36
+ <p align="center">
37
+ Keep Golutra as the app runtime. Use golutra-cli as the stable boundary. Expose the workflow through MCP. <br />
38
+ 保留 Golutra 作为桌面运行时,以 golutra-cli 作为稳定边界,再通过 MCP 暴露给外部 AI 宿主。
39
+ </p>
40
+
41
+ ---
6
42
 
7
43
  ## English
8
44
 
@@ -103,6 +139,22 @@ Use `golutra-diagnose` when you need to separate:
103
139
 
104
140
  Detailed diagnostic output fields and common `reasonCode` values are documented in `docs/GOLUTRA_DIAGNOSE_EXAMPLES.md`.
105
141
 
142
+ ### What An AI Host Should Do
143
+
144
+ If an AI system or MCP-compatible host sees this repository, the intended usage is:
145
+
146
+ 1. Launch `golutra-mcp` as a local `stdio` MCP server, not as an HTTP service.
147
+ 2. Provide `GOLUTRA_CLI_PATH`, `GOLUTRA_PROFILE`, and usually `GOLUTRA_WORKSPACE_PATH`.
148
+ 3. Call `golutra-get-context` or `golutra-diagnose` first to confirm runtime readiness.
149
+ 4. Use the structured tool flow instead of inventing a custom transport:
150
+ `golutra-list-conversations` -> `golutra-list-messages` / `golutra-send-message` / `golutra-read-roadmap` / `golutra-update-roadmap`.
151
+ 5. Treat `golutra-cli` as the stable boundary. Do not bypass this project by directly calling Golutra local socket IPC unless you intentionally want to maintain a separate integration layer.
152
+ 6. When switching workspaces for a single request, pass `workspacePath` on that tool call. Use `golutra-set-context` only when you want to persist a new default for later calls.
153
+
154
+ In short: start with diagnostics, keep workspace and profile explicit, and use the provided MCP tools as the integration contract.
155
+
156
+ For concrete workspace switching and chat flow examples, see `docs/WORKSPACE_CONTEXT_EXAMPLES.md`.
157
+
106
158
  ### Future Direction
107
159
 
108
160
  The next stages should move the project from "basic bridge" to "usable integration product."
@@ -229,6 +281,22 @@ golutra-mcp
229
281
 
230
282
  更完整的诊断输出字段和常见 `reasonCode` 说明见 `docs/GOLUTRA_DIAGNOSE_EXAMPLES.md`。
231
283
 
284
+ ### AI 看到这个项目后应该怎么做
285
+
286
+ 如果一个 AI 系统或支持 MCP 的宿主看到这个仓库,推荐按下面方式接入:
287
+
288
+ 1. 把 `golutra-mcp` 当作本地 `stdio` MCP Server 启动,不要把它当成 HTTP 服务。
289
+ 2. 提供 `GOLUTRA_CLI_PATH`、`GOLUTRA_PROFILE`,通常还需要提供 `GOLUTRA_WORKSPACE_PATH`。
290
+ 3. 先调用 `golutra-get-context` 或 `golutra-diagnose`,确认运行时上下文和联通状态。
291
+ 4. 按现有工具面走标准调用链路,不要自造传输协议:
292
+ `golutra-list-conversations` -> `golutra-list-messages` / `golutra-send-message` / `golutra-read-roadmap` / `golutra-update-roadmap`。
293
+ 5. 把 `golutra-cli` 视为稳定边界。除非你明确准备长期维护另一套集成层,否则不要绕过这个项目去直连 Golutra 本地 socket IPC。
294
+ 6. 如果只是某一次调用切换工作区,就在该次 tool 调用里显式传 `workspacePath`。只有在你希望后续调用默认都改到新工作区时,才使用 `golutra-set-context`。
295
+
296
+ 一句话概括:先诊断,再显式设置 workspace/profile,然后把 README 里提供的 MCP tools 当作正式集成契约来用。
297
+
298
+ 如果你想看“工作区切换”和“真实聊天链路”的具体调用示例,直接看 `docs/WORKSPACE_CONTEXT_EXAMPLES.md`。
299
+
232
300
  ### 后续规划
233
301
 
234
302
  后续项目应该从“能桥接”继续推进到“更好用、可发布、可维护”。
@@ -260,6 +328,8 @@ npm run dev
260
328
 
261
329
  - Startup, installation, validation, and MCP client wiring:
262
330
  [STARTUP_PROCESS.md](./STARTUP_PROCESS.md)
331
+ - Workspace override and stored default examples:
332
+ [docs/WORKSPACE_CONTEXT_EXAMPLES.md](./docs/WORKSPACE_CONTEXT_EXAMPLES.md)
263
333
  - Diagnostic output examples and reason codes:
264
334
  [docs/GOLUTRA_DIAGNOSE_EXAMPLES.md](./docs/GOLUTRA_DIAGNOSE_EXAMPLES.md)
265
335
  - Contribution guide:
@@ -47,6 +47,15 @@ This repository focuses on protocol translation, context management, diagnostics
47
47
  - `golutra-diagnose` also returns `summary.status` (`ok`, `partial`, `error`), `reasonCodes`, and `nextSteps`
48
48
  - Detailed output examples and common `reasonCode` values live in `docs/GOLUTRA_DIAGNOSE_EXAMPLES.md`
49
49
 
50
+ ### Workspace Override Contract
51
+
52
+ - Passing `workspacePath` in a tool call is a one-time override for that call only
53
+ - `golutra-set-context` is the explicit operation that persists a new default `workspacePath` for later calls
54
+ - If an AI host switches workspaces frequently, prefer passing `workspacePath` per call instead of mutating shared defaults
55
+ - 如果只是某一次调用临时切换工作区,直接在该次 tool 输入里传 `workspacePath`
56
+ - 如果希望后续调用默认都切到新工作区,再使用 `golutra-set-context`
57
+ - Concrete request sequences are documented in `docs/WORKSPACE_CONTEXT_EXAMPLES.md`
58
+
50
59
  ### Current Limitations
51
60
 
52
61
  - `workspacePath` must be provided either in the tool call or through `golutra-set-context`
@@ -140,6 +149,46 @@ export GOLUTRA_WORKSPACE_PATH=/absolute/path/to/workspace
140
149
  golutra-mcp
141
150
  ```
142
151
 
152
+ ## Quick Verification After Install
153
+
154
+ Use this sequence when you want to confirm that the published package and the local Golutra runtime are wired correctly.
155
+
156
+ 1. Confirm the package is visible from npm:
157
+
158
+ ```bash
159
+ npm view golutra-mcp version
160
+ ```
161
+
162
+ 2. Confirm the binary can start with your local Golutra runtime settings:
163
+
164
+ macOS/Linux:
165
+
166
+ ```bash
167
+ export GOLUTRA_CLI_PATH=/absolute/path/to/golutra-cli
168
+ export GOLUTRA_PROFILE=stable
169
+ export GOLUTRA_WORKSPACE_PATH=/absolute/path/to/workspace
170
+ golutra-mcp
171
+ ```
172
+
173
+ Windows PowerShell:
174
+
175
+ ```powershell
176
+ $env:GOLUTRA_CLI_PATH="C:\absolute\path\to\golutra-cli.exe"
177
+ $env:GOLUTRA_PROFILE="stable"
178
+ $env:GOLUTRA_WORKSPACE_PATH="C:\absolute\path\to\workspace"
179
+ golutra-mcp
180
+ ```
181
+
182
+ 3. If your MCP host can call tools immediately, run `golutra-get-context` or `golutra-diagnose`.
183
+
184
+ What to expect:
185
+
186
+ - `golutra-get-context` should return the resolved `cliPath`, `profile`, `workspacePath`, and `timeoutMs`
187
+ - `golutra-diagnose` should report `checks.cliPath.ok = true` and `checks.cliCommand.ok = true`
188
+ - If you also provide a valid workspace `userId`, `golutra-diagnose` should attempt the app-backed `chat.conversations.list` probe
189
+
190
+ If installation succeeds but runtime access still fails, use `golutra-diagnose` first and then compare the output with `docs/GOLUTRA_DIAGNOSE_EXAMPLES.md`.
191
+
143
192
  ## Local Development
144
193
 
145
194
  Start the MCP server directly from source:
@@ -225,6 +274,43 @@ npm pack --dry-run
225
274
 
226
275
  `prepack` is configured to build the project before npm packaging.
227
276
 
277
+ ## Publish To npm
278
+
279
+ Use this flow for a normal public npm release:
280
+
281
+ 1. Confirm you are in the repository root and that checks pass:
282
+
283
+ ```bash
284
+ cd /path/to/golutra-mcp
285
+ npm run check
286
+ npm pack
287
+ ```
288
+
289
+ 2. Confirm your npm CLI session is authenticated:
290
+
291
+ ```bash
292
+ npm whoami
293
+ ```
294
+
295
+ 3. Publish the package:
296
+
297
+ ```bash
298
+ npm publish
299
+ ```
300
+
301
+ 4. Verify the published result:
302
+
303
+ ```bash
304
+ npm view golutra-mcp version
305
+ npm view golutra-mcp
306
+ ```
307
+
308
+ Release notes:
309
+
310
+ - If `npm publish` reports that the version already exists, bump `package.json` to the next version and publish again
311
+ - If npm requires browser or OTP confirmation, complete that flow and wait for the CLI to print `+ golutra-mcp@<version>`
312
+ - `npm pack` creates a local `.tgz` artifact in the repository root; this is useful for pre-publish inspection or private file distribution
313
+
228
314
  ## Self-Hosted E2E CI
229
315
 
230
316
  The repository includes a dedicated GitHub Actions workflow for real MCP smoke tests on a macOS self-hosted runner:
Binary file
@@ -11,6 +11,7 @@ export declare class ContextStore {
11
11
  constructor(initialContext: RuntimeContextSnapshot);
12
12
  getSnapshot(): RuntimeContextSnapshot;
13
13
  reset(): RuntimeContextSnapshot;
14
+ private mergeContext;
14
15
  update(nextValues: CommandContextInput): RuntimeContextSnapshot;
15
16
  resolveCommandContext(nextValues?: CommandContextInput): RuntimeContextSnapshot;
16
17
  requireWorkspacePath(nextValues?: CommandContextInput): string;
@@ -122,29 +122,26 @@ export class ContextStore {
122
122
  this.context = { ...this.initialContext };
123
123
  return this.getSnapshot();
124
124
  }
125
- update(nextValues) {
126
- const nextContext = {
127
- cliPath: normalizeNonEmptyString(nextValues.cliPath) ?? this.context.cliPath,
128
- profile: nextValues.profile ?? this.context.profile,
125
+ mergeContext(baseContext, nextValues) {
126
+ return {
127
+ cliPath: normalizeNonEmptyString(nextValues.cliPath) ?? baseContext.cliPath,
128
+ profile: nextValues.profile ?? baseContext.profile,
129
129
  workspacePath: normalizeNonEmptyString(nextValues.workspacePath) ??
130
- this.context.workspacePath,
130
+ baseContext.workspacePath,
131
131
  timeoutMs: typeof nextValues.timeoutMs === "number"
132
132
  ? normalizeTimeout(nextValues.timeoutMs)
133
- : this.context.timeoutMs
133
+ : baseContext.timeoutMs
134
134
  };
135
+ }
136
+ update(nextValues) {
137
+ // `golutra-set-context` 走这里,表示显式持久化更新默认上下文。
138
+ const nextContext = this.mergeContext(this.context, nextValues);
135
139
  this.context = nextContext;
136
140
  return this.getSnapshot();
137
141
  }
138
142
  resolveCommandContext(nextValues = {}) {
139
- return {
140
- cliPath: normalizeNonEmptyString(nextValues.cliPath) ?? this.context.cliPath,
141
- profile: nextValues.profile ?? this.context.profile,
142
- workspacePath: normalizeNonEmptyString(nextValues.workspacePath) ??
143
- this.context.workspacePath,
144
- timeoutMs: typeof nextValues.timeoutMs === "number"
145
- ? normalizeTimeout(nextValues.timeoutMs)
146
- : this.context.timeoutMs
147
- };
143
+ // 普通业务 tool 走这里时,`workspacePath` 只是本次调用覆盖,不会写回默认缓存。
144
+ return this.mergeContext(this.context, nextValues);
148
145
  }
149
146
  requireWorkspacePath(nextValues = {}) {
150
147
  const workspacePath = this.resolveCommandContext(nextValues).workspacePath;
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/lib/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/lib/context.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,8 @@ const optionalCliPath = z.string().trim().min(1).optional();
7
7
  const optionalProfile = z.enum(["dev", "canary", "stable"]).optional();
8
8
  const optionalTimeout = z.number().int().positive().max(300_000).optional();
9
9
  const optionalConversationId = z.string().trim().min(1).optional();
10
+ const workspaceOverrideNote = "When workspacePath is passed here, it only applies to this call and does not update the stored default workspace.";
11
+ const persistedContextNote = "Use golutra-set-context only when you want to persist new defaults for later tool calls.";
10
12
  const mentionIdsSchema = z
11
13
  .array(z.string().trim().min(1))
12
14
  .min(1)
@@ -36,7 +38,7 @@ export function registerTools(server, contextStore, gateway) {
36
38
  }, () => buildToolSuccess("Current MCP context.", contextStore.getSnapshot()));
37
39
  server.registerTool("golutra-set-context", {
38
40
  title: "Set Golutra MCP context",
39
- description: "Update the default golutra-cli path, profile, workspace path, or timeout for later tool calls.",
41
+ description: "Persist new default golutra-cli path, profile, workspace path, or timeout values for later tool calls. Per-tool workspacePath input remains a one-time override.",
40
42
  inputSchema: {
41
43
  cliPath: optionalCliPath,
42
44
  profile: optionalProfile,
@@ -58,7 +60,7 @@ export function registerTools(server, contextStore, gateway) {
58
60
  }, () => buildToolSuccess("Reset MCP context to startup defaults.", contextStore.reset()));
59
61
  server.registerTool("golutra-diagnose", {
60
62
  title: "Diagnose Golutra connectivity",
61
- description: "Check whether golutra-cli is callable and, when workspacePath and userId are available, whether the running Golutra app accepts workspace-scoped commands.",
63
+ description: `Check whether golutra-cli is callable and, when workspacePath and userId are available, whether the running Golutra app accepts workspace-scoped commands. ${workspaceOverrideNote} ${persistedContextNote}`,
62
64
  inputSchema: {
63
65
  userId: z.string().trim().min(1).optional(),
64
66
  workspacePath: optionalWorkspacePath,
@@ -204,7 +206,7 @@ export function registerTools(server, contextStore, gateway) {
204
206
  });
205
207
  server.registerTool("golutra-list-conversations", {
206
208
  title: "List Golutra conversations",
207
- description: "List channel and direct-message conversations visible to a workspace member.",
209
+ description: `List channel and direct-message conversations visible to a workspace member. ${workspaceOverrideNote}`,
208
210
  inputSchema: {
209
211
  userId: z.string().trim().min(1),
210
212
  workspacePath: optionalWorkspacePath,
@@ -226,7 +228,7 @@ export function registerTools(server, contextStore, gateway) {
226
228
  });
227
229
  server.registerTool("golutra-list-messages", {
228
230
  title: "List Golutra messages",
229
- description: "Read recent messages from a Golutra channel or direct conversation.",
231
+ description: `Read recent messages from a Golutra channel or direct conversation. ${workspaceOverrideNote}`,
230
232
  inputSchema: {
231
233
  conversationId: z.string().trim().min(1),
232
234
  workspacePath: optionalWorkspacePath,
@@ -252,7 +254,7 @@ export function registerTools(server, contextStore, gateway) {
252
254
  });
253
255
  server.registerTool("golutra-send-message", {
254
256
  title: "Send a Golutra message",
255
- description: "Send a Golutra chat message through golutra-cli using a structured chat.send payload.",
257
+ description: `Send a Golutra chat message through golutra-cli using a structured chat.send payload. ${workspaceOverrideNote}`,
256
258
  inputSchema: {
257
259
  conversationId: z.string().trim().min(1),
258
260
  senderId: z.string().trim().min(1),
@@ -280,7 +282,7 @@ export function registerTools(server, contextStore, gateway) {
280
282
  });
281
283
  server.registerTool("golutra-read-roadmap", {
282
284
  title: "Read Golutra roadmap",
283
- description: "Read the workspace roadmap or a conversation-specific roadmap through golutra-cli.",
285
+ description: `Read the workspace roadmap or a conversation-specific roadmap through golutra-cli. ${workspaceOverrideNote}`,
284
286
  inputSchema: {
285
287
  conversationId: optionalConversationId,
286
288
  workspacePath: optionalWorkspacePath,
@@ -302,7 +304,7 @@ export function registerTools(server, contextStore, gateway) {
302
304
  });
303
305
  server.registerTool("golutra-update-roadmap", {
304
306
  title: "Update Golutra roadmap",
305
- description: "Replace the current workspace or conversation roadmap through golutra-cli.",
307
+ description: `Replace the current workspace or conversation roadmap through golutra-cli. ${workspaceOverrideNote}`,
306
308
  inputSchema: {
307
309
  conversationId: optionalConversationId,
308
310
  workspacePath: optionalWorkspacePath,
@@ -328,7 +330,7 @@ export function registerTools(server, contextStore, gateway) {
328
330
  });
329
331
  server.registerTool("golutra-list-skills", {
330
332
  title: "List Golutra CLI skills",
331
- description: "List built-in golutra-cli skills and optionally append workspace project skills.",
333
+ description: `List built-in golutra-cli skills and optionally append workspace project skills. ${workspaceOverrideNote}`,
332
334
  inputSchema: {
333
335
  workspacePath: optionalWorkspacePath,
334
336
  profile: optionalProfile
@@ -382,7 +384,7 @@ export function registerTools(server, contextStore, gateway) {
382
384
  });
383
385
  server.registerTool("golutra-list-project-skills", {
384
386
  title: "List Golutra project skills",
385
- description: "List only workspace-resolved project skills discovered from .golutra/skills.",
387
+ description: `List only workspace-resolved project skills discovered from .golutra/skills. ${workspaceOverrideNote}`,
386
388
  inputSchema: {
387
389
  workspacePath: optionalWorkspacePath,
388
390
  profile: optionalProfile
@@ -404,7 +406,7 @@ export function registerTools(server, contextStore, gateway) {
404
406
  });
405
407
  server.registerTool("golutra-read-project-skill", {
406
408
  title: "Read a Golutra project skill document",
407
- description: "Discover a workspace project skill by name and return its SKILL.md content.",
409
+ description: `Discover a workspace project skill by name and return its SKILL.md content. ${workspaceOverrideNote}`,
408
410
  inputSchema: {
409
411
  skillName: z.string().trim().min(1),
410
412
  workspacePath: optionalWorkspacePath,
@@ -1 +1 @@
1
- {"version":3,"file":"toolkit.js","sourceRoot":"","sources":["../../src/lib/toolkit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toolkit.js","sourceRoot":"","sources":["../../src/lib/toolkit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EAEvB,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErE,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAClE,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC5D,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AACvE,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC5E,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AACnE,MAAM,qBAAqB,GACzB,mHAAmH,CAAC;AACtH,MAAM,oBAAoB,GACxB,0FAA0F,CAAC;AAC7F,MAAM,gBAAgB,GAAG,CAAC;KACvB,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KAC/B,GAAG,CAAC,CAAC,CAAC;KACN,MAAM,CACL,CAAC,UAAU,EAAE,EAAE,CACb,UAAU,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,EAC3E;IACE,OAAO,EAAE,+BAA+B;CACzC,CACF,CAAC;AAEJ,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC/B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACpC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;CAClC,CAAC,CAAC;AAUH,SAAS,iBAAiB,CAAC,MAAuB;IAChD,OAAO;QACL,GAAG,MAAM;KACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,MAAiB,EACjB,YAA0B,EAC1B,OAA0B;IAE1B,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,KAAK,EAAE,yBAAyB;QAChC,WAAW,EACT,kFAAkF;KACrF,EACD,GAAG,EAAE,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,YAAY,CAAC,WAAW,EAAE,CAAC,CAC3E,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,KAAK,EAAE,yBAAyB;QAChC,WAAW,EACT,kKAAkK;QACpK,WAAW,EAAE;YACX,OAAO,EAAE,eAAe;YACxB,OAAO,EAAE,eAAe;YACxB,aAAa,EAAE,qBAAqB;YACpC,SAAS,EAAE,eAAe;SAC3B;KACF,EACD,CAAC,KAAK,EAAE,EAAE;QACR,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/C,OAAO,gBAAgB,CAAC,sBAAsB,EAAE,WAAW,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,KAAK,EAAE,2BAA2B;QAClC,WAAW,EACT,2GAA2G;KAC9G,EACD,GAAG,EAAE,CACH,gBAAgB,CACd,wCAAwC,EACxC,YAAY,CAAC,KAAK,EAAE,CACrB,CACJ,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,+BAA+B;QACtC,WAAW,EACT,8JAA8J,qBAAqB,IAAI,oBAAoB,EAAE;QAC/M,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;YAC3C,aAAa,EAAE,qBAAqB;YACpC,OAAO,EAAE,eAAe;YACxB,OAAO,EAAE,eAAe;YACxB,SAAS,EAAE,eAAe;SAC3B;KACF,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,MAAM,cAAc,GAAG,YAAY,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACjE,MAAM,MAAM,GAAoB;YAC9B,OAAO,EAAE,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC;YAC/C,UAAU,EAAE;gBACV,EAAE,EAAE,KAAK;gBACT,OAAO,EAAE,IAAI;aACd;YACD,SAAS,EAAE;gBACT,EAAE,EAAE,KAAK;gBACT,OAAO,EAAE,IAAI;aACd;YACD,MAAM,EAAE;gBACN,EAAE,EAAE,KAAK;gBACT,OAAO,EAAE,IAAI;aACd;YACD,aAAa,EAAE;gBACb,EAAE,EAAE,KAAK;gBACT,OAAO,EAAE,IAAI;aACd;SACF,CAAC;QACF,MAAM,cAAc,GAAe,EAAE,CAAC;QAEtC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;YACvB,MAAM,CAAC,UAAU,GAAG;gBAClB,EAAE,EAAE,KAAK;gBACT,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,mBAAmB;gBAC/B,OAAO,EACL,yFAAyF;aAC5F,CAAC;YACF,MAAM,CAAC,SAAS,GAAG,oBAAoB,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YACtE,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,CAAC,aAAa,GAAG,oBAAoB,CACzC,mBAAmB,EACnB,sFAAsF,CACvF,CAAC;YACF,cAAc,CAAC,IAAI,CAAC;gBAClB,0FAA0F;aAC3F,CAAC,CAAC;YAEH,MAAM,SAAS,GAAG;gBAChB,OAAO,EAAE,cAAc;gBACvB,MAAM;gBACN,OAAO,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBACtD,SAAS,EAAE,cAAc,CAAC,cAAc,CAAC;aAC1C,CAAC;YACF,OAAO,gBAAgB,CAAC,8BAA8B,EAAE,SAAS,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YAC5D,MAAM,CAAC,UAAU,GAAG;gBAClB,EAAE,EAAE,IAAI;gBACR,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,QAAQ;gBACjB,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;gBACnD,kBAAkB,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC;oBACrD,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM;oBAC7B,CAAC,CAAC,CAAC;aACN,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;YAChD,MAAM,CAAC,UAAU,GAAG;gBAClB,GAAG,QAAQ;aACZ,CAAC;YACF,MAAM,CAAC,SAAS,GAAG,oBAAoB,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YACtE,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,CAAC,aAAa,GAAG,oBAAoB,CACzC,mBAAmB,EACnB,sFAAsF,CACvF,CAAC;YACF,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAExC,MAAM,SAAS,GAAG;gBAChB,OAAO,EAAE,cAAc;gBACvB,MAAM;gBACN,OAAO,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBACtD,SAAS,EAAE,cAAc,CAAC,cAAc,CAAC;aAC1C,CAAC;YACF,OAAO,gBAAgB,CAAC,8BAA8B,EAAE,SAAS,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,CAAC,SAAS,GAAG,oBAAoB,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;YACzB,cAAc,CAAC,IAAI,CAAC;gBAClB,oGAAoG;gBACpG,oGAAoG;aACrG,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,CAAC,aAAa,GAAG,oBAAoB,CACzC,mBAAmB,EACnB,sFAAsF,CACvF,CAAC;YACF,MAAM,SAAS,GAAG;gBAChB,OAAO,EAAE,cAAc;gBACvB,MAAM;gBACN,OAAO,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBACtD,SAAS,EAAE,cAAc,CAAC,cAAc,CAAC;aAC1C,CAAC;YACF,OAAO,gBAAgB,CAAC,8BAA8B,EAAE,SAAS,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACtB,cAAc,CAAC,IAAI,CAAC;gBAClB,sFAAsF;aACvF,CAAC,CAAC;YACH,MAAM,CAAC,aAAa,GAAG,oBAAoB,CACzC,mBAAmB,EACnB,0EAA0E,CAC3E,CAAC;YACF,MAAM,SAAS,GAAG;gBAChB,OAAO,EAAE,cAAc;gBACvB,MAAM;gBACN,OAAO,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBACtD,SAAS,EAAE,cAAc,CAAC,cAAc,CAAC;aAC1C,CAAC;YACF,OAAO,gBAAgB,CAAC,8BAA8B,EAAE,SAAS,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,cAAc,EAAE;gBACpE,aAAa,EAAE,cAAc,CAAC,aAAuB;gBACrD,MAAM,EAAE,KAAK,CAAC,MAAgB;aAC/B,CAAC,CAAC;YACH,MAAM,CAAC,aAAa,GAAG;gBACrB,EAAE,EAAE,IAAI;gBACR,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,yBAAyB;gBAChC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC;oBACjD,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM;oBAC/B,CAAC,CAAC,CAAC;gBACL,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC;oBAC/C,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM;oBAC9B,CAAC,CAAC,CAAC;gBACL,gBAAgB,EAAE,aAAa,CAAC,gBAAgB;aACjD,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,uBAAuB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;YAChE,MAAM,CAAC,aAAa,GAAG;gBACrB,GAAG,QAAQ;gBACX,KAAK,EAAE,yBAAyB;aACjC,CAAC;YACF,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,SAAS,GAA4B;YACzC,OAAO,EAAE,cAAc;YACvB,MAAM;YACN,OAAO,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YACtD,SAAS,EAAE,cAAc,CAAC,cAAc,CAAC;SAC1C,CAAC;QAEF,OAAO,gBAAgB,CAAC,8BAA8B,EAAE,SAAS,CAAC,CAAC;IACrE,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,4BAA4B,EAC5B;QACE,KAAK,EAAE,4BAA4B;QACnC,WAAW,EACT,gFAAgF,qBAAqB,EAAE;QACzG,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAChC,aAAa,EAAE,qBAAqB;YACpC,OAAO,EAAE,eAAe;SACzB;KACF,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,YAAY,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAC/D,MAAM,cAAc,GAAG,YAAY,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACjE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,cAAc,EAAE;gBAC7D,aAAa;gBACb,MAAM,EAAE,KAAK,CAAC,MAAM;aACrB,CAAC,CAAC;YACH,OAAO,gBAAgB,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;QAC3D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EACT,uEAAuE,qBAAqB,EAAE;QAChG,WAAW,EAAE;YACX,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACxC,aAAa,EAAE,qBAAqB;YACpC,OAAO,EAAE,eAAe;YACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;YACtD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;SAC9C;KACF,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,YAAY,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAC/D,MAAM,cAAc,GAAG,YAAY,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACjE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,cAAc,EAAE;gBACxD,aAAa;gBACb,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;aACzB,CAAC,CAAC;YACH,OAAO,gBAAgB,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EACT,yFAAyF,qBAAqB,EAAE;QAClH,WAAW,EAAE;YACX,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACxC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9B,UAAU,EAAE,gBAAgB;YAC5B,aAAa,EAAE,qBAAqB;YACpC,OAAO,EAAE,eAAe;SACzB;KACF,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,YAAY,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAC/D,MAAM,cAAc,GAAG,YAAY,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACjE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,cAAc,EAAE;gBACvD,aAAa;gBACb,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,UAAU,EAAE,KAAK,CAAC,UAAU;aAC7B,CAAC,CAAC;YACH,OAAO,gBAAgB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EACT,sFAAsF,qBAAqB,EAAE;QAC/G,WAAW,EAAE;YACX,cAAc,EAAE,sBAAsB;YACtC,aAAa,EAAE,qBAAqB;YACpC,OAAO,EAAE,eAAe;SACzB;KACF,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,YAAY,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAC/D,MAAM,cAAc,GAAG,YAAY,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACjE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,cAAc,EAAE;gBACvD,aAAa;gBACb,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1E,CAAC,CAAC;YACH,OAAO,gBAAgB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,wBAAwB,EACxB;QACE,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EACT,8EAA8E,qBAAqB,EAAE;QACvG,WAAW,EAAE;YACX,cAAc,EAAE,sBAAsB;YACtC,aAAa,EAAE,qBAAqB;YACpC,OAAO,EAAE,eAAe;YACxB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YAChC,OAAO,EAAE,aAAa;SACvB;KACF,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,YAAY,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAC/D,MAAM,cAAc,GAAG,YAAY,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACjE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,cAAc,EAAE;gBACzD,aAAa;gBACb,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzE,GAAG,CAAC,OAAO,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5E,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC,CAAC;YACH,OAAO,gBAAgB,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,KAAK,EAAE,yBAAyB;QAChC,WAAW,EACT,oFAAoF,qBAAqB,EAAE;QAC7G,WAAW,EAAE;YACX,aAAa,EAAE,qBAAqB;YACpC,OAAO,EAAE,eAAe;SACzB;KACF,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,YAAY,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACjE,MAAM,aAAa,GAAG,cAAc,CAAC,aAAa,CAAC;YACnD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE;gBACtD,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5C,CAAC,CAAC;YACH,OAAO,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,KAAK,EAAE,8BAA8B;QACrC,WAAW,EAAE,4DAA4D;QACzE,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACnC,OAAO,EAAE,eAAe;SACzB;KACF,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,YAAY,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACjE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YACvE,OAAO,gBAAgB,CAAC,gBAAgB,KAAK,CAAC,SAAS,GAAG,EAAE,MAAM,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,wBAAwB,EACxB;QACE,KAAK,EAAE,oCAAoC;QAC3C,WAAW,EACT,wFAAwF;QAC1F,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACnC,OAAO,EAAE,eAAe;SACzB;KACF,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,YAAY,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACjE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,cAAc,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAC5E,OAAO,gBAAgB,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,6BAA6B,EAC7B;QACE,KAAK,EAAE,6BAA6B;QACpC,WAAW,EACT,gFAAgF,qBAAqB,EAAE;QACzG,WAAW,EAAE;YACX,aAAa,EAAE,qBAAqB;YACpC,OAAO,EAAE,eAAe;SACzB;KACF,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,YAAY,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAC/D,MAAM,cAAc,GAAG,YAAY,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACjE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;YAC3E,OAAO,gBAAgB,CAAC,wBAAwB,EAAE;gBAChD,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;gBAC3C,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,EAAE;gBACzC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;aAC5C,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,4BAA4B,EAC5B;QACE,KAAK,EAAE,uCAAuC;QAC9C,WAAW,EACT,+EAA+E,qBAAqB,EAAE;QACxG,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACnC,aAAa,EAAE,qBAAqB;YACpC,OAAO,EAAE,eAAe;SACzB;KACF,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,YAAY,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAC/D,MAAM,cAAc,GAAG,YAAY,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACjE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;YAC3E,MAAM,YAAY,GAAG,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YACrE,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,YAAY,CAAC,CAAC;YAC5D,OAAO,gBAAgB,CAAC,sBAAsB,KAAK,CAAC,SAAS,GAAG,EAAE,MAAM,CAAC,CAAC;QAC5E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -63,6 +63,8 @@ Typical output:
63
63
  - `userId`: whether an app-backed probe has enough identity input
64
64
  - `appConnection`: whether `chat.conversations.list` can reach the running Golutra desktop app
65
65
 
66
+ If you pass `workspacePath` directly to `golutra-diagnose`, `context.workspacePath` reflects that one call only and does not mutate the stored default context.
67
+
66
68
  ### Common Reason Codes
67
69
 
68
70
  - `CLI_PATH_NOT_FOUND`: `GOLUTRA_CLI_PATH` points to a file that does not exist
@@ -154,6 +156,8 @@ Typical output:
154
156
  - `summary`:整体诊断状态
155
157
  - `nextSteps`:下一步建议动作
156
158
 
159
+ 如果你是在这次 `golutra-diagnose` 调用里临时传入 `workspacePath`,那么 `context.workspacePath` 反映的是本次调用实际使用的值,不会回写默认上下文。
160
+
157
161
  ### 常见 Reason Code
158
162
 
159
163
  - `CLI_PATH_NOT_FOUND`:`GOLUTRA_CLI_PATH` 指向了不存在的文件
@@ -0,0 +1,337 @@
1
+ # Workspace Context Examples
2
+
3
+ This document explains how `workspacePath` behaves in `golutra-mcp`.
4
+
5
+ 本文档用于说明 `golutra-mcp` 里 `workspacePath` 的实际行为。
6
+
7
+ ## Core Rule
8
+
9
+ - Passing `workspacePath` in a tool call only affects that one call
10
+ - `golutra-set-context` is the explicit way to persist a new default workspace
11
+ - 在业务 tool 调用里传 `workspacePath`,只影响本次调用
12
+ - `golutra-set-context` 才会把新的工作区写成后续调用的默认值
13
+
14
+ ## Example 1: Use The Stored Default Workspace
15
+
16
+ First, persist a default workspace:
17
+
18
+ 先设置默认工作区:
19
+
20
+ Tool:
21
+
22
+ `golutra-set-context`
23
+
24
+ Input:
25
+
26
+ ```json
27
+ {
28
+ "workspacePath": "/workspace-a",
29
+ "profile": "stable"
30
+ }
31
+ ```
32
+
33
+ Then check the stored context:
34
+
35
+ 然后读取当前默认上下文:
36
+
37
+ Tool:
38
+
39
+ `golutra-get-context`
40
+
41
+ Expected result:
42
+
43
+ ```json
44
+ {
45
+ "workspacePath": "/workspace-a",
46
+ "profile": "stable"
47
+ }
48
+ ```
49
+
50
+ After that, any workspace-dependent tool call without an explicit `workspacePath` will use `/workspace-a`.
51
+
52
+ 之后,所有没有显式传 `workspacePath` 的工作区相关 tool,都会默认使用 `/workspace-a`。
53
+
54
+ ## Example 2: Override Workspace For One Call Only
55
+
56
+ Assume the stored default is still `/workspace-a`.
57
+
58
+ 假设当前默认工作区仍然是 `/workspace-a`。
59
+
60
+ Now make a one-time override:
61
+
62
+ 现在做一次临时覆盖:
63
+
64
+ Tool:
65
+
66
+ `golutra-list-conversations`
67
+
68
+ Input:
69
+
70
+ ```json
71
+ {
72
+ "workspacePath": "/workspace-b",
73
+ "userId": "01USER"
74
+ }
75
+ ```
76
+
77
+ This call uses `/workspace-b`.
78
+
79
+ 这次调用会使用 `/workspace-b`。
80
+
81
+ But if you immediately read the stored context again:
82
+
83
+ 但如果你随后再次读取默认上下文:
84
+
85
+ Tool:
86
+
87
+ `golutra-get-context`
88
+
89
+ Expected result:
90
+
91
+ ```json
92
+ {
93
+ "workspacePath": "/workspace-a",
94
+ "profile": "stable"
95
+ }
96
+ ```
97
+
98
+ That means the one-time override did not mutate the stored default workspace.
99
+
100
+ 这表示临时覆盖没有污染默认工作区缓存。
101
+
102
+ ## Example 3: Persist A New Default Workspace
103
+
104
+ If you want later calls to use `/workspace-b` by default, update the stored context explicitly.
105
+
106
+ 如果你希望后续调用默认都切到 `/workspace-b`,就要显式更新默认上下文。
107
+
108
+ Tool:
109
+
110
+ `golutra-set-context`
111
+
112
+ Input:
113
+
114
+ ```json
115
+ {
116
+ "workspacePath": "/workspace-b"
117
+ }
118
+ ```
119
+
120
+ Then read the context again:
121
+
122
+ 然后再次读取上下文:
123
+
124
+ Tool:
125
+
126
+ `golutra-get-context`
127
+
128
+ Expected result:
129
+
130
+ ```json
131
+ {
132
+ "workspacePath": "/workspace-b",
133
+ "profile": "stable"
134
+ }
135
+ ```
136
+
137
+ This time the default really changed for later calls.
138
+
139
+ 这一次,后续调用的默认工作区才真正变成了 `/workspace-b`。
140
+
141
+ ## Recommended Usage
142
+
143
+ - For a one-off workspace switch, pass `workspacePath` directly in that tool call
144
+ - For a durable workspace switch, use `golutra-set-context`
145
+ - For multi-workspace AI hosts, prefer explicit per-call `workspacePath` instead of frequently mutating shared defaults
146
+ - 单次切换工作区:直接在该次 tool 调用里传 `workspacePath`
147
+ - 持久切换默认工作区:使用 `golutra-set-context`
148
+ - 多工作区 AI 宿主:优先按调用显式传 `workspacePath`,不要频繁改共享默认值
149
+
150
+ ## Recommended Tool Sequence
151
+
152
+ Use this order when integrating a new AI host or when troubleshooting a new workspace.
153
+
154
+ 当你接入一个新的 AI 宿主,或者第一次接一个新的工作区时,推荐按这个顺序调用。
155
+
156
+ ### Step 1: Read The Current Stored Context
157
+
158
+ Tool:
159
+
160
+ `golutra-get-context`
161
+
162
+ Purpose:
163
+
164
+ - Confirm the currently stored `cliPath`, `profile`, `workspacePath`, and `timeoutMs`
165
+ - 确认当前默认缓存里的 `cliPath`、`profile`、`workspacePath` 和 `timeoutMs`
166
+
167
+ ### Step 2: Diagnose The Runtime
168
+
169
+ Tool:
170
+
171
+ `golutra-diagnose`
172
+
173
+ Typical input:
174
+
175
+ ```json
176
+ {
177
+ "workspacePath": "/workspace-a",
178
+ "userId": "01USER"
179
+ }
180
+ ```
181
+
182
+ Purpose:
183
+
184
+ - Verify that `golutra-cli` can run
185
+ - Verify that `workspacePath` is valid
186
+ - Verify that the Golutra desktop app for the selected profile is reachable
187
+ - 验证 `golutra-cli` 是否可执行
188
+ - 验证 `workspacePath` 是否有效
189
+ - 验证当前 profile 对应的 Golutra 桌面应用是否可达
190
+
191
+ ### Step 3: Call Workspace Tools
192
+
193
+ After diagnosis passes, continue with normal business tools.
194
+
195
+ 诊断通过后,再进入正常业务 tool 调用。
196
+
197
+ Typical examples:
198
+
199
+ - `golutra-list-conversations`
200
+ - `golutra-list-messages`
201
+ - `golutra-send-message`
202
+ - `golutra-read-roadmap`
203
+ - `golutra-update-roadmap`
204
+
205
+ ### Step 4: Decide Whether The Workspace Switch Is Temporary
206
+
207
+ - If this workspace change is only for one request, keep passing `workspacePath` on that request
208
+ - If later calls should all use the new workspace, call `golutra-set-context`
209
+ - 如果只是一次性切换,继续在该次调用里传 `workspacePath`
210
+ - 如果之后都要默认切过去,再调用 `golutra-set-context`
211
+
212
+ ## Practical Rule Of Thumb
213
+
214
+ - Diagnose first
215
+ - Keep `workspacePath` explicit when switching workspaces
216
+ - Persist defaults only when you really want later calls to inherit them
217
+ - 先诊断
218
+ - 切换工作区时保持 `workspacePath` 显式
219
+ - 只有明确要影响后续调用时,才持久化默认值
220
+
221
+ ## Example 4: Real Chat Flow
222
+
223
+ Use this flow when an AI host needs to enter a workspace, inspect recent context, and then send a message.
224
+
225
+ 当一个 AI 宿主需要进入某个工作区、读取最近上下文、然后发送消息时,可以直接按这条链路调用。
226
+
227
+ ### Step 1: Diagnose The Target Workspace
228
+
229
+ Tool:
230
+
231
+ `golutra-diagnose`
232
+
233
+ Input:
234
+
235
+ ```json
236
+ {
237
+ "workspacePath": "/workspace-a",
238
+ "userId": "01USER"
239
+ }
240
+ ```
241
+
242
+ Goal:
243
+
244
+ - Confirm `golutra-cli` is reachable
245
+ - Confirm `/workspace-a` is valid
246
+ - Confirm the Golutra desktop app can answer workspace-scoped commands
247
+ - 确认 `golutra-cli` 可达
248
+ - 确认 `/workspace-a` 是有效工作区
249
+ - 确认 Golutra 桌面应用可以响应该工作区的命令
250
+
251
+ ### Step 2: List Conversations
252
+
253
+ Tool:
254
+
255
+ `golutra-list-conversations`
256
+
257
+ Input:
258
+
259
+ ```json
260
+ {
261
+ "workspacePath": "/workspace-a",
262
+ "userId": "01USER"
263
+ }
264
+ ```
265
+
266
+ Typical result:
267
+
268
+ ```json
269
+ {
270
+ "channels": [
271
+ {
272
+ "id": "01CHANNEL",
273
+ "name": "general"
274
+ }
275
+ ],
276
+ "directs": [],
277
+ "defaultChannelId": "01CHANNEL"
278
+ }
279
+ ```
280
+
281
+ Goal:
282
+
283
+ - Find the target `conversationId`
284
+ - 找到接下来要读取和发送消息的 `conversationId`
285
+
286
+ ### Step 3: Read Recent Messages
287
+
288
+ Tool:
289
+
290
+ `golutra-list-messages`
291
+
292
+ Input:
293
+
294
+ ```json
295
+ {
296
+ "workspacePath": "/workspace-a",
297
+ "conversationId": "01CHANNEL",
298
+ "limit": 20
299
+ }
300
+ ```
301
+
302
+ Goal:
303
+
304
+ - Inspect recent chat history before replying
305
+ - 在发送消息前先读取最近上下文
306
+
307
+ ### Step 4: Send A Message
308
+
309
+ Tool:
310
+
311
+ `golutra-send-message`
312
+
313
+ Input:
314
+
315
+ ```json
316
+ {
317
+ "workspacePath": "/workspace-a",
318
+ "conversationId": "01CHANNEL",
319
+ "senderId": "01USER",
320
+ "mentionIds": ["01ASSISTANT"],
321
+ "text": "Please summarize the latest task status."
322
+ }
323
+ ```
324
+
325
+ Goal:
326
+
327
+ - Send a structured `chat.send` request through `golutra-cli`
328
+ - 通过 `golutra-cli` 发送结构化 `chat.send` 请求
329
+
330
+ ### Notes
331
+
332
+ - If `/workspace-a` is only needed for this request, keep passing it explicitly and do not call `golutra-set-context`
333
+ - If later calls should also stay on `/workspace-a`, you can persist it once with `golutra-set-context`
334
+ - `mentionIds` must be explicit and cannot contain `all`
335
+ - 如果 `/workspace-a` 只是本次临时使用,就继续显式传参,不要调用 `golutra-set-context`
336
+ - 如果后续也都要固定用 `/workspace-a`,可以先用一次 `golutra-set-context` 持久化
337
+ - `mentionIds` 必须显式给出,而且不能包含 `all`
@@ -0,0 +1,29 @@
1
+ BSD 3-Clause License
2
+
3
+ Copyright (c) <year>, <owner>
4
+ All rights reserved.
5
+
6
+ Redistribution and use in source and binary forms, with or without
7
+ modification, are permitted provided that the following conditions are met:
8
+
9
+ 1. Redistributions of source code must retain the above copyright notice, this
10
+ list of conditions and the following disclaimer.
11
+
12
+ 2. Redistributions in binary form must reproduce the above copyright notice,
13
+ this list of conditions and the following disclaimer in the documentation
14
+ and/or other materials provided with the distribution.
15
+
16
+ 3. Neither the name of the copyright holder nor the names of its
17
+ contributors may be used to endorse or promote products derived from
18
+ this software without specific prior written permission.
19
+
20
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,57 @@
1
+ # golutra-mcp Corporate Contributor License Agreement
2
+
3
+ 本文档是 `golutra-mcp` 的企业贡献授权模板,适用于员工、承包商或其他代表组织提交贡献的场景。
4
+
5
+ 本模板用于工程落地,不构成法律意见。正式启用前,建议由有权签字人或律师审阅。
6
+
7
+ ## 使用方式
8
+
9
+ 1. 由组织的有权签字人填写并确认本模板,或提供内容等效的企业授权文件。
10
+ 2. 将签字版发送给仓库维护者,供线下留档。
11
+ 3. 维护者审核后,在 [`corporate-authorizations.json`](./corporate-authorizations.json) 中登记授权编号。
12
+ 4. 之后,获授权的贡献者在 PR 中填写对应授权编号,并仍需完成个人 `ICLA` 签署。
13
+
14
+ ## 授权模板
15
+
16
+ ### 授权主体信息
17
+
18
+ - Organization Name:
19
+ - Registration Number:
20
+ - Jurisdiction:
21
+ - Registered Address:
22
+ - Authorized Signatory Name:
23
+ - Authorized Signatory Title:
24
+ - Authorized Signatory Email:
25
+
26
+ ### 授权贡献者范围
27
+
28
+ - Authorized GitHub Usernames:
29
+ - Authorized Emails:
30
+ - Authorized Email Domains:
31
+ - Effective Date:
32
+ - Expiration Date:
33
+
34
+ ### 授权声明
35
+
36
+ 作为上述组织的有权签字人,我方确认并同意:
37
+
38
+ 1. 我方有权允许上述授权贡献者向 `golutra-mcp` 提交贡献。
39
+ 2. 上述贡献者在授权范围内提交的贡献,不违反我方对第三方承担的合同、保密义务或知识产权限制。
40
+ 3. 我方保留自己原本拥有的版权;但对于被 `golutra-mcp` 接收的贡献,我方同意这些代码贡献也按 [`BSD-3-Clause`](./BSD-3-Clause.txt) 入站提交,不附加额外限制。
41
+ 4. 我方进一步授予 `golutra-mcp` 项目维护者、版权持有人及其被授权方一项全球范围、永久、不可撤销、非独占、可再许可的许可,用于复制、修改、分发、公开展示、公开表演、再许可及以其他方式利用这些贡献。
42
+ 5. 上述授权明确覆盖:
43
+ - 仓库当前文档所述的 `Apache License 2.0` 许可与分发模型
44
+ - [`CLA.md`](../../CLA.md) 和本仓库贡献流程中声明的贡献协议安排
45
+ 6. 我方理解并接受:若贡献中包含第三方代码、复制或改编内容、`Co-authored-by` 共同作者信息、或来源不明确的 AI 生成内容,贡献者必须在 PR 中如实披露;项目维护者有权拒绝接收或移除相关内容。
46
+
47
+ ### 签字区
48
+
49
+ - Signature:
50
+ - Name:
51
+ - Title:
52
+ - Date:
53
+
54
+ ## 说明
55
+
56
+ - `CCLA` 不替代个人签署的 `ICLA`,两者用途不同。
57
+ - 维护者可以要求补充更多授权材料,以降低企业代码误提或内部授权不足的风险。
@@ -0,0 +1,40 @@
1
+ # golutra-mcp Individual Contributor License Agreement
2
+
3
+ 本文档用于个人贡献者签署。你在 PR 评论区回复指定签署文本时,即表示你已阅读并同意本协议。
4
+
5
+ 本模板用于工程落地,不构成法律意见。正式启用前,建议由你或律师结合项目实际商业模式审阅确认。
6
+
7
+ ## 中文条款
8
+
9
+ 当你以个人身份,或经雇主/组织授权以个人 GitHub 账号向 `golutra-mcp` 提交代码、文档、测试、资源文件或其他贡献时,你确认并同意:
10
+
11
+ 1. 你有权提交该贡献,并且该贡献不会违反你与雇主、客户、前雇主、前客户或任何第三方之间的合同、保密义务、知识产权限制或其他法律义务。
12
+ 2. 该贡献为你的原创作品,或你已经取得足够授权,可将该贡献按本协议和本仓库贡献流程授予项目维护者使用。
13
+ 3. 你保留自己原本拥有的版权;但你同意该贡献在被项目接收时,也按 [`BSD-3-Clause`](./BSD-3-Clause.txt) 入站提交,不附加额外限制。
14
+ 4. 此外,你授予 `golutra-mcp` 项目维护者、版权持有人及其被授权方一项全球范围、永久、不可撤销、非独占、可再许可的许可,用于复制、修改、分发、公开展示、公开表演、再许可及以其他方式利用该贡献。
15
+ 5. 上述授权明确覆盖:
16
+ - 仓库当前文档所述的 `Apache License 2.0` 许可与分发模型
17
+ - [`CLA.md`](../../CLA.md) 和本仓库贡献流程中声明的贡献协议安排
18
+ 6. 如果你代表公司、团队或其他组织提交贡献,你确认自己已经获得足够授权;如果仓库要求企业授权登记,你还需要确保对应 `CCLA` 或等效书面授权已在项目侧备案。
19
+ 7. 你必须在 PR 中如实披露任何第三方代码、复制或改编片段、AI 辅助生成内容,以及共同作者 `Co-authored-by` 信息和这些内容的来源与许可证状态。未披露的高风险来源内容可以导致 PR 被拒绝或后续移除。
20
+ 8. 贡献按“现状”提供;在适用法律允许范围内,你不对适销性、特定用途适用性或不侵权提供任何明示或默示保证。
21
+
22
+ 如果你不同意这些条款,请不要向本仓库提交贡献。
23
+
24
+ ## English Summary
25
+
26
+ By signing this `ICLA`, you confirm that:
27
+
28
+ 1. You have the legal right to submit the contribution.
29
+ 2. The contribution is original to you, or you have sufficient rights to submit it.
30
+ 3. Accepted code contributions are also submitted inbound under [`BSD-3-Clause`](./BSD-3-Clause.txt), without additional restrictions.
31
+ 4. You grant the `golutra-mcp` maintainers and rights holders a perpetual, irrevocable, worldwide, non-exclusive, sublicensable license to use, modify, distribute, relicense, and otherwise exploit the contribution.
32
+ 5. This grant explicitly covers the repository's documented `Apache License 2.0` licensing and distribution model, together with the contributor agreement terms described in [`CLA.md`](../../CLA.md).
33
+ 6. If you contribute on behalf of an organization, you confirm that you are authorized to do so and that any required corporate authorization is already on file.
34
+ 7. You will truthfully disclose any third-party, copied, adapted, AI-assisted, or co-authored content in the pull request.
35
+
36
+ ## GitHub 签署方式
37
+
38
+ 在 Pull Request 评论区回复下面这句完整文本,即视为你签署并接受本协议:
39
+
40
+ `I have read the ICLA and I hereby sign this agreement.`
@@ -0,0 +1,4 @@
1
+ {
2
+ "version": 1,
3
+ "authorizations": []
4
+ }
@@ -0,0 +1,37 @@
1
+ # Corporate Authorization Registry
2
+
3
+ 本文件用于说明企业贡献授权的维护规则。
4
+
5
+ 机器可读的授权源文件位于:
6
+
7
+ - [`corporate-authorizations.json`](./corporate-authorizations.json)
8
+
9
+ ## 规则
10
+
11
+ - 授权编号建议采用 `CCA-YYYY-NNN` 格式,例如 `CCA-2026-001`。
12
+ - 只有维护者确认收到有效 `CCLA` 或等效书面授权后,才应在 `corporate-authorizations.json` 中新增记录。
13
+ - PR 中如果声明“代表组织贡献”,必须填写这里已有的授权编号。
14
+ - `authorizedGitHubUsernames` 用于声明该授权覆盖的 GitHub 用户名。
15
+ - `authorizedEmails` 用于声明该授权覆盖的共同作者邮箱;如果 PR 中存在 `Co-authored-by:`,这些邮箱也必须被覆盖。
16
+ - `status` 建议使用 `Active`、`Expired`、`Revoked` 这类明确状态值;只有 `Active` 会被工作流放行。
17
+ - 授权过期、撤销或范围变更时,应及时更新状态与备注。
18
+
19
+ ## JSON 结构示例
20
+
21
+ ```json
22
+ {
23
+ "version": 1,
24
+ "authorizations": [
25
+ {
26
+ "authorizationReference": "CCA-2026-001",
27
+ "organization": "Example Corp",
28
+ "authorizedGitHubUsernames": ["alice", "bob"],
29
+ "authorizedEmails": ["alice@example.com", "bob@example.com"],
30
+ "effectiveDate": "2026-03-21",
31
+ "expirationDate": "2027-03-21",
32
+ "status": "Active",
33
+ "notes": "Optional notes"
34
+ }
35
+ ]
36
+ }
37
+ ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "golutra-mcp",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Model Context Protocol server for Golutra via golutra-cli.",
5
5
  "type": "module",
6
6
  "private": false,
@@ -22,6 +22,7 @@
22
22
  ".": "./dist/index.js"
23
23
  },
24
24
  "files": [
25
+ "assets",
25
26
  "dist",
26
27
  "docs",
27
28
  ".env.example",