@indexnetwork/protocol 11.0.2-rc.456.1 → 11.2.0-rc.458.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/dist/capabilities/negotiation.facade.d.ts +4 -1
- package/dist/capabilities/negotiation.facade.js +2 -1
- package/dist/capabilities/negotiation.questions.facade.d.ts +1 -1
- package/dist/capabilities/negotiation.questions.facade.js +1 -1
- package/dist/index.d.ts +8 -4
- package/dist/index.js +5 -1
- package/dist/mcp/mcp.authorization-policy.d.ts +10 -4
- package/dist/mcp/mcp.authorization-policy.js +64 -5
- package/dist/negotiation/application/negotiation.agent.d.ts +7 -1
- package/dist/negotiation/application/negotiation.agent.js +6 -4
- package/dist/negotiation/application/negotiation.detail-reader.js +3 -6
- package/dist/negotiation/application/negotiation.graph.d.ts +17 -29
- package/dist/negotiation/application/negotiation.graph.js +35 -49
- package/dist/negotiation/application/negotiation.tools.js +40 -43
- package/dist/negotiation/domain/index.d.ts +5 -0
- package/dist/negotiation/domain/index.js +4 -0
- package/dist/negotiation/domain/negotiation.consultation-policy.d.ts +2 -3
- package/dist/negotiation/domain/negotiation.expected-speaker.d.ts +19 -0
- package/dist/negotiation/domain/negotiation.expected-speaker.js +47 -0
- package/dist/negotiation/domain/negotiation.hermes-contract.d.ts +31 -0
- package/dist/negotiation/domain/negotiation.hermes-contract.js +72 -0
- package/dist/negotiation/domain/negotiation.protocol.d.ts +36 -66
- package/dist/negotiation/domain/negotiation.state.d.ts +10 -19
- package/dist/negotiation/domain/negotiation.turn-cap.d.ts +9 -0
- package/dist/negotiation/domain/negotiation.turn-cap.js +12 -0
- package/dist/negotiation/public/index.d.ts +4 -1
- package/dist/negotiation/public/index.js +3 -1
- package/dist/questions/application/question.input.d.ts +4 -8
- package/dist/questions/application/question.input.js +3 -8
- package/dist/questions/application/question.presets.js +10 -11
- package/dist/shared/agent/model-signal.d.ts +6 -1
- package/dist/shared/agent/model-signal.js +5 -2
- package/dist/shared/interfaces/agent-dispatcher.interface.d.ts +3 -0
- package/dist/shared/interfaces/database.interface.d.ts +1 -1
- package/dist/shared/interfaces/negotiation-events.interface.d.ts +12 -2
- package/dist/shared/schemas/mcp-auth.schema.d.ts +6 -0
- package/dist/shared/schemas/mcp-auth.schema.js +9 -0
- package/dist/shared/schemas/negotiation-state.schema.d.ts +17 -23
- package/dist/shared/schemas/negotiation-state.schema.js +13 -8
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -28,6 +28,12 @@ pin a supported release, use `latest`.
|
|
|
28
28
|
|
|
29
29
|
## [Unreleased]
|
|
30
30
|
|
|
31
|
+
### Added
|
|
32
|
+
- Full standalone Hermes capability policy (11.2.0): the `hermes-agent` principal has an explicit six-action MCP/REST policy while the existing `hermes-negotiator` principal remains restricted to its four scheduled negotiation handlers. Both policies default deny and preserve one-shot, generation-fenced negotiation authority.
|
|
33
|
+
|
|
34
|
+
### Security
|
|
35
|
+
- The Hermes policy never exposes owner credentials, account-security, credential/permission/agent administration, billing, or unclassified tools; connector and owner-native callers receive only nonsecret response projections.
|
|
36
|
+
|
|
31
37
|
### Removed
|
|
32
38
|
- Remove six unsupported shared interface/schema forwarding shims after migrating repository consumers to capability-owned domain and port modules; stable package-root exports remain unchanged.
|
|
33
39
|
- Remove six unsupported tool-port forwarding shims and the deprecated unused discovery-question mapper; stable package-root exports remain unchanged.
|
|
@@ -51,6 +57,7 @@ pin a supported release, use `latest`.
|
|
|
51
57
|
enrichment are unchanged.
|
|
52
58
|
|
|
53
59
|
### Added
|
|
60
|
+
- Add the Personal Agent Hermes negotiation-runtime contract (11.1.0). The public negotiation facade now exports `configuredAskUserEnabled` and `askUserAnswerWindowMs` for host-side owner-consultation admission, with regenerated consumer/export inventories. The generated Hermes negotiator skill receives a privacy-minimal structural envelope: server-provided seat, protocol version, deadlines, closed allowed actions, consultation eligibility, opportunity identifiers/status, and message-free history. Owner memory, private context, consultation text, evaluator reasoning, actor prose, and shared-message prose are excluded; each scheduled pass permits at most one response or owner consultation and treats all pickup prose as untrusted data.
|
|
54
61
|
- Add a live answer-first signal-intake eval with unrelated, relevant, and no-bridge profile cases plus provider-free corpus, runner, and scorer checks.
|
|
55
62
|
- Add the protocol-only Guided Atlas, deterministic architecture inventory
|
|
56
63
|
generator, and source-evidenced Configuration Lab. The atlas explains
|
|
@@ -78,6 +85,9 @@ pin a supported release, use `latest`.
|
|
|
78
85
|
boundary gate and the protocol atlas generator; allowed dependency directions
|
|
79
86
|
are unchanged.
|
|
80
87
|
|
|
88
|
+
### Security
|
|
89
|
+
- The Hermes skill contract is restricted to the four negotiator tools, never treats model prose as authority, never forwards secrets or owner-private context, and relies on Index's validated action/consultation and bounded fallback paths. **This branch targets dev/private testing only. Production distribution remains blocked until the Mac owner credential is migrated to Keychain and the plaintext file/directory is removed, Developer ID hardened-runtime signing and notarization are complete, and the credential TTL/revocation checklist is verified.**
|
|
90
|
+
|
|
81
91
|
### Fixed
|
|
82
92
|
- Add an independent complete-payload golden digest and stronger audit/report leak
|
|
83
93
|
sentinels for the historical discovery seed serializer, and clarify the H4 review
|
|
@@ -16,8 +16,11 @@ export { NegotiationReflector } from "../negotiation/public/index.js";
|
|
|
16
16
|
export type { DistilledMemory, ReflectionTranscriptEntry, NegotiationReflectionInput, ChatReflectionInput, NegotiationReflectJobData, ReflectEnqueueFn } from "../negotiation/public/index.js";
|
|
17
17
|
export type { NegotiatorMemoryEntry } from "../negotiation/public/index.js";
|
|
18
18
|
export type { NegotiationGraphLike } from "../negotiation/public/index.js";
|
|
19
|
+
export { HERMES_OWNER_DIRECTIVE, HERMES_SHARED_MESSAGE_TEMPLATES, HermesNegotiationActionSchema, HermesNegotiationResponseSchema, HermesOwnerDirectiveSchema, HermesRoleAlignmentSchema, allowedHermesActionsFor, buildHermesNegotiationTurn, } from "../negotiation/public/index.js";
|
|
20
|
+
export type { HermesNegotiationAction, HermesNegotiationResponse, HermesOwnerDirective, HermesRoleAlignment, } from "../negotiation/public/index.js";
|
|
19
21
|
export { AMBIENT_PARK_WINDOW_MS } from "../negotiation/public/index.js";
|
|
20
|
-
export { allowedActionsFor, isTerminalAction, isRejectLikeAction, readProtocolVersion, resolveSeat, seatViolationMessage } from "../negotiation/public/index.js";
|
|
22
|
+
export { DEFAULT_NEGOTIATION_MAX_TURNS, isNegotiationTurnCapReached, expectedNegotiationSpeaker, allowedActionsFor, askUserAnswerWindowMs, configuredAskUserEnabled, isTerminalAction, isRejectLikeAction, readProtocolVersion, resolveSeat, seatViolationMessage } from "../negotiation/public/index.js";
|
|
23
|
+
export type { NegotiationSpeakerParticipants, NegotiationSpeakerMessage } from "../negotiation/public/index.js";
|
|
21
24
|
export { assessConsultationEligibility, consultationPromptFor, negotiationConsultationPolicyMode } from "../negotiation/public/index.js";
|
|
22
25
|
export type { ConsultationEligibility, ConsultationEligibilityInput, NegotiationConsultationPolicyMode, NegotiationConsultationReason } from "../negotiation/public/index.js";
|
|
23
26
|
export { NEGOTIATION_QUESTION_GENERIC_COUNTERPARTY, NEGOTIATION_QUESTION_GENERIC_NETWORK, NEGOTIATION_QUESTION_GENERIC_UPTAKE_ACTIVITY, isSafeNegotiationQuestionText, validateInflightAskUserFields, negotiationQuestionSettlementId, } from "../negotiation/public/index.js";
|
|
@@ -11,7 +11,8 @@ export { NegotiationInsightsGenerator } from "../negotiation/public/index.js";
|
|
|
11
11
|
export { IndexNegotiator } from "../negotiation/public/index.js";
|
|
12
12
|
export { NegotiationScreener } from "../negotiation/public/index.js";
|
|
13
13
|
export { NegotiationReflector } from "../negotiation/public/index.js";
|
|
14
|
+
export { HERMES_OWNER_DIRECTIVE, HERMES_SHARED_MESSAGE_TEMPLATES, HermesNegotiationActionSchema, HermesNegotiationResponseSchema, HermesOwnerDirectiveSchema, HermesRoleAlignmentSchema, allowedHermesActionsFor, buildHermesNegotiationTurn, } from "../negotiation/public/index.js";
|
|
14
15
|
export { AMBIENT_PARK_WINDOW_MS } from "../negotiation/public/index.js";
|
|
15
|
-
export { allowedActionsFor, isTerminalAction, isRejectLikeAction, readProtocolVersion, resolveSeat, seatViolationMessage } from "../negotiation/public/index.js";
|
|
16
|
+
export { DEFAULT_NEGOTIATION_MAX_TURNS, isNegotiationTurnCapReached, expectedNegotiationSpeaker, allowedActionsFor, askUserAnswerWindowMs, configuredAskUserEnabled, isTerminalAction, isRejectLikeAction, readProtocolVersion, resolveSeat, seatViolationMessage } from "../negotiation/public/index.js";
|
|
16
17
|
export { assessConsultationEligibility, consultationPromptFor, negotiationConsultationPolicyMode } from "../negotiation/public/index.js";
|
|
17
18
|
export { NEGOTIATION_QUESTION_GENERIC_COUNTERPARTY, NEGOTIATION_QUESTION_GENERIC_NETWORK, NEGOTIATION_QUESTION_GENERIC_UPTAKE_ACTIVITY, isSafeNegotiationQuestionText, validateInflightAskUserFields, negotiationQuestionSettlementId, } from "../negotiation/public/index.js";
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* Narrow question-policy port consumed by the Questions capability — IND-550.
|
|
3
3
|
* Sources now route through the canonical negotiation module public surface.
|
|
4
4
|
*/
|
|
5
|
-
export { NEGOTIATION_QUESTION_GENERIC_COUNTERPARTY, NEGOTIATION_QUESTION_GENERIC_NETWORK, NEGOTIATION_QUESTION_GENERIC_UPTAKE_ACTIVITY, isSafeNegotiationQuestionText, } from "../negotiation/public/index.js";
|
|
5
|
+
export { NEGOTIATION_QUESTION_GENERIC_COUNTERPARTY, NEGOTIATION_QUESTION_GENERIC_NETWORK, NEGOTIATION_QUESTION_GENERIC_UPTAKE_ACTIVITY, consultationPromptFor, isSafeNegotiationQuestionText, } from "../negotiation/public/index.js";
|
|
6
6
|
export type { NegotiationConsultationReason } from "../negotiation/public/index.js";
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
* Narrow question-policy port consumed by the Questions capability — IND-550.
|
|
3
3
|
* Sources now route through the canonical negotiation module public surface.
|
|
4
4
|
*/
|
|
5
|
-
export { NEGOTIATION_QUESTION_GENERIC_COUNTERPARTY, NEGOTIATION_QUESTION_GENERIC_NETWORK, NEGOTIATION_QUESTION_GENERIC_UPTAKE_ACTIVITY, isSafeNegotiationQuestionText, } from "../negotiation/public/index.js";
|
|
5
|
+
export { NEGOTIATION_QUESTION_GENERIC_COUNTERPARTY, NEGOTIATION_QUESTION_GENERIC_NETWORK, NEGOTIATION_QUESTION_GENERIC_UPTAKE_ACTIVITY, consultationPromptFor, isSafeNegotiationQuestionText, } from "../negotiation/public/index.js";
|
package/dist/index.d.ts
CHANGED
|
@@ -21,7 +21,7 @@ export type { IntegrationAdapter, IntegrationConnection, IntegrationSession, Int
|
|
|
21
21
|
export type { IntentGraphQueue } from "./shared/interfaces/queue.interface.js";
|
|
22
22
|
export type { Scraper } from "./shared/interfaces/scraper.interface.js";
|
|
23
23
|
export type { EnrichmentRunInput, EnrichmentRunRecord } from "./shared/interfaces/enrichment-run.interface.js";
|
|
24
|
-
export type { NegotiationTimeoutQueue, AskUserExpiryPayload } from "./shared/interfaces/negotiation-events.interface.js";
|
|
24
|
+
export type { NegotiationTimeoutQueue, AskUserExpiryPayload, NegotiationContinuationTimeoutIdentity, } from "./shared/interfaces/negotiation-events.interface.js";
|
|
25
25
|
export type { AgentDispatcher, AgentDispatchResult, NegotiationTurnPayload } from "./shared/interfaces/agent-dispatcher.interface.js";
|
|
26
26
|
export { SYSTEM_AGENT_IDS } from './capabilities/participant-agents.facade.js';
|
|
27
27
|
export { ChatContextDigestSchema, type ChatContextDigest } from "./shared/schemas/chat-context.schema.js";
|
|
@@ -151,10 +151,14 @@ export { MCP_AGENT_ADMIN_TOOLS, CANONICAL_MCP_CAPABILITY_POLICY_OPTIONS, CANONIC
|
|
|
151
151
|
export { ActivityQuestionCountsSchema, ActivityQuestionDomainSchema, ActivitySummaryDomainSchema, ActivitySummaryResponseSchema, McpActivityCallerSchema, QUESTION_MODE_TO_DOMAIN, READ_ACTIVITY_SUMMARY_TOOL_NAME, activitySummaryNetworkId, projectActivitySummary, resolveActivitySummaryDomains, } from "./shared/agent/activity-projection.js";
|
|
152
152
|
export type { ActivityQuestionCounts, ActivityQuestionDomain, ActivitySummaryDomain, McpActivityCaller, ProjectedActivitySummary, } from "./shared/agent/activity-projection.js";
|
|
153
153
|
export type { McpAuthorizationDenialEvent, McpAuthorizationObserver, McpCapabilityDecision, McpCapabilityDecisionReason, McpCapabilityPolicyOptions, McpCapabilitySubject, McpPermissionAction, McpPolicyAgentSnapshot, McpPrincipalProfile, McpToolPermissionMap, McpToolPermissionRequirement, McpToolAccessRule, McpToolAccessRuleMap, ResolveMcpCapabilitySubjectInput, } from "./mcp/mcp.authorization-policy.js";
|
|
154
|
+
export { AskUserPayloadSchema, NEGOTIATION_CONSULTATION_REASONS, NegotiationConsultationReasonSchema, } from "./shared/schemas/negotiation-state.schema.js";
|
|
154
155
|
export type { UserNegotiationContext, NegotiationTurn, NegotiationOutcome, SeedAssessment } from "./shared/schemas/negotiation-state.schema.js";
|
|
155
|
-
export type { NegotiationAction, NegotiationSeat, NegotiationProtocolVersion } from "./shared/schemas/negotiation-state.schema.js";
|
|
156
|
+
export type { NegotiationAction, NegotiationConsultationReason, NegotiationSeat, NegotiationProtocolVersion } from "./shared/schemas/negotiation-state.schema.js";
|
|
156
157
|
export type { NegotiationGraphLike } from "./capabilities/negotiation.facade.js";
|
|
157
|
-
export {
|
|
158
|
+
export { HERMES_OWNER_DIRECTIVE, HERMES_SHARED_MESSAGE_TEMPLATES, HermesNegotiationActionSchema, HermesNegotiationResponseSchema, HermesOwnerDirectiveSchema, HermesRoleAlignmentSchema, allowedHermesActionsFor, buildHermesNegotiationTurn, } from "./capabilities/negotiation.facade.js";
|
|
159
|
+
export type { HermesNegotiationAction, HermesNegotiationResponse, HermesOwnerDirective, HermesRoleAlignment, } from "./capabilities/negotiation.facade.js";
|
|
160
|
+
export { DEFAULT_NEGOTIATION_MAX_TURNS, isNegotiationTurnCapReached, expectedNegotiationSpeaker, allowedActionsFor, askUserAnswerWindowMs, configuredAskUserEnabled, isTerminalAction, isRejectLikeAction, readProtocolVersion, resolveSeat, seatViolationMessage } from "./capabilities/negotiation.facade.js";
|
|
161
|
+
export type { NegotiationSpeakerParticipants, NegotiationSpeakerMessage } from "./capabilities/negotiation.facade.js";
|
|
158
162
|
export { assessConsultationEligibility, consultationPromptFor, negotiationConsultationPolicyMode } from "./capabilities/negotiation.facade.js";
|
|
159
|
-
export type { ConsultationEligibility, ConsultationEligibilityInput, NegotiationConsultationPolicyMode
|
|
163
|
+
export type { ConsultationEligibility, ConsultationEligibilityInput, NegotiationConsultationPolicyMode } from "./capabilities/negotiation.facade.js";
|
|
160
164
|
export { NEGOTIATION_QUESTION_GENERIC_COUNTERPARTY, NEGOTIATION_QUESTION_GENERIC_NETWORK, NEGOTIATION_QUESTION_GENERIC_UPTAKE_ACTIVITY, isSafeNegotiationQuestionText, negotiationQuestionSettlementId, validateInflightAskUserFields, } from "./capabilities/negotiation.facade.js";
|
package/dist/index.js
CHANGED
|
@@ -121,7 +121,11 @@ export { normalizeTelegramHandle } from './shared/utils/telegram-handle.js';
|
|
|
121
121
|
export { createMcpServer, buildMcpOnboardingMessage, ONBOARDING_ALLOWED } from "./mcp/mcp.server.js";
|
|
122
122
|
export { MCP_AGENT_ADMIN_TOOLS, CANONICAL_MCP_CAPABILITY_POLICY_OPTIONS, CANONICAL_MCP_TOOL_ACCESS_RULES, MCP_INFORMATIONAL_TOOLS, MCP_PERMISSION_ACTIONS, McpCapabilityPolicy, McpCapabilitySubjectSchema, McpPermissionActionSchema, McpPolicyAgentSnapshotSchema, McpPrincipalProfileSchema, McpToolPermissionRequirementSchema, McpToolAccessRuleSchema, buildMcpAuthorizationDenialEvent, defineMcpToolAccessRules, defineMcpToolPermissionMap, resolveMcpActivityCaller, resolveMcpCapabilitySubject, } from "./mcp/mcp.authorization-policy.js";
|
|
123
123
|
export { ActivityQuestionCountsSchema, ActivityQuestionDomainSchema, ActivitySummaryDomainSchema, ActivitySummaryResponseSchema, McpActivityCallerSchema, QUESTION_MODE_TO_DOMAIN, READ_ACTIVITY_SUMMARY_TOOL_NAME, activitySummaryNetworkId, projectActivitySummary, resolveActivitySummaryDomains, } from "./shared/agent/activity-projection.js";
|
|
124
|
+
// ─── States (for advanced graph consumers) ────────────────────────────────────
|
|
125
|
+
// @experimental — internal graph-state shapes; may change in a minor release.
|
|
126
|
+
export { AskUserPayloadSchema, NEGOTIATION_CONSULTATION_REASONS, NegotiationConsultationReasonSchema, } from "./shared/schemas/negotiation-state.schema.js";
|
|
127
|
+
export { HERMES_OWNER_DIRECTIVE, HERMES_SHARED_MESSAGE_TEMPLATES, HermesNegotiationActionSchema, HermesNegotiationResponseSchema, HermesOwnerDirectiveSchema, HermesRoleAlignmentSchema, allowedHermesActionsFor, buildHermesNegotiationTurn, } from "./capabilities/negotiation.facade.js";
|
|
124
128
|
// ─── Negotiation seat rules (v2 client-advocate protocol) ───────────────────
|
|
125
|
-
export { allowedActionsFor, isTerminalAction, isRejectLikeAction, readProtocolVersion, resolveSeat, seatViolationMessage } from "./capabilities/negotiation.facade.js";
|
|
129
|
+
export { DEFAULT_NEGOTIATION_MAX_TURNS, isNegotiationTurnCapReached, expectedNegotiationSpeaker, allowedActionsFor, askUserAnswerWindowMs, configuredAskUserEnabled, isTerminalAction, isRejectLikeAction, readProtocolVersion, resolveSeat, seatViolationMessage } from "./capabilities/negotiation.facade.js";
|
|
126
130
|
export { assessConsultationEligibility, consultationPromptFor, negotiationConsultationPolicyMode } from "./capabilities/negotiation.facade.js";
|
|
127
131
|
export { NEGOTIATION_QUESTION_GENERIC_COUNTERPARTY, NEGOTIATION_QUESTION_GENERIC_NETWORK, NEGOTIATION_QUESTION_GENERIC_UPTAKE_ACTIVITY, isSafeNegotiationQuestionText, negotiationQuestionSettlementId, validateInflightAskUserFields, } from "./capabilities/negotiation.facade.js";
|
|
@@ -25,6 +25,12 @@ export type McpToolPermissionMap = ReadonlyMap<string, McpToolPermissionRequirem
|
|
|
25
25
|
* Runtime-validates a capability-owned tool-to-permission mapping.
|
|
26
26
|
*/
|
|
27
27
|
export declare function defineMcpToolPermissionMap(mapping: Readonly<Record<string, McpToolPermissionRequirement>>): McpToolPermissionMap;
|
|
28
|
+
/**
|
|
29
|
+
* Exact full-standalone Hermes MCP surface. Every admitted tool maps to one
|
|
30
|
+
* canonical action; absence is denial, including human-only, deletion,
|
|
31
|
+
* permission-management, agent-administration, and retired aliases.
|
|
32
|
+
*/
|
|
33
|
+
export declare const HERMES_AGENT_MCP_TOOL_PERMISSIONS: McpToolPermissionMap;
|
|
28
34
|
export declare const McpToolAccessRuleSchema: z.ZodEffects<z.ZodObject<{
|
|
29
35
|
access: z.ZodEnum<["permission", "authenticated", "human_only", "agent_admin", "informational", "delivery_only", "removed"]>;
|
|
30
36
|
actions: z.ZodOptional<z.ZodArray<z.ZodEnum<["manage:identity", "manage:premises", "manage:intents", "manage:networks", "manage:opportunities", "manage:negotiations"]>, "many">>;
|
|
@@ -113,10 +119,10 @@ export declare const McpPolicyAgentSnapshotSchema: z.ZodObject<{
|
|
|
113
119
|
}[];
|
|
114
120
|
}>;
|
|
115
121
|
export type McpPolicyAgentSnapshot = z.infer<typeof McpPolicyAgentSnapshotSchema>;
|
|
116
|
-
export declare const McpPrincipalProfileSchema: z.ZodEnum<["session_human", "onboarding_human", "enrollment_key", "unregistered_key", "registered_global_agent", "registered_network_agent", "delivery_agent", "invalid_agent"]>;
|
|
122
|
+
export declare const McpPrincipalProfileSchema: z.ZodEnum<["session_human", "onboarding_human", "enrollment_key", "unregistered_key", "registered_global_agent", "registered_network_agent", "hermes_agent", "delivery_agent", "invalid_agent"]>;
|
|
117
123
|
export type McpPrincipalProfile = z.infer<typeof McpPrincipalProfileSchema>;
|
|
118
124
|
export declare const McpCapabilitySubjectSchema: z.ZodObject<{
|
|
119
|
-
profile: z.ZodEnum<["session_human", "onboarding_human", "enrollment_key", "unregistered_key", "registered_global_agent", "registered_network_agent", "delivery_agent", "invalid_agent"]>;
|
|
125
|
+
profile: z.ZodEnum<["session_human", "onboarding_human", "enrollment_key", "unregistered_key", "registered_global_agent", "registered_network_agent", "hermes_agent", "delivery_agent", "invalid_agent"]>;
|
|
120
126
|
userId: z.ZodString;
|
|
121
127
|
agentId: z.ZodOptional<z.ZodString>;
|
|
122
128
|
agentType: z.ZodOptional<z.ZodEnum<["personal", "external", "system"]>>;
|
|
@@ -125,7 +131,7 @@ export declare const McpCapabilitySubjectSchema: z.ZodObject<{
|
|
|
125
131
|
permissions: z.ZodArray<z.ZodEnum<["manage:identity", "manage:premises", "manage:intents", "manage:networks", "manage:opportunities", "manage:negotiations"]>, "many">;
|
|
126
132
|
}, "strict", z.ZodTypeAny, {
|
|
127
133
|
userId: string;
|
|
128
|
-
profile: "session_human" | "onboarding_human" | "enrollment_key" | "unregistered_key" | "registered_global_agent" | "registered_network_agent" | "delivery_agent" | "invalid_agent";
|
|
134
|
+
profile: "session_human" | "onboarding_human" | "enrollment_key" | "unregistered_key" | "registered_global_agent" | "registered_network_agent" | "hermes_agent" | "delivery_agent" | "invalid_agent";
|
|
129
135
|
permissions: ("manage:negotiations" | "manage:intents" | "manage:opportunities" | "manage:identity" | "manage:premises" | "manage:networks")[];
|
|
130
136
|
networkScopeId: string | null;
|
|
131
137
|
isOnboarding: boolean;
|
|
@@ -133,7 +139,7 @@ export declare const McpCapabilitySubjectSchema: z.ZodObject<{
|
|
|
133
139
|
agentType?: "system" | "personal" | "external" | undefined;
|
|
134
140
|
}, {
|
|
135
141
|
userId: string;
|
|
136
|
-
profile: "session_human" | "onboarding_human" | "enrollment_key" | "unregistered_key" | "registered_global_agent" | "registered_network_agent" | "delivery_agent" | "invalid_agent";
|
|
142
|
+
profile: "session_human" | "onboarding_human" | "enrollment_key" | "unregistered_key" | "registered_global_agent" | "registered_network_agent" | "hermes_agent" | "delivery_agent" | "invalid_agent";
|
|
137
143
|
permissions: ("manage:negotiations" | "manage:intents" | "manage:opportunities" | "manage:identity" | "manage:premises" | "manage:networks")[];
|
|
138
144
|
networkScopeId: string | null;
|
|
139
145
|
isOnboarding: boolean;
|
|
@@ -26,6 +26,44 @@ export function defineMcpToolPermissionMap(mapping) {
|
|
|
26
26
|
const parsed = McpToolPermissionMapSchema.parse(mapping);
|
|
27
27
|
return new Map(Object.entries(parsed));
|
|
28
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* Exact full-standalone Hermes MCP surface. Every admitted tool maps to one
|
|
31
|
+
* canonical action; absence is denial, including human-only, deletion,
|
|
32
|
+
* permission-management, agent-administration, and retired aliases.
|
|
33
|
+
*/
|
|
34
|
+
export const HERMES_AGENT_MCP_TOOL_PERMISSIONS = defineMcpToolPermissionMap({
|
|
35
|
+
read_user_contexts: { action: 'manage:identity', reach: 'principal' },
|
|
36
|
+
preview_user_context: { action: 'manage:identity', reach: 'principal' },
|
|
37
|
+
confirm_user_context: { action: 'manage:identity', reach: 'principal' },
|
|
38
|
+
create_user_context: { action: 'manage:identity', reach: 'principal' },
|
|
39
|
+
update_user_context: { action: 'manage:identity', reach: 'principal' },
|
|
40
|
+
get_enrichment_run: { action: 'manage:identity', reach: 'principal' },
|
|
41
|
+
cancel_enrichment_run: { action: 'manage:identity', reach: 'principal' },
|
|
42
|
+
read_intents: { action: 'manage:intents', reach: 'network' },
|
|
43
|
+
search_intents: { action: 'manage:intents', reach: 'network' },
|
|
44
|
+
create_intent: { action: 'manage:intents', reach: 'network' },
|
|
45
|
+
update_intent: { action: 'manage:intents', reach: 'network' },
|
|
46
|
+
read_intent_indexes: { action: 'manage:intents', reach: 'network' },
|
|
47
|
+
create_intent_index: { action: 'manage:intents', reach: 'network' },
|
|
48
|
+
list_negotiations: { action: 'manage:negotiations', reach: 'network' },
|
|
49
|
+
get_negotiation: { action: 'manage:negotiations', reach: 'network' },
|
|
50
|
+
respond_to_negotiation: { action: 'manage:negotiations', reach: 'network' },
|
|
51
|
+
read_networks: { action: 'manage:networks', reach: 'network' },
|
|
52
|
+
read_network_memberships: { action: 'manage:networks', reach: 'network' },
|
|
53
|
+
create_network: { action: 'manage:networks', reach: 'network' },
|
|
54
|
+
update_network: { action: 'manage:networks', reach: 'network' },
|
|
55
|
+
create_network_membership: { action: 'manage:networks', reach: 'network' },
|
|
56
|
+
list_opportunities: { action: 'manage:opportunities', reach: 'network' },
|
|
57
|
+
update_opportunity: { action: 'manage:opportunities', reach: 'network' },
|
|
58
|
+
confirm_opportunity_delivery: { action: 'manage:opportunities', reach: 'network' },
|
|
59
|
+
read_premises: { action: 'manage:premises', reach: 'principal' },
|
|
60
|
+
create_premise: { action: 'manage:premises', reach: 'principal' },
|
|
61
|
+
update_premise: { action: 'manage:premises', reach: 'principal' },
|
|
62
|
+
retract_premise: { action: 'manage:premises', reach: 'principal' },
|
|
63
|
+
read_pending_questions: { action: 'manage:identity', reach: 'principal' },
|
|
64
|
+
read_activity_summary: { action: 'manage:identity', reach: 'principal' },
|
|
65
|
+
read_docs: { action: 'manage:identity', reach: 'principal' },
|
|
66
|
+
});
|
|
29
67
|
export const McpToolAccessRuleSchema = z.object({
|
|
30
68
|
access: z.enum([
|
|
31
69
|
'permission',
|
|
@@ -216,6 +254,7 @@ export const McpPrincipalProfileSchema = z.enum([
|
|
|
216
254
|
'unregistered_key',
|
|
217
255
|
'registered_global_agent',
|
|
218
256
|
'registered_network_agent',
|
|
257
|
+
'hermes_agent',
|
|
219
258
|
'delivery_agent',
|
|
220
259
|
'invalid_agent',
|
|
221
260
|
]);
|
|
@@ -331,11 +370,13 @@ export function resolveMcpCapabilitySubject(input) {
|
|
|
331
370
|
});
|
|
332
371
|
}
|
|
333
372
|
const agent = parsedAgent.data;
|
|
334
|
-
const profile = identity.
|
|
335
|
-
? '
|
|
336
|
-
: identity.
|
|
337
|
-
? '
|
|
338
|
-
:
|
|
373
|
+
const profile = identity.isHermesAgent === true
|
|
374
|
+
? 'hermes_agent'
|
|
375
|
+
: identity.isDeliveryAgent === true
|
|
376
|
+
? 'delivery_agent'
|
|
377
|
+
: identity.networkScopeId
|
|
378
|
+
? 'registered_network_agent'
|
|
379
|
+
: 'registered_global_agent';
|
|
339
380
|
return McpCapabilitySubjectSchema.parse({
|
|
340
381
|
profile,
|
|
341
382
|
userId: identity.userId,
|
|
@@ -437,6 +478,24 @@ export class McpCapabilityPolicy {
|
|
|
437
478
|
if (subject.isOnboarding && !ONBOARDING_ALLOWED.has(toolName)) {
|
|
438
479
|
return { allowed: false, reason: 'onboarding_required', reach: rule.reach };
|
|
439
480
|
}
|
|
481
|
+
if (subject.profile === 'hermes_agent') {
|
|
482
|
+
const requirement = HERMES_AGENT_MCP_TOOL_PERMISSIONS.get(toolName);
|
|
483
|
+
if (!requirement)
|
|
484
|
+
return { allowed: false, reason: 'tool_unclassified' };
|
|
485
|
+
return subject.permissions.includes(requirement.action)
|
|
486
|
+
? {
|
|
487
|
+
allowed: true,
|
|
488
|
+
reason: 'permission_granted',
|
|
489
|
+
reach: requirement.reach,
|
|
490
|
+
requiredPermissions: [requirement.action],
|
|
491
|
+
}
|
|
492
|
+
: {
|
|
493
|
+
allowed: false,
|
|
494
|
+
reason: 'permission_missing',
|
|
495
|
+
reach: requirement.reach,
|
|
496
|
+
requiredPermissions: [requirement.action],
|
|
497
|
+
};
|
|
498
|
+
}
|
|
440
499
|
if (rule.access === 'delivery_only') {
|
|
441
500
|
return subject.profile === 'delivery_agent'
|
|
442
501
|
? { allowed: true, reason: 'delivery', reach: rule.reach }
|
|
@@ -69,6 +69,12 @@ export interface NegotiationAgentInput {
|
|
|
69
69
|
* falls back to the flat continuation history (byte-identical to before).
|
|
70
70
|
*/
|
|
71
71
|
priorDialogue?: AttributedPriorDialogue;
|
|
72
|
+
/**
|
|
73
|
+
* Durable caller-owned execution identity. Timeout workers reuse this exact
|
|
74
|
+
* value across delivery retries; it is forwarded as model-run metadata for
|
|
75
|
+
* deterministic provider tracing/idempotency without entering the prompt.
|
|
76
|
+
*/
|
|
77
|
+
executionId?: string;
|
|
72
78
|
}
|
|
73
79
|
export interface IndexNegotiatorConfig {
|
|
74
80
|
/**
|
|
@@ -106,5 +112,5 @@ export declare class IndexNegotiator {
|
|
|
106
112
|
protected callModel(model: ReturnType<typeof createStructuredModel>, chatMessages: Array<{
|
|
107
113
|
role: string;
|
|
108
114
|
content: string;
|
|
109
|
-
}
|
|
115
|
+
}>, executionId?: string): Promise<unknown>;
|
|
110
116
|
}
|
|
@@ -56,7 +56,7 @@ const V2_INITIATOR_RULES = `- You hold the INITIATING seat: your user's side sur
|
|
|
56
56
|
* prompt (or the schema) otherwise.
|
|
57
57
|
*/
|
|
58
58
|
const ASK_USER_RULE = `
|
|
59
|
-
- "ask_user" if you need {userName}'s OWN input before you can proceed
|
|
59
|
+
- "ask_user" if you need {userName}'s OWN input before you can proceed. This PAUSES the negotiation until they answer (up to 24h), so use it only when proceeding without their input would risk over-disclosure or a wrong call. You get AT MOST ONE client consultation per negotiation. Set askUser to exactly one closed server category: { reason: "unresolved_owner_constraint" | "consequential_disclosure_permission" | "repeated_non_convergence" | "insufficient_commitment_authority" }. Never write question text or instructions in askUser; the server owns all owner-facing copy. Use "question" (not "ask_user") when clarification should come from the other side.`;
|
|
60
60
|
/** v2 counterparty seat: receiving stance — acceptance is this seat's decision alone. */
|
|
61
61
|
const V2_COUNTERPARTY_RULES = `- You hold the RECEIVING seat: the other side reached out to {userName}. Whether to accept is YOUR seat's decision alone.
|
|
62
62
|
- Evaluate the initiator's arguments. Either:
|
|
@@ -233,7 +233,7 @@ ${input.history.length === 0 && !input.isContinuation ? (version === "v2" && sea
|
|
|
233
233
|
// out-of-vocabulary actions. Validate; retry once; then fall back to the
|
|
234
234
|
// conservative seat-valid action instead of poisoning the turn history.
|
|
235
235
|
for (let attempt = 0; attempt < 2; attempt++) {
|
|
236
|
-
const result = await this.callModel(model, chatMessages);
|
|
236
|
+
const result = await this.callModel(model, chatMessages, input.executionId);
|
|
237
237
|
const parsed = schema.safeParse(result);
|
|
238
238
|
if (parsed.success)
|
|
239
239
|
return parsed.data;
|
|
@@ -262,7 +262,9 @@ ${input.history.length === 0 && !input.isContinuation ? (version === "v2" && sea
|
|
|
262
262
|
* Raw structured-model round trip. Split out as a seam so tests can drive
|
|
263
263
|
* the validate→retry→fallback loop without a live provider.
|
|
264
264
|
*/
|
|
265
|
-
async callModel(model, chatMessages) {
|
|
266
|
-
return invokeWithAbortSignal(model, chatMessages, AbortSignal.timeout(this.turnTimeoutMs)
|
|
265
|
+
async callModel(model, chatMessages, executionId) {
|
|
266
|
+
return invokeWithAbortSignal(model, chatMessages, AbortSignal.timeout(this.turnTimeoutMs), executionId
|
|
267
|
+
? { metadata: { timeoutExecutionId: executionId }, tags: ['negotiation-timeout'] }
|
|
268
|
+
: undefined);
|
|
267
269
|
}
|
|
268
270
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { expectedNegotiationSpeaker } from '../domain/negotiation.expected-speaker.js';
|
|
1
2
|
import { buildLifecycleNarration } from '../domain/negotiation.lifecycle-narration.js';
|
|
2
3
|
import { allowedActionsFor, readProtocolVersion, resolveSeat } from '../domain/negotiation.protocol.js';
|
|
3
4
|
/**
|
|
@@ -53,16 +54,12 @@ export async function readAuthorizedNegotiationDetail(input) {
|
|
|
53
54
|
? outcomeArtifact.parts?.find((part) => part.kind === 'data')?.data
|
|
54
55
|
: null;
|
|
55
56
|
const turnCount = messages.length;
|
|
56
|
-
const
|
|
57
|
-
const currentSpeaker = lastSenderId
|
|
58
|
-
? (lastSenderId === `agent:${metadata.sourceUserId}` ? 'candidate' : 'source')
|
|
59
|
-
: (turnCount % 2 === 0 ? 'source' : 'candidate');
|
|
57
|
+
const expectedSpeaker = expectedNegotiationSpeaker(metadata, messages);
|
|
60
58
|
const status = task.state === 'working' ? 'active'
|
|
61
59
|
: task.state === 'waiting_for_agent' ? 'waiting_for_agent'
|
|
62
60
|
: task.state === 'completed' ? 'completed'
|
|
63
61
|
: task.state;
|
|
64
|
-
const isUsersTurn = status !== 'completed' &&
|
|
65
|
-
((isSource && currentSpeaker === 'source') || (!isSource && currentSpeaker === 'candidate'));
|
|
62
|
+
const isUsersTurn = status !== 'completed' && expectedSpeaker === callerUserId;
|
|
66
63
|
const protocolVersion = readProtocolVersion(metadata) ?? 'v1';
|
|
67
64
|
const seat = resolveSeat(callerUserId, metadata);
|
|
68
65
|
const priorTurnCount = metadata.priorTurnCount ?? 0;
|
|
@@ -50,7 +50,7 @@ export declare class NegotiationGraphFactory {
|
|
|
50
50
|
continuationExecution: import("../../shared/interfaces/database.interface.js").NegotiationContinuationExecution | undefined;
|
|
51
51
|
continuationReceipt: NegotiationContinuationReceipt | undefined;
|
|
52
52
|
privateConsultation: import("../../shared/interfaces/database.interface.js").NegotiationPrivateConsultation | undefined;
|
|
53
|
-
consultationPolicyReason:
|
|
53
|
+
consultationPolicyReason: "unresolved_owner_constraint" | "consequential_disclosure_permission" | "repeated_non_convergence" | "insufficient_commitment_authority" | undefined;
|
|
54
54
|
conversationId: string;
|
|
55
55
|
taskId: string;
|
|
56
56
|
messages: import("../domain/negotiation.state.js").NegotiationMessage[];
|
|
@@ -69,8 +69,7 @@ export declare class NegotiationGraphFactory {
|
|
|
69
69
|
};
|
|
70
70
|
message?: string | null | undefined;
|
|
71
71
|
askUser?: {
|
|
72
|
-
|
|
73
|
-
draftQuestion?: string | null | undefined;
|
|
72
|
+
reason: "unresolved_owner_constraint" | "consequential_disclosure_permission" | "repeated_non_convergence" | "insufficient_commitment_authority";
|
|
74
73
|
} | null | undefined;
|
|
75
74
|
} | null;
|
|
76
75
|
status: "waiting_for_agent" | "input_required" | "completed" | "active";
|
|
@@ -118,7 +117,7 @@ export declare class NegotiationGraphFactory {
|
|
|
118
117
|
continuationExecution?: import("../../shared/interfaces/database.interface.js").NegotiationContinuationExecution | import("@langchain/langgraph").OverwriteValue<import("../../shared/interfaces/database.interface.js").NegotiationContinuationExecution | undefined> | undefined;
|
|
119
118
|
continuationReceipt?: NegotiationContinuationReceipt | import("@langchain/langgraph").OverwriteValue<NegotiationContinuationReceipt | undefined> | undefined;
|
|
120
119
|
privateConsultation?: import("../../shared/interfaces/database.interface.js").NegotiationPrivateConsultation | import("@langchain/langgraph").OverwriteValue<import("../../shared/interfaces/database.interface.js").NegotiationPrivateConsultation | undefined> | undefined;
|
|
121
|
-
consultationPolicyReason?:
|
|
120
|
+
consultationPolicyReason?: "unresolved_owner_constraint" | "consequential_disclosure_permission" | "repeated_non_convergence" | "insufficient_commitment_authority" | import("@langchain/langgraph").OverwriteValue<"unresolved_owner_constraint" | "consequential_disclosure_permission" | "repeated_non_convergence" | "insufficient_commitment_authority" | undefined> | undefined;
|
|
122
121
|
conversationId?: string | import("@langchain/langgraph").OverwriteValue<string> | undefined;
|
|
123
122
|
taskId?: string | import("@langchain/langgraph").OverwriteValue<string> | undefined;
|
|
124
123
|
messages?: import("../domain/negotiation.state.js").NegotiationMessage[] | import("@langchain/langgraph").OverwriteValue<import("../domain/negotiation.state.js").NegotiationMessage[]> | undefined;
|
|
@@ -137,8 +136,7 @@ export declare class NegotiationGraphFactory {
|
|
|
137
136
|
};
|
|
138
137
|
message?: string | null | undefined;
|
|
139
138
|
askUser?: {
|
|
140
|
-
|
|
141
|
-
draftQuestion?: string | null | undefined;
|
|
139
|
+
reason: "unresolved_owner_constraint" | "consequential_disclosure_permission" | "repeated_non_convergence" | "insufficient_commitment_authority";
|
|
142
140
|
} | null | undefined;
|
|
143
141
|
} | import("@langchain/langgraph").OverwriteValue<{
|
|
144
142
|
action: "propose" | "accept" | "reject" | "counter" | "question" | "outreach" | "withdraw" | "decline" | "ask_user";
|
|
@@ -151,8 +149,7 @@ export declare class NegotiationGraphFactory {
|
|
|
151
149
|
};
|
|
152
150
|
message?: string | null | undefined;
|
|
153
151
|
askUser?: {
|
|
154
|
-
|
|
155
|
-
draftQuestion?: string | null | undefined;
|
|
152
|
+
reason: "unresolved_owner_constraint" | "consequential_disclosure_permission" | "repeated_non_convergence" | "insufficient_commitment_authority";
|
|
156
153
|
} | null | undefined;
|
|
157
154
|
} | null> | null | undefined;
|
|
158
155
|
status?: "waiting_for_agent" | "input_required" | "completed" | "active" | import("@langchain/langgraph").OverwriteValue<"waiting_for_agent" | "input_required" | "completed" | "active"> | undefined;
|
|
@@ -212,7 +209,7 @@ export declare class NegotiationGraphFactory {
|
|
|
212
209
|
continuationExecution: import("@langchain/langgraph").BaseChannel<import("../../shared/interfaces/database.interface.js").NegotiationContinuationExecution | undefined, import("../../shared/interfaces/database.interface.js").NegotiationContinuationExecution | import("@langchain/langgraph").OverwriteValue<import("../../shared/interfaces/database.interface.js").NegotiationContinuationExecution | undefined> | undefined, unknown>;
|
|
213
210
|
continuationReceipt: import("@langchain/langgraph").BaseChannel<NegotiationContinuationReceipt | undefined, NegotiationContinuationReceipt | import("@langchain/langgraph").OverwriteValue<NegotiationContinuationReceipt | undefined> | undefined, unknown>;
|
|
214
211
|
privateConsultation: import("@langchain/langgraph").BaseChannel<import("../../shared/interfaces/database.interface.js").NegotiationPrivateConsultation | undefined, import("../../shared/interfaces/database.interface.js").NegotiationPrivateConsultation | import("@langchain/langgraph").OverwriteValue<import("../../shared/interfaces/database.interface.js").NegotiationPrivateConsultation | undefined> | undefined, unknown>;
|
|
215
|
-
consultationPolicyReason: import("@langchain/langgraph").BaseChannel<
|
|
212
|
+
consultationPolicyReason: import("@langchain/langgraph").BaseChannel<"unresolved_owner_constraint" | "consequential_disclosure_permission" | "repeated_non_convergence" | "insufficient_commitment_authority" | undefined, "unresolved_owner_constraint" | "consequential_disclosure_permission" | "repeated_non_convergence" | "insufficient_commitment_authority" | import("@langchain/langgraph").OverwriteValue<"unresolved_owner_constraint" | "consequential_disclosure_permission" | "repeated_non_convergence" | "insufficient_commitment_authority" | undefined> | undefined, unknown>;
|
|
216
213
|
conversationId: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
|
|
217
214
|
taskId: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
|
|
218
215
|
messages: import("@langchain/langgraph").BaseChannel<import("../domain/negotiation.state.js").NegotiationMessage[], import("../domain/negotiation.state.js").NegotiationMessage[] | import("@langchain/langgraph").OverwriteValue<import("../domain/negotiation.state.js").NegotiationMessage[]>, unknown>;
|
|
@@ -231,8 +228,7 @@ export declare class NegotiationGraphFactory {
|
|
|
231
228
|
};
|
|
232
229
|
message?: string | null | undefined;
|
|
233
230
|
askUser?: {
|
|
234
|
-
|
|
235
|
-
draftQuestion?: string | null | undefined;
|
|
231
|
+
reason: "unresolved_owner_constraint" | "consequential_disclosure_permission" | "repeated_non_convergence" | "insufficient_commitment_authority";
|
|
236
232
|
} | null | undefined;
|
|
237
233
|
} | null, {
|
|
238
234
|
action: "propose" | "accept" | "reject" | "counter" | "question" | "outreach" | "withdraw" | "decline" | "ask_user";
|
|
@@ -245,8 +241,7 @@ export declare class NegotiationGraphFactory {
|
|
|
245
241
|
};
|
|
246
242
|
message?: string | null | undefined;
|
|
247
243
|
askUser?: {
|
|
248
|
-
|
|
249
|
-
draftQuestion?: string | null | undefined;
|
|
244
|
+
reason: "unresolved_owner_constraint" | "consequential_disclosure_permission" | "repeated_non_convergence" | "insufficient_commitment_authority";
|
|
250
245
|
} | null | undefined;
|
|
251
246
|
} | import("@langchain/langgraph").OverwriteValue<{
|
|
252
247
|
action: "propose" | "accept" | "reject" | "counter" | "question" | "outreach" | "withdraw" | "decline" | "ask_user";
|
|
@@ -259,8 +254,7 @@ export declare class NegotiationGraphFactory {
|
|
|
259
254
|
};
|
|
260
255
|
message?: string | null | undefined;
|
|
261
256
|
askUser?: {
|
|
262
|
-
|
|
263
|
-
draftQuestion?: string | null | undefined;
|
|
257
|
+
reason: "unresolved_owner_constraint" | "consequential_disclosure_permission" | "repeated_non_convergence" | "insufficient_commitment_authority";
|
|
264
258
|
} | null | undefined;
|
|
265
259
|
} | null> | null, unknown>;
|
|
266
260
|
status: import("@langchain/langgraph").BaseChannel<"waiting_for_agent" | "input_required" | "completed" | "active", "waiting_for_agent" | "input_required" | "completed" | "active" | import("@langchain/langgraph").OverwriteValue<"waiting_for_agent" | "input_required" | "completed" | "active">, unknown>;
|
|
@@ -329,7 +323,7 @@ export declare class NegotiationGraphFactory {
|
|
|
329
323
|
continuationExecution: import("@langchain/langgraph").BaseChannel<import("../../shared/interfaces/database.interface.js").NegotiationContinuationExecution | undefined, import("../../shared/interfaces/database.interface.js").NegotiationContinuationExecution | import("@langchain/langgraph").OverwriteValue<import("../../shared/interfaces/database.interface.js").NegotiationContinuationExecution | undefined> | undefined, unknown>;
|
|
330
324
|
continuationReceipt: import("@langchain/langgraph").BaseChannel<NegotiationContinuationReceipt | undefined, NegotiationContinuationReceipt | import("@langchain/langgraph").OverwriteValue<NegotiationContinuationReceipt | undefined> | undefined, unknown>;
|
|
331
325
|
privateConsultation: import("@langchain/langgraph").BaseChannel<import("../../shared/interfaces/database.interface.js").NegotiationPrivateConsultation | undefined, import("../../shared/interfaces/database.interface.js").NegotiationPrivateConsultation | import("@langchain/langgraph").OverwriteValue<import("../../shared/interfaces/database.interface.js").NegotiationPrivateConsultation | undefined> | undefined, unknown>;
|
|
332
|
-
consultationPolicyReason: import("@langchain/langgraph").BaseChannel<
|
|
326
|
+
consultationPolicyReason: import("@langchain/langgraph").BaseChannel<"unresolved_owner_constraint" | "consequential_disclosure_permission" | "repeated_non_convergence" | "insufficient_commitment_authority" | undefined, "unresolved_owner_constraint" | "consequential_disclosure_permission" | "repeated_non_convergence" | "insufficient_commitment_authority" | import("@langchain/langgraph").OverwriteValue<"unresolved_owner_constraint" | "consequential_disclosure_permission" | "repeated_non_convergence" | "insufficient_commitment_authority" | undefined> | undefined, unknown>;
|
|
333
327
|
conversationId: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
|
|
334
328
|
taskId: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
|
|
335
329
|
messages: import("@langchain/langgraph").BaseChannel<import("../domain/negotiation.state.js").NegotiationMessage[], import("../domain/negotiation.state.js").NegotiationMessage[] | import("@langchain/langgraph").OverwriteValue<import("../domain/negotiation.state.js").NegotiationMessage[]>, unknown>;
|
|
@@ -348,8 +342,7 @@ export declare class NegotiationGraphFactory {
|
|
|
348
342
|
};
|
|
349
343
|
message?: string | null | undefined;
|
|
350
344
|
askUser?: {
|
|
351
|
-
|
|
352
|
-
draftQuestion?: string | null | undefined;
|
|
345
|
+
reason: "unresolved_owner_constraint" | "consequential_disclosure_permission" | "repeated_non_convergence" | "insufficient_commitment_authority";
|
|
353
346
|
} | null | undefined;
|
|
354
347
|
} | null, {
|
|
355
348
|
action: "propose" | "accept" | "reject" | "counter" | "question" | "outreach" | "withdraw" | "decline" | "ask_user";
|
|
@@ -362,8 +355,7 @@ export declare class NegotiationGraphFactory {
|
|
|
362
355
|
};
|
|
363
356
|
message?: string | null | undefined;
|
|
364
357
|
askUser?: {
|
|
365
|
-
|
|
366
|
-
draftQuestion?: string | null | undefined;
|
|
358
|
+
reason: "unresolved_owner_constraint" | "consequential_disclosure_permission" | "repeated_non_convergence" | "insufficient_commitment_authority";
|
|
367
359
|
} | null | undefined;
|
|
368
360
|
} | import("@langchain/langgraph").OverwriteValue<{
|
|
369
361
|
action: "propose" | "accept" | "reject" | "counter" | "question" | "outreach" | "withdraw" | "decline" | "ask_user";
|
|
@@ -376,8 +368,7 @@ export declare class NegotiationGraphFactory {
|
|
|
376
368
|
};
|
|
377
369
|
message?: string | null | undefined;
|
|
378
370
|
askUser?: {
|
|
379
|
-
|
|
380
|
-
draftQuestion?: string | null | undefined;
|
|
371
|
+
reason: "unresolved_owner_constraint" | "consequential_disclosure_permission" | "repeated_non_convergence" | "insufficient_commitment_authority";
|
|
381
372
|
} | null | undefined;
|
|
382
373
|
} | null> | null, unknown>;
|
|
383
374
|
status: import("@langchain/langgraph").BaseChannel<"waiting_for_agent" | "input_required" | "completed" | "active", "waiting_for_agent" | "input_required" | "completed" | "active" | import("@langchain/langgraph").OverwriteValue<"waiting_for_agent" | "input_required" | "completed" | "active">, unknown>;
|
|
@@ -501,7 +492,7 @@ export declare class NegotiationGraphFactory {
|
|
|
501
492
|
continuationExecution: import("@langchain/langgraph").BaseChannel<import("../../shared/interfaces/database.interface.js").NegotiationContinuationExecution | undefined, import("../../shared/interfaces/database.interface.js").NegotiationContinuationExecution | import("@langchain/langgraph").OverwriteValue<import("../../shared/interfaces/database.interface.js").NegotiationContinuationExecution | undefined> | undefined, unknown>;
|
|
502
493
|
continuationReceipt: import("@langchain/langgraph").BaseChannel<NegotiationContinuationReceipt | undefined, NegotiationContinuationReceipt | import("@langchain/langgraph").OverwriteValue<NegotiationContinuationReceipt | undefined> | undefined, unknown>;
|
|
503
494
|
privateConsultation: import("@langchain/langgraph").BaseChannel<import("../../shared/interfaces/database.interface.js").NegotiationPrivateConsultation | undefined, import("../../shared/interfaces/database.interface.js").NegotiationPrivateConsultation | import("@langchain/langgraph").OverwriteValue<import("../../shared/interfaces/database.interface.js").NegotiationPrivateConsultation | undefined> | undefined, unknown>;
|
|
504
|
-
consultationPolicyReason: import("@langchain/langgraph").BaseChannel<
|
|
495
|
+
consultationPolicyReason: import("@langchain/langgraph").BaseChannel<"unresolved_owner_constraint" | "consequential_disclosure_permission" | "repeated_non_convergence" | "insufficient_commitment_authority" | undefined, "unresolved_owner_constraint" | "consequential_disclosure_permission" | "repeated_non_convergence" | "insufficient_commitment_authority" | import("@langchain/langgraph").OverwriteValue<"unresolved_owner_constraint" | "consequential_disclosure_permission" | "repeated_non_convergence" | "insufficient_commitment_authority" | undefined> | undefined, unknown>;
|
|
505
496
|
conversationId: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
|
|
506
497
|
taskId: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
|
|
507
498
|
messages: import("@langchain/langgraph").BaseChannel<import("../domain/negotiation.state.js").NegotiationMessage[], import("../domain/negotiation.state.js").NegotiationMessage[] | import("@langchain/langgraph").OverwriteValue<import("../domain/negotiation.state.js").NegotiationMessage[]>, unknown>;
|
|
@@ -520,8 +511,7 @@ export declare class NegotiationGraphFactory {
|
|
|
520
511
|
};
|
|
521
512
|
message?: string | null | undefined;
|
|
522
513
|
askUser?: {
|
|
523
|
-
|
|
524
|
-
draftQuestion?: string | null | undefined;
|
|
514
|
+
reason: "unresolved_owner_constraint" | "consequential_disclosure_permission" | "repeated_non_convergence" | "insufficient_commitment_authority";
|
|
525
515
|
} | null | undefined;
|
|
526
516
|
} | null, {
|
|
527
517
|
action: "propose" | "accept" | "reject" | "counter" | "question" | "outreach" | "withdraw" | "decline" | "ask_user";
|
|
@@ -534,8 +524,7 @@ export declare class NegotiationGraphFactory {
|
|
|
534
524
|
};
|
|
535
525
|
message?: string | null | undefined;
|
|
536
526
|
askUser?: {
|
|
537
|
-
|
|
538
|
-
draftQuestion?: string | null | undefined;
|
|
527
|
+
reason: "unresolved_owner_constraint" | "consequential_disclosure_permission" | "repeated_non_convergence" | "insufficient_commitment_authority";
|
|
539
528
|
} | null | undefined;
|
|
540
529
|
} | import("@langchain/langgraph").OverwriteValue<{
|
|
541
530
|
action: "propose" | "accept" | "reject" | "counter" | "question" | "outreach" | "withdraw" | "decline" | "ask_user";
|
|
@@ -548,8 +537,7 @@ export declare class NegotiationGraphFactory {
|
|
|
548
537
|
};
|
|
549
538
|
message?: string | null | undefined;
|
|
550
539
|
askUser?: {
|
|
551
|
-
|
|
552
|
-
draftQuestion?: string | null | undefined;
|
|
540
|
+
reason: "unresolved_owner_constraint" | "consequential_disclosure_permission" | "repeated_non_convergence" | "insufficient_commitment_authority";
|
|
553
541
|
} | null | undefined;
|
|
554
542
|
} | null> | null, unknown>;
|
|
555
543
|
status: import("@langchain/langgraph").BaseChannel<"waiting_for_agent" | "input_required" | "completed" | "active", "waiting_for_agent" | "input_required" | "completed" | "active" | import("@langchain/langgraph").OverwriteValue<"waiting_for_agent" | "input_required" | "completed" | "active">, unknown>;
|