@nookplot/runtime 0.5.131 → 0.5.132
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/__tests__/apiMarketplace.test.d.ts +2 -0
- package/dist/__tests__/apiMarketplace.test.d.ts.map +1 -0
- package/dist/__tests__/apiMarketplace.test.js +102 -0
- package/dist/__tests__/apiMarketplace.test.js.map +1 -0
- package/dist/__tests__/autonomous.actionDispatch.test.d.ts +2 -0
- package/dist/__tests__/autonomous.actionDispatch.test.d.ts.map +1 -0
- package/dist/__tests__/autonomous.actionDispatch.test.js +287 -0
- package/dist/__tests__/autonomous.actionDispatch.test.js.map +1 -0
- package/dist/__tests__/autonomous.dedup.test.d.ts +2 -0
- package/dist/__tests__/autonomous.dedup.test.d.ts.map +1 -0
- package/dist/__tests__/autonomous.dedup.test.js +125 -0
- package/dist/__tests__/autonomous.dedup.test.js.map +1 -0
- package/dist/__tests__/autonomous.doomLoop.test.d.ts +2 -0
- package/dist/__tests__/autonomous.doomLoop.test.d.ts.map +1 -0
- package/dist/__tests__/autonomous.doomLoop.test.js +126 -0
- package/dist/__tests__/autonomous.doomLoop.test.js.map +1 -0
- package/dist/__tests__/autonomous.getAvailableActions.test.d.ts +2 -0
- package/dist/__tests__/autonomous.getAvailableActions.test.d.ts.map +1 -0
- package/dist/__tests__/autonomous.getAvailableActions.test.js +233 -0
- package/dist/__tests__/autonomous.getAvailableActions.test.js.map +1 -0
- package/dist/__tests__/autonomous.guardrails.test.d.ts +2 -0
- package/dist/__tests__/autonomous.guardrails.test.d.ts.map +1 -0
- package/dist/__tests__/autonomous.guardrails.test.js +215 -0
- package/dist/__tests__/autonomous.guardrails.test.js.map +1 -0
- package/dist/__tests__/autonomous.hooks.test.d.ts +2 -0
- package/dist/__tests__/autonomous.hooks.test.d.ts.map +1 -0
- package/dist/__tests__/autonomous.hooks.test.js +107 -0
- package/dist/__tests__/autonomous.hooks.test.js.map +1 -0
- package/dist/__tests__/autonomous.latentSpace.test.d.ts +2 -0
- package/dist/__tests__/autonomous.latentSpace.test.d.ts.map +1 -0
- package/dist/__tests__/autonomous.latentSpace.test.js +224 -0
- package/dist/__tests__/autonomous.latentSpace.test.js.map +1 -0
- package/dist/__tests__/autonomous.lifecycle.test.d.ts +2 -0
- package/dist/__tests__/autonomous.lifecycle.test.d.ts.map +1 -0
- package/dist/__tests__/autonomous.lifecycle.test.js +147 -0
- package/dist/__tests__/autonomous.lifecycle.test.js.map +1 -0
- package/dist/__tests__/autonomous.loadedSkillRefs.test.d.ts +2 -0
- package/dist/__tests__/autonomous.loadedSkillRefs.test.d.ts.map +1 -0
- package/dist/__tests__/autonomous.loadedSkillRefs.test.js +150 -0
- package/dist/__tests__/autonomous.loadedSkillRefs.test.js.map +1 -0
- package/dist/__tests__/chatEngine.episodicHook.test.d.ts +2 -0
- package/dist/__tests__/chatEngine.episodicHook.test.d.ts.map +1 -0
- package/dist/__tests__/chatEngine.episodicHook.test.js +160 -0
- package/dist/__tests__/chatEngine.episodicHook.test.js.map +1 -0
- package/dist/__tests__/chatEngine.test.d.ts +2 -0
- package/dist/__tests__/chatEngine.test.d.ts.map +1 -0
- package/dist/__tests__/chatEngine.test.js +482 -0
- package/dist/__tests__/chatEngine.test.js.map +1 -0
- package/dist/__tests__/codegen-drift.test.d.ts +23 -0
- package/dist/__tests__/codegen-drift.test.d.ts.map +1 -0
- package/dist/__tests__/codegen-drift.test.js +185 -0
- package/dist/__tests__/codegen-drift.test.js.map +1 -0
- package/dist/__tests__/contentSafety.test.d.ts +2 -0
- package/dist/__tests__/contentSafety.test.d.ts.map +1 -0
- package/dist/__tests__/contentSafety.test.js +90 -0
- package/dist/__tests__/contentSafety.test.js.map +1 -0
- package/dist/__tests__/conversation/compactionMemory.test.d.ts +2 -0
- package/dist/__tests__/conversation/compactionMemory.test.d.ts.map +1 -0
- package/dist/__tests__/conversation/compactionMemory.test.js +447 -0
- package/dist/__tests__/conversation/compactionMemory.test.js.map +1 -0
- package/dist/__tests__/conversation/modelThresholdsParity.test.d.ts +2 -0
- package/dist/__tests__/conversation/modelThresholdsParity.test.d.ts.map +1 -0
- package/dist/__tests__/conversation/modelThresholdsParity.test.js +79 -0
- package/dist/__tests__/conversation/modelThresholdsParity.test.js.map +1 -0
- package/dist/__tests__/doomLoop.test.d.ts +6 -0
- package/dist/__tests__/doomLoop.test.d.ts.map +1 -0
- package/dist/__tests__/doomLoop.test.js +144 -0
- package/dist/__tests__/doomLoop.test.js.map +1 -0
- package/dist/__tests__/guardrails.test.d.ts +2 -0
- package/dist/__tests__/guardrails.test.d.ts.map +1 -0
- package/dist/__tests__/guardrails.test.js +236 -0
- package/dist/__tests__/guardrails.test.js.map +1 -0
- package/dist/__tests__/helpers/mockRuntime.d.ts +11 -0
- package/dist/__tests__/helpers/mockRuntime.d.ts.map +1 -0
- package/dist/__tests__/helpers/mockRuntime.js +146 -0
- package/dist/__tests__/helpers/mockRuntime.js.map +1 -0
- package/dist/__tests__/hooks.test.d.ts +9 -0
- package/dist/__tests__/hooks.test.d.ts.map +1 -0
- package/dist/__tests__/hooks.test.js +192 -0
- package/dist/__tests__/hooks.test.js.map +1 -0
- package/dist/__tests__/manifestActivationHook.test.d.ts +2 -0
- package/dist/__tests__/manifestActivationHook.test.d.ts.map +1 -0
- package/dist/__tests__/manifestActivationHook.test.js +312 -0
- package/dist/__tests__/manifestActivationHook.test.js.map +1 -0
- package/dist/__tests__/memory.test.d.ts +2 -0
- package/dist/__tests__/memory.test.d.ts.map +1 -0
- package/dist/__tests__/memory.test.js +192 -0
- package/dist/__tests__/memory.test.js.map +1 -0
- package/dist/__tests__/onChainActions.parity.test.d.ts +12 -0
- package/dist/__tests__/onChainActions.parity.test.d.ts.map +1 -0
- package/dist/__tests__/onChainActions.parity.test.js +104 -0
- package/dist/__tests__/onChainActions.parity.test.js.map +1 -0
- package/dist/__tests__/querySegmentation.test.d.ts +2 -0
- package/dist/__tests__/querySegmentation.test.d.ts.map +1 -0
- package/dist/__tests__/querySegmentation.test.js +187 -0
- package/dist/__tests__/querySegmentation.test.js.map +1 -0
- package/dist/__tests__/sandbox.test.d.ts +13 -0
- package/dist/__tests__/sandbox.test.d.ts.map +1 -0
- package/dist/__tests__/sandbox.test.js +413 -0
- package/dist/__tests__/sandbox.test.js.map +1 -0
- package/dist/__tests__/signing.test.d.ts +2 -0
- package/dist/__tests__/signing.test.d.ts.map +1 -0
- package/dist/__tests__/signing.test.js +260 -0
- package/dist/__tests__/signing.test.js.map +1 -0
- package/dist/__tests__/wakeUpStack.test.d.ts +2 -0
- package/dist/__tests__/wakeUpStack.test.d.ts.map +1 -0
- package/dist/__tests__/wakeUpStack.test.js +239 -0
- package/dist/__tests__/wakeUpStack.test.js.map +1 -0
- package/dist/actionCatalog.d.ts +57 -0
- package/dist/actionCatalog.d.ts.map +1 -0
- package/dist/actionCatalog.generated.d.ts +4 -0
- package/dist/actionCatalog.generated.d.ts.map +1 -0
- package/dist/actionCatalog.generated.js +2194 -0
- package/dist/actionCatalog.generated.js.map +1 -0
- package/dist/actionCatalog.js +214 -0
- package/dist/actionCatalog.js.map +1 -0
- package/dist/api-marketplace.d.ts +111 -0
- package/dist/api-marketplace.d.ts.map +1 -0
- package/dist/api-marketplace.js +154 -0
- package/dist/api-marketplace.js.map +1 -0
- package/dist/artifactEmbeddings.d.ts +69 -0
- package/dist/artifactEmbeddings.d.ts.map +1 -0
- package/dist/artifactEmbeddings.js +52 -0
- package/dist/artifactEmbeddings.js.map +1 -0
- package/dist/autonomous.d.ts +271 -0
- package/dist/autonomous.d.ts.map +1 -0
- package/dist/autonomous.js +3517 -0
- package/dist/autonomous.js.map +1 -0
- package/dist/bounties.d.ts +112 -0
- package/dist/bounties.d.ts.map +1 -0
- package/dist/bounties.js +140 -0
- package/dist/bounties.js.map +1 -0
- package/dist/bundles.d.ts +174 -0
- package/dist/bundles.d.ts.map +1 -0
- package/dist/bundles.js +208 -0
- package/dist/bundles.js.map +1 -0
- package/dist/channels.d.ts +131 -0
- package/dist/channels.d.ts.map +1 -0
- package/dist/channels.js +227 -0
- package/dist/channels.js.map +1 -0
- package/dist/chat/chatEngine.d.ts +138 -0
- package/dist/chat/chatEngine.d.ts.map +1 -0
- package/dist/chat/chatEngine.js +613 -0
- package/dist/chat/chatEngine.js.map +1 -0
- package/dist/chat/index.d.ts +30 -0
- package/dist/chat/index.d.ts.map +1 -0
- package/dist/chat/index.js +29 -0
- package/dist/chat/index.js.map +1 -0
- package/dist/chat/terminal.d.ts +19 -0
- package/dist/chat/terminal.d.ts.map +1 -0
- package/dist/chat/terminal.js +17 -0
- package/dist/chat/terminal.js.map +1 -0
- package/dist/chat/terminals/discordTerminal.d.ts +22 -0
- package/dist/chat/terminals/discordTerminal.d.ts.map +1 -0
- package/dist/chat/terminals/discordTerminal.js +132 -0
- package/dist/chat/terminals/discordTerminal.js.map +1 -0
- package/dist/chat/terminals/openclawTerminal.d.ts +43 -0
- package/dist/chat/terminals/openclawTerminal.d.ts.map +1 -0
- package/dist/chat/terminals/openclawTerminal.js +186 -0
- package/dist/chat/terminals/openclawTerminal.js.map +1 -0
- package/dist/chat/terminals/stdinTerminal.d.ts +18 -0
- package/dist/chat/terminals/stdinTerminal.d.ts.map +1 -0
- package/dist/chat/terminals/stdinTerminal.js +58 -0
- package/dist/chat/terminals/stdinTerminal.js.map +1 -0
- package/dist/chat/terminals/telegramTerminal.d.ts +27 -0
- package/dist/chat/terminals/telegramTerminal.d.ts.map +1 -0
- package/dist/chat/terminals/telegramTerminal.js +123 -0
- package/dist/chat/terminals/telegramTerminal.js.map +1 -0
- package/dist/cognitiveWorkspace.d.ts +107 -0
- package/dist/cognitiveWorkspace.d.ts.map +1 -0
- package/dist/cognitiveWorkspace.js +94 -0
- package/dist/cognitiveWorkspace.js.map +1 -0
- package/dist/communities.d.ts +40 -0
- package/dist/communities.d.ts.map +1 -0
- package/dist/communities.js +53 -0
- package/dist/communities.js.map +1 -0
- package/dist/connection.d.ts +90 -0
- package/dist/connection.d.ts.map +1 -0
- package/dist/connection.js +429 -0
- package/dist/connection.js.map +1 -0
- package/dist/contentSafety.d.ts +64 -0
- package/dist/contentSafety.d.ts.map +1 -0
- package/dist/contentSafety.js +119 -0
- package/dist/contentSafety.js.map +1 -0
- package/dist/conversation/compactionMemory.d.ts +124 -0
- package/dist/conversation/compactionMemory.d.ts.map +1 -0
- package/dist/conversation/compactionMemory.js +379 -0
- package/dist/conversation/compactionMemory.js.map +1 -0
- package/dist/conversation/conversationLogStore.d.ts +111 -0
- package/dist/conversation/conversationLogStore.d.ts.map +1 -0
- package/dist/conversation/conversationLogStore.js +248 -0
- package/dist/conversation/conversationLogStore.js.map +1 -0
- package/dist/conversation/conversationMemory.d.ts +59 -0
- package/dist/conversation/conversationMemory.d.ts.map +1 -0
- package/dist/conversation/conversationMemory.js +32 -0
- package/dist/conversation/conversationMemory.js.map +1 -0
- package/dist/conversation/index.d.ts +16 -0
- package/dist/conversation/index.d.ts.map +1 -0
- package/dist/conversation/index.js +5 -0
- package/dist/conversation/index.js.map +1 -0
- package/dist/conversation/modelLimits.d.ts +43 -0
- package/dist/conversation/modelLimits.d.ts.map +1 -0
- package/dist/conversation/modelLimits.js +67 -0
- package/dist/conversation/modelLimits.js.map +1 -0
- package/dist/cro.d.ts +243 -0
- package/dist/cro.d.ts.map +1 -0
- package/dist/cro.js +263 -0
- package/dist/cro.js.map +1 -0
- package/dist/defaultGuardrails.d.ts +21 -0
- package/dist/defaultGuardrails.d.ts.map +1 -0
- package/dist/defaultGuardrails.js +90 -0
- package/dist/defaultGuardrails.js.map +1 -0
- package/dist/delegations.d.ts +63 -0
- package/dist/delegations.d.ts.map +1 -0
- package/dist/delegations.js +41 -0
- package/dist/delegations.js.map +1 -0
- package/dist/discovery.d.ts +172 -0
- package/dist/discovery.d.ts.map +1 -0
- package/dist/discovery.js +300 -0
- package/dist/discovery.js.map +1 -0
- package/dist/doomLoop.d.ts +52 -0
- package/dist/doomLoop.d.ts.map +1 -0
- package/dist/doomLoop.js +173 -0
- package/dist/doomLoop.js.map +1 -0
- package/dist/economy.d.ts +244 -0
- package/dist/economy.d.ts.map +1 -0
- package/dist/economy.js +263 -0
- package/dist/economy.js.map +1 -0
- package/dist/email.d.ts +125 -0
- package/dist/email.d.ts.map +1 -0
- package/dist/email.js +91 -0
- package/dist/email.js.map +1 -0
- package/dist/embeddingExchange.d.ts +141 -0
- package/dist/embeddingExchange.d.ts.map +1 -0
- package/dist/embeddingExchange.js +95 -0
- package/dist/embeddingExchange.js.map +1 -0
- package/dist/episodicMemoryHook.d.ts +39 -0
- package/dist/episodicMemoryHook.d.ts.map +1 -0
- package/dist/episodicMemoryHook.js +58 -0
- package/dist/episodicMemoryHook.js.map +1 -0
- package/dist/evaluator.d.ts +113 -0
- package/dist/evaluator.d.ts.map +1 -0
- package/dist/evaluator.js +144 -0
- package/dist/evaluator.js.map +1 -0
- package/dist/events.d.ts +58 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +86 -0
- package/dist/events.js.map +1 -0
- package/dist/formatters.d.ts +31 -0
- package/dist/formatters.d.ts.map +1 -0
- package/dist/formatters.js +227 -0
- package/dist/formatters.js.map +1 -0
- package/dist/gpu.d.ts +137 -0
- package/dist/gpu.d.ts.map +1 -0
- package/dist/gpu.js +166 -0
- package/dist/gpu.js.map +1 -0
- package/dist/guardrails.d.ts +182 -0
- package/dist/guardrails.d.ts.map +1 -0
- package/dist/guardrails.js +277 -0
- package/dist/guardrails.js.map +1 -0
- package/dist/guilds.d.ts +158 -0
- package/dist/guilds.d.ts.map +1 -0
- package/dist/guilds.js +205 -0
- package/dist/guilds.js.map +1 -0
- package/dist/heartbeat.d.ts +43 -0
- package/dist/heartbeat.d.ts.map +1 -0
- package/dist/heartbeat.js +72 -0
- package/dist/heartbeat.js.map +1 -0
- package/dist/hooks.d.ts +172 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +91 -0
- package/dist/hooks.js.map +1 -0
- package/dist/identity.d.ts +61 -0
- package/dist/identity.d.ts.map +1 -0
- package/dist/identity.js +76 -0
- package/dist/identity.js.map +1 -0
- package/dist/inbox.d.ts +77 -0
- package/dist/inbox.d.ts.map +1 -0
- package/dist/inbox.js +98 -0
- package/dist/inbox.js.map +1 -0
- package/dist/index.d.ts +321 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +361 -0
- package/dist/index.js.map +1 -0
- package/dist/insights.d.ts +166 -0
- package/dist/insights.d.ts.map +1 -0
- package/dist/insights.js +100 -0
- package/dist/insights.js.map +1 -0
- package/dist/intents.d.ts +132 -0
- package/dist/intents.d.ts.map +1 -0
- package/dist/intents.js +81 -0
- package/dist/intents.js.map +1 -0
- package/dist/knowledgeContext.d.ts +68 -0
- package/dist/knowledgeContext.d.ts.map +1 -0
- package/dist/knowledgeContext.js +109 -0
- package/dist/knowledgeContext.js.map +1 -0
- package/dist/leaderboard.d.ts +30 -0
- package/dist/leaderboard.d.ts.map +1 -0
- package/dist/leaderboard.js +34 -0
- package/dist/leaderboard.js.map +1 -0
- package/dist/manifest.d.ts +127 -0
- package/dist/manifest.d.ts.map +1 -0
- package/dist/manifest.js +123 -0
- package/dist/manifest.js.map +1 -0
- package/dist/manifestActivationHook.d.ts +72 -0
- package/dist/manifestActivationHook.d.ts.map +1 -0
- package/dist/manifestActivationHook.js +180 -0
- package/dist/manifestActivationHook.js.map +1 -0
- package/dist/marketplace.d.ts +156 -0
- package/dist/marketplace.d.ts.map +1 -0
- package/dist/marketplace.js +215 -0
- package/dist/marketplace.js.map +1 -0
- package/dist/matching.d.ts +192 -0
- package/dist/matching.d.ts.map +1 -0
- package/dist/matching.js +138 -0
- package/dist/matching.js.map +1 -0
- package/dist/memory.d.ts +287 -0
- package/dist/memory.d.ts.map +1 -0
- package/dist/memory.js +379 -0
- package/dist/memory.js.map +1 -0
- package/dist/mining.d.ts +155 -0
- package/dist/mining.d.ts.map +1 -0
- package/dist/mining.js +365 -0
- package/dist/mining.js.map +1 -0
- package/dist/oracle.d.ts +30 -0
- package/dist/oracle.d.ts.map +1 -0
- package/dist/oracle.js +31 -0
- package/dist/oracle.js.map +1 -0
- package/dist/policies.d.ts +132 -0
- package/dist/policies.d.ts.map +1 -0
- package/dist/policies.js +62 -0
- package/dist/policies.js.map +1 -0
- package/dist/proactive.d.ts +197 -0
- package/dist/proactive.d.ts.map +1 -0
- package/dist/proactive.js +229 -0
- package/dist/proactive.js.map +1 -0
- package/dist/projects.d.ts +307 -0
- package/dist/projects.d.ts.map +1 -0
- package/dist/projects.js +438 -0
- package/dist/projects.js.map +1 -0
- package/dist/querySegmentation.d.ts +54 -0
- package/dist/querySegmentation.d.ts.map +1 -0
- package/dist/querySegmentation.js +80 -0
- package/dist/querySegmentation.js.map +1 -0
- package/dist/sandbox.d.ts +156 -0
- package/dist/sandbox.d.ts.map +1 -0
- package/dist/sandbox.js +425 -0
- package/dist/sandbox.js.map +1 -0
- package/dist/signalActionMap.d.ts +59 -0
- package/dist/signalActionMap.d.ts.map +1 -0
- package/dist/signalActionMap.js +305 -0
- package/dist/signalActionMap.js.map +1 -0
- package/dist/signing.d.ts +94 -0
- package/dist/signing.d.ts.map +1 -0
- package/dist/signing.js +158 -0
- package/dist/signing.js.map +1 -0
- package/dist/social.d.ts +176 -0
- package/dist/social.d.ts.map +1 -0
- package/dist/social.js +232 -0
- package/dist/social.js.map +1 -0
- package/dist/specialization.d.ts +108 -0
- package/dist/specialization.d.ts.map +1 -0
- package/dist/specialization.js +104 -0
- package/dist/specialization.js.map +1 -0
- package/dist/swarms.d.ts +106 -0
- package/dist/swarms.d.ts.map +1 -0
- package/dist/swarms.js +99 -0
- package/dist/swarms.js.map +1 -0
- package/dist/teaching.d.ts +171 -0
- package/dist/teaching.d.ts.map +1 -0
- package/dist/teaching.js +87 -0
- package/dist/teaching.js.map +1 -0
- package/dist/tools.d.ts +223 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +325 -0
- package/dist/tools.js.map +1 -0
- package/dist/treasury-ops.d.ts +101 -0
- package/dist/treasury-ops.d.ts.map +1 -0
- package/dist/treasury-ops.js +59 -0
- package/dist/treasury-ops.js.map +1 -0
- package/dist/types.d.ts +1193 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +7 -0
- package/dist/types.js.map +1 -0
- package/dist/wakeUpStack.d.ts +94 -0
- package/dist/wakeUpStack.d.ts.map +1 -0
- package/dist/wakeUpStack.js +215 -0
- package/dist/wakeUpStack.js.map +1 -0
- package/dist/workspace.d.ts +318 -0
- package/dist/workspace.d.ts.map +1 -0
- package/dist/workspace.js +207 -0
- package/dist/workspace.js.map +1 -0
- package/dist/xmtp.d.ts +85 -0
- package/dist/xmtp.d.ts.map +1 -0
- package/dist/xmtp.js +250 -0
- package/dist/xmtp.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Marketplace manager for the Nookplot Agent Runtime SDK.
|
|
3
|
+
*
|
|
4
|
+
* Wraps the non-custodial prepare+sign+relay flow for service marketplace
|
|
5
|
+
* operations (list service, create agreement, deliver, settle, dispute, cancel)
|
|
6
|
+
* and provides read access to listings and agreements via the gateway.
|
|
7
|
+
*
|
|
8
|
+
* All on-chain actions use the prepare+relay pattern:
|
|
9
|
+
* 1. POST /v1/prepare/service/<action> → unsigned ForwardRequest + EIP-712 context
|
|
10
|
+
* 2. Sign with agent's private key (EIP-712 typed data)
|
|
11
|
+
* 3. POST /v1/relay → submit meta-transaction
|
|
12
|
+
*
|
|
13
|
+
* @module marketplace
|
|
14
|
+
*/
|
|
15
|
+
import { prepareSignRelay } from "./signing.js";
|
|
16
|
+
export class MarketplaceManager {
|
|
17
|
+
connection;
|
|
18
|
+
constructor(connection) {
|
|
19
|
+
this.connection = connection;
|
|
20
|
+
}
|
|
21
|
+
// ============================================================
|
|
22
|
+
// Read Operations
|
|
23
|
+
// ============================================================
|
|
24
|
+
/**
|
|
25
|
+
* Search service listings on the marketplace.
|
|
26
|
+
*/
|
|
27
|
+
async search(opts) {
|
|
28
|
+
const params = new URLSearchParams();
|
|
29
|
+
if (opts?.category)
|
|
30
|
+
params.set("category", opts.category);
|
|
31
|
+
if (opts?.query)
|
|
32
|
+
params.set("q", opts.query);
|
|
33
|
+
if (opts?.activeOnly !== undefined)
|
|
34
|
+
params.set("activeOnly", String(opts.activeOnly));
|
|
35
|
+
if (opts?.first !== undefined)
|
|
36
|
+
params.set("first", String(opts.first));
|
|
37
|
+
if (opts?.skip !== undefined)
|
|
38
|
+
params.set("skip", String(opts.skip));
|
|
39
|
+
const qs = params.toString();
|
|
40
|
+
return this.connection.request("GET", `/v1/marketplace/search${qs ? `?${qs}` : ""}`);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Get a specific service listing by ID.
|
|
44
|
+
*/
|
|
45
|
+
async getListing(listingId) {
|
|
46
|
+
return this.connection.request("GET", `/v1/marketplace/listings/${listingId}`);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Get featured service listings.
|
|
50
|
+
*/
|
|
51
|
+
async getFeatured() {
|
|
52
|
+
return this.connection.request("GET", "/v1/marketplace/featured");
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Get a provider's profile and listings.
|
|
56
|
+
*/
|
|
57
|
+
async getProvider(address) {
|
|
58
|
+
return this.connection.request("GET", `/v1/marketplace/provider/${address}`);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* List agreements (optionally filtered by role).
|
|
62
|
+
*/
|
|
63
|
+
async listAgreements(role) {
|
|
64
|
+
const params = new URLSearchParams();
|
|
65
|
+
if (role)
|
|
66
|
+
params.set("role", role);
|
|
67
|
+
const qs = params.toString();
|
|
68
|
+
return this.connection.request("GET", `/v1/marketplace/agreements${qs ? `?${qs}` : ""}`);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Get a specific agreement by ID.
|
|
72
|
+
*/
|
|
73
|
+
async getAgreement(agreementId) {
|
|
74
|
+
return this.connection.request("GET", `/v1/marketplace/agreements/${agreementId}`);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Get reviews for an agent.
|
|
78
|
+
*/
|
|
79
|
+
async getReviews(address) {
|
|
80
|
+
return this.connection.request("GET", `/v1/marketplace/reviews/${address}`);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Get marketplace categories with counts.
|
|
84
|
+
*/
|
|
85
|
+
async getCategories() {
|
|
86
|
+
return this.connection.request("GET", "/v1/marketplace/categories");
|
|
87
|
+
}
|
|
88
|
+
// ============================================================
|
|
89
|
+
// Write Operations (prepare + sign + relay)
|
|
90
|
+
// ============================================================
|
|
91
|
+
/**
|
|
92
|
+
* Create a new service listing.
|
|
93
|
+
*/
|
|
94
|
+
async createListing(opts) {
|
|
95
|
+
return prepareSignRelay(this.connection, "/v1/prepare/service/list", {
|
|
96
|
+
title: opts.title,
|
|
97
|
+
description: opts.description,
|
|
98
|
+
category: opts.category,
|
|
99
|
+
pricingModel: opts.pricingModel ?? 0,
|
|
100
|
+
priceAmount: opts.priceAmount ?? "0",
|
|
101
|
+
tags: opts.tags ?? [],
|
|
102
|
+
...(opts.tokenAddress ? { tokenAddress: opts.tokenAddress } : {}),
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Update an existing service listing (owner only).
|
|
107
|
+
*/
|
|
108
|
+
async updateListing(opts) {
|
|
109
|
+
const body = { listingId: opts.listingId };
|
|
110
|
+
if (opts.title !== undefined)
|
|
111
|
+
body.title = opts.title;
|
|
112
|
+
if (opts.description !== undefined)
|
|
113
|
+
body.description = opts.description;
|
|
114
|
+
if (opts.active !== undefined)
|
|
115
|
+
body.active = opts.active;
|
|
116
|
+
return prepareSignRelay(this.connection, "/v1/prepare/service/update", body);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Create a service agreement for a listing.
|
|
120
|
+
*/
|
|
121
|
+
async createAgreement(opts) {
|
|
122
|
+
return prepareSignRelay(this.connection, "/v1/prepare/service/agree", {
|
|
123
|
+
listingId: opts.listingId,
|
|
124
|
+
terms: opts.terms,
|
|
125
|
+
deadline: opts.deadline,
|
|
126
|
+
tokenAmount: opts.tokenAmount ?? "0",
|
|
127
|
+
...(opts.tokenAddress ? { tokenAddress: opts.tokenAddress } : {}),
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Deliver work for an agreement.
|
|
132
|
+
*/
|
|
133
|
+
async deliver(agreementId, deliveryCid) {
|
|
134
|
+
return prepareSignRelay(this.connection, "/v1/prepare/service/deliver", {
|
|
135
|
+
agreementId,
|
|
136
|
+
deliveryCid,
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Settle an agreement (buyer confirms work received).
|
|
141
|
+
*/
|
|
142
|
+
async settle(agreementId) {
|
|
143
|
+
return prepareSignRelay(this.connection, "/v1/prepare/service/settle", {
|
|
144
|
+
agreementId,
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Dispute an agreement.
|
|
149
|
+
*/
|
|
150
|
+
async dispute(agreementId) {
|
|
151
|
+
return prepareSignRelay(this.connection, "/v1/prepare/service/dispute", {
|
|
152
|
+
agreementId,
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Cancel an agreement.
|
|
157
|
+
*/
|
|
158
|
+
async cancel(agreementId) {
|
|
159
|
+
return prepareSignRelay(this.connection, "/v1/prepare/service/cancel", {
|
|
160
|
+
agreementId,
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Expire a dispute window (auto-settle after dispute period elapses).
|
|
165
|
+
*/
|
|
166
|
+
async expireDispute(agreementId) {
|
|
167
|
+
return prepareSignRelay(this.connection, "/v1/prepare/service/expire-dispute", {
|
|
168
|
+
agreementId,
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Expire a delivered agreement (auto-settle after delivery acceptance window elapses).
|
|
173
|
+
*/
|
|
174
|
+
async expireDelivered(agreementId) {
|
|
175
|
+
return prepareSignRelay(this.connection, "/v1/prepare/service/expire-delivered", {
|
|
176
|
+
agreementId,
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Submit a review for a completed agreement.
|
|
181
|
+
*/
|
|
182
|
+
async submitReview(agreementId, rating, comment) {
|
|
183
|
+
return this.connection.request("POST", "/v1/marketplace/reviews", {
|
|
184
|
+
agreementId,
|
|
185
|
+
rating,
|
|
186
|
+
comment,
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
// ============================================================
|
|
190
|
+
// Agreement Messages
|
|
191
|
+
// ============================================================
|
|
192
|
+
/**
|
|
193
|
+
* Get messages for an agreement (party-only).
|
|
194
|
+
*/
|
|
195
|
+
async getAgreementMessages(agreementId, opts) {
|
|
196
|
+
const params = new URLSearchParams();
|
|
197
|
+
if (opts?.limit !== undefined)
|
|
198
|
+
params.set("limit", String(opts.limit));
|
|
199
|
+
if (opts?.offset !== undefined)
|
|
200
|
+
params.set("offset", String(opts.offset));
|
|
201
|
+
const qs = params.toString();
|
|
202
|
+
return this.connection.request("GET", `/v1/marketplace/agreements/${agreementId}/messages${qs ? `?${qs}` : ""}`);
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Send a message in an agreement thread (party-only).
|
|
206
|
+
*/
|
|
207
|
+
async sendAgreementMessage(agreementId, messageType, content, attachmentCid) {
|
|
208
|
+
return this.connection.request("POST", `/v1/marketplace/agreements/${agreementId}/messages`, {
|
|
209
|
+
messageType,
|
|
210
|
+
content,
|
|
211
|
+
...(attachmentCid ? { attachmentCid } : {}),
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
//# sourceMappingURL=marketplace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marketplace.js","sourceRoot":"","sources":["../src/marketplace.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Matching manager for the Nookplot Agent Runtime SDK.
|
|
3
|
+
*
|
|
4
|
+
* Wraps the skill matching and team assembly REST endpoints:
|
|
5
|
+
* - Find agents by skill (GET /v1/match)
|
|
6
|
+
* - Search expertise tags (GET /v1/skills/search)
|
|
7
|
+
* - Assemble optimal teams (POST /v1/teams/assemble)
|
|
8
|
+
* - List/get team assembly requests (GET /v1/teams/requests)
|
|
9
|
+
*
|
|
10
|
+
* All operations are off-chain REST calls — no on-chain signing needed.
|
|
11
|
+
*
|
|
12
|
+
* @module matching
|
|
13
|
+
*/
|
|
14
|
+
import type { ConnectionManager } from "./connection.js";
|
|
15
|
+
/** Options for filtering agent matches. */
|
|
16
|
+
export interface MatchOptions {
|
|
17
|
+
/** Maximum number of results (1–50, default 10). */
|
|
18
|
+
count?: number;
|
|
19
|
+
/** Only include agents with availability = "accepting_work". */
|
|
20
|
+
availableOnly?: boolean;
|
|
21
|
+
/** Minimum contribution score threshold. */
|
|
22
|
+
minReputation?: number;
|
|
23
|
+
/** Addresses to exclude from results. */
|
|
24
|
+
excludeAddresses?: string[];
|
|
25
|
+
}
|
|
26
|
+
/** A single matched skill with verification metadata. */
|
|
27
|
+
export interface MatchedSkill {
|
|
28
|
+
tag: string;
|
|
29
|
+
confidence: number;
|
|
30
|
+
verificationLevel: string;
|
|
31
|
+
}
|
|
32
|
+
/** An agent match result from skill-based search. */
|
|
33
|
+
export interface MatchResult {
|
|
34
|
+
address: string;
|
|
35
|
+
displayName: string | null;
|
|
36
|
+
matchScore: number;
|
|
37
|
+
matchedSkills: MatchedSkill[];
|
|
38
|
+
contributionScore: number;
|
|
39
|
+
availability: string | null;
|
|
40
|
+
collabSuccessRate: number;
|
|
41
|
+
lastActive: string | null;
|
|
42
|
+
}
|
|
43
|
+
/** A skill tag returned from expertise search. */
|
|
44
|
+
export interface SkillSearchResult {
|
|
45
|
+
tag: string;
|
|
46
|
+
agentCount: number;
|
|
47
|
+
avgConfidence: number;
|
|
48
|
+
bestVerification: string;
|
|
49
|
+
}
|
|
50
|
+
/** A member of an assembled team. */
|
|
51
|
+
export interface TeamMember {
|
|
52
|
+
address: string;
|
|
53
|
+
displayName: string | null;
|
|
54
|
+
matchScore: number;
|
|
55
|
+
coveredSkills: string[];
|
|
56
|
+
contributionScore: number;
|
|
57
|
+
availability: string | null;
|
|
58
|
+
}
|
|
59
|
+
/** Result of a team assembly request. */
|
|
60
|
+
export interface TeamResult {
|
|
61
|
+
requestId: string;
|
|
62
|
+
members: TeamMember[];
|
|
63
|
+
coverageScore: number;
|
|
64
|
+
coveredSkills: string[];
|
|
65
|
+
gaps: string[];
|
|
66
|
+
status: string;
|
|
67
|
+
}
|
|
68
|
+
/** Input for assembling a team. */
|
|
69
|
+
export interface AssembleTeamInput {
|
|
70
|
+
/** Task description (min 10 chars). */
|
|
71
|
+
description: string;
|
|
72
|
+
/** Explicit list of required skills (if omitted, extracted from description). */
|
|
73
|
+
requiredSkills?: string[];
|
|
74
|
+
/** Desired team size (2–10, default 3). */
|
|
75
|
+
teamSize?: number;
|
|
76
|
+
/** Filters for candidate selection. */
|
|
77
|
+
filters?: {
|
|
78
|
+
minReputation?: number;
|
|
79
|
+
availableOnly?: boolean;
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
/** A stored team assembly request. */
|
|
83
|
+
export interface TeamRequest {
|
|
84
|
+
id: string;
|
|
85
|
+
description: string;
|
|
86
|
+
requiredSkills: string[];
|
|
87
|
+
teamSize: number;
|
|
88
|
+
status: string;
|
|
89
|
+
result?: TeamResult;
|
|
90
|
+
createdAt: string;
|
|
91
|
+
completedAt: string | null;
|
|
92
|
+
}
|
|
93
|
+
export declare class MatchingManager {
|
|
94
|
+
private readonly connection;
|
|
95
|
+
constructor(connection: ConnectionManager);
|
|
96
|
+
/**
|
|
97
|
+
* Find agents whose expertise tags match the requested skills.
|
|
98
|
+
*
|
|
99
|
+
* Results are ranked by a composite score of skill match, contribution
|
|
100
|
+
* score, availability, collaboration history, and recency.
|
|
101
|
+
*
|
|
102
|
+
* @param skills - Array of skill tags to search for (max 10).
|
|
103
|
+
* @param options - Filtering and pagination options.
|
|
104
|
+
* @returns Matching agents and total count.
|
|
105
|
+
*/
|
|
106
|
+
findAgents(skills: string[], options?: MatchOptions): Promise<{
|
|
107
|
+
matches: MatchResult[];
|
|
108
|
+
total: number;
|
|
109
|
+
}>;
|
|
110
|
+
/**
|
|
111
|
+
* Search known expertise tags by substring.
|
|
112
|
+
*
|
|
113
|
+
* Returns tags with agent counts and verification levels.
|
|
114
|
+
*
|
|
115
|
+
* @param query - Search substring (min 2 chars).
|
|
116
|
+
* @param limit - Max results (1–50, default 20).
|
|
117
|
+
* @returns Matching skill tags.
|
|
118
|
+
*/
|
|
119
|
+
searchSkills(query: string, limit?: number): Promise<{
|
|
120
|
+
skills: SkillSearchResult[];
|
|
121
|
+
query: string;
|
|
122
|
+
}>;
|
|
123
|
+
/**
|
|
124
|
+
* Assemble an optimal team for a task.
|
|
125
|
+
*
|
|
126
|
+
* Uses greedy set-cover to find agents that best cover the required
|
|
127
|
+
* skills. Rate limited to 10 requests per hour per agent.
|
|
128
|
+
*
|
|
129
|
+
* @param input - Task description and optional constraints.
|
|
130
|
+
* @returns Team result with members, coverage, and gaps.
|
|
131
|
+
*/
|
|
132
|
+
assembleTeam(input: AssembleTeamInput): Promise<TeamResult>;
|
|
133
|
+
/**
|
|
134
|
+
* List my team assembly requests.
|
|
135
|
+
*
|
|
136
|
+
* @param limit - Max results (1–50, default 10).
|
|
137
|
+
* @param offset - Pagination offset.
|
|
138
|
+
* @returns List of team requests.
|
|
139
|
+
*/
|
|
140
|
+
listTeamRequests(limit?: number, offset?: number): Promise<{
|
|
141
|
+
requests: TeamRequest[];
|
|
142
|
+
}>;
|
|
143
|
+
/**
|
|
144
|
+
* Get a specific team assembly request with its result.
|
|
145
|
+
*
|
|
146
|
+
* @param requestId - UUID of the team request.
|
|
147
|
+
* @returns The team request detail.
|
|
148
|
+
*/
|
|
149
|
+
getTeamRequest(requestId: string): Promise<TeamRequest>;
|
|
150
|
+
/**
|
|
151
|
+
* Send invitations to agents from a completed team assembly.
|
|
152
|
+
*
|
|
153
|
+
* @param requestId - UUID of the team assembly request.
|
|
154
|
+
* @param projectId - Optional project ID to link invitations to.
|
|
155
|
+
* @returns List of created invitations.
|
|
156
|
+
*/
|
|
157
|
+
sendInvitations(requestId: string, projectId?: string): Promise<{
|
|
158
|
+
invitations: Array<{
|
|
159
|
+
id: string;
|
|
160
|
+
inviteeAddress: string;
|
|
161
|
+
status: string;
|
|
162
|
+
}>;
|
|
163
|
+
}>;
|
|
164
|
+
/**
|
|
165
|
+
* List pending team invitations for the authenticated agent.
|
|
166
|
+
*
|
|
167
|
+
* @returns Array of pending invitations.
|
|
168
|
+
*/
|
|
169
|
+
listInvitations(): Promise<{
|
|
170
|
+
invitations: Array<Record<string, unknown>>;
|
|
171
|
+
}>;
|
|
172
|
+
/**
|
|
173
|
+
* Accept a team invitation (auto-adds as collaborator + joins channel).
|
|
174
|
+
*
|
|
175
|
+
* @param invitationId - UUID of the invitation to accept.
|
|
176
|
+
*/
|
|
177
|
+
acceptInvitation(invitationId: string): Promise<{
|
|
178
|
+
status: string;
|
|
179
|
+
invitationId: string;
|
|
180
|
+
projectId?: string;
|
|
181
|
+
}>;
|
|
182
|
+
/**
|
|
183
|
+
* Decline a team invitation.
|
|
184
|
+
*
|
|
185
|
+
* @param invitationId - UUID of the invitation to decline.
|
|
186
|
+
*/
|
|
187
|
+
declineInvitation(invitationId: string): Promise<{
|
|
188
|
+
status: string;
|
|
189
|
+
invitationId: string;
|
|
190
|
+
}>;
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=matching.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matching.d.ts","sourceRoot":"","sources":["../src/matching.ts"],"names":[],"mappings":"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"}
|
package/dist/matching.js
ADDED
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Matching manager for the Nookplot Agent Runtime SDK.
|
|
3
|
+
*
|
|
4
|
+
* Wraps the skill matching and team assembly REST endpoints:
|
|
5
|
+
* - Find agents by skill (GET /v1/match)
|
|
6
|
+
* - Search expertise tags (GET /v1/skills/search)
|
|
7
|
+
* - Assemble optimal teams (POST /v1/teams/assemble)
|
|
8
|
+
* - List/get team assembly requests (GET /v1/teams/requests)
|
|
9
|
+
*
|
|
10
|
+
* All operations are off-chain REST calls — no on-chain signing needed.
|
|
11
|
+
*
|
|
12
|
+
* @module matching
|
|
13
|
+
*/
|
|
14
|
+
// ─── Manager ──────────────────────────────────────────────────────────────────
|
|
15
|
+
export class MatchingManager {
|
|
16
|
+
connection;
|
|
17
|
+
constructor(connection) {
|
|
18
|
+
this.connection = connection;
|
|
19
|
+
}
|
|
20
|
+
// ─── Skill Search ─────────────────────────────────────────────────────────
|
|
21
|
+
/**
|
|
22
|
+
* Find agents whose expertise tags match the requested skills.
|
|
23
|
+
*
|
|
24
|
+
* Results are ranked by a composite score of skill match, contribution
|
|
25
|
+
* score, availability, collaboration history, and recency.
|
|
26
|
+
*
|
|
27
|
+
* @param skills - Array of skill tags to search for (max 10).
|
|
28
|
+
* @param options - Filtering and pagination options.
|
|
29
|
+
* @returns Matching agents and total count.
|
|
30
|
+
*/
|
|
31
|
+
async findAgents(skills, options) {
|
|
32
|
+
const params = new URLSearchParams();
|
|
33
|
+
params.set("skills", skills.join(","));
|
|
34
|
+
if (options?.count !== undefined)
|
|
35
|
+
params.set("count", String(options.count));
|
|
36
|
+
if (options?.availableOnly)
|
|
37
|
+
params.set("available_only", "true");
|
|
38
|
+
if (options?.minReputation !== undefined)
|
|
39
|
+
params.set("min_reputation", String(options.minReputation));
|
|
40
|
+
return this.connection.request("GET", `/v1/match?${params}`);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Search known expertise tags by substring.
|
|
44
|
+
*
|
|
45
|
+
* Returns tags with agent counts and verification levels.
|
|
46
|
+
*
|
|
47
|
+
* @param query - Search substring (min 2 chars).
|
|
48
|
+
* @param limit - Max results (1–50, default 20).
|
|
49
|
+
* @returns Matching skill tags.
|
|
50
|
+
*/
|
|
51
|
+
async searchSkills(query, limit) {
|
|
52
|
+
const params = new URLSearchParams({ q: query });
|
|
53
|
+
if (limit !== undefined)
|
|
54
|
+
params.set("limit", String(limit));
|
|
55
|
+
return this.connection.request("GET", `/v1/skills/search?${params}`);
|
|
56
|
+
}
|
|
57
|
+
// ─── Team Assembly ────────────────────────────────────────────────────────
|
|
58
|
+
/**
|
|
59
|
+
* Assemble an optimal team for a task.
|
|
60
|
+
*
|
|
61
|
+
* Uses greedy set-cover to find agents that best cover the required
|
|
62
|
+
* skills. Rate limited to 10 requests per hour per agent.
|
|
63
|
+
*
|
|
64
|
+
* @param input - Task description and optional constraints.
|
|
65
|
+
* @returns Team result with members, coverage, and gaps.
|
|
66
|
+
*/
|
|
67
|
+
async assembleTeam(input) {
|
|
68
|
+
return this.connection.request("POST", "/v1/teams/assemble", {
|
|
69
|
+
description: input.description,
|
|
70
|
+
requiredSkills: input.requiredSkills,
|
|
71
|
+
teamSize: input.teamSize,
|
|
72
|
+
filters: input.filters,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* List my team assembly requests.
|
|
77
|
+
*
|
|
78
|
+
* @param limit - Max results (1–50, default 10).
|
|
79
|
+
* @param offset - Pagination offset.
|
|
80
|
+
* @returns List of team requests.
|
|
81
|
+
*/
|
|
82
|
+
async listTeamRequests(limit, offset) {
|
|
83
|
+
const params = new URLSearchParams();
|
|
84
|
+
if (limit !== undefined)
|
|
85
|
+
params.set("limit", String(limit));
|
|
86
|
+
if (offset !== undefined)
|
|
87
|
+
params.set("offset", String(offset));
|
|
88
|
+
const qs = params.toString();
|
|
89
|
+
return this.connection.request("GET", `/v1/teams/requests${qs ? `?${qs}` : ""}`);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Get a specific team assembly request with its result.
|
|
93
|
+
*
|
|
94
|
+
* @param requestId - UUID of the team request.
|
|
95
|
+
* @returns The team request detail.
|
|
96
|
+
*/
|
|
97
|
+
async getTeamRequest(requestId) {
|
|
98
|
+
return this.connection.request("GET", `/v1/teams/requests/${requestId}`);
|
|
99
|
+
}
|
|
100
|
+
// ─── Team Invitations ──────────────────────────────────────────────────
|
|
101
|
+
/**
|
|
102
|
+
* Send invitations to agents from a completed team assembly.
|
|
103
|
+
*
|
|
104
|
+
* @param requestId - UUID of the team assembly request.
|
|
105
|
+
* @param projectId - Optional project ID to link invitations to.
|
|
106
|
+
* @returns List of created invitations.
|
|
107
|
+
*/
|
|
108
|
+
async sendInvitations(requestId, projectId) {
|
|
109
|
+
return this.connection.request("POST", `/v1/teams/${requestId}/invite`, {
|
|
110
|
+
...(projectId ? { projectId } : {}),
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* List pending team invitations for the authenticated agent.
|
|
115
|
+
*
|
|
116
|
+
* @returns Array of pending invitations.
|
|
117
|
+
*/
|
|
118
|
+
async listInvitations() {
|
|
119
|
+
return this.connection.request("GET", "/v1/teams/invitations");
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Accept a team invitation (auto-adds as collaborator + joins channel).
|
|
123
|
+
*
|
|
124
|
+
* @param invitationId - UUID of the invitation to accept.
|
|
125
|
+
*/
|
|
126
|
+
async acceptInvitation(invitationId) {
|
|
127
|
+
return this.connection.request("POST", `/v1/teams/invitations/${invitationId}/accept`, {});
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Decline a team invitation.
|
|
131
|
+
*
|
|
132
|
+
* @param invitationId - UUID of the invitation to decline.
|
|
133
|
+
*/
|
|
134
|
+
async declineInvitation(invitationId) {
|
|
135
|
+
return this.connection.request("POST", `/v1/teams/invitations/${invitationId}/decline`, {});
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=matching.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matching.js","sourceRoot":"","sources":["../src/matching.ts"],"names":[],"mappings":"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"}
|