@undefineds.co/xpod 0.2.35 → 0.2.37
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/agents/schema/agent-config.js +1 -1
- package/dist/agents/schema/agent-config.js.map +1 -1
- package/dist/agents/schema/create-agent-schema.js +17 -16
- package/dist/agents/schema/create-agent-schema.js.map +1 -1
- package/dist/agents/schema/tables.js +1 -1
- package/dist/agents/schema/tables.js.map +1 -1
- package/dist/ai/schema/config.js +1 -1
- package/dist/ai/schema/config.js.map +1 -1
- package/dist/ai/schema/model.js +2 -2
- package/dist/ai/schema/model.js.map +1 -1
- package/dist/ai/schema/provider.js +1 -1
- package/dist/ai/schema/provider.js.map +1 -1
- package/dist/ai/schema/vector-store.js +2 -2
- package/dist/ai/schema/vector-store.js.map +1 -1
- package/dist/credential/schema/tables.js +3 -3
- package/dist/credential/schema/tables.js.map +1 -1
- package/dist/runtime/Proxy.d.ts +1 -0
- package/dist/runtime/Proxy.js +9 -0
- package/dist/runtime/Proxy.js.map +1 -1
- package/package.json +2 -2
- package/node_modules/@undefineds.co/models/README.md +0 -578
- package/node_modules/@undefineds.co/models/dist/_drizzle-solid/columns.d.ts +0 -37
- package/node_modules/@undefineds.co/models/dist/_drizzle-solid/columns.js +0 -1
- package/node_modules/@undefineds.co/models/dist/_drizzle-solid/pod-table.d.ts +0 -3
- package/node_modules/@undefineds.co/models/dist/_drizzle-solid/pod-table.js +0 -1
- package/node_modules/@undefineds.co/models/dist/_drizzle-solid/types.d.ts +0 -40
- package/node_modules/@undefineds.co/models/dist/_drizzle-solid/types.js +0 -1
- package/node_modules/@undefineds.co/models/dist/agent.providers.d.ts +0 -13
- package/node_modules/@undefineds.co/models/dist/agent.providers.js +0 -69
- package/node_modules/@undefineds.co/models/dist/agent.repository.d.ts +0 -85
- package/node_modules/@undefineds.co/models/dist/agent.repository.js +0 -7
- package/node_modules/@undefineds.co/models/dist/agent.schema.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/agent.schema.js +0 -1
- package/node_modules/@undefineds.co/models/dist/ai-config/index.d.ts +0 -61
- package/node_modules/@undefineds.co/models/dist/ai-config/index.js +0 -294
- package/node_modules/@undefineds.co/models/dist/ai-config.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/ai-config.js +0 -1
- package/node_modules/@undefineds.co/models/dist/ai-model.schema.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/ai-model.schema.js +0 -1
- package/node_modules/@undefineds.co/models/dist/ai-provider.schema.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/ai-provider.schema.js +0 -1
- package/node_modules/@undefineds.co/models/dist/approval.schema.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/approval.schema.js +0 -1
- package/node_modules/@undefineds.co/models/dist/audit.schema.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/audit.schema.js +0 -1
- package/node_modules/@undefineds.co/models/dist/chat.repository.d.ts +0 -61
- package/node_modules/@undefineds.co/models/dist/chat.repository.js +0 -8
- package/node_modules/@undefineds.co/models/dist/chat.schema.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/chat.schema.js +0 -1
- package/node_modules/@undefineds.co/models/dist/chat.utils.d.ts +0 -3
- package/node_modules/@undefineds.co/models/dist/chat.utils.js +0 -30
- package/node_modules/@undefineds.co/models/dist/contact.repository.d.ts +0 -85
- package/node_modules/@undefineds.co/models/dist/contact.repository.js +0 -8
- package/node_modules/@undefineds.co/models/dist/contact.schema.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/contact.schema.js +0 -1
- package/node_modules/@undefineds.co/models/dist/core/agent-provider.schema.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/core/agent-provider.schema.js +0 -1
- package/node_modules/@undefineds.co/models/dist/core/agent-status.schema.d.ts +0 -12
- package/node_modules/@undefineds.co/models/dist/core/agent-status.schema.js +0 -18
- package/node_modules/@undefineds.co/models/dist/core/agent.schema.d.ts +0 -72
- package/node_modules/@undefineds.co/models/dist/core/agent.schema.js +0 -38
- package/node_modules/@undefineds.co/models/dist/core/ai-config.schema.d.ts +0 -11
- package/node_modules/@undefineds.co/models/dist/core/ai-config.schema.js +0 -18
- package/node_modules/@undefineds.co/models/dist/core/ai-model.schema.d.ts +0 -15
- package/node_modules/@undefineds.co/models/dist/core/ai-model.schema.js +0 -21
- package/node_modules/@undefineds.co/models/dist/core/ai-provider.schema.d.ts +0 -16
- package/node_modules/@undefineds.co/models/dist/core/ai-provider.schema.js +0 -28
- package/node_modules/@undefineds.co/models/dist/core/approval.schema.d.ts +0 -21
- package/node_modules/@undefineds.co/models/dist/core/approval.schema.js +0 -33
- package/node_modules/@undefineds.co/models/dist/core/audit.schema.d.ts +0 -17
- package/node_modules/@undefineds.co/models/dist/core/audit.schema.js +0 -29
- package/node_modules/@undefineds.co/models/dist/core/chat.schema.d.ts +0 -36
- package/node_modules/@undefineds.co/models/dist/core/chat.schema.js +0 -45
- package/node_modules/@undefineds.co/models/dist/core/contact.schema.d.ts +0 -47
- package/node_modules/@undefineds.co/models/dist/core/contact.schema.js +0 -59
- package/node_modules/@undefineds.co/models/dist/core/credential.schema.d.ts +0 -56
- package/node_modules/@undefineds.co/models/dist/core/credential.schema.js +0 -40
- package/node_modules/@undefineds.co/models/dist/core/extension/extension.schema.d.ts +0 -4
- package/node_modules/@undefineds.co/models/dist/core/extension/extension.schema.js +0 -11
- package/node_modules/@undefineds.co/models/dist/core/extension/index.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/core/extension/index.js +0 -1
- package/node_modules/@undefineds.co/models/dist/core/extension.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/core/extension.js +0 -1
- package/node_modules/@undefineds.co/models/dist/core/favorite/favorite.schema.d.ts +0 -24
- package/node_modules/@undefineds.co/models/dist/core/favorite/favorite.schema.js +0 -34
- package/node_modules/@undefineds.co/models/dist/core/favorite/index.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/core/favorite/index.js +0 -1
- package/node_modules/@undefineds.co/models/dist/core/file/file.schema.d.ts +0 -39
- package/node_modules/@undefineds.co/models/dist/core/file/file.schema.js +0 -51
- package/node_modules/@undefineds.co/models/dist/core/file/index.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/core/file/index.js +0 -1
- package/node_modules/@undefineds.co/models/dist/core/file.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/core/file.js +0 -1
- package/node_modules/@undefineds.co/models/dist/core/grant.schema.d.ts +0 -16
- package/node_modules/@undefineds.co/models/dist/core/grant.schema.js +0 -29
- package/node_modules/@undefineds.co/models/dist/core/import/import-job.schema.d.ts +0 -5
- package/node_modules/@undefineds.co/models/dist/core/import/import-job.schema.js +0 -5
- package/node_modules/@undefineds.co/models/dist/core/import/index.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/core/import/index.js +0 -1
- package/node_modules/@undefineds.co/models/dist/core/import.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/core/import.js +0 -1
- package/node_modules/@undefineds.co/models/dist/core/inbox-notification.schema.d.ts +0 -9
- package/node_modules/@undefineds.co/models/dist/core/inbox-notification.schema.js +0 -16
- package/node_modules/@undefineds.co/models/dist/core/index.d.ts +0 -31
- package/node_modules/@undefineds.co/models/dist/core/index.js +0 -32
- package/node_modules/@undefineds.co/models/dist/core/knowledge/index.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/core/knowledge/index.js +0 -1
- package/node_modules/@undefineds.co/models/dist/core/knowledge/knowledge-folder.schema.d.ts +0 -7
- package/node_modules/@undefineds.co/models/dist/core/knowledge/knowledge-folder.schema.js +0 -6
- package/node_modules/@undefineds.co/models/dist/core/knowledge.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/core/knowledge.js +0 -1
- package/node_modules/@undefineds.co/models/dist/core/message.schema.d.ts +0 -33
- package/node_modules/@undefineds.co/models/dist/core/message.schema.js +0 -49
- package/node_modules/@undefineds.co/models/dist/core/namespaces.d.ts +0 -176
- package/node_modules/@undefineds.co/models/dist/core/namespaces.js +0 -289
- package/node_modules/@undefineds.co/models/dist/core/profile.d.ts +0 -16
- package/node_modules/@undefineds.co/models/dist/core/profile.js +0 -19
- package/node_modules/@undefineds.co/models/dist/core/schema.d.ts +0 -304
- package/node_modules/@undefineds.co/models/dist/core/schema.js +0 -46
- package/node_modules/@undefineds.co/models/dist/core/session/index.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/core/session/index.js +0 -1
- package/node_modules/@undefineds.co/models/dist/core/session/session.schema.d.ts +0 -6
- package/node_modules/@undefineds.co/models/dist/core/session/session.schema.js +0 -6
- package/node_modules/@undefineds.co/models/dist/core/session.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/core/session.js +0 -1
- package/node_modules/@undefineds.co/models/dist/core/settings/index.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/core/settings/index.js +0 -1
- package/node_modules/@undefineds.co/models/dist/core/settings/settings.schema.d.ts +0 -49
- package/node_modules/@undefineds.co/models/dist/core/settings/settings.schema.js +0 -63
- package/node_modules/@undefineds.co/models/dist/core/settings.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/core/settings.js +0 -1
- package/node_modules/@undefineds.co/models/dist/core/thread.schema.d.ts +0 -28
- package/node_modules/@undefineds.co/models/dist/core/thread.schema.js +0 -36
- package/node_modules/@undefineds.co/models/dist/core/types/collaboration-blocks.d.ts +0 -52
- package/node_modules/@undefineds.co/models/dist/core/types/collaboration-blocks.js +0 -7
- package/node_modules/@undefineds.co/models/dist/core/types/message-block.d.ts +0 -270
- package/node_modules/@undefineds.co/models/dist/core/types/message-block.js +0 -125
- package/node_modules/@undefineds.co/models/dist/core/vector-store.schema.d.ts +0 -25
- package/node_modules/@undefineds.co/models/dist/core/vector-store.schema.js +0 -35
- package/node_modules/@undefineds.co/models/dist/core/vocab/_namespaces.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/core/vocab/_namespaces.js +0 -3
- package/node_modules/@undefineds.co/models/dist/core/vocab/chat.vocab.d.ts +0 -16
- package/node_modules/@undefineds.co/models/dist/core/vocab/chat.vocab.js +0 -22
- package/node_modules/@undefineds.co/models/dist/core/vocab/contact.vocab.d.ts +0 -21
- package/node_modules/@undefineds.co/models/dist/core/vocab/contact.vocab.js +0 -22
- package/node_modules/@undefineds.co/models/dist/core/vocab/index.d.ts +0 -6
- package/node_modules/@undefineds.co/models/dist/core/vocab/index.js +0 -6
- package/node_modules/@undefineds.co/models/dist/core/vocab/message.vocab.d.ts +0 -20
- package/node_modules/@undefineds.co/models/dist/core/vocab/message.vocab.js +0 -24
- package/node_modules/@undefineds.co/models/dist/core/vocab/sidecar.vocab.d.ts +0 -46
- package/node_modules/@undefineds.co/models/dist/core/vocab/sidecar.vocab.js +0 -47
- package/node_modules/@undefineds.co/models/dist/core/vocab/thread.vocab.d.ts +0 -11
- package/node_modules/@undefineds.co/models/dist/core/vocab/thread.vocab.js +0 -14
- package/node_modules/@undefineds.co/models/dist/core/vocab/workspace.vocab.d.ts +0 -12
- package/node_modules/@undefineds.co/models/dist/core/vocab/workspace.vocab.js +0 -13
- package/node_modules/@undefineds.co/models/dist/core/vocab.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/core/vocab.js +0 -1
- package/node_modules/@undefineds.co/models/dist/core/workspace.schema.d.ts +0 -35
- package/node_modules/@undefineds.co/models/dist/core/workspace.schema.js +0 -106
- package/node_modules/@undefineds.co/models/dist/core.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/core.js +0 -1
- package/node_modules/@undefineds.co/models/dist/credential.schema.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/credential.schema.js +0 -1
- package/node_modules/@undefineds.co/models/dist/discovery/index.d.ts +0 -31
- package/node_modules/@undefineds.co/models/dist/discovery/index.js +0 -147
- package/node_modules/@undefineds.co/models/dist/discovery/models.json +0 -2623
- package/node_modules/@undefineds.co/models/dist/discovery/providers.json +0 -156
- package/node_modules/@undefineds.co/models/dist/discovery/types.d.ts +0 -103
- package/node_modules/@undefineds.co/models/dist/discovery/types.js +0 -12
- package/node_modules/@undefineds.co/models/dist/discovery/vercel.d.ts +0 -25
- package/node_modules/@undefineds.co/models/dist/discovery/vercel.js +0 -95
- package/node_modules/@undefineds.co/models/dist/discovery.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/discovery.js +0 -1
- package/node_modules/@undefineds.co/models/dist/extension/extension.schema.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/extension/extension.schema.js +0 -1
- package/node_modules/@undefineds.co/models/dist/extension/index.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/extension/index.js +0 -1
- package/node_modules/@undefineds.co/models/dist/extension.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/extension.js +0 -1
- package/node_modules/@undefineds.co/models/dist/favorite/favorite.schema.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/favorite/favorite.schema.js +0 -1
- package/node_modules/@undefineds.co/models/dist/favorite/index.d.ts +0 -2
- package/node_modules/@undefineds.co/models/dist/favorite/index.js +0 -7
- package/node_modules/@undefineds.co/models/dist/favorite/starred-sync.d.ts +0 -66
- package/node_modules/@undefineds.co/models/dist/favorite/starred-sync.js +0 -156
- package/node_modules/@undefineds.co/models/dist/favorite.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/favorite.js +0 -1
- package/node_modules/@undefineds.co/models/dist/file/file.schema.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/file/file.schema.js +0 -1
- package/node_modules/@undefineds.co/models/dist/file/index.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/file/index.js +0 -1
- package/node_modules/@undefineds.co/models/dist/file.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/file.js +0 -1
- package/node_modules/@undefineds.co/models/dist/fixtures/contracts-chat-contact.d.ts +0 -13
- package/node_modules/@undefineds.co/models/dist/fixtures/contracts-chat-contact.js +0 -76
- package/node_modules/@undefineds.co/models/dist/grant.schema.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/grant.schema.js +0 -1
- package/node_modules/@undefineds.co/models/dist/import/import-job.schema.d.ts +0 -5
- package/node_modules/@undefineds.co/models/dist/import/import-job.schema.js +0 -5
- package/node_modules/@undefineds.co/models/dist/import/index.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/import/index.js +0 -1
- package/node_modules/@undefineds.co/models/dist/import.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/import.js +0 -1
- package/node_modules/@undefineds.co/models/dist/inbox-notification.schema.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/inbox-notification.schema.js +0 -1
- package/node_modules/@undefineds.co/models/dist/index.d.ts +0 -41
- package/node_modules/@undefineds.co/models/dist/index.js +0 -83
- package/node_modules/@undefineds.co/models/dist/knowledge/index.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/knowledge/index.js +0 -1
- package/node_modules/@undefineds.co/models/dist/knowledge/knowledge-folder.schema.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/knowledge/knowledge-folder.schema.js +0 -1
- package/node_modules/@undefineds.co/models/dist/knowledge.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/knowledge.js +0 -1
- package/node_modules/@undefineds.co/models/dist/message.repository.d.ts +0 -81
- package/node_modules/@undefineds.co/models/dist/message.repository.js +0 -8
- package/node_modules/@undefineds.co/models/dist/message.schema.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/message.schema.js +0 -1
- package/node_modules/@undefineds.co/models/dist/namespaces.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/namespaces.js +0 -1
- package/node_modules/@undefineds.co/models/dist/profile.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/profile.js +0 -1
- package/node_modules/@undefineds.co/models/dist/repository.d.ts +0 -59
- package/node_modules/@undefineds.co/models/dist/repository.js +0 -186
- package/node_modules/@undefineds.co/models/dist/schema.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/schema.js +0 -1
- package/node_modules/@undefineds.co/models/dist/session/index.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/session/index.js +0 -1
- package/node_modules/@undefineds.co/models/dist/session/session.schema.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/session/session.schema.js +0 -1
- package/node_modules/@undefineds.co/models/dist/session.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/session.js +0 -1
- package/node_modules/@undefineds.co/models/dist/settings/index.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/settings/index.js +0 -1
- package/node_modules/@undefineds.co/models/dist/settings/settings.schema.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/settings/settings.schema.js +0 -1
- package/node_modules/@undefineds.co/models/dist/settings.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/settings.js +0 -1
- package/node_modules/@undefineds.co/models/dist/sidecar/index.d.ts +0 -2
- package/node_modules/@undefineds.co/models/dist/sidecar/index.js +0 -2
- package/node_modules/@undefineds.co/models/dist/sidecar/persistence-mapping.d.ts +0 -51
- package/node_modules/@undefineds.co/models/dist/sidecar/persistence-mapping.js +0 -44
- package/node_modules/@undefineds.co/models/dist/sidecar/sidecar-events.d.ts +0 -632
- package/node_modules/@undefineds.co/models/dist/sidecar/sidecar-events.js +0 -133
- package/node_modules/@undefineds.co/models/dist/thread.repository.d.ts +0 -41
- package/node_modules/@undefineds.co/models/dist/thread.repository.js +0 -8
- package/node_modules/@undefineds.co/models/dist/thread.schema.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/thread.schema.js +0 -1
- package/node_modules/@undefineds.co/models/dist/types/collaboration-blocks.d.ts +0 -52
- package/node_modules/@undefineds.co/models/dist/types/collaboration-blocks.js +0 -7
- package/node_modules/@undefineds.co/models/dist/types/message-block.d.ts +0 -270
- package/node_modules/@undefineds.co/models/dist/types/message-block.js +0 -125
- package/node_modules/@undefineds.co/models/dist/vocab/_namespaces.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/vocab/_namespaces.js +0 -3
- package/node_modules/@undefineds.co/models/dist/vocab/chat.vocab.d.ts +0 -16
- package/node_modules/@undefineds.co/models/dist/vocab/chat.vocab.js +0 -22
- package/node_modules/@undefineds.co/models/dist/vocab/contact.vocab.d.ts +0 -21
- package/node_modules/@undefineds.co/models/dist/vocab/contact.vocab.js +0 -22
- package/node_modules/@undefineds.co/models/dist/vocab/index.d.ts +0 -6
- package/node_modules/@undefineds.co/models/dist/vocab/index.js +0 -6
- package/node_modules/@undefineds.co/models/dist/vocab/message.vocab.d.ts +0 -20
- package/node_modules/@undefineds.co/models/dist/vocab/message.vocab.js +0 -24
- package/node_modules/@undefineds.co/models/dist/vocab/sidecar.vocab.d.ts +0 -46
- package/node_modules/@undefineds.co/models/dist/vocab/sidecar.vocab.js +0 -47
- package/node_modules/@undefineds.co/models/dist/vocab/thread.vocab.d.ts +0 -11
- package/node_modules/@undefineds.co/models/dist/vocab/thread.vocab.js +0 -14
- package/node_modules/@undefineds.co/models/dist/vocab/workspace.vocab.d.ts +0 -12
- package/node_modules/@undefineds.co/models/dist/vocab/workspace.vocab.js +0 -13
- package/node_modules/@undefineds.co/models/dist/vocab.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/vocab.js +0 -1
- package/node_modules/@undefineds.co/models/dist/workspace.repository.d.ts +0 -45
- package/node_modules/@undefineds.co/models/dist/workspace.repository.js +0 -8
- package/node_modules/@undefineds.co/models/dist/workspace.schema.d.ts +0 -1
- package/node_modules/@undefineds.co/models/dist/workspace.schema.js +0 -1
- package/node_modules/@undefineds.co/models/package.json +0 -67
|
@@ -28,5 +28,5 @@ exports.AgentConfig = agentConfigSchema.table('AgentConfig', {
|
|
|
28
28
|
base: '/settings/ai/agents.ttl',
|
|
29
29
|
subjectTemplate: '#{id}',
|
|
30
30
|
});
|
|
31
|
-
exports.AgentStatus = models_1.
|
|
31
|
+
exports.AgentStatus = models_1.agentStatusResource;
|
|
32
32
|
//# sourceMappingURL=agent-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-config.js","sourceRoot":"","sources":["../../../src/agents/schema/agent-config.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"agent-config.js","sourceRoot":"","sources":["../../../src/agents/schema/agent-config.ts"],"names":[],"mappings":";;;AAAA,kDAA4D;AAC5D,+DAA0D;AAE1D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,iBAAiB,GAAG,IAAA,uCAAiB,EAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;AAExD,QAAA,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,aAAa,EAAE;IAChE,IAAI,EAAE,yBAAyB;IAC/B,eAAe,EAAE,OAAO;CACzB,CAAQ,CAAC;AAEG,QAAA,WAAW,GAAG,4BAA0B,CAAC","sourcesContent":["import { agentStatusResource } from '@undefineds.co/models';\nimport { createAgentSchema } from './create-agent-schema';\n\n/**\n * AgentConfig - Agent 配置\n *\n * RDF 示例:\n * <#indexing> a udfs:AgentConfig ;\n * foaf:name \"Indexing Agent\" ;\n * udfs:description \"文档索引 Agent,帮助用户的文件变得可检索\" ;\n * udfs:provider </settings/ai/providers.ttl#anthropic> ;\n * udfs:runtimeKind \"claude\" ;\n * udfs:model </settings/ai/models.ttl#glm-4.7> ;\n * udfs:systemPrompt \"你是 IndexAgent...\" ;\n * udfs:maxTurns \"20\" ;\n * udfs:enabled \"true\" .\n *\n * 说明:\n * - provider 指向通用 Provider,提供 baseUrl/defaultModel 等 Pod 配置\n * - runtimeKind 决定使用哪个 Agent Executor\n * - model 可以覆盖 provider 的 defaultModel\n * - instructions / systemPrompt 是 Agent 的核心提示词字段\n */\nconst agentConfigSchema = createAgentSchema({ nameRequired: false });\n\nexport const AgentConfig = agentConfigSchema.table('AgentConfig', {\n base: '/settings/ai/agents.ttl',\n subjectTemplate: '#{id}',\n}) as any;\n\nexport const AgentStatus = agentStatusResource as any;\n"]}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createAgentSchema = createAgentSchema;
|
|
4
4
|
const models_1 = require("@undefineds.co/models");
|
|
5
|
+
const udfs_1 = require("../../vocab/udfs");
|
|
5
6
|
const drizzle_solid_1 = require("@undefineds.co/drizzle-solid");
|
|
6
7
|
function createAgentSchema(options = {}) {
|
|
7
8
|
const nameColumn = (0, drizzle_solid_1.string)('name').predicate(models_1.FOAF.name);
|
|
@@ -10,25 +11,25 @@ function createAgentSchema(options = {}) {
|
|
|
10
11
|
name: options.nameRequired === false ? nameColumn : nameColumn.notNull(),
|
|
11
12
|
description: (0, drizzle_solid_1.text)('description').predicate(models_1.DCTerms.description),
|
|
12
13
|
avatarUrl: (0, drizzle_solid_1.uri)('avatarUrl').predicate(models_1.VCARD.hasPhoto),
|
|
13
|
-
instructions: (0, drizzle_solid_1.text)('instructions').predicate(
|
|
14
|
-
provider: (0, drizzle_solid_1.uri)('provider').predicate(
|
|
15
|
-
runtimeKind: (0, drizzle_solid_1.string)('runtimeKind').predicate(
|
|
16
|
-
credential: (0, drizzle_solid_1.uri)('credential').predicate(
|
|
17
|
-
model: (0, drizzle_solid_1.uri)('model').predicate(
|
|
18
|
-
enabled: (0, drizzle_solid_1.string)('enabled').predicate(
|
|
19
|
-
temperature: (0, drizzle_solid_1.real)('temperature').predicate(
|
|
20
|
-
tools: (0, drizzle_solid_1.text)('tools').array().predicate(
|
|
21
|
-
contextRound: (0, drizzle_solid_1.integer)('contextRound').predicate(
|
|
22
|
-
maxTurns: (0, drizzle_solid_1.integer)('maxTurns').predicate(
|
|
23
|
-
timeout: (0, drizzle_solid_1.integer)('timeout').predicate(
|
|
24
|
-
ttsModel: (0, drizzle_solid_1.uri)('ttsModel').predicate(
|
|
25
|
-
videoModel: (0, drizzle_solid_1.uri)('videoModel').predicate(
|
|
14
|
+
instructions: (0, drizzle_solid_1.text)('instructions').predicate((0, udfs_1.UDFS)('systemPrompt')),
|
|
15
|
+
provider: (0, drizzle_solid_1.uri)('provider').predicate((0, udfs_1.UDFS)('provider')),
|
|
16
|
+
runtimeKind: (0, drizzle_solid_1.string)('runtimeKind').predicate((0, udfs_1.UDFS)('runtimeKind')),
|
|
17
|
+
credential: (0, drizzle_solid_1.uri)('credential').predicate((0, udfs_1.UDFS)('credential')).link(models_1.credentialResource),
|
|
18
|
+
model: (0, drizzle_solid_1.uri)('model').predicate((0, udfs_1.UDFS)('model')).link(models_1.aiModelResource),
|
|
19
|
+
enabled: (0, drizzle_solid_1.string)('enabled').predicate((0, udfs_1.UDFS)('enabled')).default('true'),
|
|
20
|
+
temperature: (0, drizzle_solid_1.real)('temperature').predicate((0, udfs_1.UDFS)('temperature')).default(0.7),
|
|
21
|
+
tools: (0, drizzle_solid_1.text)('tools').array().predicate((0, udfs_1.UDFS)('tools')),
|
|
22
|
+
contextRound: (0, drizzle_solid_1.integer)('contextRound').predicate((0, udfs_1.UDFS)('contextRound')).default(4),
|
|
23
|
+
maxTurns: (0, drizzle_solid_1.integer)('maxTurns').predicate((0, udfs_1.UDFS)('maxTurns')),
|
|
24
|
+
timeout: (0, drizzle_solid_1.integer)('timeout').predicate((0, udfs_1.UDFS)('timeout')),
|
|
25
|
+
ttsModel: (0, drizzle_solid_1.uri)('ttsModel').predicate((0, udfs_1.UDFS)('ttsModel')).link(models_1.aiModelResource),
|
|
26
|
+
videoModel: (0, drizzle_solid_1.uri)('videoModel').predicate((0, udfs_1.UDFS)('videoModel')).link(models_1.aiModelResource),
|
|
26
27
|
createdAt: (0, drizzle_solid_1.timestamp)('createdAt').predicate(models_1.DCTerms.created).notNull().defaultNow(),
|
|
27
28
|
updatedAt: (0, drizzle_solid_1.timestamp)('updatedAt').predicate(models_1.DCTerms.modified).notNull().defaultNow(),
|
|
28
|
-
deletedAt: (0, drizzle_solid_1.timestamp)('deletedAt').predicate(
|
|
29
|
+
deletedAt: (0, drizzle_solid_1.timestamp)('deletedAt').predicate((0, udfs_1.UDFS)('deletedAt')),
|
|
29
30
|
}, {
|
|
30
|
-
type:
|
|
31
|
-
namespace:
|
|
31
|
+
type: udfs_1.UDFS.AgentConfig,
|
|
32
|
+
namespace: udfs_1.UDFS,
|
|
32
33
|
});
|
|
33
34
|
}
|
|
34
35
|
//# sourceMappingURL=create-agent-schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-agent-schema.js","sourceRoot":"","sources":["../../../src/agents/schema/create-agent-schema.ts"],"names":[],"mappings":";;AAsBA,8CA4BC;AAlDD,
|
|
1
|
+
{"version":3,"file":"create-agent-schema.js","sourceRoot":"","sources":["../../../src/agents/schema/create-agent-schema.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DCTerms,\n FOAF,\n VCARD,\n aiModelResource,\n credentialResource,\n} from '@undefineds.co/models';\nimport { UDFS } from '../../vocab/udfs';\nimport {\n integer,\n real,\n solidSchema,\n string,\n text,\n timestamp,\n uri,\n} from '@undefineds.co/drizzle-solid';\n\nexport interface CreateAgentSchemaOptions {\n nameRequired?: boolean;\n}\n\nexport function createAgentSchema(options: CreateAgentSchemaOptions = {}) {\n const nameColumn = string('name').predicate(FOAF.name);\n\n return solidSchema({\n id: string('id').primaryKey(),\n name: options.nameRequired === false ? nameColumn : nameColumn.notNull(),\n description: text('description').predicate(DCTerms.description),\n avatarUrl: uri('avatarUrl').predicate(VCARD.hasPhoto),\n instructions: text('instructions').predicate(UDFS('systemPrompt')),\n provider: uri('provider').predicate(UDFS('provider')),\n runtimeKind: string('runtimeKind').predicate(UDFS('runtimeKind')),\n credential: uri('credential').predicate(UDFS('credential')).link(credentialResource),\n model: uri('model').predicate(UDFS('model')).link(aiModelResource),\n enabled: string('enabled').predicate(UDFS('enabled')).default('true'),\n temperature: real('temperature').predicate(UDFS('temperature')).default(0.7),\n tools: text('tools').array().predicate(UDFS('tools')),\n contextRound: integer('contextRound').predicate(UDFS('contextRound')).default(4),\n maxTurns: integer('maxTurns').predicate(UDFS('maxTurns')),\n timeout: integer('timeout').predicate(UDFS('timeout')),\n ttsModel: uri('ttsModel').predicate(UDFS('ttsModel')).link(aiModelResource),\n videoModel: uri('videoModel').predicate(UDFS('videoModel')).link(aiModelResource),\n createdAt: timestamp('createdAt').predicate(DCTerms.created).notNull().defaultNow(),\n updatedAt: timestamp('updatedAt').predicate(DCTerms.modified).notNull().defaultNow(),\n deletedAt: timestamp('deletedAt').predicate(UDFS('deletedAt')),\n }, {\n type: UDFS.AgentConfig,\n namespace: UDFS,\n });\n}\n"]}
|
|
@@ -12,7 +12,7 @@ var RuntimeKind;
|
|
|
12
12
|
RuntimeKind["CODEBUDDY"] = "codebuddy";
|
|
13
13
|
RuntimeKind["CLAUDE"] = "claude";
|
|
14
14
|
})(RuntimeKind || (exports.RuntimeKind = RuntimeKind = {}));
|
|
15
|
-
exports.Provider = models_1.
|
|
15
|
+
exports.Provider = models_1.aiProviderResource;
|
|
16
16
|
/**
|
|
17
17
|
* Provider -> Model 关系定义
|
|
18
18
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tables.js","sourceRoot":"","sources":["../../../src/agents/schema/tables.ts"],"names":[],"mappings":";;;AAAA,gEAAyD;AACzD,
|
|
1
|
+
{"version":3,"file":"tables.js","sourceRoot":"","sources":["../../../src/agents/schema/tables.ts"],"names":[],"mappings":";;;AAAA,gEAAyD;AACzD,kDAA2D;AAC3D,iDAA8C;AAE9C;;GAEG;AACH,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,sCAAuB,CAAA;IACvB,gCAAiB,CAAA;AACnB,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB;AAEY,QAAA,QAAQ,GAAG,2BAAyB,CAAC;AAElD;;GAEG;AACU,QAAA,iBAAiB,GAAG,IAAA,yBAAS,EAAC,gBAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;IACjE,KAAK,EAAE,GAAG,CAAC,aAAK,EAAE;QAChB,MAAM,EAAE,CAAC,gBAAQ,CAAC,YAAY,CAAC;QAC/B,UAAU,EAAE,CAAC,aAAK,CAAC,EAAS,CAAC;KAC9B,CAAC;CACH,CAAC,CAAC,CAAC","sourcesContent":["import { relations } from '@undefineds.co/drizzle-solid';\nimport { aiProviderResource } from '@undefineds.co/models';\nimport { Model } from '../../ai/schema/model';\n\n/**\n * 运行时类型(Agent SDK 类型)\n */\nexport enum RuntimeKind {\n CODEBUDDY = 'codebuddy',\n CLAUDE = 'claude',\n}\n\nexport const Provider = aiProviderResource as any;\n\n/**\n * Provider -> Model 关系定义\n */\nexport const ProviderRelations = relations(Provider, ({ one }) => ({\n model: one(Model, {\n fields: [Provider.defaultModel],\n references: [Model.id as any],\n }),\n}));\n"]}
|
package/dist/ai/schema/config.js
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AIConfig = void 0;
|
|
4
4
|
const models_1 = require("@undefineds.co/models");
|
|
5
|
-
exports.AIConfig = models_1.
|
|
5
|
+
exports.AIConfig = models_1.aiConfigResource;
|
|
6
6
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/ai/schema/config.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/ai/schema/config.ts"],"names":[],"mappings":";;;AAAA,kDAAyD;AAE5C,QAAA,QAAQ,GAAG,yBAAuB,CAAC","sourcesContent":["import { aiConfigResource } from '@undefineds.co/models';\n\nexport const AIConfig = aiConfigResource as any;\n\nexport type AIConfigRow = typeof AIConfig.$inferSelect;\nexport type AIConfigInsert = typeof AIConfig.$inferInsert;\n"]}
|
package/dist/ai/schema/model.js
CHANGED
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ProviderRelations = exports.ModelRelations = exports.Model = void 0;
|
|
4
4
|
const drizzle_solid_1 = require("@undefineds.co/drizzle-solid");
|
|
5
5
|
const models_1 = require("@undefineds.co/models");
|
|
6
|
-
exports.Model = models_1.
|
|
7
|
-
const Provider = models_1.
|
|
6
|
+
exports.Model = models_1.aiModelResource;
|
|
7
|
+
const Provider = models_1.aiProviderResource;
|
|
8
8
|
exports.ModelRelations = (0, drizzle_solid_1.relations)(exports.Model, ({ one }) => ({
|
|
9
9
|
provider: one(Provider, {
|
|
10
10
|
fields: [exports.Model.isProvidedBy],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/ai/schema/model.ts"],"names":[],"mappings":";;;AAAA,gEAAyD;AACzD,
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/ai/schema/model.ts"],"names":[],"mappings":";;;AAAA,gEAAyD;AACzD,kDAA4E;AAE/D,QAAA,KAAK,GAAG,wBAAsB,CAAC;AAC5C,MAAM,QAAQ,GAAG,2BAAyB,CAAC;AAK9B,QAAA,cAAc,GAAG,IAAA,yBAAS,EAAC,aAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3D,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE;QACtB,MAAM,EAAE,CAAC,aAAK,CAAC,YAAY,CAAC;QAC5B,UAAU,EAAE,CAAC,QAAQ,CAAC,EAAS,CAAC;KACjC,CAAC;CACH,CAAC,CAAC,CAAC;AAES,QAAA,iBAAiB,GAAG,IAAA,yBAAS,EAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAClE,MAAM,EAAE,IAAI,CAAC,aAAK,EAAE;QAClB,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC3B,UAAU,EAAE,CAAC,aAAK,CAAC,EAAS,CAAC;KAC9B,CAAC;CACH,CAAC,CAAC,CAAC","sourcesContent":["import { relations } from '@undefineds.co/drizzle-solid';\nimport { aiModelResource, aiProviderResource } from '@undefineds.co/models';\n\nexport const Model = aiModelResource as any;\nconst Provider = aiProviderResource as any;\n\nexport type ModelRow = typeof Model.$inferSelect;\nexport type ModelInsert = typeof Model.$inferInsert;\n\nexport const ModelRelations = relations(Model, ({ one }) => ({\n provider: one(Provider, {\n fields: [Model.isProvidedBy],\n references: [Provider.id as any],\n }),\n}));\n\nexport const ProviderRelations = relations(Provider, ({ many }) => ({\n models: many(Model, {\n fields: [Provider.hasModel],\n references: [Model.id as any],\n }),\n}));\n"]}
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Provider = void 0;
|
|
4
4
|
const models_1 = require("@undefineds.co/models");
|
|
5
|
-
exports.Provider = models_1.
|
|
5
|
+
exports.Provider = models_1.aiProviderResource;
|
|
6
6
|
//# sourceMappingURL=provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/ai/schema/provider.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/ai/schema/provider.ts"],"names":[],"mappings":";;;AAAA,kDAA2D;AAE9C,QAAA,QAAQ,GAAG,2BAAyB,CAAC","sourcesContent":["import { aiProviderResource } from '@undefineds.co/models';\n\nexport const Provider = aiProviderResource as any;\n\nexport type ProviderRow = typeof Provider.$inferSelect;\nexport type ProviderInsert = typeof Provider.$inferInsert;\n"]}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.IndexedFile = exports.VectorStore = void 0;
|
|
4
4
|
const models_1 = require("@undefineds.co/models");
|
|
5
|
-
exports.VectorStore = models_1.
|
|
6
|
-
exports.IndexedFile = models_1.
|
|
5
|
+
exports.VectorStore = models_1.vectorStoreResource;
|
|
6
|
+
exports.IndexedFile = models_1.indexedFileResource;
|
|
7
7
|
//# sourceMappingURL=vector-store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vector-store.js","sourceRoot":"","sources":["../../../src/ai/schema/vector-store.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"vector-store.js","sourceRoot":"","sources":["../../../src/ai/schema/vector-store.ts"],"names":[],"mappings":";;;AAAA,kDAAiF;AAEpE,QAAA,WAAW,GAAG,4BAA0B,CAAC;AAKzC,QAAA,WAAW,GAAG,4BAA0B,CAAC","sourcesContent":["import { indexedFileResource, vectorStoreResource } from '@undefineds.co/models';\n\nexport const VectorStore = vectorStoreResource as any;\n\nexport type VectorStoreRow = typeof VectorStore.$inferSelect;\nexport type VectorStoreInsert = typeof VectorStore.$inferInsert;\n\nexport const IndexedFile = indexedFileResource as any;\n\nexport type IndexedFileRow = typeof IndexedFile.$inferSelect;\nexport type IndexedFileInsert = typeof IndexedFile.$inferInsert;\n"]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Credential = exports.OAuthCredential = exports.ApiKeyCredential = void 0;
|
|
4
4
|
const models_1 = require("@undefineds.co/models");
|
|
5
|
-
exports.ApiKeyCredential = models_1.
|
|
6
|
-
exports.OAuthCredential = models_1.
|
|
7
|
-
exports.Credential = models_1.
|
|
5
|
+
exports.ApiKeyCredential = models_1.apiKeyCredentialResource;
|
|
6
|
+
exports.OAuthCredential = models_1.oauthCredentialResource;
|
|
7
|
+
exports.Credential = models_1.credentialResource;
|
|
8
8
|
//# sourceMappingURL=tables.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tables.js","sourceRoot":"","sources":["../../../src/credential/schema/tables.ts"],"names":[],"mappings":";;;AAAA,kDAI+B;AAElB,QAAA,gBAAgB,GAAG,
|
|
1
|
+
{"version":3,"file":"tables.js","sourceRoot":"","sources":["../../../src/credential/schema/tables.ts"],"names":[],"mappings":";;;AAAA,kDAI+B;AAElB,QAAA,gBAAgB,GAAG,iCAA+B,CAAC;AACnD,QAAA,eAAe,GAAG,gCAA8B,CAAC;AACjD,QAAA,UAAU,GAAG,2BAAyB,CAAC","sourcesContent":["import {\n apiKeyCredentialResource,\n credentialResource,\n oauthCredentialResource,\n} from '@undefineds.co/models';\n\nexport const ApiKeyCredential = apiKeyCredentialResource as any;\nexport const OAuthCredential = oauthCredentialResource as any;\nexport const Credential = credentialResource as any;\n\nexport type ApiKeyCredentialRow = typeof ApiKeyCredential.$inferSelect;\nexport type ApiKeyCredentialInsert = typeof ApiKeyCredential.$inferInsert;\nexport type OAuthCredentialRow = typeof OAuthCredential.$inferSelect;\nexport type OAuthCredentialInsert = typeof OAuthCredential.$inferInsert;\nexport type CredentialRow = typeof Credential.$inferSelect;\nexport type CredentialInsert = typeof Credential.$inferInsert;\n"]}
|
package/dist/runtime/Proxy.d.ts
CHANGED
|
@@ -20,6 +20,7 @@ export declare class GatewayProxy {
|
|
|
20
20
|
stop(): Promise<void>;
|
|
21
21
|
private handleRequest;
|
|
22
22
|
private shouldInspectRootMutation;
|
|
23
|
+
private isWebIdProfileRoute;
|
|
23
24
|
private normalizeRootMutationProxyResponse;
|
|
24
25
|
private sanitizeProxyResponseHeaders;
|
|
25
26
|
private handleCorsPreflightRequest;
|
package/dist/runtime/Proxy.js
CHANGED
|
@@ -146,6 +146,10 @@ class GatewayProxy {
|
|
|
146
146
|
this.proxy.web(req, res, { target: this.toProxyTarget(this.targets.api) });
|
|
147
147
|
return;
|
|
148
148
|
}
|
|
149
|
+
if (this.isWebIdProfileRoute(url) && this.targets.api) {
|
|
150
|
+
this.proxy.web(req, res, { target: this.toProxyTarget(this.targets.api) });
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
149
153
|
// 3. CSS Routing (Default)
|
|
150
154
|
if (this.targets.css) {
|
|
151
155
|
const interceptedRequest = req;
|
|
@@ -169,6 +173,11 @@ class GatewayProxy {
|
|
|
169
173
|
const segments = pathname.split('/').filter(Boolean);
|
|
170
174
|
return segments.length === 1 && !segments[0].startsWith('.');
|
|
171
175
|
}
|
|
176
|
+
isWebIdProfileRoute(url) {
|
|
177
|
+
const pathname = new URL(url, 'http://localhost').pathname;
|
|
178
|
+
const segments = pathname.split('/').filter(Boolean);
|
|
179
|
+
return segments.length === 3 && segments[1] === 'profile' && segments[2] === 'card';
|
|
180
|
+
}
|
|
172
181
|
normalizeRootMutationProxyResponse(proxyRes, body) {
|
|
173
182
|
const headers = { ...proxyRes.headers };
|
|
174
183
|
const statusCode = proxyRes.statusCode ?? 500;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Proxy.js","sourceRoot":"","sources":["../../src/runtime/Proxy.ts"],"names":[],"mappings":"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","sourcesContent":["import httpProxy from 'http-proxy';\nimport http from 'http';\nimport { getLoggerFor } from 'global-logger-factory';\nimport type { Supervisor } from '../supervisor/Supervisor';\nimport { nodeRuntimeHost } from './host/node/NodeRuntimeHost';\nimport type { RuntimeHost, RuntimeListenEndpoint } from './host/types';\n\ntype InterceptedRequest = http.IncomingMessage & { __xpodInspectRootMutation?: boolean };\n\n// CORS configuration matching CSS CorsHandler defaults\nconst CORS_CONFIG = {\n methods: ['GET', 'HEAD', 'OPTIONS', 'POST', 'PUT', 'PATCH', 'DELETE'],\n credentials: true,\n allowedHeaders: [\n 'Authorization', 'Content-Type', 'Accept', 'DPoP', 'Origin',\n 'X-Requested-With', 'If-Match', 'If-None-Match', 'Slug', 'Link',\n ],\n exposedHeaders: [\n 'Accept-Patch', 'Accept-Post', 'Accept-Put', 'Allow', 'Content-Range',\n 'ETag', 'Last-Modified', 'Link', 'Location', 'Updates-Via',\n 'WAC-Allow', 'Www-Authenticate', 'X-Request-Id',\n ],\n};\n\nexport class GatewayProxy {\n private readonly logger = getLoggerFor(this);\n private proxy: httpProxy;\n private server: http.Server;\n private targets: { css?: GatewayProxyTarget; api?: GatewayProxyTarget } = {};\n private readonly runtimeHost: RuntimeHost;\n private readonly listenEndpoint: RuntimeListenEndpoint;\n private readonly exitOnStop: boolean;\n private readonly shutdownHandler?: () => Promise<void>;\n private readonly baseUrl?: string;\n\n constructor(\n port: number | undefined,\n private supervisor: Supervisor,\n bindHost = '0.0.0.0',\n options: GatewayProxyOptions = {},\n ) {\n this.runtimeHost = options.runtimeHost ?? nodeRuntimeHost;\n this.listenEndpoint = options.listenEndpoint ?? this.runtimeHost.createListenEndpoint({\n port,\n host: bindHost,\n socketPath: options.socketPath,\n });\n this.exitOnStop = options.exitOnStop ?? false;\n this.shutdownHandler = options.shutdownHandler;\n this.baseUrl = options.baseUrl;\n this.proxy = httpProxy.createProxyServer({\n xfwd: true,\n });\n\n this.proxy.on('error', (err, _req, res) => {\n this.logger.error('Proxy error:', err);\n if (res && 'writeHead' in res && !res.headersSent) {\n res.writeHead(502, { 'Content-Type': 'application/json' });\n res.end(JSON.stringify({ error: 'Service Unavailable', details: err.message }));\n }\n });\n\n this.proxy.on('proxyRes', (proxyRes, req, res) => {\n this.sanitizeProxyResponseHeaders(req, proxyRes);\n const interceptedRequest = req as InterceptedRequest;\n const outgoing = res as http.ServerResponse;\n if (!interceptedRequest.__xpodInspectRootMutation || !outgoing || outgoing.headersSent) {\n return;\n }\n\n const chunks: Buffer[] = [];\n proxyRes.on('data', (chunk) => {\n chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));\n });\n proxyRes.on('end', () => {\n const originalBody = Buffer.concat(chunks);\n const rewritten = this.normalizeRootMutationProxyResponse(proxyRes, originalBody);\n outgoing.writeHead(rewritten.statusCode, rewritten.headers);\n outgoing.end(rewritten.body);\n });\n });\n\n this.server = http.createServer(this.handleRequest.bind(this));\n\n this.server.on('upgrade', (req, socket, head) => {\n const url = req.url ?? '/';\n\n // Route /ws/* WebSocket connections to API server\n if (url.startsWith('/ws/') && this.targets.api) {\n this.proxy.ws(req, socket, head, { target: this.toProxyTarget(this.targets.api) as any });\n } else if (this.targets.css) {\n this.proxy.ws(req, socket, head, { target: this.toProxyTarget(this.targets.css) as any });\n } else {\n socket.destroy();\n }\n });\n }\n\n public setTargets(targets: { css?: string | GatewayProxyTarget; api?: string | GatewayProxyTarget }): void {\n this.targets = {\n css: this.normalizeTarget(targets.css),\n api: this.normalizeTarget(targets.api),\n };\n }\n\n public async start(): Promise<void> {\n await this.runtimeHost.listen(this.server, this.listenEndpoint);\n this.logger.info(`Listening on ${this.runtimeHost.formatListenEndpoint(this.listenEndpoint)}`);\n }\n\n public stop(): Promise<void> {\n return new Promise((resolve, reject) => {\n this.proxy.close();\n this.runtimeHost.close(this.server, this.listenEndpoint).then(() => {\n resolve();\n }, reject);\n });\n }\n\n private handleRequest(req: http.IncomingMessage, res: http.ServerResponse): void {\n const url = req.url ?? '/';\n const origin = req.headers.origin;\n\n // Store original host for x-forwarded-host before any rewrites\n const originalHost = req.headers.host;\n\n // Set x-forwarded-proto based on CSS_BASE_URL\n const baseUrl = this.baseUrl ?? process.env.CSS_BASE_URL ?? '';\n if (baseUrl.startsWith('https')) {\n req.headers['x-forwarded-proto'] = 'https';\n }\n\n // Rewrite Host header to match CSS_BASE_URL for proper routing\n if (baseUrl) {\n try {\n const parsedBaseUrl = new URL(baseUrl);\n req.headers.host = parsedBaseUrl.host;\n req.headers['x-forwarded-host'] = parsedBaseUrl.host;\n } catch {\n if (!req.headers['x-forwarded-host']) {\n req.headers['x-forwarded-host'] = originalHost;\n }\n }\n } else if (!req.headers['x-forwarded-host']) {\n req.headers['x-forwarded-host'] = originalHost;\n }\n\n this.logger.debug(\n `${req.method} ${url} x-forwarded-proto=${req.headers['x-forwarded-proto']} x-forwarded-host=${req.headers['x-forwarded-host']} host=${req.headers.host}`,\n );\n\n // 1. Internal service endpoints\n if (url.startsWith('/service/')) {\n if (req.method === 'OPTIONS') {\n this.handleCorsPreflightRequest(res, origin);\n return;\n }\n if (origin) {\n this.addCorsHeaders(res, origin);\n }\n void this.handleInternalApi(req, res);\n return;\n }\n\n // 2. API Server Routing (/v1 or /api)\n\n // 2a. Dashboard UI is served by API server under /dashboard/*\n if ((url === '/dashboard' || url.startsWith('/dashboard/')) && this.targets.api) {\n this.proxy.web(req, res, { target: this.toProxyTarget(this.targets.api) as any });\n return;\n }\n\n if ((url.startsWith('/v1/') || url.startsWith('/api/') || url.startsWith('/provision/')) && this.targets.api) {\n this.proxy.web(req, res, { target: this.toProxyTarget(this.targets.api) as any });\n return;\n }\n\n // 3. CSS Routing (Default)\n if (this.targets.css) {\n const interceptedRequest = req as InterceptedRequest;\n interceptedRequest.__xpodInspectRootMutation = this.shouldInspectRootMutation(req);\n this.proxy.web(req, res, {\n target: this.toProxyTarget(this.targets.css) as any,\n ...(interceptedRequest.__xpodInspectRootMutation ? { selfHandleResponse: true } : {}),\n } as any);\n } else {\n res.writeHead(503);\n res.end('CSS Service Not Available');\n }\n }\n\n private shouldInspectRootMutation(req: http.IncomingMessage): boolean {\n const method = (req.method ?? 'GET').toUpperCase();\n if (![ 'POST', 'PUT', 'PATCH', 'DELETE' ].includes(method)) {\n return false;\n }\n\n const pathname = new URL(req.url ?? '/', 'http://localhost').pathname;\n const segments = pathname.split('/').filter(Boolean);\n return segments.length === 1 && !segments[0].startsWith('.');\n }\n\n private normalizeRootMutationProxyResponse(\n proxyRes: http.IncomingMessage,\n body: Buffer,\n ): { statusCode: number; headers: http.OutgoingHttpHeaders; body: Buffer } {\n const headers: http.OutgoingHttpHeaders = { ...proxyRes.headers };\n const statusCode = proxyRes.statusCode ?? 500;\n const contentType = typeof proxyRes.headers['content-type'] === 'string'\n ? proxyRes.headers['content-type']\n : Array.isArray(proxyRes.headers['content-type'])\n ? proxyRes.headers['content-type'][0] ?? ''\n : '';\n const bodyText = contentType.includes('application/json') ? body.toString('utf8') : '';\n\n if (\n statusCode === 500 &&\n bodyText.includes('Cannot obtain the parent of') &&\n bodyText.includes('because it is a root container')\n ) {\n const normalizedBody = Buffer.from(JSON.stringify({\n name: 'ForbiddenHttpError',\n message: 'Write to server root is not allowed.',\n statusCode: 403,\n errorCode: 'H403',\n details: { cause: 'root-container-write' },\n }));\n delete headers['content-length'];\n delete headers['transfer-encoding'];\n headers['content-type'] = 'application/json';\n headers['content-length'] = String(normalizedBody.byteLength);\n return { statusCode: 403, headers, body: normalizedBody };\n }\n\n delete headers['transfer-encoding'];\n headers['content-length'] = String(body.byteLength);\n return { statusCode, headers, body };\n }\n\n private sanitizeProxyResponseHeaders(req: http.IncomingMessage, proxyRes: http.IncomingMessage): void {\n const method = (req.method ?? 'GET').toUpperCase();\n const statusCode = proxyRes.statusCode ?? 200;\n const headers = proxyRes.headers as Record<string, string | string[] | undefined>;\n const transferEncoding = headers['transfer-encoding'];\n const hasTransferEncoding = Array.isArray(transferEncoding)\n ? transferEncoding.some((value) => value.toLowerCase().includes('chunked'))\n : typeof transferEncoding === 'string'\n ? transferEncoding.toLowerCase().includes('chunked')\n : false;\n\n if (method === 'HEAD' || statusCode === 204 || statusCode === 304 || (statusCode >= 100 && statusCode < 200)) {\n delete headers['transfer-encoding'];\n return;\n }\n\n if (hasTransferEncoding && headers['content-length'] !== undefined) {\n delete headers['content-length'];\n }\n }\n\n private handleCorsPreflightRequest(\n res: http.ServerResponse,\n origin: string | undefined,\n ): void {\n this.addCorsHeaders(res, origin);\n res.writeHead(204);\n res.end();\n }\n\n /**\n * Add CORS headers matching CSS CorsHandler configuration\n */\n private addCorsHeaders(res: http.ServerResponse, origin: string | undefined): void {\n res.setHeader('Access-Control-Allow-Origin', origin || '*');\n res.setHeader('Access-Control-Allow-Credentials', String(CORS_CONFIG.credentials));\n res.setHeader('Access-Control-Allow-Methods', CORS_CONFIG.methods.join(', '));\n res.setHeader('Access-Control-Allow-Headers', CORS_CONFIG.allowedHeaders.join(', '));\n res.setHeader('Access-Control-Expose-Headers', CORS_CONFIG.exposedHeaders.join(', '));\n }\n\n private async handleInternalApi(req: http.IncomingMessage, res: http.ServerResponse): Promise<void> {\n try {\n const reqUrl = req.url ?? '/';\n const parsed = new URL(reqUrl, 'http://localhost');\n const pathname = parsed.pathname;\n\n if (pathname === '/service/status') {\n const status = this.supervisor.getAllStatus();\n const cssReady = await this.isCssReady();\n const code = cssReady ? 200 : 503;\n res.writeHead(code, { 'Content-Type': 'application/json' });\n res.end(JSON.stringify(status));\n return;\n }\n\n if (pathname === '/service/logs') {\n const level = parsed.searchParams.get('level') ?? undefined;\n const source = parsed.searchParams.get('source') ?? undefined;\n const limitValue = parsed.searchParams.get('limit');\n const limit = limitValue ? parseInt(limitValue, 10) : undefined;\n\n const logs = this.supervisor.getLogs({\n level,\n source,\n limit: Number.isFinite(limit as number) ? limit : undefined,\n });\n\n res.writeHead(200, { 'Content-Type': 'application/json' });\n res.end(JSON.stringify(logs));\n return;\n }\n\n if (pathname === '/service/stop' && req.method === 'POST') {\n res.writeHead(200, { 'Content-Type': 'application/json' });\n res.end(JSON.stringify({ ok: true }));\n setImmediate(() => {\n const shutdown = this.shutdownHandler ?? (() => this.supervisor.stopAll());\n void shutdown().then(() => {\n if (this.exitOnStop) {\n process.exit(0);\n }\n });\n });\n return;\n }\n\n res.writeHead(404);\n res.end('Not Found');\n } catch (error) {\n this.logger.error('Internal service endpoint failed:', error);\n if (!res.headersSent) {\n res.writeHead(500, { 'Content-Type': 'application/json' });\n }\n res.end(JSON.stringify({ error: 'Internal Server Error' }));\n }\n }\n\n private async isCssReady(): Promise<boolean> {\n if (!this.targets.css) {\n return true;\n }\n\n return this.runtimeHost.isConnectionTargetReady(this.targets.css, 1_500);\n }\n\n private normalizeTarget(target?: string | GatewayProxyTarget): GatewayProxyTarget | undefined {\n if (!target) {\n return undefined;\n }\n if (typeof target === 'string') {\n return { url: target };\n }\n return target;\n }\n\n private toProxyTarget(target: GatewayProxyTarget): string | { socketPath: string; protocol: string } {\n if (target.socketPath) {\n return {\n socketPath: target.socketPath,\n protocol: 'http:',\n };\n }\n return target.url!;\n }\n}\n\nexport interface GatewayProxyTarget {\n url?: string;\n socketPath?: string;\n}\n\nexport interface GatewayProxyOptions {\n socketPath?: string;\n listenEndpoint?: RuntimeListenEndpoint;\n runtimeHost?: RuntimeHost;\n exitOnStop?: boolean;\n shutdownHandler?: () => Promise<void>;\n baseUrl?: string;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Proxy.js","sourceRoot":"","sources":["../../src/runtime/Proxy.ts"],"names":[],"mappings":"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","sourcesContent":["import httpProxy from 'http-proxy';\nimport http from 'http';\nimport { getLoggerFor } from 'global-logger-factory';\nimport type { Supervisor } from '../supervisor/Supervisor';\nimport { nodeRuntimeHost } from './host/node/NodeRuntimeHost';\nimport type { RuntimeHost, RuntimeListenEndpoint } from './host/types';\n\ntype InterceptedRequest = http.IncomingMessage & { __xpodInspectRootMutation?: boolean };\n\n// CORS configuration matching CSS CorsHandler defaults\nconst CORS_CONFIG = {\n methods: ['GET', 'HEAD', 'OPTIONS', 'POST', 'PUT', 'PATCH', 'DELETE'],\n credentials: true,\n allowedHeaders: [\n 'Authorization', 'Content-Type', 'Accept', 'DPoP', 'Origin',\n 'X-Requested-With', 'If-Match', 'If-None-Match', 'Slug', 'Link',\n ],\n exposedHeaders: [\n 'Accept-Patch', 'Accept-Post', 'Accept-Put', 'Allow', 'Content-Range',\n 'ETag', 'Last-Modified', 'Link', 'Location', 'Updates-Via',\n 'WAC-Allow', 'Www-Authenticate', 'X-Request-Id',\n ],\n};\n\nexport class GatewayProxy {\n private readonly logger = getLoggerFor(this);\n private proxy: httpProxy;\n private server: http.Server;\n private targets: { css?: GatewayProxyTarget; api?: GatewayProxyTarget } = {};\n private readonly runtimeHost: RuntimeHost;\n private readonly listenEndpoint: RuntimeListenEndpoint;\n private readonly exitOnStop: boolean;\n private readonly shutdownHandler?: () => Promise<void>;\n private readonly baseUrl?: string;\n\n constructor(\n port: number | undefined,\n private supervisor: Supervisor,\n bindHost = '0.0.0.0',\n options: GatewayProxyOptions = {},\n ) {\n this.runtimeHost = options.runtimeHost ?? nodeRuntimeHost;\n this.listenEndpoint = options.listenEndpoint ?? this.runtimeHost.createListenEndpoint({\n port,\n host: bindHost,\n socketPath: options.socketPath,\n });\n this.exitOnStop = options.exitOnStop ?? false;\n this.shutdownHandler = options.shutdownHandler;\n this.baseUrl = options.baseUrl;\n this.proxy = httpProxy.createProxyServer({\n xfwd: true,\n });\n\n this.proxy.on('error', (err, _req, res) => {\n this.logger.error('Proxy error:', err);\n if (res && 'writeHead' in res && !res.headersSent) {\n res.writeHead(502, { 'Content-Type': 'application/json' });\n res.end(JSON.stringify({ error: 'Service Unavailable', details: err.message }));\n }\n });\n\n this.proxy.on('proxyRes', (proxyRes, req, res) => {\n this.sanitizeProxyResponseHeaders(req, proxyRes);\n const interceptedRequest = req as InterceptedRequest;\n const outgoing = res as http.ServerResponse;\n if (!interceptedRequest.__xpodInspectRootMutation || !outgoing || outgoing.headersSent) {\n return;\n }\n\n const chunks: Buffer[] = [];\n proxyRes.on('data', (chunk) => {\n chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));\n });\n proxyRes.on('end', () => {\n const originalBody = Buffer.concat(chunks);\n const rewritten = this.normalizeRootMutationProxyResponse(proxyRes, originalBody);\n outgoing.writeHead(rewritten.statusCode, rewritten.headers);\n outgoing.end(rewritten.body);\n });\n });\n\n this.server = http.createServer(this.handleRequest.bind(this));\n\n this.server.on('upgrade', (req, socket, head) => {\n const url = req.url ?? '/';\n\n // Route /ws/* WebSocket connections to API server\n if (url.startsWith('/ws/') && this.targets.api) {\n this.proxy.ws(req, socket, head, { target: this.toProxyTarget(this.targets.api) as any });\n } else if (this.targets.css) {\n this.proxy.ws(req, socket, head, { target: this.toProxyTarget(this.targets.css) as any });\n } else {\n socket.destroy();\n }\n });\n }\n\n public setTargets(targets: { css?: string | GatewayProxyTarget; api?: string | GatewayProxyTarget }): void {\n this.targets = {\n css: this.normalizeTarget(targets.css),\n api: this.normalizeTarget(targets.api),\n };\n }\n\n public async start(): Promise<void> {\n await this.runtimeHost.listen(this.server, this.listenEndpoint);\n this.logger.info(`Listening on ${this.runtimeHost.formatListenEndpoint(this.listenEndpoint)}`);\n }\n\n public stop(): Promise<void> {\n return new Promise((resolve, reject) => {\n this.proxy.close();\n this.runtimeHost.close(this.server, this.listenEndpoint).then(() => {\n resolve();\n }, reject);\n });\n }\n\n private handleRequest(req: http.IncomingMessage, res: http.ServerResponse): void {\n const url = req.url ?? '/';\n const origin = req.headers.origin;\n\n // Store original host for x-forwarded-host before any rewrites\n const originalHost = req.headers.host;\n\n // Set x-forwarded-proto based on CSS_BASE_URL\n const baseUrl = this.baseUrl ?? process.env.CSS_BASE_URL ?? '';\n if (baseUrl.startsWith('https')) {\n req.headers['x-forwarded-proto'] = 'https';\n }\n\n // Rewrite Host header to match CSS_BASE_URL for proper routing\n if (baseUrl) {\n try {\n const parsedBaseUrl = new URL(baseUrl);\n req.headers.host = parsedBaseUrl.host;\n req.headers['x-forwarded-host'] = parsedBaseUrl.host;\n } catch {\n if (!req.headers['x-forwarded-host']) {\n req.headers['x-forwarded-host'] = originalHost;\n }\n }\n } else if (!req.headers['x-forwarded-host']) {\n req.headers['x-forwarded-host'] = originalHost;\n }\n\n this.logger.debug(\n `${req.method} ${url} x-forwarded-proto=${req.headers['x-forwarded-proto']} x-forwarded-host=${req.headers['x-forwarded-host']} host=${req.headers.host}`,\n );\n\n // 1. Internal service endpoints\n if (url.startsWith('/service/')) {\n if (req.method === 'OPTIONS') {\n this.handleCorsPreflightRequest(res, origin);\n return;\n }\n if (origin) {\n this.addCorsHeaders(res, origin);\n }\n void this.handleInternalApi(req, res);\n return;\n }\n\n // 2. API Server Routing (/v1 or /api)\n\n // 2a. Dashboard UI is served by API server under /dashboard/*\n if ((url === '/dashboard' || url.startsWith('/dashboard/')) && this.targets.api) {\n this.proxy.web(req, res, { target: this.toProxyTarget(this.targets.api) as any });\n return;\n }\n\n if ((url.startsWith('/v1/') || url.startsWith('/api/') || url.startsWith('/provision/')) && this.targets.api) {\n this.proxy.web(req, res, { target: this.toProxyTarget(this.targets.api) as any });\n return;\n }\n\n if (this.isWebIdProfileRoute(url) && this.targets.api) {\n this.proxy.web(req, res, { target: this.toProxyTarget(this.targets.api) as any });\n return;\n }\n\n // 3. CSS Routing (Default)\n if (this.targets.css) {\n const interceptedRequest = req as InterceptedRequest;\n interceptedRequest.__xpodInspectRootMutation = this.shouldInspectRootMutation(req);\n this.proxy.web(req, res, {\n target: this.toProxyTarget(this.targets.css) as any,\n ...(interceptedRequest.__xpodInspectRootMutation ? { selfHandleResponse: true } : {}),\n } as any);\n } else {\n res.writeHead(503);\n res.end('CSS Service Not Available');\n }\n }\n\n private shouldInspectRootMutation(req: http.IncomingMessage): boolean {\n const method = (req.method ?? 'GET').toUpperCase();\n if (![ 'POST', 'PUT', 'PATCH', 'DELETE' ].includes(method)) {\n return false;\n }\n\n const pathname = new URL(req.url ?? '/', 'http://localhost').pathname;\n const segments = pathname.split('/').filter(Boolean);\n return segments.length === 1 && !segments[0].startsWith('.');\n }\n\n private isWebIdProfileRoute(url: string): boolean {\n const pathname = new URL(url, 'http://localhost').pathname;\n const segments = pathname.split('/').filter(Boolean);\n return segments.length === 3 && segments[1] === 'profile' && segments[2] === 'card';\n }\n\n private normalizeRootMutationProxyResponse(\n proxyRes: http.IncomingMessage,\n body: Buffer,\n ): { statusCode: number; headers: http.OutgoingHttpHeaders; body: Buffer } {\n const headers: http.OutgoingHttpHeaders = { ...proxyRes.headers };\n const statusCode = proxyRes.statusCode ?? 500;\n const contentType = typeof proxyRes.headers['content-type'] === 'string'\n ? proxyRes.headers['content-type']\n : Array.isArray(proxyRes.headers['content-type'])\n ? proxyRes.headers['content-type'][0] ?? ''\n : '';\n const bodyText = contentType.includes('application/json') ? body.toString('utf8') : '';\n\n if (\n statusCode === 500 &&\n bodyText.includes('Cannot obtain the parent of') &&\n bodyText.includes('because it is a root container')\n ) {\n const normalizedBody = Buffer.from(JSON.stringify({\n name: 'ForbiddenHttpError',\n message: 'Write to server root is not allowed.',\n statusCode: 403,\n errorCode: 'H403',\n details: { cause: 'root-container-write' },\n }));\n delete headers['content-length'];\n delete headers['transfer-encoding'];\n headers['content-type'] = 'application/json';\n headers['content-length'] = String(normalizedBody.byteLength);\n return { statusCode: 403, headers, body: normalizedBody };\n }\n\n delete headers['transfer-encoding'];\n headers['content-length'] = String(body.byteLength);\n return { statusCode, headers, body };\n }\n\n private sanitizeProxyResponseHeaders(req: http.IncomingMessage, proxyRes: http.IncomingMessage): void {\n const method = (req.method ?? 'GET').toUpperCase();\n const statusCode = proxyRes.statusCode ?? 200;\n const headers = proxyRes.headers as Record<string, string | string[] | undefined>;\n const transferEncoding = headers['transfer-encoding'];\n const hasTransferEncoding = Array.isArray(transferEncoding)\n ? transferEncoding.some((value) => value.toLowerCase().includes('chunked'))\n : typeof transferEncoding === 'string'\n ? transferEncoding.toLowerCase().includes('chunked')\n : false;\n\n if (method === 'HEAD' || statusCode === 204 || statusCode === 304 || (statusCode >= 100 && statusCode < 200)) {\n delete headers['transfer-encoding'];\n return;\n }\n\n if (hasTransferEncoding && headers['content-length'] !== undefined) {\n delete headers['content-length'];\n }\n }\n\n private handleCorsPreflightRequest(\n res: http.ServerResponse,\n origin: string | undefined,\n ): void {\n this.addCorsHeaders(res, origin);\n res.writeHead(204);\n res.end();\n }\n\n /**\n * Add CORS headers matching CSS CorsHandler configuration\n */\n private addCorsHeaders(res: http.ServerResponse, origin: string | undefined): void {\n res.setHeader('Access-Control-Allow-Origin', origin || '*');\n res.setHeader('Access-Control-Allow-Credentials', String(CORS_CONFIG.credentials));\n res.setHeader('Access-Control-Allow-Methods', CORS_CONFIG.methods.join(', '));\n res.setHeader('Access-Control-Allow-Headers', CORS_CONFIG.allowedHeaders.join(', '));\n res.setHeader('Access-Control-Expose-Headers', CORS_CONFIG.exposedHeaders.join(', '));\n }\n\n private async handleInternalApi(req: http.IncomingMessage, res: http.ServerResponse): Promise<void> {\n try {\n const reqUrl = req.url ?? '/';\n const parsed = new URL(reqUrl, 'http://localhost');\n const pathname = parsed.pathname;\n\n if (pathname === '/service/status') {\n const status = this.supervisor.getAllStatus();\n const cssReady = await this.isCssReady();\n const code = cssReady ? 200 : 503;\n res.writeHead(code, { 'Content-Type': 'application/json' });\n res.end(JSON.stringify(status));\n return;\n }\n\n if (pathname === '/service/logs') {\n const level = parsed.searchParams.get('level') ?? undefined;\n const source = parsed.searchParams.get('source') ?? undefined;\n const limitValue = parsed.searchParams.get('limit');\n const limit = limitValue ? parseInt(limitValue, 10) : undefined;\n\n const logs = this.supervisor.getLogs({\n level,\n source,\n limit: Number.isFinite(limit as number) ? limit : undefined,\n });\n\n res.writeHead(200, { 'Content-Type': 'application/json' });\n res.end(JSON.stringify(logs));\n return;\n }\n\n if (pathname === '/service/stop' && req.method === 'POST') {\n res.writeHead(200, { 'Content-Type': 'application/json' });\n res.end(JSON.stringify({ ok: true }));\n setImmediate(() => {\n const shutdown = this.shutdownHandler ?? (() => this.supervisor.stopAll());\n void shutdown().then(() => {\n if (this.exitOnStop) {\n process.exit(0);\n }\n });\n });\n return;\n }\n\n res.writeHead(404);\n res.end('Not Found');\n } catch (error) {\n this.logger.error('Internal service endpoint failed:', error);\n if (!res.headersSent) {\n res.writeHead(500, { 'Content-Type': 'application/json' });\n }\n res.end(JSON.stringify({ error: 'Internal Server Error' }));\n }\n }\n\n private async isCssReady(): Promise<boolean> {\n if (!this.targets.css) {\n return true;\n }\n\n return this.runtimeHost.isConnectionTargetReady(this.targets.css, 1_500);\n }\n\n private normalizeTarget(target?: string | GatewayProxyTarget): GatewayProxyTarget | undefined {\n if (!target) {\n return undefined;\n }\n if (typeof target === 'string') {\n return { url: target };\n }\n return target;\n }\n\n private toProxyTarget(target: GatewayProxyTarget): string | { socketPath: string; protocol: string } {\n if (target.socketPath) {\n return {\n socketPath: target.socketPath,\n protocol: 'http:',\n };\n }\n return target.url!;\n }\n}\n\nexport interface GatewayProxyTarget {\n url?: string;\n socketPath?: string;\n}\n\nexport interface GatewayProxyOptions {\n socketPath?: string;\n listenEndpoint?: RuntimeListenEndpoint;\n runtimeHost?: RuntimeHost;\n exitOnStop?: boolean;\n shutdownHandler?: () => Promise<void>;\n baseUrl?: string;\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@undefineds.co/xpod",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.37",
|
|
4
4
|
"description": "Xpod is an extended Community Solid Server, offering rich-feature, production-level Solid Pod and identity management.",
|
|
5
5
|
"repository": "https://github.com/undefinedsco/xpod",
|
|
6
6
|
"author": "developer@undefineds.co",
|
|
@@ -158,7 +158,7 @@
|
|
|
158
158
|
"@mariozechner/pi-coding-agent": "^0.55.1",
|
|
159
159
|
"@solid/community-server": "8.0.0-alpha.1",
|
|
160
160
|
"@undefineds.co/drizzle-solid": "^0.3.4",
|
|
161
|
-
"@undefineds.co/models": "0.
|
|
161
|
+
"@undefineds.co/models": "0.2.21",
|
|
162
162
|
"abstract-level": "^1.0.4",
|
|
163
163
|
"acme-client": "^5.1.3",
|
|
164
164
|
"ai": "^6.0.6",
|