@geminilight/mindos 1.0.10 → 1.1.3

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.
Files changed (209) hide show
  1. package/README_zh.md +3 -3
  2. package/bin/mindos-shim.cjs +318 -7
  3. package/dist/agent/prompts.d.ts +1 -1
  4. package/dist/agent/prompts.d.ts.map +1 -1
  5. package/dist/agent/prompts.js +14 -0
  6. package/dist/agent/prompts.js.map +1 -1
  7. package/dist/agent-runtime/claude-code-cli.d.ts +34 -0
  8. package/dist/agent-runtime/claude-code-cli.d.ts.map +1 -0
  9. package/dist/agent-runtime/claude-code-cli.js +259 -0
  10. package/dist/agent-runtime/claude-code-cli.js.map +1 -0
  11. package/dist/agent-runtime/claude-code-sdk.d.ts +41 -0
  12. package/dist/agent-runtime/claude-code-sdk.d.ts.map +1 -0
  13. package/dist/agent-runtime/claude-code-sdk.js +553 -0
  14. package/dist/agent-runtime/claude-code-sdk.js.map +1 -0
  15. package/dist/agent-runtime/codex-app-server.d.ts +154 -0
  16. package/dist/agent-runtime/codex-app-server.d.ts.map +1 -0
  17. package/dist/agent-runtime/codex-app-server.js +628 -0
  18. package/dist/agent-runtime/codex-app-server.js.map +1 -0
  19. package/dist/agent-runtime/codex-env.d.ts +41 -0
  20. package/dist/agent-runtime/codex-env.d.ts.map +1 -0
  21. package/dist/agent-runtime/codex-env.js +278 -0
  22. package/dist/agent-runtime/codex-env.js.map +1 -0
  23. package/dist/agent-runtime/index.d.ts +7 -0
  24. package/dist/agent-runtime/index.d.ts.map +1 -0
  25. package/dist/agent-runtime/index.js +7 -0
  26. package/dist/agent-runtime/index.js.map +1 -0
  27. package/dist/agent-runtime/run.d.ts +111 -0
  28. package/dist/agent-runtime/run.d.ts.map +1 -0
  29. package/dist/agent-runtime/run.js +681 -0
  30. package/dist/agent-runtime/run.js.map +1 -0
  31. package/dist/agent-runtime/runtime-env.d.ts +28 -0
  32. package/dist/agent-runtime/runtime-env.d.ts.map +1 -0
  33. package/dist/agent-runtime/runtime-env.js +66 -0
  34. package/dist/agent-runtime/runtime-env.js.map +1 -0
  35. package/dist/agent-runtime.d.ts +2 -0
  36. package/dist/agent-runtime.d.ts.map +1 -0
  37. package/dist/agent-runtime.js +2 -0
  38. package/dist/agent-runtime.js.map +1 -0
  39. package/dist/client.d.ts +8 -1
  40. package/dist/client.d.ts.map +1 -1
  41. package/dist/client.js.map +1 -1
  42. package/dist/foundation/config/schema.d.ts +30 -141
  43. package/dist/foundation/config/schema.d.ts.map +1 -1
  44. package/dist/foundation/config/schema.js +18 -4
  45. package/dist/foundation/config/schema.js.map +1 -1
  46. package/dist/index.d.ts +1 -0
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +1 -0
  49. package/dist/index.js.map +1 -1
  50. package/dist/knowledge/audit/index.d.ts +4 -0
  51. package/dist/knowledge/audit/index.d.ts.map +1 -1
  52. package/dist/knowledge/audit/index.js +92 -8
  53. package/dist/knowledge/audit/index.js.map +1 -1
  54. package/dist/knowledge/git/index.d.ts.map +1 -1
  55. package/dist/knowledge/git/index.js +43 -2
  56. package/dist/knowledge/git/index.js.map +1 -1
  57. package/dist/protocols/acp/agent-descriptors.d.ts.map +1 -1
  58. package/dist/protocols/acp/agent-descriptors.js +7 -4
  59. package/dist/protocols/acp/agent-descriptors.js.map +1 -1
  60. package/dist/protocols/acp/index.js +39 -28
  61. package/dist/protocols/acp/session.d.ts.map +1 -1
  62. package/dist/protocols/acp/session.js +11 -14
  63. package/dist/protocols/acp/session.js.map +1 -1
  64. package/dist/protocols/acp/subprocess.d.ts +4 -1
  65. package/dist/protocols/acp/subprocess.d.ts.map +1 -1
  66. package/dist/protocols/acp/subprocess.js +37 -10
  67. package/dist/protocols/acp/subprocess.js.map +1 -1
  68. package/dist/protocols/mcp-server/index.cjs +80 -68
  69. package/dist/server/channel-contract.d.ts +13 -0
  70. package/dist/server/channel-contract.d.ts.map +1 -0
  71. package/dist/server/channel-contract.js +115 -0
  72. package/dist/server/channel-contract.js.map +1 -0
  73. package/dist/server/contract.d.ts.map +1 -1
  74. package/dist/server/contract.js +12 -0
  75. package/dist/server/contract.js.map +1 -1
  76. package/dist/server/handlers/a2a.d.ts +7 -0
  77. package/dist/server/handlers/a2a.d.ts.map +1 -1
  78. package/dist/server/handlers/a2a.js +5 -1
  79. package/dist/server/handlers/a2a.js.map +1 -1
  80. package/dist/server/handlers/agent-capabilities.d.ts +60 -0
  81. package/dist/server/handlers/agent-capabilities.d.ts.map +1 -0
  82. package/dist/server/handlers/agent-capabilities.js +178 -0
  83. package/dist/server/handlers/agent-capabilities.js.map +1 -0
  84. package/dist/server/handlers/agent-runtime-codex.d.ts +29 -0
  85. package/dist/server/handlers/agent-runtime-codex.d.ts.map +1 -0
  86. package/dist/server/handlers/agent-runtime-codex.js +198 -0
  87. package/dist/server/handlers/agent-runtime-codex.js.map +1 -0
  88. package/dist/server/handlers/agent-runtimes.d.ts +136 -0
  89. package/dist/server/handlers/agent-runtimes.d.ts.map +1 -0
  90. package/dist/server/handlers/agent-runtimes.js +712 -0
  91. package/dist/server/handlers/agent-runtimes.js.map +1 -0
  92. package/dist/server/handlers/agents.d.ts +6 -0
  93. package/dist/server/handlers/agents.d.ts.map +1 -1
  94. package/dist/server/handlers/agents.js +41 -6
  95. package/dist/server/handlers/agents.js.map +1 -1
  96. package/dist/server/handlers/ask.d.ts +18 -0
  97. package/dist/server/handlers/ask.d.ts.map +1 -1
  98. package/dist/server/handlers/ask.js +70 -0
  99. package/dist/server/handlers/ask.js.map +1 -1
  100. package/dist/server/handlers/channels-verify.d.ts +1 -1
  101. package/dist/server/handlers/channels-verify.d.ts.map +1 -1
  102. package/dist/server/handlers/channels-verify.js +1 -63
  103. package/dist/server/handlers/channels-verify.js.map +1 -1
  104. package/dist/server/handlers/extract-docx.d.ts +42 -0
  105. package/dist/server/handlers/extract-docx.d.ts.map +1 -0
  106. package/dist/server/handlers/extract-docx.js +101 -0
  107. package/dist/server/handlers/extract-docx.js.map +1 -0
  108. package/dist/server/handlers/extract-pdf.d.ts +32 -0
  109. package/dist/server/handlers/extract-pdf.d.ts.map +1 -0
  110. package/dist/server/handlers/extract-pdf.js +116 -0
  111. package/dist/server/handlers/extract-pdf.js.map +1 -0
  112. package/dist/server/handlers/im-activity.d.ts.map +1 -1
  113. package/dist/server/handlers/im-activity.js +26 -1
  114. package/dist/server/handlers/im-activity.js.map +1 -1
  115. package/dist/server/handlers/im-config.d.ts +1 -1
  116. package/dist/server/handlers/im-config.d.ts.map +1 -1
  117. package/dist/server/handlers/im-config.js +69 -59
  118. package/dist/server/handlers/im-config.js.map +1 -1
  119. package/dist/server/handlers/im-feishu-oauth.d.ts +55 -0
  120. package/dist/server/handlers/im-feishu-oauth.d.ts.map +1 -0
  121. package/dist/server/handlers/im-feishu-oauth.js +218 -0
  122. package/dist/server/handlers/im-feishu-oauth.js.map +1 -0
  123. package/dist/server/handlers/im-status.d.ts +15 -0
  124. package/dist/server/handlers/im-status.d.ts.map +1 -1
  125. package/dist/server/handlers/im-status.js +41 -24
  126. package/dist/server/handlers/im-status.js.map +1 -1
  127. package/dist/server/handlers/inbox-source.d.ts +18 -0
  128. package/dist/server/handlers/inbox-source.d.ts.map +1 -0
  129. package/dist/server/handlers/inbox-source.js +108 -0
  130. package/dist/server/handlers/inbox-source.js.map +1 -0
  131. package/dist/server/handlers/inbox.d.ts +2 -0
  132. package/dist/server/handlers/inbox.d.ts.map +1 -1
  133. package/dist/server/handlers/inbox.js +34 -2
  134. package/dist/server/handlers/inbox.js.map +1 -1
  135. package/dist/server/handlers/mcp-agents.d.ts +16 -1
  136. package/dist/server/handlers/mcp-agents.d.ts.map +1 -1
  137. package/dist/server/handlers/mcp-agents.js +174 -44
  138. package/dist/server/handlers/mcp-agents.js.map +1 -1
  139. package/dist/server/handlers/mcp-install.d.ts +5 -0
  140. package/dist/server/handlers/mcp-install.d.ts.map +1 -1
  141. package/dist/server/handlers/mcp-install.js +68 -20
  142. package/dist/server/handlers/mcp-install.js.map +1 -1
  143. package/dist/server/handlers/mcp-restart.js +1 -1
  144. package/dist/server/handlers/mcp-restart.js.map +1 -1
  145. package/dist/server/handlers/mcp-status.d.ts +7 -1
  146. package/dist/server/handlers/mcp-status.d.ts.map +1 -1
  147. package/dist/server/handlers/mcp-status.js +14 -1
  148. package/dist/server/handlers/mcp-status.js.map +1 -1
  149. package/dist/server/handlers/settings-list-models.d.ts +1 -1
  150. package/dist/server/handlers/settings-list-models.d.ts.map +1 -1
  151. package/dist/server/handlers/settings-list-models.js +6 -5
  152. package/dist/server/handlers/settings-list-models.js.map +1 -1
  153. package/dist/server/handlers/settings-test-key.d.ts.map +1 -1
  154. package/dist/server/handlers/settings-test-key.js +17 -7
  155. package/dist/server/handlers/settings-test-key.js.map +1 -1
  156. package/dist/server/handlers/settings.d.ts +5 -1
  157. package/dist/server/handlers/settings.d.ts.map +1 -1
  158. package/dist/server/handlers/settings.js +54 -5
  159. package/dist/server/handlers/settings.js.map +1 -1
  160. package/dist/server/handlers/skills.d.ts +1 -0
  161. package/dist/server/handlers/skills.d.ts.map +1 -1
  162. package/dist/server/handlers/skills.js +7 -5
  163. package/dist/server/handlers/skills.js.map +1 -1
  164. package/dist/server/handlers/sync.d.ts +15 -4
  165. package/dist/server/handlers/sync.d.ts.map +1 -1
  166. package/dist/server/handlers/sync.js +552 -81
  167. package/dist/server/handlers/sync.js.map +1 -1
  168. package/dist/server/handlers/uninstall.js +1 -0
  169. package/dist/server/handlers/uninstall.js.map +1 -1
  170. package/dist/server/handlers/update.js +1 -0
  171. package/dist/server/handlers/update.js.map +1 -1
  172. package/dist/server/http.d.ts +20 -0
  173. package/dist/server/http.d.ts.map +1 -1
  174. package/dist/server/http.js +228 -25
  175. package/dist/server/http.js.map +1 -1
  176. package/dist/server/index.d.ts +14 -5
  177. package/dist/server/index.d.ts.map +1 -1
  178. package/dist/server/index.js +11 -2
  179. package/dist/server/index.js.map +1 -1
  180. package/dist/server/mcp-agent-registry.d.ts +184 -0
  181. package/dist/server/mcp-agent-registry.d.ts.map +1 -1
  182. package/dist/server/mcp-agent-registry.js +100 -9
  183. package/dist/server/mcp-agent-registry.js.map +1 -1
  184. package/dist/server/provider-settings.d.ts +38 -0
  185. package/dist/server/provider-settings.d.ts.map +1 -0
  186. package/dist/server/provider-settings.js +286 -0
  187. package/dist/server/provider-settings.js.map +1 -0
  188. package/dist/server/route-ownership.d.ts.map +1 -1
  189. package/dist/server/route-ownership.js +18 -2
  190. package/dist/server/route-ownership.js.map +1 -1
  191. package/dist/server/runtime.d.ts +1 -0
  192. package/dist/server/runtime.d.ts.map +1 -1
  193. package/dist/server/runtime.js.map +1 -1
  194. package/dist/session/index.d.ts +96 -15
  195. package/dist/session/index.d.ts.map +1 -1
  196. package/dist/session/index.js +162 -30
  197. package/dist/session/index.js.map +1 -1
  198. package/dist/session/pi-coding-agent-runtime.js +3 -3
  199. package/dist/session/pi-coding-agent-runtime.js.map +1 -1
  200. package/dist/session/redaction.d.ts +3 -0
  201. package/dist/session/redaction.d.ts.map +1 -0
  202. package/dist/session/redaction.js +47 -0
  203. package/dist/session/redaction.js.map +1 -0
  204. package/dist/setup/index.d.ts +1 -0
  205. package/dist/setup/index.d.ts.map +1 -1
  206. package/dist/setup/index.js +13 -0
  207. package/dist/setup/index.js.map +1 -1
  208. package/package.json +18 -12
  209. package/src/cli.js +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/inbox.ts"],"names":[],"mappings":"AAUA,OAAO,EAAQ,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEjE,eAAO,MAAM,SAAS,UAAU,CAAC;AA6CjC,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,oBAAoB,GAC7B,oBAAoB,CAAC;IAAE,KAAK,EAAE,aAAa,EAAE,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAUtE;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,oBAAoB,GAC7B,oBAAoB,CAAC,eAAe,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAc3D;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,oBAAoB,GAC7B,oBAAoB,CAAC,kBAAkB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAe9D;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAezD;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,EAAE,CA4BhE;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,eAAe,CAkDvG;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,kBAAkB,CAmCtF"}
