@treenity/core 3.0.0 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +78 -0
- package/dist/chain.d.ts +3 -4
- package/dist/chain.d.ts.map +1 -1
- package/dist/chain.js.map +1 -1
- package/dist/client/trpc.d.ts.map +1 -1
- package/dist/client/trpc.js +1 -0
- package/dist/client/trpc.js.map +1 -1
- package/dist/comp/index.d.ts +3 -4
- package/dist/comp/index.d.ts.map +1 -1
- package/dist/comp/index.js +5 -4
- package/dist/comp/index.js.map +1 -1
- package/dist/comp/needs.d.ts.map +1 -1
- package/dist/comp/needs.js +3 -3
- package/dist/comp/needs.js.map +1 -1
- package/dist/core/component.d.ts +10 -8
- package/dist/core/component.d.ts.map +1 -1
- package/dist/core/component.js +4 -8
- package/dist/core/component.js.map +1 -1
- package/dist/core/context.d.ts +2 -2
- package/dist/core/context.d.ts.map +1 -1
- package/dist/core/path.d.ts.map +1 -1
- package/dist/core/path.js +7 -3
- package/dist/core/path.js.map +1 -1
- package/dist/core/registry.d.ts +2 -1
- package/dist/core/registry.d.ts.map +1 -1
- package/dist/core/registry.js.map +1 -1
- package/dist/core.d.ts +1 -1
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +1 -1
- package/dist/core.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/log.d.ts +30 -0
- package/dist/log.d.ts.map +1 -1
- package/dist/log.js +119 -0
- package/dist/log.js.map +1 -1
- package/dist/mod/examples/ticker/service.js +2 -3
- package/dist/mod/examples/ticker/service.js.map +1 -1
- package/dist/mod/index.d.ts +1 -1
- package/dist/mod/index.d.ts.map +1 -1
- package/dist/mod/index.js +1 -1
- package/dist/mod/index.js.map +1 -1
- package/dist/mod/loader.d.ts +1 -0
- package/dist/mod/loader.d.ts.map +1 -1
- package/dist/mod/loader.js +27 -1
- package/dist/mod/loader.js.map +1 -1
- package/dist/mods/clients.d.ts +2 -0
- package/dist/mods/clients.d.ts.map +1 -0
- package/dist/mods/clients.js +3 -0
- package/dist/mods/clients.js.map +1 -0
- package/dist/mods/llm/index.js +1 -1
- package/dist/mods/llm/index.js.map +1 -1
- package/dist/mods/mcp/server.d.ts +0 -1
- package/dist/mods/mcp/server.js +0 -1
- package/dist/mods/mcp/service.d.ts +0 -1
- package/dist/mods/mcp/service.js +0 -1
- package/dist/mods/mcp/types.d.ts +0 -1
- package/dist/mods/mcp/types.js +0 -1
- package/dist/mods/servers.d.ts +4 -0
- package/dist/mods/servers.d.ts.map +1 -0
- package/dist/mods/servers.js +5 -0
- package/dist/mods/servers.js.map +1 -0
- package/dist/mods/treenity/builtins.d.ts +2 -0
- package/dist/mods/treenity/builtins.d.ts.map +1 -0
- package/dist/mods/treenity/builtins.js +18 -0
- package/dist/mods/treenity/builtins.js.map +1 -0
- package/dist/mods/treenity/logs.d.ts +18 -0
- package/dist/mods/treenity/logs.d.ts.map +1 -0
- package/dist/mods/treenity/logs.js +17 -0
- package/dist/mods/treenity/logs.js.map +1 -0
- package/dist/mods/treenity/seed.js +29 -27
- package/dist/mods/treenity/seed.js.map +1 -1
- package/dist/mods/treenity/server.d.ts +2 -0
- package/dist/mods/treenity/server.d.ts.map +1 -1
- package/dist/mods/treenity/server.js +2 -0
- package/dist/mods/treenity/server.js.map +1 -1
- package/dist/mods/uix/client.js +4 -4
- package/dist/mods/uix/client.js.map +1 -1
- package/dist/mods/uix/compile.d.ts.map +1 -1
- package/dist/mods/uix/compile.js +4 -2
- package/dist/mods/uix/compile.js.map +1 -1
- package/dist/schema/_test-fixture.d.ts +11 -0
- package/dist/schema/_test-fixture.d.ts.map +1 -0
- package/dist/schema/_test-fixture.js +8 -0
- package/dist/schema/_test-fixture.js.map +1 -0
- package/dist/schema/types.d.ts +1 -0
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/server/actions.js +1 -1
- package/dist/server/auth.d.ts.map +1 -1
- package/dist/server/auth.js +4 -3
- package/dist/server/auth.js.map +1 -1
- package/dist/server/client.d.ts +10 -3
- package/dist/server/client.d.ts.map +1 -1
- package/dist/server/client.js +1 -1
- package/dist/server/client.js.map +1 -1
- package/dist/server/doc-index.d.ts.map +1 -1
- package/dist/server/doc-index.js +13 -12
- package/dist/server/doc-index.js.map +1 -1
- package/dist/server/factory.d.ts +6 -0
- package/dist/server/factory.d.ts.map +1 -1
- package/dist/server/factory.js +44 -25
- package/dist/server/factory.js.map +1 -1
- package/dist/server/main.d.ts +0 -4
- package/dist/server/main.d.ts.map +1 -1
- package/dist/server/main.js +4 -30
- package/dist/server/main.js.map +1 -1
- package/dist/server/mcp.d.ts +0 -1
- package/dist/server/mcp.js +0 -1
- package/dist/server/migrate.js +3 -3
- package/dist/server/migrate.js.map +1 -1
- package/dist/server/mods-mount.d.ts +0 -1
- package/dist/server/mods-mount.d.ts.map +1 -1
- package/dist/server/mods-mount.js +0 -1
- package/dist/server/mods-mount.js.map +1 -1
- package/dist/server/mount-adapters.js +9 -4
- package/dist/server/mount-adapters.js.map +1 -1
- package/dist/server/prefab.d.ts +2 -2
- package/dist/server/prefab.d.ts.map +1 -1
- package/dist/server/prefab.js +4 -2
- package/dist/server/prefab.js.map +1 -1
- package/dist/server/refs.d.ts +3 -0
- package/dist/server/refs.d.ts.map +1 -0
- package/dist/server/refs.js +59 -0
- package/dist/server/refs.js.map +1 -0
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +13 -3
- package/dist/server/server.js.map +1 -1
- package/dist/server/sub.js.map +1 -1
- package/dist/server/trpc.d.ts +7 -0
- package/dist/server/trpc.d.ts.map +1 -1
- package/dist/server/trpc.js +6 -2
- package/dist/server/trpc.js.map +1 -1
- package/dist/tree/fs.d.ts.map +1 -1
- package/dist/tree/fs.js +20 -18
- package/dist/tree/fs.js.map +1 -1
- package/dist/tree/index.d.ts.map +1 -1
- package/dist/tree/index.js +2 -1
- package/dist/tree/index.js.map +1 -1
- package/dist/tree-chain.d.ts +2 -1
- package/dist/tree-chain.d.ts.map +1 -1
- package/dist/tree-chain.js +5 -3
- package/dist/tree-chain.js.map +1 -1
- package/dist/uri.d.ts.map +1 -1
- package/dist/uri.js +8 -3
- package/dist/uri.js.map +1 -1
- package/package.json +48 -6
- package/src/chain.ts +7 -5
- package/src/client/trpc.ts +1 -0
- package/src/comp/index.test.ts +45 -9
- package/src/comp/index.ts +19 -8
- package/src/comp/needs.ts +3 -3
- package/src/core/component.ts +16 -14
- package/src/core/context.ts +4 -4
- package/src/core/index.test.ts +22 -1
- package/src/core/path.ts +6 -3
- package/src/core/registry.ts +4 -7
- package/src/core.ts +1 -1
- package/src/index.ts +1 -0
- package/src/log.ts +172 -1
- package/src/mod/docs/07-realtime.md +19 -11
- package/src/mod/docs/08-services.md +10 -8
- package/src/mod/docs/10-acl.md +1 -1
- package/src/mod/docs/12-conventions.md +43 -0
- package/src/mod/docs/13-example.md +36 -26
- package/src/mod/docs/14-mod-format.md +81 -8
- package/src/mod/examples/ticker/service.ts +2 -3
- package/src/mod/index.ts +1 -1
- package/src/mod/loader.test.ts +53 -1
- package/src/mod/loader.ts +34 -1
- package/src/mods/clients.ts +2 -0
- package/src/mods/llm/index.ts +1 -1
- package/src/mods/servers.ts +4 -0
- package/src/mods/treenity/builtins.ts +21 -0
- package/src/mods/treenity/logs.ts +26 -0
- package/src/mods/treenity/seed.ts +30 -28
- package/src/mods/treenity/server.ts +2 -0
- package/src/mods/uix/client.ts +4 -4
- package/src/mods/uix/compile.ts +4 -2
- package/src/schema/_test-fixture.ts +12 -0
- package/src/schema/generated/ai.agent.json +133 -0
- package/src/schema/generated/ai.approval.json +105 -0
- package/src/schema/generated/ai.approvals.json +24 -0
- package/src/schema/generated/ai.assignment.json +28 -0
- package/src/schema/generated/ai.plan.json +84 -0
- package/src/schema/generated/ai.policy.json +105 -0
- package/src/schema/generated/ai.pool.json +37 -0
- package/src/schema/generated/ai.thread.json +64 -0
- package/src/schema/generated/board.kanban.json +7 -0
- package/src/schema/generated/canary.item.json +40 -0
- package/src/schema/generated/claude-search.json +20 -0
- package/src/schema/generated/craft.product.json +47 -0
- package/src/schema/generated/craft.shop.json +94 -0
- package/src/schema/generated/craft.subscription.json +27 -0
- package/src/schema/generated/examples.demo.sensor.reading.json +25 -0
- package/src/schema/generated/flow.node.action.json +61 -0
- package/src/schema/generated/flow.node.code.json +43 -0
- package/src/schema/generated/flow.node.condition.json +37 -0
- package/src/schema/generated/flow.node.end.json +35 -0
- package/src/schema/generated/flow.node.http.json +65 -0
- package/src/schema/generated/flow.node.llm.json +67 -0
- package/src/schema/generated/flow.node.loop.json +49 -0
- package/src/schema/generated/flow.node.start.json +39 -0
- package/src/schema/generated/flow.scenario.json +118 -0
- package/src/schema/generated/grove.attempt.json +199 -0
- package/src/schema/generated/grove.path.json +93 -0
- package/src/schema/generated/grove.review.json +27 -0
- package/src/schema/generated/grove.task.json +164 -0
- package/src/schema/generated/intel.scenario.json +58 -0
- package/src/schema/generated/intel.signal.json +113 -0
- package/src/schema/generated/intel.world.json +15 -0
- package/src/schema/generated/landing.block.json +201 -0
- package/src/schema/generated/landing.page.json +84 -0
- package/src/schema/generated/metatron.config.json +119 -0
- package/src/schema/generated/metatron.permission.json +36 -0
- package/src/schema/generated/metatron.skill.json +36 -0
- package/src/schema/generated/metatron.task.json +114 -0
- package/src/schema/generated/metatron.template.json +26 -0
- package/src/schema/generated/metatron.workspace.json +60 -0
- package/src/schema/generated/order.status.json +21 -0
- package/src/schema/generated/polyhope.backtest.json +161 -0
- package/src/schema/generated/polyhope.feed.json +33 -0
- package/src/schema/generated/polyhope.run.json +94 -0
- package/src/schema/generated/polyhope.strategy.json +152 -0
- package/src/schema/generated/polymax.activity.json +65 -0
- package/src/schema/generated/polymax.aggr-feed.json +28 -0
- package/src/schema/generated/polymax.aggr.json +20 -0
- package/src/schema/generated/polymax.alert.json +56 -0
- package/src/schema/generated/polymax.bot-config.json +14 -0
- package/src/schema/generated/polymax.bot-status.json +35 -0
- package/src/schema/generated/polymax.classification.json +55 -0
- package/src/schema/generated/polymax.deposits.json +45 -0
- package/src/schema/generated/polymax.holding.json +55 -0
- package/src/schema/generated/polymax.identity.json +71 -0
- package/src/schema/generated/polymax.lb-entry.json +75 -0
- package/src/schema/generated/polymax.leaderboard.json +37 -0
- package/src/schema/generated/polymax.market-ref.json +25 -0
- package/src/schema/generated/polymax.performance.json +65 -0
- package/src/schema/generated/polymax.profile.json +16 -0
- package/src/schema/generated/polymax.scan-result.json +50 -0
- package/src/schema/generated/polymax.status.json +40 -0
- package/src/schema/generated/polymax.tags.json +53 -0
- package/src/schema/generated/polymax.trader.json +16 -0
- package/src/schema/generated/polymax.wallet-market.json +50 -0
- package/src/schema/generated/polymax.wallet-pnl.json +35 -0
- package/src/schema/generated/pult.concept.json +53 -0
- package/src/schema/generated/pult.config.json +227 -0
- package/src/schema/generated/pult.connector.json +72 -0
- package/src/schema/generated/pult.market.json +113 -0
- package/src/schema/generated/pult.order.json +113 -0
- package/src/schema/generated/pult.rete.json +68 -0
- package/src/schema/generated/pult.sensor.json +74 -0
- package/src/schema/generated/pult.signal.json +54 -0
- package/src/schema/generated/pult.synapse.json +93 -0
- package/src/schema/generated/pult.trade.json +93 -0
- package/src/schema/generated/resim.config.json +34 -0
- package/src/schema/generated/resim.function.json +62 -0
- package/src/schema/generated/resim.goal.json +22 -0
- package/src/schema/generated/resim.resource.json +40 -0
- package/src/schema/generated/resim.state.json +48 -0
- package/src/schema/generated/resim.world.json +40 -0
- package/src/schema/generated/saveme.action.save.json +29 -0
- package/src/schema/generated/saveme.message.json +36 -0
- package/src/schema/generated/saveme.router.json +31 -0
- package/src/schema/generated/t.coolify.json +50 -0
- package/src/schema/generated/t.event.json +46 -0
- package/src/schema/generated/t.logs.json +155 -0
- package/src/schema/generated/t.note.json +31 -0
- package/src/schema/generated/t.person.json +36 -0
- package/src/schema/generated/t.tenant.json +57 -0
- package/src/schema/generated/t.tenant.status.json +42 -0
- package/src/schema/generated/tagger.config.json +115 -0
- package/src/schema/generated/tagger.result.json +57 -0
- package/src/schema/generated/tagger.tree.json +36 -0
- package/src/schema/generated/ui.table.json +46 -0
- package/src/schema/types.ts +1 -0
- package/src/server/actions.test.ts +1 -1
- package/src/server/actions.ts +1 -1
- package/src/server/api.test.ts +9 -0
- package/src/server/auth.ts +4 -3
- package/src/server/client.ts +1 -1
- package/src/server/coverage.test.ts +1 -1
- package/src/server/doc-index.ts +13 -12
- package/src/server/e2e.test.ts +4 -3
- package/src/server/factory.ts +46 -24
- package/src/server/main.ts +4 -36
- package/src/server/migrate.ts +4 -4
- package/src/server/mods-mount.ts +0 -2
- package/src/server/mount-adapters.ts +9 -4
- package/src/server/mount.test.ts +73 -5
- package/src/server/prefab.ts +3 -2
- package/src/server/refs.test.ts +82 -0
- package/src/server/refs.ts +64 -0
- package/src/server/server.ts +14 -3
- package/src/server/sub.ts +2 -2
- package/src/server/trpc.ts +9 -3
- package/src/tree/fs.ts +21 -15
- package/src/tree/index.test.ts +26 -0
- package/src/tree/index.ts +2 -1
- package/src/tree-chain.test.ts +37 -44
- package/src/tree-chain.ts +11 -5
- package/src/uri.test.ts +32 -5
- package/src/uri.ts +4 -2
- package/dist/mods/mcp/server.d.ts.map +0 -1
- package/dist/mods/mcp/server.js.map +0 -1
- package/dist/mods/mcp/service.d.ts.map +0 -1
- package/dist/mods/mcp/service.js.map +0 -1
- package/dist/mods/mcp/types.d.ts.map +0 -1
- package/dist/mods/mcp/types.js.map +0 -1
- package/dist/schema/test-opaque.d.ts +0 -3
- package/dist/schema/test-opaque.d.ts.map +0 -1
- package/dist/schema/test-opaque.js +0 -43
- package/dist/schema/test-opaque.js.map +0 -1
- package/dist/server/mcp.d.ts.map +0 -1
- package/dist/server/mcp.js.map +0 -1
- package/src/mods/mcp/CLAUDE.md +0 -6
- package/src/mods/mcp/server.ts +0 -2
- package/src/mods/mcp/service.ts +0 -19
- package/src/mods/mcp/types.ts +0 -7
- package/src/schema/test-opaque.ts +0 -42
- package/src/server/mcp.ts +0 -326
package/dist/server/mcp.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/server/mcp.ts"],"names":[],"mappings":"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"}
|
package/src/mods/mcp/CLAUDE.md
DELETED
package/src/mods/mcp/server.ts
DELETED
package/src/mods/mcp/service.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
// MCP autostart service — starts/stops the MCP HTTP server via tree lifecycle
|
|
2
|
-
|
|
3
|
-
import { getComp } from '#comp';
|
|
4
|
-
import { register } from '#core';
|
|
5
|
-
import { createMcpHttpServer } from '#server/mcp';
|
|
6
|
-
import { McpConfig } from './types';
|
|
7
|
-
|
|
8
|
-
register('mcp.server', 'service', async (node, ctx) => {
|
|
9
|
-
const config = getComp(node, McpConfig);
|
|
10
|
-
const port = config?.port ?? (Number(process.env.MCP_PORT) || 3212);
|
|
11
|
-
const server = createMcpHttpServer(ctx.store, port);
|
|
12
|
-
|
|
13
|
-
return {
|
|
14
|
-
stop: async () => {
|
|
15
|
-
server.close();
|
|
16
|
-
console.log(`[mcp] stopped :${port}`);
|
|
17
|
-
},
|
|
18
|
-
};
|
|
19
|
-
});
|
package/src/mods/mcp/types.ts
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env tsx
|
|
2
|
-
// Quick test: does getAliasedSymbol resolve import to original @opaque decl?
|
|
3
|
-
|
|
4
|
-
import * as ts from 'typescript';
|
|
5
|
-
import * as path from 'node:path';
|
|
6
|
-
|
|
7
|
-
const tsconfigPath = path.resolve(import.meta.dirname, '../../../tsconfig.json');
|
|
8
|
-
const configFile = ts.readConfigFile(tsconfigPath, ts.sys.readFile);
|
|
9
|
-
const parsed = ts.parseJsonConfigFileContent(configFile.config, ts.sys, path.dirname(tsconfigPath));
|
|
10
|
-
const program = ts.createProgram(parsed.fileNames, parsed.options);
|
|
11
|
-
const checker = program.getTypeChecker();
|
|
12
|
-
|
|
13
|
-
for (const sf of program.getSourceFiles()) {
|
|
14
|
-
if (!sf.fileName.includes('brahman/types')) continue;
|
|
15
|
-
|
|
16
|
-
ts.forEachChild(sf, (node) => {
|
|
17
|
-
if (!ts.isClassDeclaration(node) || !node.name) return;
|
|
18
|
-
if (node.name.text !== 'MessageAction') return;
|
|
19
|
-
|
|
20
|
-
for (const member of node.members) {
|
|
21
|
-
if (!ts.isMethodDeclaration(member) || !member.name || !ts.isIdentifier(member.name)) continue;
|
|
22
|
-
if (member.name.text !== 'run') continue;
|
|
23
|
-
|
|
24
|
-
const param = member.parameters[0];
|
|
25
|
-
if (!param?.type || !ts.isTypeReferenceNode(param.type)) { console.log('no type ref'); return; }
|
|
26
|
-
|
|
27
|
-
let sym = checker.getSymbolAtLocation(param.type.typeName);
|
|
28
|
-
console.log('sym:', sym?.name, 'flags:', sym?.flags, 'isAlias:', !!(sym?.flags! & ts.SymbolFlags.Alias));
|
|
29
|
-
|
|
30
|
-
if (sym?.flags! & ts.SymbolFlags.Alias) {
|
|
31
|
-
sym = checker.getAliasedSymbol(sym!);
|
|
32
|
-
console.log('aliased to:', sym?.name, 'decls:', sym?.declarations?.length);
|
|
33
|
-
const decl = sym?.declarations?.[0];
|
|
34
|
-
if (decl) {
|
|
35
|
-
console.log('decl kind:', ts.SyntaxKind[decl.kind], 'at', path.basename(decl.getSourceFile().fileName));
|
|
36
|
-
console.log('JSDoc tags:', ts.getJSDocTags(decl).map(t => t.tagName.text));
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
break;
|
|
42
|
-
}
|
package/src/server/mcp.ts
DELETED
|
@@ -1,326 +0,0 @@
|
|
|
1
|
-
// Treenity MCP Server — exposes tree store as MCP tools
|
|
2
|
-
// StreamableHTTP transport, stateless, token auth via ?token= or Authorization header
|
|
3
|
-
|
|
4
|
-
import { createNode } from '#core';
|
|
5
|
-
import { verifyViewSource } from '#mods/uix/verify';
|
|
6
|
-
import { TypeCatalog } from '#schema/catalog';
|
|
7
|
-
import type { Tree } from '#tree';
|
|
8
|
-
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
9
|
-
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
10
|
-
import { createServer, type Server } from 'node:http';
|
|
11
|
-
import { z } from 'zod/v3';
|
|
12
|
-
import { executeAction } from './actions';
|
|
13
|
-
import { buildClaims, resolveToken, type Session, withAcl } from './auth';
|
|
14
|
-
import { deployPrefab } from './prefab';
|
|
15
|
-
|
|
16
|
-
/** Compact YAML-like serializer — readable for LLMs, much less noisy than JSON */
|
|
17
|
-
function yaml(val: unknown, depth = 0, maxStr = 300): string {
|
|
18
|
-
const pad = ' '.repeat(depth);
|
|
19
|
-
if (val == null) return 'null';
|
|
20
|
-
if (typeof val === 'boolean' || typeof val === 'number') return String(val);
|
|
21
|
-
if (typeof val === 'string') {
|
|
22
|
-
if (maxStr < Infinity && val.length > maxStr) return JSON.stringify(val.slice(0, maxStr) + '…');
|
|
23
|
-
return /[\n\r:#\[\]{}",]/.test(val) || val === '' ? JSON.stringify(val) : val;
|
|
24
|
-
}
|
|
25
|
-
if (Array.isArray(val)) {
|
|
26
|
-
if (!val.length) return '[]';
|
|
27
|
-
if (val.every(v => typeof v !== 'object' || v == null)) {
|
|
28
|
-
const inline = `[${val.map(v => yaml(v, 0, maxStr)).join(', ')}]`;
|
|
29
|
-
if (inline.length < 80) return inline;
|
|
30
|
-
}
|
|
31
|
-
return val.map(item => {
|
|
32
|
-
if (typeof item !== 'object' || item == null) return `${pad}- ${yaml(item, 0, maxStr)}`;
|
|
33
|
-
const inner = yaml(item, depth + 1, maxStr);
|
|
34
|
-
const lines = inner.split('\n');
|
|
35
|
-
return lines.length === 1
|
|
36
|
-
? `${pad}- ${lines[0].trimStart()}`
|
|
37
|
-
: `${pad}- ${lines[0].trimStart()}\n${lines.slice(1).map(l => `${pad} ${l.trimStart()}`).join('\n')}`;
|
|
38
|
-
}).join('\n');
|
|
39
|
-
}
|
|
40
|
-
if (typeof val === 'object') {
|
|
41
|
-
const entries = Object.entries(val as Record<string, unknown>);
|
|
42
|
-
if (!entries.length) return '{}';
|
|
43
|
-
return entries.map(([k, v]) => {
|
|
44
|
-
if (v != null && typeof v === 'object') {
|
|
45
|
-
const inner = yaml(v, depth + 1, maxStr);
|
|
46
|
-
if (!inner.includes('\n') && inner.length < 60) return `${pad}${k}: ${inner.trimStart()}`;
|
|
47
|
-
return `${pad}${k}:\n${inner}`;
|
|
48
|
-
}
|
|
49
|
-
return `${pad}${k}: ${yaml(v, 0, maxStr)}`;
|
|
50
|
-
}).join('\n');
|
|
51
|
-
}
|
|
52
|
-
return String(val);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
const text = (s: string) => ({ content: [{ type: 'text' as const, text: s }] });
|
|
56
|
-
const catalog = new TypeCatalog();
|
|
57
|
-
|
|
58
|
-
/** Count non-system fields on a node */
|
|
59
|
-
function dataKeys(node: Record<string, unknown>) {
|
|
60
|
-
return Object.keys(node).filter(k => !k.startsWith('$'));
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
async function buildMcpServer(store: Tree, session: Session, claims?: string[]) {
|
|
64
|
-
claims ??= await buildClaims(store, session.userId);
|
|
65
|
-
const aclStore = withAcl(store, session.userId, claims);
|
|
66
|
-
|
|
67
|
-
const mcp = new McpServer({ name: 'treenity', version: '1.0.0' });
|
|
68
|
-
|
|
69
|
-
mcp.registerTool(
|
|
70
|
-
'get_node',
|
|
71
|
-
{
|
|
72
|
-
description: 'Read a node by path. Returns full untruncated values.',
|
|
73
|
-
inputSchema: { path: z.string() },
|
|
74
|
-
},
|
|
75
|
-
async ({ path }) => {
|
|
76
|
-
const node = await aclStore.get(path);
|
|
77
|
-
return text(node ? yaml(node, 0, Infinity) : `not found: ${path}`);
|
|
78
|
-
},
|
|
79
|
-
);
|
|
80
|
-
|
|
81
|
-
mcp.registerTool(
|
|
82
|
-
'list_children',
|
|
83
|
-
{
|
|
84
|
-
description: 'List children of a node. Long string values may be truncated — use get_node for full data.',
|
|
85
|
-
inputSchema: {
|
|
86
|
-
path: z.string(),
|
|
87
|
-
depth: z.number().optional(),
|
|
88
|
-
detail: z.boolean().optional().describe('Show first-level fields and component types'),
|
|
89
|
-
full: z.boolean().optional().describe('Return complete YAML of each node'),
|
|
90
|
-
},
|
|
91
|
-
},
|
|
92
|
-
async ({ path, depth, detail, full }) => {
|
|
93
|
-
const ctx = { queryContextPath: path, userId: session.userId };
|
|
94
|
-
const result = await aclStore.getChildren(path, { depth }, ctx);
|
|
95
|
-
const { items, total } = result;
|
|
96
|
-
|
|
97
|
-
if (full) return text(yaml({ total, items }));
|
|
98
|
-
|
|
99
|
-
if (detail) {
|
|
100
|
-
const lines = items.map(n => {
|
|
101
|
-
const name = n.$path.split('/').at(-1);
|
|
102
|
-
const keys = dataKeys(n);
|
|
103
|
-
const header = n.$type === 'dir' ? `${name}/` : `${name}: ${n.$type} [${keys.length}]`;
|
|
104
|
-
const fields = keys.map(k => {
|
|
105
|
-
const v = (n as Record<string, unknown>)[k];
|
|
106
|
-
if (v && typeof v === 'object' && '$type' in (v as object))
|
|
107
|
-
return ` ${k}: ${(v as Record<string, unknown>).$type}`;
|
|
108
|
-
if (Array.isArray(v)) return ` ${k}: [${v.length}]`;
|
|
109
|
-
const s = String(v);
|
|
110
|
-
return ` ${k}: ${s.length > 60 ? s.slice(0, 60) + '…' : s}`;
|
|
111
|
-
});
|
|
112
|
-
return header + (fields.length ? '\n' + fields.join('\n') : '');
|
|
113
|
-
});
|
|
114
|
-
return text(lines.join('\n') + `\n(${total} total)`);
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
// Default: ls-like — name, type, field count
|
|
118
|
-
const lines = items.map(n => {
|
|
119
|
-
const name = n.$path.split('/').at(-1);
|
|
120
|
-
if (n.$type === 'dir') return `${name}/`;
|
|
121
|
-
return `${name} ${n.$type} [${dataKeys(n).length}]`;
|
|
122
|
-
});
|
|
123
|
-
return text(lines.join('\n') + (total > items.length ? `\n(${total} total)` : ''));
|
|
124
|
-
},
|
|
125
|
-
);
|
|
126
|
-
|
|
127
|
-
mcp.registerTool(
|
|
128
|
-
'set_node',
|
|
129
|
-
{
|
|
130
|
-
description: 'Create or update a node',
|
|
131
|
-
inputSchema: {
|
|
132
|
-
path: z.string(),
|
|
133
|
-
type: z.string(),
|
|
134
|
-
components: z.record(z.unknown()).optional(),
|
|
135
|
-
acl: z.array(z.object({ g: z.string(), p: z.number() })).optional(),
|
|
136
|
-
owner: z.string().optional(),
|
|
137
|
-
},
|
|
138
|
-
},
|
|
139
|
-
async ({ path, type, components, acl, owner }) => {
|
|
140
|
-
const existing = await aclStore.get(path);
|
|
141
|
-
const node = existing ?? createNode(path, type);
|
|
142
|
-
if (!existing) node.$type = type;
|
|
143
|
-
if (components) {
|
|
144
|
-
for (const [k, v] of Object.entries(components)) {
|
|
145
|
-
if (k === '__proto__' || k === 'constructor' || k === 'prototype') continue;
|
|
146
|
-
// LLMs often wrap node-level fields in a component matching the node $type.
|
|
147
|
-
// Flatten: merge as plain fields instead of creating a redundant component.
|
|
148
|
-
const comp = v as Record<string, unknown> | null;
|
|
149
|
-
if (comp && typeof comp === 'object' && comp.$type === type) {
|
|
150
|
-
for (const [fk, fv] of Object.entries(comp)) {
|
|
151
|
-
if (fk !== '$type') node[fk] = fv;
|
|
152
|
-
}
|
|
153
|
-
continue;
|
|
154
|
-
}
|
|
155
|
-
node[k] = v;
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
if (acl) node.$acl = acl;
|
|
159
|
-
if (owner) node.$owner = owner;
|
|
160
|
-
await aclStore.set(node);
|
|
161
|
-
return text(yaml(node));
|
|
162
|
-
},
|
|
163
|
-
);
|
|
164
|
-
|
|
165
|
-
mcp.registerTool(
|
|
166
|
-
'execute',
|
|
167
|
-
{
|
|
168
|
-
description: 'Execute an action on a node or component. Actions are methods registered on types.',
|
|
169
|
-
inputSchema: {
|
|
170
|
-
path: z.string(),
|
|
171
|
-
action: z.string(),
|
|
172
|
-
type: z.string().optional(), // component $type for verification/scan
|
|
173
|
-
key: z.string().optional(), // component field key for direct lookup
|
|
174
|
-
data: z.record(z.unknown()).optional(),
|
|
175
|
-
},
|
|
176
|
-
},
|
|
177
|
-
async ({ path, action, type, key, data }) => {
|
|
178
|
-
const result = await executeAction(aclStore, path, type, key, action, data);
|
|
179
|
-
return text(yaml(result ?? { ok: true }));
|
|
180
|
-
},
|
|
181
|
-
);
|
|
182
|
-
|
|
183
|
-
mcp.registerTool(
|
|
184
|
-
'deploy_prefab',
|
|
185
|
-
{
|
|
186
|
-
description: 'Deploy a module prefab (node tree template) to a target path. Idempotent: skips existing nodes. Browse available prefabs via list_children /sys/mods.',
|
|
187
|
-
inputSchema: {
|
|
188
|
-
source: z.string().describe('Prefab path: /sys/mods/{mod}/prefabs/{name}'),
|
|
189
|
-
target: z.string().describe('Target path where nodes will be created'),
|
|
190
|
-
allowAbsolute: z.boolean().optional().describe('Allow prefab to write outside target (e.g. /sys/autostart refs). Default: false'),
|
|
191
|
-
},
|
|
192
|
-
},
|
|
193
|
-
async ({ source, target, allowAbsolute }) => {
|
|
194
|
-
const result = await deployPrefab(aclStore, source, target, { allowAbsolute });
|
|
195
|
-
return text(yaml(result));
|
|
196
|
-
},
|
|
197
|
-
);
|
|
198
|
-
|
|
199
|
-
mcp.registerTool(
|
|
200
|
-
'compile_view',
|
|
201
|
-
{
|
|
202
|
-
description: 'Verify that a UIX view source compiles correctly. Pass path to check an existing type node, or source to verify before writing.',
|
|
203
|
-
inputSchema: {
|
|
204
|
-
path: z.string().optional().describe('Path to type node (e.g. /sys/types/cosmos/system) — reads view.source'),
|
|
205
|
-
source: z.string().optional().describe('Raw JSX/TSX source to verify directly'),
|
|
206
|
-
},
|
|
207
|
-
},
|
|
208
|
-
async ({ path, source }) => {
|
|
209
|
-
let code = source;
|
|
210
|
-
if (!code) {
|
|
211
|
-
if (!path) return text('error: provide path or source');
|
|
212
|
-
const node = await aclStore.get(path);
|
|
213
|
-
if (!node) return text(`not found: ${path}`);
|
|
214
|
-
code = (node as any)?.view?.source;
|
|
215
|
-
if (!code || typeof code !== 'string') return text(`no view.source on ${path}`);
|
|
216
|
-
}
|
|
217
|
-
const result = verifyViewSource(code);
|
|
218
|
-
return text(yaml(result));
|
|
219
|
-
},
|
|
220
|
-
);
|
|
221
|
-
|
|
222
|
-
mcp.registerTool(
|
|
223
|
-
'remove_node',
|
|
224
|
-
{
|
|
225
|
-
description: 'Remove a node by path',
|
|
226
|
-
inputSchema: { path: z.string() },
|
|
227
|
-
},
|
|
228
|
-
async ({ path }) => {
|
|
229
|
-
const ok = await aclStore.remove(path);
|
|
230
|
-
return text(ok ? `removed: ${path}` : `not found: ${path}`);
|
|
231
|
-
},
|
|
232
|
-
);
|
|
233
|
-
|
|
234
|
-
// ── Discovery tools — powered by TypeCatalog ──
|
|
235
|
-
|
|
236
|
-
mcp.registerTool(
|
|
237
|
-
'catalog',
|
|
238
|
-
{
|
|
239
|
-
description: 'List all registered types with title, properties, and action names. Use this first to discover what types exist.',
|
|
240
|
-
inputSchema: {},
|
|
241
|
-
},
|
|
242
|
-
async () => text(yaml(catalog.list())),
|
|
243
|
-
);
|
|
244
|
-
|
|
245
|
-
mcp.registerTool(
|
|
246
|
-
'describe_type',
|
|
247
|
-
{
|
|
248
|
-
description: 'Get full schema of a type: properties, actions with argument types, and cross-references to other types. Use after catalog to understand a specific type deeply.',
|
|
249
|
-
inputSchema: { type: z.string().describe('Type name, e.g. "cafe.contact" or "board.task"') },
|
|
250
|
-
},
|
|
251
|
-
async ({ type: typeName }) => {
|
|
252
|
-
const desc = catalog.describe(typeName);
|
|
253
|
-
return text(desc ? yaml(desc) : `type not found: ${typeName}`);
|
|
254
|
-
},
|
|
255
|
-
);
|
|
256
|
-
|
|
257
|
-
mcp.registerTool(
|
|
258
|
-
'search_types',
|
|
259
|
-
{
|
|
260
|
-
description: 'Search types by keyword across names, titles, property names, and action names. Use to find types relevant to a task.',
|
|
261
|
-
inputSchema: { query: z.string().describe('Search keyword, e.g. "order", "mail", "contact"') },
|
|
262
|
-
},
|
|
263
|
-
async ({ query }) => text(yaml(catalog.search(query))),
|
|
264
|
-
);
|
|
265
|
-
|
|
266
|
-
return mcp;
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
function extractToken(req: import('node:http').IncomingMessage): string | null {
|
|
270
|
-
const auth = req.headers.authorization;
|
|
271
|
-
if (typeof auth === 'string' && auth.startsWith('Bearer ')) return auth.slice(7);
|
|
272
|
-
|
|
273
|
-
const qs = (req.url ?? '').split('?')[1];
|
|
274
|
-
if (qs) {
|
|
275
|
-
const match = qs.match(/(?:^|&)token=([^&]+)/);
|
|
276
|
-
if (match) return decodeURIComponent(match[1]);
|
|
277
|
-
}
|
|
278
|
-
return null;
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
/** Create MCP HTTP server. Returns server handle for lifecycle management. */
|
|
282
|
-
export function createMcpHttpServer(store: Tree, port: number): Server {
|
|
283
|
-
const server = createServer(async (req, res) => {
|
|
284
|
-
res.setHeader('Access-Control-Allow-Origin', '*');
|
|
285
|
-
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, DELETE, OPTIONS');
|
|
286
|
-
res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization, mcp-session-id');
|
|
287
|
-
if (req.method === 'OPTIONS') {
|
|
288
|
-
res.writeHead(204);
|
|
289
|
-
res.end();
|
|
290
|
-
return;
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
const url = (req.url ?? '/').split('?')[0];
|
|
294
|
-
if (url !== '/mcp') {
|
|
295
|
-
res.writeHead(404);
|
|
296
|
-
res.end('not found');
|
|
297
|
-
return;
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
// Auth: token from ?token= or Authorization header
|
|
301
|
-
// Dev mode: localhost without TENANT gets admin session (no token needed)
|
|
302
|
-
const token = extractToken(req);
|
|
303
|
-
let session: Session | null = null;
|
|
304
|
-
let devClaims: string[] | undefined;
|
|
305
|
-
if (token) {
|
|
306
|
-
session = await resolveToken(store, token);
|
|
307
|
-
} else if (!process.env.TENANT) {
|
|
308
|
-
session = { userId: 'mcp-dev' } as Session;
|
|
309
|
-
devClaims = ['u:mcp-dev', 'authenticated', 'admins'];
|
|
310
|
-
}
|
|
311
|
-
if (!session) {
|
|
312
|
-
res.writeHead(401, { 'Content-Type': 'text/plain' });
|
|
313
|
-
res.end('token required (?token= or Authorization: Bearer)');
|
|
314
|
-
return;
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
// Stateless: fresh transport + server per request, ACL-wrapped
|
|
318
|
-
const transport = new StreamableHTTPServerTransport({ sessionIdGenerator: undefined });
|
|
319
|
-
const mcp = await buildMcpServer(store, session, devClaims);
|
|
320
|
-
await mcp.connect(transport);
|
|
321
|
-
await transport.handleRequest(req, res);
|
|
322
|
-
});
|
|
323
|
-
|
|
324
|
-
server.listen(port, '127.0.0.1', () => console.log(`treenity mcp :${port}`));
|
|
325
|
-
return server;
|
|
326
|
-
}
|