@axiom-lattice/gateway 3.0.2 → 3.0.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.
- package/dist/index.js +31 -9
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +31 -9
- package/dist/index.mjs.map +1 -1
- package/package.json +9 -6
- package/.eslintrc.json +0 -22
- package/.turbo/turbo-build.log +0 -46
- package/AGENTS.md +0 -112
- package/CHANGELOG.md +0 -1190
- package/LOGGER_CONFIG.md +0 -135
- package/RESUME_STREAM_CONTENT_BASED.md +0 -326
- package/RESUME_STREAM_README.md +0 -388
- package/jest.config.js +0 -72
- package/public/sdk/README.md +0 -695
- package/public/sdk/dashboard-engine-skill.md +0 -1122
- package/public/sdk/dashboard-single-file-spec.md +0 -357
- package/public/sdk/data-query-sdk-skill.md +0 -307
- package/public/sdk/data-query-sdk.d.ts +0 -252
- package/public/sdk/data-query-sdk.js +0 -970
- package/public/sdk/occupancy-dashboard.html +0 -363
- package/public/sdk/test-dashboard.html +0 -690
- package/scripts/seed-lark-installation.ts +0 -54
- package/src/__tests__/__mocks__/e2b.ts +0 -1
- package/src/__tests__/a2a.test.ts +0 -428
- package/src/__tests__/channel-installations.test.ts +0 -199
- package/src/__tests__/data-query.test.ts +0 -77
- package/src/__tests__/sandbox-provider-registration.test.ts +0 -74
- package/src/__tests__/setup.ts +0 -5
- package/src/__tests__/workspace.test.ts +0 -400
- package/src/channels/__tests__/routes.test.ts +0 -50
- package/src/channels/lark/LarkChannelAdapter.ts +0 -217
- package/src/channels/lark/README.md +0 -187
- package/src/channels/lark/__tests__/controller.test.ts +0 -136
- package/src/channels/lark/__tests__/mapping-service.test.ts +0 -118
- package/src/channels/lark/__tests__/parser.test.ts +0 -72
- package/src/channels/lark/__tests__/sender.test.ts +0 -37
- package/src/channels/lark/__tests__/verification.test.ts +0 -157
- package/src/channels/lark/controller.ts +0 -48
- package/src/channels/lark/mapping-service.ts +0 -138
- package/src/channels/lark/parser.ts +0 -68
- package/src/channels/lark/routes.ts +0 -22
- package/src/channels/lark/sender.ts +0 -58
- package/src/channels/lark/types.ts +0 -20
- package/src/channels/lark/verification.ts +0 -32
- package/src/channels/registry.ts +0 -20
- package/src/channels/routes.ts +0 -30
- package/src/channels/wechat/WechatChannelAdapter.ts +0 -294
- package/src/channels/wechat/__tests__/context-store.test.ts +0 -148
- package/src/channels/wechat/context-store.ts +0 -54
- package/src/channels/wechat/controller.ts +0 -59
- package/src/channels/wechat/routes.ts +0 -7
- package/src/channels/wechat/types.ts +0 -62
- package/src/channels/wechat/wechat-client.ts +0 -162
- package/src/config/local-a2a-templates.ts +0 -59
- package/src/config.ts +0 -124
- package/src/controllers/__tests__/assistant-local-a2a.test.ts +0 -147
- package/src/controllers/__tests__/local-a2a-templates.test.ts +0 -112
- package/src/controllers/__tests__/mime.test.ts +0 -74
- package/src/controllers/__tests__/resources.test.ts +0 -122
- package/src/controllers/__tests__/run.test.ts +0 -115
- package/src/controllers/__tests__/tasks.test.ts +0 -215
- package/src/controllers/__tests__/workflow-tracking.test.ts +0 -113
- package/src/controllers/agent_task.ts +0 -72
- package/src/controllers/assistant.ts +0 -490
- package/src/controllers/auth.ts +0 -524
- package/src/controllers/channel-bindings.ts +0 -135
- package/src/controllers/channel-installations.ts +0 -409
- package/src/controllers/collections.ts +0 -176
- package/src/controllers/config.ts +0 -126
- package/src/controllers/connections.ts +0 -181
- package/src/controllers/data-query.ts +0 -236
- package/src/controllers/database-configs.ts +0 -440
- package/src/controllers/embeddings.ts +0 -22
- package/src/controllers/entries.ts +0 -167
- package/src/controllers/eval.ts +0 -513
- package/src/controllers/export-import.ts +0 -166
- package/src/controllers/health.ts +0 -36
- package/src/controllers/local-a2a-templates.ts +0 -18
- package/src/controllers/local-a2a.ts +0 -149
- package/src/controllers/mcp-configs.ts +0 -673
- package/src/controllers/memory.ts +0 -257
- package/src/controllers/menu-items.ts +0 -114
- package/src/controllers/metrics-configs.ts +0 -1061
- package/src/controllers/middleware-types.ts +0 -15
- package/src/controllers/models.ts +0 -199
- package/src/controllers/personal-assistant.ts +0 -191
- package/src/controllers/resources.ts +0 -477
- package/src/controllers/run.ts +0 -338
- package/src/controllers/sandbox.ts +0 -255
- package/src/controllers/schedules.ts +0 -336
- package/src/controllers/skills.ts +0 -256
- package/src/controllers/tasks.ts +0 -213
- package/src/controllers/tenants.ts +0 -121
- package/src/controllers/thread_status.ts +0 -66
- package/src/controllers/threads.ts +0 -260
- package/src/controllers/tools.ts +0 -139
- package/src/controllers/users.ts +0 -135
- package/src/controllers/workflow-tracking.ts +0 -693
- package/src/controllers/workspace.ts +0 -879
- package/src/export_registrations/a2a-api-key.registration.ts +0 -89
- package/src/export_registrations/agent.registration.ts +0 -80
- package/src/export_registrations/binding.registration.ts +0 -106
- package/src/export_registrations/channel-installation.registration.ts +0 -88
- package/src/export_registrations/collection.registration.ts +0 -85
- package/src/export_registrations/connection.registration.ts +0 -97
- package/src/export_registrations/database-config.registration.ts +0 -94
- package/src/export_registrations/eval.registration.ts +0 -334
- package/src/export_registrations/index.ts +0 -31
- package/src/export_registrations/mcp-config.registration.ts +0 -97
- package/src/export_registrations/menu.registration.ts +0 -91
- package/src/export_registrations/metrics-config.registration.ts +0 -94
- package/src/export_registrations/skill.registration.ts +0 -88
- package/src/export_registrations/task.registration.ts +0 -99
- package/src/index.ts +0 -497
- package/src/logger/Logger.ts +0 -186
- package/src/router/MessageContext.ts +0 -14
- package/src/router/MessageRouter.ts +0 -490
- package/src/router/middlewares/auditLogger.ts +0 -34
- package/src/router/middlewares/deduplication.ts +0 -38
- package/src/router/middlewares/index.ts +0 -3
- package/src/router/middlewares/rateLimit.ts +0 -46
- package/src/routes/__tests__/a2a-test-connection.test.ts +0 -177
- package/src/routes/a2a-bridge.ts +0 -266
- package/src/routes/a2a-test-connection.ts +0 -126
- package/src/routes/a2a.ts +0 -851
- package/src/routes/channel-bindings.ts +0 -11
- package/src/routes/channel-installations.ts +0 -33
- package/src/routes/index.ts +0 -640
- package/src/routes/menu-items.ts +0 -10
- package/src/routes/resource-routes.ts +0 -35
- package/src/routes/stt.ts +0 -102
- package/src/schemas/data-query.ts +0 -69
- package/src/schemas/index.ts +0 -852
- package/src/services/ExportImportService.ts +0 -296
- package/src/services/__tests__/ExportImportService.test.ts +0 -130
- package/src/services/__tests__/eval-runner.test.ts +0 -131
- package/src/services/__tests__/local-a2a.test.ts +0 -124
- package/src/services/agent_task_consumer.ts +0 -348
- package/src/services/collection_service.ts +0 -258
- package/src/services/eval-runner.ts +0 -283
- package/src/services/local-a2a.ts +0 -354
- package/src/services/queue_service.ts +0 -104
- package/src/services/sandbox_service.ts +0 -223
- package/src/services/skill_service.ts +0 -97
- package/src/services/supabase.ts +0 -60
- package/src/swagger.ts +0 -77
- package/src/types/index.ts +0 -118
- package/src/types/koa.d.ts +0 -7
- package/src/utils/__tests__/local-a2a-runtime.test.ts +0 -77
- package/src/utils/__tests__/path-containment.test.ts +0 -35
- package/src/utils/a2a-url.ts +0 -20
- package/src/utils/local-a2a-runtime.ts +0 -107
- package/src/utils/mime.ts +0 -44
- package/src/utils/path-containment.ts +0 -38
- package/tsconfig.json +0 -26
package/package.json
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@axiom-lattice/gateway",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.3",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
|
+
"files": [
|
|
6
|
+
"dist"
|
|
7
|
+
],
|
|
5
8
|
"module": "dist/index.mjs",
|
|
6
9
|
"types": "dist/index.d.ts",
|
|
7
10
|
"exports": {
|
|
@@ -41,11 +44,11 @@
|
|
|
41
44
|
"redis": "^5.0.1",
|
|
42
45
|
"uuid": "^9.0.1",
|
|
43
46
|
"zod": "3.25.76",
|
|
44
|
-
"@axiom-lattice/cli-a2a": "0.1.
|
|
45
|
-
"@axiom-lattice/core": "3.0.
|
|
46
|
-
"@axiom-lattice/pg-stores": "2.0.
|
|
47
|
-
"@axiom-lattice/protocols": "3.0.
|
|
48
|
-
"@axiom-lattice/queue-redis": "1.0.
|
|
47
|
+
"@axiom-lattice/cli-a2a": "0.1.8",
|
|
48
|
+
"@axiom-lattice/core": "3.0.3",
|
|
49
|
+
"@axiom-lattice/pg-stores": "2.0.3",
|
|
50
|
+
"@axiom-lattice/protocols": "3.0.2",
|
|
51
|
+
"@axiom-lattice/queue-redis": "1.0.56"
|
|
49
52
|
},
|
|
50
53
|
"devDependencies": {
|
|
51
54
|
"@types/bcrypt": "^6.0.0",
|
package/.eslintrc.json
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"root": true,
|
|
3
|
-
"env": {
|
|
4
|
-
"node": true,
|
|
5
|
-
"es2021": true
|
|
6
|
-
},
|
|
7
|
-
"extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended"],
|
|
8
|
-
"parser": "@typescript-eslint/parser",
|
|
9
|
-
"parserOptions": {
|
|
10
|
-
"ecmaVersion": 12,
|
|
11
|
-
"sourceType": "module"
|
|
12
|
-
},
|
|
13
|
-
"plugins": ["@typescript-eslint"],
|
|
14
|
-
"rules": {
|
|
15
|
-
"indent": "off", // 禁用缩进规则
|
|
16
|
-
"linebreak-style": ["warn", "unix"],
|
|
17
|
-
"semi": ["warn", "always"],
|
|
18
|
-
"no-unused-vars": "off",
|
|
19
|
-
"@typescript-eslint/no-unused-vars": ["warn"],
|
|
20
|
-
"@typescript-eslint/no-explicit-any": "off" // 禁用对 any 类型的检查
|
|
21
|
-
}
|
|
22
|
-
}
|
package/.turbo/turbo-build.log
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
> @axiom-lattice/gateway@3.0.2 build /home/runner/work/agentic/agentic/packages/gateway
|
|
3
|
-
> tsup src/index.ts --format cjs,esm --dts --clean --sourcemap
|
|
4
|
-
|
|
5
|
-
[34mCLI[39m Building entry: src/index.ts
|
|
6
|
-
[34mCLI[39m Using tsconfig: tsconfig.json
|
|
7
|
-
[34mCLI[39m tsup v8.5.0
|
|
8
|
-
[34mCLI[39m Target: es2020
|
|
9
|
-
[34mCLI[39m Cleaning output folder
|
|
10
|
-
[34mCJS[39m Build start
|
|
11
|
-
[34mESM[39m Build start
|
|
12
|
-
[warn] [33m▲ [43;33m[[43;30mWARNING[43;33m][0m [1m"import.meta" is not available with the "cjs" output format and will be empty[0m [empty-import-meta]
|
|
13
|
-
|
|
14
|
-
src/index.ts:200:33:
|
|
15
|
-
[37m 200 │ const __filename = fileURLToPath([32mimport.meta[37m.url);
|
|
16
|
-
╵ [32m~~~~~~~~~~~[0m
|
|
17
|
-
|
|
18
|
-
You need to set the output format to "esm" for "import.meta" to work correctly.
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
[32mESM[39m [1mdist/index.mjs [22m[32m371.32 KB[39m
|
|
22
|
-
[32mESM[39m [1mdist/mcp-configs-SHRMQHIL.mjs [22m[32m685.00 B[39m
|
|
23
|
-
[32mESM[39m [1mdist/chunk-K4XELOSO.mjs [22m[32m12.52 KB[39m
|
|
24
|
-
[32mESM[39m [1mdist/sender-PX32VSHB.mjs [22m[32m873.00 B[39m
|
|
25
|
-
[32mESM[39m [1mdist/WechatChannelAdapter-WSDKR4OA.mjs [22m[32m8.27 KB[39m
|
|
26
|
-
[32mESM[39m [1mdist/chunk-6CUQGDJI.mjs [22m[32m6.42 KB[39m
|
|
27
|
-
[32mESM[39m [1mdist/a2a-QMHEH3ZT.mjs [22m[32m17.78 KB[39m
|
|
28
|
-
[32mESM[39m [1mdist/resources-VA7LSDKN.mjs [22m[32m15.81 KB[39m
|
|
29
|
-
[32mESM[39m [1mdist/chunk-LHQY46YB.mjs [22m[32m1.46 KB[39m
|
|
30
|
-
[32mESM[39m [1mdist/index.mjs.map [22m[32m773.05 KB[39m
|
|
31
|
-
[32mESM[39m [1mdist/mcp-configs-SHRMQHIL.mjs.map [22m[32m71.00 B[39m
|
|
32
|
-
[32mESM[39m [1mdist/chunk-K4XELOSO.mjs.map [22m[32m25.53 KB[39m
|
|
33
|
-
[32mESM[39m [1mdist/sender-PX32VSHB.mjs.map [22m[32m2.07 KB[39m
|
|
34
|
-
[32mESM[39m [1mdist/WechatChannelAdapter-WSDKR4OA.mjs.map [22m[32m16.28 KB[39m
|
|
35
|
-
[32mESM[39m [1mdist/chunk-6CUQGDJI.mjs.map [22m[32m14.04 KB[39m
|
|
36
|
-
[32mESM[39m [1mdist/a2a-QMHEH3ZT.mjs.map [22m[32m35.64 KB[39m
|
|
37
|
-
[32mESM[39m [1mdist/resources-VA7LSDKN.mjs.map [22m[32m29.34 KB[39m
|
|
38
|
-
[32mESM[39m [1mdist/chunk-LHQY46YB.mjs.map [22m[32m2.39 KB[39m
|
|
39
|
-
[32mESM[39m ⚡️ Build success in 660ms
|
|
40
|
-
[32mCJS[39m [1mdist/index.js [22m[32m444.31 KB[39m
|
|
41
|
-
[32mCJS[39m [1mdist/index.js.map [22m[32m898.76 KB[39m
|
|
42
|
-
[32mCJS[39m ⚡️ Build success in 663ms
|
|
43
|
-
[34mDTS[39m Build start
|
|
44
|
-
[32mDTS[39m ⚡️ Build success in 21089ms
|
|
45
|
-
[32mDTS[39m [1mdist/index.d.ts [22m[32m7.57 KB[39m
|
|
46
|
-
[32mDTS[39m [1mdist/index.d.mts [22m[32m7.57 KB[39m
|
package/AGENTS.md
DELETED
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
## OVERVIEW
|
|
2
|
-
Fastify-based HTTP API gateway exposing REST endpoints for agent execution, thread management, and config CRUD.
|
|
3
|
-
|
|
4
|
-
## STRUCTURE
|
|
5
|
-
```
|
|
6
|
-
src/
|
|
7
|
-
index.ts # Gateway startup, Fastify config
|
|
8
|
-
routes/index.ts # Route definitions (registerLatticeRoutes)
|
|
9
|
-
controllers/ # Route handlers
|
|
10
|
-
run.ts # Agent execution endpoints
|
|
11
|
-
assistant.ts # Agent CRUD
|
|
12
|
-
threads.ts # Thread lifecycle
|
|
13
|
-
memory.ts # Agent state/memory access
|
|
14
|
-
skills.ts # Skill registry
|
|
15
|
-
tools.ts # Tool configs
|
|
16
|
-
models.ts # Model registry
|
|
17
|
-
schedules.ts # Task scheduling
|
|
18
|
-
database-configs.ts # DB connection configs
|
|
19
|
-
workspace.ts # Workspace CRUD
|
|
20
|
-
config.ts # Gateway config
|
|
21
|
-
health.ts # Health checks
|
|
22
|
-
services/ # Business logic
|
|
23
|
-
agent_service.ts # Agent invocation/streaming
|
|
24
|
-
queue_service.ts # Task queue (memory/redis)
|
|
25
|
-
agent_task_consumer.ts # Queue consumer
|
|
26
|
-
sandbox_service.ts # Sandbox proxy
|
|
27
|
-
channels/ # External channel adapters (Lark, Slack, etc.)
|
|
28
|
-
lark/ # Lark (Feishu) adapter
|
|
29
|
-
registry.ts # ChannelAdapterRegistry
|
|
30
|
-
router/ # Message routing
|
|
31
|
-
MessageRouter.ts # Inbound message dispatch + channel reply
|
|
32
|
-
MessageContext.ts # Request-scoped context
|
|
33
|
-
schemas/index.ts # Zod/Fastify schemas
|
|
34
|
-
logger/Logger.ts # Logger lattice integration
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
## WHERE TO LOOK
|
|
38
|
-
- **Run agent**: `routes/index.ts` (/api/runs), `controllers/run.ts`, `services/agent_service.ts`
|
|
39
|
-
- **Stream responses**: `controllers/run.ts` (SSE via reply.hijack), `services/agent_service.ts#agent_stream`
|
|
40
|
-
- **Thread CRUD**: `routes/index.ts`, `controllers/threads.ts`
|
|
41
|
-
- **Assistant CRUD**: `routes/index.ts`, `controllers/assistant.ts`
|
|
42
|
-
- **Memory/State**: `routes/index.ts` (/api/assistants/:id/:thread_id/state), `controllers/memory.ts`
|
|
43
|
-
- **Skills registry**: `routes/index.ts`, `controllers/skills.ts`
|
|
44
|
-
- **Scheduling**: `routes/index.ts`, `controllers/schedules.ts`
|
|
45
|
-
- **Config endpoints**: `routes/index.ts`, `controllers/config.ts`
|
|
46
|
-
- **DB configs**: `routes/index.ts`, `controllers/database-configs.ts`
|
|
47
|
-
- **Queue setup**: `services/queue_service.ts`, `services/agent_task_consumer.ts`
|
|
48
|
-
- **Logger lattice**: `logger/Logger.ts`, integration in `index.ts`
|
|
49
|
-
- **Channel message routing**: `router/MessageRouter.ts`, `channels/lark/`
|
|
50
|
-
- **Channel reply mechanism**: `router/MessageRouter.ts#dispatch` (see below)
|
|
51
|
-
|
|
52
|
-
## CHANNEL MESSAGE REPLY FLOW
|
|
53
|
-
|
|
54
|
-
When an external channel (e.g. Lark) sends a message to a bound agent, the gateway
|
|
55
|
-
routes the message and sends the AI response back to the channel. The flow:
|
|
56
|
-
|
|
57
|
-
```
|
|
58
|
-
1. Channel webhook → ChannelAdapter.receive(rawPayload)
|
|
59
|
-
→ InboundMessage with replyTarget set
|
|
60
|
-
|
|
61
|
-
2. MessageRouter.dispatch(inboundMessage)
|
|
62
|
-
→ resolve binding → create/reuse thread
|
|
63
|
-
→ subscribe to Agent 'reply:ready' event (before addMessage)
|
|
64
|
-
→ agent.addMessage({ custom_run_config: { _replyTarget: replyTarget } })
|
|
65
|
-
|
|
66
|
-
3. Agent queue processes the message
|
|
67
|
-
→ agentStreamExecutor() runs the agent
|
|
68
|
-
→ emits 'reply:ready' { state, customRunConfig }
|
|
69
|
-
|
|
70
|
-
4. reply:ready callback fires
|
|
71
|
-
→ extracts last AI message from state.values.messages
|
|
72
|
-
→ calls ChannelAdapter.sendReply(replyTarget, { text }, installation)
|
|
73
|
-
→ reply appears in the external channel
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
### Reply deduplication per thread
|
|
77
|
-
|
|
78
|
-
`MessageRouter` uses a counter-based subscription (`_replySubs: Map<string, { count, timer }>`) to handle
|
|
79
|
-
multiple concurrent dispatches on the same thread:
|
|
80
|
-
|
|
81
|
-
- Each dispatch increments the counter, only the first registers the `subscribeOnce` listener.
|
|
82
|
-
- When `reply:ready` fires, the callback decrements the counter. The subscription is removed
|
|
83
|
-
only when the counter reaches 0.
|
|
84
|
-
- A 1-hour timeout cleans up stale subscriptions (e.g. agent aborted, sequence error).
|
|
85
|
-
|
|
86
|
-
### Reply timing across QueueModes
|
|
87
|
-
|
|
88
|
-
| Mode | `reply:ready` emitted | Reply behavior |
|
|
89
|
-
|------|----------------------|----------------|
|
|
90
|
-
| STEER | After each execution | 1 reply per message |
|
|
91
|
-
| FOLLOWUP | After each execution | 1 reply per message |
|
|
92
|
-
| COLLECT | After the batch (all per-message events first) | 1 reply for the entire batch |
|
|
93
|
-
|
|
94
|
-
### Key logs for debugging
|
|
95
|
-
|
|
96
|
-
| Event | Meaning |
|
|
97
|
-
|-------|---------|
|
|
98
|
-
| `dispatch:reply:subscribed` | First reply subscription for this thread |
|
|
99
|
-
| `dispatch:reply:incremented` | Additional dispatch joined existing subscription |
|
|
100
|
-
| `dispatch:reply:sending` | AI text extracted, about to call sendReply |
|
|
101
|
-
| `dispatch:reply:sent` | Channel API responded OK |
|
|
102
|
-
| `dispatch:reply:failed` | Channel API returned an error |
|
|
103
|
-
| `dispatch:reply:empty` | Agent produced no output, skipping reply |
|
|
104
|
-
| `dispatch:reply:timeout` | No reply:ready fired within 1h, subscription cleaned up |
|
|
105
|
-
|
|
106
|
-
## CONVENTIONS
|
|
107
|
-
- Controllers export named handlers, consume from `services/`
|
|
108
|
-
- Services contain business logic, talk to `@axiom-lattice/core`
|
|
109
|
-
- Routes registered via `registerLatticeRoutes(app)`
|
|
110
|
-
- Streaming: use `reply.hijack()` + SSE headers, iterate async generators
|
|
111
|
-
- Tenant/workspace headers: `x-tenant-id`, `x-workspace-id`, `x-project-id`
|
|
112
|
-
- Schemas in `schemas/index.ts` for validation/Swagger
|