1
+ {"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/inbox.ts"],"names":[],"mappings":"AAaA,OAAO,EAAQ,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAA8B,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEzF,eAAO,MAAM,SAAS,UAAU,CAAC;AA+CjC,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,mBAAmB,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,oBAAoB,GAC7B,oBAAoB,CAAC;IAAE,KAAK,EAAE,aAAa,EAAE,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAUtE;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,oBAAoB,GAC7B,oBAAoB,CAAC,eAAe,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAc3D;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,oBAAoB,GAC7B,oBAAoB,CAAC,kBAAkB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAe9D;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAezD;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,EAAE,CA8BhE;AAqBD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,eAAe,CAkDvG;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,kBAAkB,CAmCtF"}
@@ -1,10 +1,13 @@
1
- import { existsSync, mkdirSync, readdirSync, renameSync, statSync, writeFileSync, } from 'node:fs';
1
+ import { existsSync, closeSync, mkdirSync, openSync, readSync, readdirSync, renameSync, statSync, writeFileSync, } from 'node:fs';
2
2
  import { extname, basename, join } from 'node:path';
3
3
  import { resolveExistingSafe, resolveSafe } from '../../foundation/security/index.js';
4
4
  import { json } from '../response.js';
5
+ import { extractInboxSourceMetadata } from './inbox-source.js';
5
6
  export const INBOX_DIR = 'Inbox';
6
7
  const PROCESSED_DIR = '.processed';
7
8
  const AGING_THRESHOLD_MS = 7 * 24 * 60 * 60 * 1000;
9
+ const SOURCE_METADATA_READ_LIMIT = 64 * 1024;
10
+ const SOURCE_METADATA_EXTENSIONS = new Set(['.md', '.markdown']);
8
11
  const ALLOWED_IMPORT_EXTENSIONS = new Set([
9
12
  '.txt', '.md', '.markdown', '.csv', '.tsv', '.json', '.yaml', '.yml', '.xml', '.html', '.htm', '.pdf',
10
13
  '.doc', '.docx', '.docm', '.xls', '.xlsx', '.ppt', '.pptx',
@@ -114,12 +117,14 @@ export function listInboxFiles(mindRoot) {
114
117
  const filePath = join(inboxDir, entry.name);
115
118
  try {
116
119
  const stat = statSync(filePath);
120
+ const source = readInboxSourceMetadata(filePath, entry.name, stat.size);
117
121
  files.push({
118
122
  name: entry.name,
119
123
  path: `${INBOX_DIR}/${entry.name}`,
120
124
  size: stat.size,
121
125
  modifiedAt: stat.mtime.toISOString(),
122
126
  isAging: now - stat.mtime.getTime() > AGING_THRESHOLD_MS,
127
+ ...(source ? { source } : {}),
123
128
  });
124
129
  }
125
130
  catch {
@@ -128,6 +133,30 @@ export function listInboxFiles(mindRoot) {
128
133
  }
129
134
  return files.sort((a, b) => new Date(b.modifiedAt).getTime() - new Date(a.modifiedAt).getTime());
130
135
  }
136
+ function readInboxSourceMetadata(filePath, fileName, size) {
137
+ if (!SOURCE_METADATA_EXTENSIONS.has(extname(fileName).toLowerCase()))
138
+ return undefined;
139
+ let fd;
140
+ try {
141
+ fd = openSync(filePath, 'r');
142
+ const buffer = Buffer.allocUnsafe(Math.min(size, SOURCE_METADATA_READ_LIMIT));
143
+ const bytesRead = readSync(fd, buffer, 0, buffer.length, 0);
144
+ if (bytesRead === 0)
145
+ return undefined;
146
+ return extractInboxSourceMetadata(buffer.subarray(0, bytesRead).toString('utf-8'));
147
+ }
148
+ catch {
149
+ return undefined;
150
+ }
151
+ finally {
152
+ if (typeof fd === 'number') {
153
+ try {
154
+ closeSync(fd);
155
+ }
156
+ catch { /* ignore close errors while listing Inbox */ }
157
+ }
158
+ }
159
+ }
131
160
  export function saveToInbox(mindRoot, files, source) {
132
161
  const inboxDir = ensureInboxSpace(mindRoot);
133
162
  const saved = [];
@@ -248,7 +277,10 @@ function resolveUniqueName(inboxDir, targetName) {
248
277
  function sanitizeFileName(name) {
249
278
  let base = name.replace(/\\/g, '/').split('/').pop() ?? '';
250
279
  base = base.replace(/\.\./g, '').replace(/^\/+/, '');
251
- base = base.replace(/[\\/:*?"<>|\x00-\x1f]/g, '-');
280
+ base = [...base].map((char) => {
281
+ const code = char.charCodeAt(0);
282
+ return code <= 31 || /[\\/:*?"<>|]/.test(char) ? '-' : char;
283
+ }).join('');
252
284
  base = base.replace(/-{2,}/g, '-');
253
285
  base = base.replace(/^[-\s]+|[-\s]+$/g, '');
254
286
  base = base.replace(/[. ]+$/g, '');
@@ -1 +1 @@
1
- {"version":3,"file":"inbox.js","sourceRoot":"","sources":["../../../src/server/handlers/inbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inbox.js","sourceRoot":"","sources":["../../../src/server/handlers/inbox.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  import { type MindosServerResponse } from '../response.js';
2
- import type { MindosMcpAgentDef } from './mcp-install.js';
2
+ import type { MindosMcpAgentDef, MindosSkillAgentRegistration } from './mcp-install.js';
3
3
  export type MindosMcpAgentRegistryDef = MindosMcpAgentDef & {
4
4
  presenceCli?: string;
5
5
  presenceDirs?: string[];
6
+ skillDir?: string;
6
7
  };
7
8
  export type MindosCustomMcpAgentDef = {
8
9
  name: string;
@@ -16,6 +17,7 @@ export type MindosCustomMcpAgentDef = {
16
17
  presenceDirs: string[];
17
18
  presenceCli?: string;
18
19
  globalNestedKey?: string;
20
+ entryStyle?: 'standard' | 'kilo';
19
21
  skillDir?: string;
20
22
  };
21
23
  export type MindosMcpAgentInstallStatus = {
@@ -45,6 +47,16 @@ export type MindosMcpAgentInstalledSkills = {
45
47
  skills: string[];
46
48
  sourcePath: string;
47
49
  };
50
+ export type MindosMcpAgentSkillCapabilities = {
51
+ mode: 'universal' | 'additional' | 'unsupported';
52
+ workspacePath: string;
53
+ visibility: 'global' | 'agent' | 'manual';
54
+ nativeSkillScope: 'none' | 'global' | 'native-private';
55
+ canLinkMindosSkills: boolean;
56
+ canReceiveLinkedSkills: boolean;
57
+ canExportNativeSkills: boolean;
58
+ linkStrategy: 'symlink' | 'copy' | 'manual' | 'unsupported';
59
+ };
48
60
  export type MindosMcpMindosSkills = {
49
61
  names: string[];
50
62
  sourcePath: string;
@@ -65,6 +77,7 @@ export type MindosMcpAgentProfile = {
65
77
  format: 'json' | 'toml' | 'yaml';
66
78
  configKey: string;
67
79
  globalNestedKey?: string;
80
+ entryStyle?: 'standard' | 'kilo';
68
81
  globalPath: string;
69
82
  projectPath?: string | null;
70
83
  skillMode: 'universal' | 'additional' | 'unsupported';
@@ -81,6 +94,7 @@ export type MindosMcpAgentProfile = {
81
94
  installedSkillNames: string[];
82
95
  installedSkillCount: number;
83
96
  installedSkillSourcePath: string;
97
+ skillCapabilities: MindosMcpAgentSkillCapabilities;
84
98
  isCustom: boolean;
85
99
  customBaseDir?: string;
86
100
  };
@@ -106,6 +120,7 @@ export type MindosMcpAgentsServices = {
106
120
  resolveSkillWorkspaceProfile?(agentKey: string): MindosMcpAgentSkillProfile;
107
121
  scanCustomAgentSkills?(custom: MindosCustomMcpAgentDef): MindosMcpAgentInstalledSkills;
108
122
  loadMindosSkills?(): MindosMcpMindosSkills;
123
+ skillAgentRegistry?: Record<string, MindosSkillAgentRegistration>;
109
124
  fetchHead?(url: string, options: {
110
125
  signal: AbortSignal;
111
126
  }): Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-agents.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/mcp-agents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-agents.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/mcp-agents.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { execFileSync } from 'child_process';
2
2
  import { existsSync, readdirSync, readFileSync } from 'fs';
3
3
  import { homedir } from 'os';
4
- import { dirname, isAbsolute, join, resolve } from 'path';
4
+ import { dirname, isAbsolute, join, normalize, resolve } from 'path';
5
5
  import { errorResponse, json } from '../response.js';
6
6
  export async function handleMcpAgentsGet(services) {
7
7
  try {
@@ -46,6 +46,7 @@ export async function handleMcpAgentsGet(services) {
46
46
  format: agent.format ?? 'json',
47
47
  configKey: agent.key,
48
48
  globalNestedKey: agent.globalNestedKey,
49
+ entryStyle: agent.entryStyle,
49
50
  globalPath: agent.global,
50
51
  projectPath: agent.project,
51
52
  skillMode: skillProfile.mode,
@@ -62,6 +63,7 @@ export async function handleMcpAgentsGet(services) {
62
63
  installedSkillNames: installedSkills.skills,
63
64
  installedSkillCount: installedSkills.skills.length,
64
65
  installedSkillSourcePath: installedSkills.sourcePath,
66
+ skillCapabilities: buildSkillCapabilities(key, skillProfile, installedSkills.skills.length),
65
67
  isCustom,
66
68
  customBaseDir: isCustom ? customDef?.baseDir : undefined,
67
69
  };
@@ -185,6 +187,10 @@ function enrichMindosAgent(agent, services, env) {
185
187
  agent.installedSkillSourcePath = skills.sourcePath;
186
188
  agent.skillMode = 'universal';
187
189
  agent.skillWorkspacePath = skills.workspacePath;
190
+ agent.skillCapabilities = buildSkillCapabilities('mindos', {
191
+ mode: 'universal',
192
+ workspacePath: skills.workspacePath,
193
+ }, skills.names.length);
188
194
  }
189
195
  }
190
196
  catch {
@@ -212,6 +218,35 @@ function enrichMindosAgent(agent, services, env) {
212
218
  agent.hiddenRootPath = mindRoot;
213
219
  agent.hiddenRootPresent = true;
214
220
  }
221
+ function buildSkillCapabilities(agentKey, skillProfile, installedSkillCount) {
222
+ const hasWorkspace = skillProfile.workspacePath.trim().length > 0;
223
+ const isMindos = agentKey === 'mindos';
224
+ const visibility = isMindos || skillProfile.mode === 'universal'
225
+ ? 'global'
226
+ : skillProfile.mode === 'unsupported'
227
+ ? 'manual'
228
+ : 'agent';
229
+ const nativeSkillScope = installedSkillCount === 0
230
+ ? 'none'
231
+ : visibility === 'global'
232
+ ? 'global'
233
+ : 'native-private';
234
+ const linkStrategy = !hasWorkspace
235
+ ? 'unsupported'
236
+ : skillProfile.mode === 'unsupported'
237
+ ? 'copy'
238
+ : 'symlink';
239
+ return {
240
+ mode: skillProfile.mode,
241
+ workspacePath: skillProfile.workspacePath,
242
+ visibility,
243
+ nativeSkillScope,
244
+ canLinkMindosSkills: hasWorkspace,
245
+ canReceiveLinkedSkills: hasWorkspace,
246
+ canExportNativeSkills: installedSkillCount > 0,
247
+ linkStrategy,
248
+ };
249
+ }
215
250
  async function verifyHttpAgentInstallations(agents, services) {
216
251
  const fetchHead = services.fetchHead ?? defaultFetchHead;
217
252
  await Promise.all(agents.map(async (agent) => {
@@ -243,11 +278,13 @@ function compareMcpAgents(a, b) {
243
278
  return rankMcpAgent(a) - rankMcpAgent(b);
244
279
  }
245
280
  function rankMcpAgent(agent) {
246
- if (agent.installed)
281
+ if (agent.present && agent.installed)
247
282
  return 0;
248
283
  if (agent.present)
249
284
  return 1;
250
- return 2;
285
+ if (agent.installed)
286
+ return 2;
287
+ return 3;
251
288
  }
252
289
  function detectCustomAgentPresence(agent, services) {
253
290
  const pathExists = services.pathExists ?? existsSync;
@@ -279,49 +316,54 @@ function detectCustomAgentInstalled(agent, services) {
279
316
  return { installed: false };
280
317
  }
281
318
  function defaultDetectAgentInstalled(agent, services) {
282
- for (const [scopeType, cfgPath] of [['global', agent.global], ['project', agent.project]]) {
283
- if (!cfgPath)
284
- continue;
285
- const absPath = resolveAgentConfigPath(cfgPath, scopeType, services);
286
- const pathExists = services.pathExists ?? existsSync;
287
- if (!pathExists(absPath))
288
- continue;
289
- try {
290
- const readTextFile = services.readTextFile ?? readFileSyncUtf8;
291
- const content = readTextFile(absPath);
292
- const entry = readMindosMcpEntry(content, agent, scopeType);
293
- if (!entry)
319
+ for (const scopeType of ['global', 'project']) {
320
+ for (const cfgPath of configPathCandidates(agent, scopeType)) {
321
+ const absPath = resolveAgentConfigPath(cfgPath, scopeType, services);
322
+ const pathExists = services.pathExists ?? existsSync;
323
+ if (!pathExists(absPath))
294
324
  continue;
295
- const transport = entry.type === 'stdio' || entry.command ? 'stdio' : entry.url ? 'http' : 'unknown';
296
- return { installed: true, scope: scopeType, transport, configPath: cfgPath, url: entry.url };
297
- }
298
- catch {
299
- continue;
325
+ try {
326
+ const readTextFile = services.readTextFile ?? readFileSyncUtf8;
327
+ const content = readTextFile(absPath);
328
+ const entry = readMindosMcpEntry(content, agent, scopeType);
329
+ if (!entry)
330
+ continue;
331
+ const transport = isLocalMcpEntry(entry) ? 'stdio' : entry.url ? 'http' : 'unknown';
332
+ return { installed: true, scope: scopeType, transport, configPath: cfgPath, url: entry.url };
333
+ }
334
+ catch {
335
+ continue;
336
+ }
300
337
  }
301
338
  }
302
339
  return { installed: false };
303
340
  }
341
+ function configPathCandidates(agent, scopeType) {
342
+ const primary = scopeType === 'global' ? agent.global : agent.project;
343
+ const readAlso = scopeType === 'global' ? agent.globalReadAlso : agent.projectReadAlso;
344
+ return [primary, ...(readAlso ?? [])].filter((entry) => !!entry);
345
+ }
304
346
  function defaultDetectAgentConfiguredMcp(agent, services) {
305
347
  const servers = new Set();
306
348
  const sources = [];
307
- for (const [scopeType, cfgPath] of [['global', agent.global], ['project', agent.project]]) {
308
- if (!cfgPath)
309
- continue;
310
- const absPath = resolveAgentConfigPath(cfgPath, scopeType, services);
311
- const pathExists = services.pathExists ?? existsSync;
312
- if (!pathExists(absPath))
313
- continue;
314
- try {
315
- const readTextFile = services.readTextFile ?? readFileSyncUtf8;
316
- const content = readTextFile(absPath);
317
- const names = readMcpServerNames(content, agent, scopeType);
318
- for (const name of names)
319
- servers.add(name);
320
- if (names.length > 0)
321
- sources.push(`${scopeType}:${cfgPath}`);
322
- }
323
- catch {
324
- continue;
349
+ for (const scopeType of ['global', 'project']) {
350
+ for (const cfgPath of configPathCandidates(agent, scopeType)) {
351
+ const absPath = resolveAgentConfigPath(cfgPath, scopeType, services);
352
+ const pathExists = services.pathExists ?? existsSync;
353
+ if (!pathExists(absPath))
354
+ continue;
355
+ try {
356
+ const readTextFile = services.readTextFile ?? readFileSyncUtf8;
357
+ const content = readTextFile(absPath);
358
+ const names = readMcpServerNames(content, agent, scopeType);
359
+ for (const name of names)
360
+ servers.add(name);
361
+ if (names.length > 0)
362
+ sources.push(`${scopeType}:${cfgPath}`);
363
+ }
364
+ catch {
365
+ continue;
366
+ }
325
367
  }
326
368
  }
327
369
  return {
@@ -354,10 +396,16 @@ function readMindosMcpEntry(content, agent, scopeType) {
354
396
  return null;
355
397
  return {
356
398
  type: typeof entry.type === 'string' ? entry.type : undefined,
357
- command: typeof entry.command === 'string' ? entry.command : undefined,
399
+ command: typeof entry.command === 'string' || Array.isArray(entry.command) ? entry.command : undefined,
358
400
  url: typeof entry.url === 'string' ? entry.url : undefined,
359
401
  };
360
402
  }
403
+ function isLocalMcpEntry(entry) {
404
+ return entry.type === 'stdio'
405
+ || entry.type === 'local'
406
+ || typeof entry.command === 'string'
407
+ || Array.isArray(entry.command);
408
+ }
361
409
  function parseTomlMcpEntry(content, sectionKey, serverName) {
362
410
  const targetSection = `[${sectionKey}.${serverName}]`;
363
411
  const rootSection = `[${sectionKey}]`;
@@ -470,17 +518,99 @@ function defaultScanCustomAgentSkills(custom, services) {
470
518
  return { skills, sourcePath };
471
519
  }
472
520
  function defaultDetectAgentPresence(agent, services) {
521
+ if (agent.presenceCli && (services.commandExists ?? defaultCommandExists)(agent.presenceCli))
522
+ return true;
523
+ return agent.presenceDirs?.some((entry) => presencePathHasAgentSignal(entry, agent, services)) ?? false;
524
+ }
525
+ function presencePathHasAgentSignal(entry, agent, services) {
526
+ const candidatePath = expandHome(entry, services.homeDir);
473
527
  const pathExists = services.pathExists ?? existsSync;
474
- const dirPresent = agent.presenceDirs?.some((entry) => pathExists(expandHome(entry, services.homeDir))) ?? false;
475
- if (dirPresent)
528
+ if (!pathExists(candidatePath))
529
+ return false;
530
+ let entries;
531
+ try {
532
+ entries = readdirSync(candidatePath, { withFileTypes: true });
533
+ }
534
+ catch {
535
+ return !configFileLooksMindosManagedOnly(candidatePath, agent, services);
536
+ }
537
+ if (entries.length === 0)
538
+ return false;
539
+ const ignoredEntryNames = new Set(['.DS_Store', 'skills']);
540
+ for (const dirEntry of entries) {
541
+ if (ignoredEntryNames.has(dirEntry.name))
542
+ continue;
543
+ const childPath = join(candidatePath, dirEntry.name);
544
+ if (dirEntry.isFile() && configFileLooksMindosManagedOnly(childPath, agent, services))
545
+ continue;
546
+ return true;
547
+ }
548
+ return false;
549
+ }
550
+ function configFileLooksMindosManagedOnly(filePath, agent, services) {
551
+ const managedGlobalPaths = configPathCandidates(agent, 'global')
552
+ .map((candidate) => normalize(expandHome(candidate, services.homeDir)));
553
+ if (!managedGlobalPaths.includes(normalize(filePath)))
554
+ return false;
555
+ let content = '';
556
+ try {
557
+ content = (services.readTextFile ?? readFileSyncUtf8)(filePath);
558
+ }
559
+ catch {
560
+ return false;
561
+ }
562
+ if (!content.trim())
563
+ return true;
564
+ try {
565
+ if (agent.format === 'toml') {
566
+ const servers = parseTomlForServers(content, agent.key);
567
+ return servers.length === 0 || servers.every((server) => server === 'mindos');
568
+ }
569
+ if (agent.format === 'yaml') {
570
+ const servers = parseYamlForServers(content, agent.key);
571
+ return servers.length === 0 || servers.every((server) => server === 'mindos');
572
+ }
573
+ const parsed = parseJsonc(content);
574
+ const section = agent.globalNestedKey
575
+ ? readNestedRecord(parsed, agent.globalNestedKey)
576
+ : readOwnRecord(parsed, agent.key);
577
+ if (!section)
578
+ return Object.keys(parsed).length === 0;
579
+ const serverNames = Object.keys(section);
580
+ if (!serverNames.every((server) => server === 'mindos'))
581
+ return false;
582
+ if (!agent.globalNestedKey) {
583
+ const topKeys = Object.keys(parsed);
584
+ return topKeys.length === 0 || (topKeys.length === 1 && topKeys[0] === agent.key);
585
+ }
586
+ let current = parsed;
587
+ for (const part of agent.globalNestedKey.split('.').filter(Boolean)) {
588
+ if (!current || Object.keys(current).some((key) => key !== part))
589
+ return false;
590
+ const next = current[part];
591
+ current = next && typeof next === 'object' ? next : null;
592
+ }
476
593
  return true;
477
- return agent.presenceCli ? (services.commandExists ?? defaultCommandExists)(agent.presenceCli) : false;
594
+ }
595
+ catch {
596
+ return false;
597
+ }
478
598
  }
479
599
  function defaultSkillWorkspaceProfile(agentKey, agent, services) {
600
+ const registration = services.skillAgentRegistry?.[agentKey];
601
+ if (registration?.mode === 'universal') {
602
+ return {
603
+ mode: registration.mode,
604
+ workspacePath: expandHome('~/.agents/skills', services.homeDir),
605
+ };
606
+ }
480
607
  const hiddenRoot = resolveHiddenRootPath(agent, services);
481
608
  return {
482
- mode: agentKey === 'mindos' ? 'universal' : 'unsupported',
483
- workspacePath: join(hiddenRoot, 'skills'),
609
+ mode: agentKey === 'mindos' ? 'universal' : registration?.mode ?? 'unsupported',
610
+ skillAgentName: registration?.skillAgentName,
611
+ workspacePath: agent.skillDir
612
+ ? expandHome(agent.skillDir, services.homeDir)
613
+ : join(hiddenRoot, 'skills'),
484
614
  };
485
615
  }
486
616
  function defaultRuntimeSignals(agent, services) {