@higher.archi/boe 1.0.27 → 1.0.29

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.
Files changed (56) hide show
  1. package/dist/engines/decay/compiler.d.ts +11 -0
  2. package/dist/engines/decay/compiler.d.ts.map +1 -0
  3. package/dist/engines/decay/compiler.js +216 -0
  4. package/dist/engines/decay/compiler.js.map +1 -0
  5. package/dist/engines/decay/engine.d.ts +79 -0
  6. package/dist/engines/decay/engine.d.ts.map +1 -0
  7. package/dist/engines/decay/engine.js +159 -0
  8. package/dist/engines/decay/engine.js.map +1 -0
  9. package/dist/engines/decay/index.d.ts +9 -0
  10. package/dist/engines/decay/index.d.ts.map +1 -0
  11. package/dist/engines/decay/index.js +21 -0
  12. package/dist/engines/decay/index.js.map +1 -0
  13. package/dist/engines/decay/strategy.d.ts +21 -0
  14. package/dist/engines/decay/strategy.d.ts.map +1 -0
  15. package/dist/engines/decay/strategy.js +308 -0
  16. package/dist/engines/decay/strategy.js.map +1 -0
  17. package/dist/engines/decay/types.d.ts +157 -0
  18. package/dist/engines/decay/types.d.ts.map +1 -0
  19. package/dist/engines/decay/types.js +39 -0
  20. package/dist/engines/decay/types.js.map +1 -0
  21. package/dist/engines/negotiation/compiler.d.ts +11 -0
  22. package/dist/engines/negotiation/compiler.d.ts.map +1 -0
  23. package/dist/engines/negotiation/compiler.js +177 -0
  24. package/dist/engines/negotiation/compiler.js.map +1 -0
  25. package/dist/engines/negotiation/engine.d.ts +46 -0
  26. package/dist/engines/negotiation/engine.d.ts.map +1 -0
  27. package/dist/engines/negotiation/engine.js +88 -0
  28. package/dist/engines/negotiation/engine.js.map +1 -0
  29. package/dist/engines/negotiation/index.d.ts +8 -0
  30. package/dist/engines/negotiation/index.d.ts.map +1 -0
  31. package/dist/engines/negotiation/index.js +17 -0
  32. package/dist/engines/negotiation/index.js.map +1 -0
  33. package/dist/engines/negotiation/strategy.d.ts +18 -0
  34. package/dist/engines/negotiation/strategy.d.ts.map +1 -0
  35. package/dist/engines/negotiation/strategy.js +439 -0
  36. package/dist/engines/negotiation/strategy.js.map +1 -0
  37. package/dist/engines/negotiation/types.d.ts +179 -0
  38. package/dist/engines/negotiation/types.d.ts.map +1 -0
  39. package/dist/engines/negotiation/types.js +10 -0
  40. package/dist/engines/negotiation/types.js.map +1 -0
  41. package/dist/index.d.ts +6 -0
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +22 -6
  44. package/dist/index.js.map +1 -1
  45. package/package.json +1 -1
  46. package/src/engines/decay/compiler.ts +276 -0
  47. package/src/engines/decay/engine.ts +211 -0
  48. package/src/engines/decay/index.ts +43 -0
  49. package/src/engines/decay/strategy.ts +433 -0
  50. package/src/engines/decay/types.ts +231 -0
  51. package/src/engines/negotiation/compiler.ts +229 -0
  52. package/src/engines/negotiation/engine.ts +117 -0
  53. package/src/engines/negotiation/index.ts +42 -0
  54. package/src/engines/negotiation/strategy.ts +587 -0
  55. package/src/engines/negotiation/types.ts +244 -0
  56. package/src/index.ts +69 -0
@@ -0,0 +1,177 @@
1
+ "use strict";
2
+ /**
3
+ * Negotiation Engine Compiler
4
+ *
5
+ * Validates negotiation rulesets and resolves defaults.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.compileNegotiationRuleSet = compileNegotiationRuleSet;
9
+ const errors_1 = require("../../core/errors");
10
+ const types_1 = require("../utility/types");
11
+ /**
12
+ * Compile and validate a negotiation ruleset.
13
+ */
14
+ function compileNegotiationRuleSet(ruleSet) {
15
+ if (!ruleSet.id) {
16
+ throw new errors_1.CompilationError('Negotiation ruleset requires an id');
17
+ }
18
+ if (ruleSet.mode !== 'negotiation') {
19
+ throw new errors_1.CompilationError(`Expected mode 'negotiation', got '${ruleSet.mode}'`);
20
+ }
21
+ // Validate dimensions
22
+ if (!ruleSet.dimensions || ruleSet.dimensions.length === 0) {
23
+ throw new errors_1.CompilationError('At least one dimension is required');
24
+ }
25
+ const dimensionIds = new Set();
26
+ for (const dim of ruleSet.dimensions) {
27
+ if (!dim.id) {
28
+ throw new errors_1.CompilationError('Each dimension requires an id');
29
+ }
30
+ if (dimensionIds.has(dim.id)) {
31
+ throw new errors_1.CompilationError(`Duplicate dimension id: '${dim.id}'`);
32
+ }
33
+ dimensionIds.add(dim.id);
34
+ }
35
+ // Validate exactly 2 parties
36
+ if (!ruleSet.parties || ruleSet.parties.length !== 2) {
37
+ throw new errors_1.CompilationError('Exactly 2 parties are required');
38
+ }
39
+ // Validate party positions reference existing dimensions and ordering
40
+ for (const party of ruleSet.parties) {
41
+ if (!party.id) {
42
+ throw new errors_1.CompilationError('Each party requires an id');
43
+ }
44
+ for (const pos of party.positions) {
45
+ if (!dimensionIds.has(pos.dimensionId)) {
46
+ throw new errors_1.CompilationError(`Party '${party.id}' references unknown dimension '${pos.dimensionId}'`);
47
+ }
48
+ // Validate acceptable is between ideal and walkaway
49
+ // Each party can have any direction preference -- the dimension direction
50
+ // represents party A's preference, party B naturally has the opposite.
51
+ const minVal = Math.min(pos.ideal, pos.walkaway);
52
+ const maxVal = Math.max(pos.ideal, pos.walkaway);
53
+ if (pos.acceptable < minVal || pos.acceptable > maxVal) {
54
+ throw new errors_1.CompilationError(`Party '${party.id}', dimension '${pos.dimensionId}': ` +
55
+ `acceptable must be between ideal and walkaway`);
56
+ }
57
+ if (pos.ideal === pos.walkaway) {
58
+ throw new errors_1.CompilationError(`Party '${party.id}', dimension '${pos.dimensionId}': ` +
59
+ `ideal and walkaway must differ`);
60
+ }
61
+ }
62
+ }
63
+ // Resolve and normalize value weights per party
64
+ const compiledWeights = {};
65
+ for (const partyId of Object.keys(ruleSet.valueWeights)) {
66
+ const weights = ruleSet.valueWeights[partyId];
67
+ const resolved = resolveWeights(weights, partyId);
68
+ compiledWeights[partyId] = resolved;
69
+ }
70
+ // Build compiled parties
71
+ const compiledParties = [
72
+ {
73
+ id: ruleSet.parties[0].id,
74
+ name: ruleSet.parties[0].name,
75
+ positions: ruleSet.parties[0].positions,
76
+ batna: ruleSet.parties[0].batna
77
+ },
78
+ {
79
+ id: ruleSet.parties[1].id,
80
+ name: ruleSet.parties[1].name,
81
+ positions: ruleSet.parties[1].positions,
82
+ batna: ruleSet.parties[1].batna
83
+ }
84
+ ];
85
+ switch (ruleSet.strategy) {
86
+ case 'zopa-analysis':
87
+ return compileZopaAnalysis(ruleSet, compiledParties, compiledWeights);
88
+ case 'concession-planning':
89
+ return compileConcessionPlanning(ruleSet, compiledParties, compiledWeights);
90
+ case 'package-optimization':
91
+ return compilePackageOptimization(ruleSet, compiledParties, compiledWeights);
92
+ default:
93
+ throw new errors_1.CompilationError(`Unknown negotiation strategy: '${ruleSet.strategy}'`);
94
+ }
95
+ }
96
+ // ========================================
97
+ // Strategy-Specific Compilers
98
+ // ========================================
99
+ function compileZopaAnalysis(ruleSet, parties, valueWeights) {
100
+ return {
101
+ id: ruleSet.id,
102
+ name: ruleSet.name,
103
+ mode: 'negotiation',
104
+ strategy: 'zopa-analysis',
105
+ dimensions: ruleSet.dimensions,
106
+ parties,
107
+ valueWeights,
108
+ config: {
109
+ resolution: ruleSet.config?.resolution ?? 100
110
+ }
111
+ };
112
+ }
113
+ function compileConcessionPlanning(ruleSet, parties, valueWeights) {
114
+ return {
115
+ id: ruleSet.id,
116
+ name: ruleSet.name,
117
+ mode: 'negotiation',
118
+ strategy: 'concession-planning',
119
+ dimensions: ruleSet.dimensions,
120
+ parties,
121
+ valueWeights,
122
+ config: {
123
+ style: ruleSet.config?.style ?? 'moderate',
124
+ rounds: ruleSet.config?.rounds ?? 5,
125
+ startingPosition: ruleSet.config?.startingPosition ?? 'ideal'
126
+ }
127
+ };
128
+ }
129
+ function compilePackageOptimization(ruleSet, parties, valueWeights) {
130
+ return {
131
+ id: ruleSet.id,
132
+ name: ruleSet.name,
133
+ mode: 'negotiation',
134
+ strategy: 'package-optimization',
135
+ dimensions: ruleSet.dimensions,
136
+ parties,
137
+ valueWeights,
138
+ config: {
139
+ sampleSize: ruleSet.config?.sampleSize ?? 1000,
140
+ objectiveWeights: ruleSet.config?.objectiveWeights ?? {
141
+ closeProb: 0.6,
142
+ margin: 0.4
143
+ }
144
+ }
145
+ };
146
+ }
147
+ // ========================================
148
+ // Weight Resolution
149
+ // ========================================
150
+ function resolveWeights(weights, partyId) {
151
+ const resolved = weights.map(w => {
152
+ let weight;
153
+ if ((0, types_1.isSemanticPriority)(w.weight)) {
154
+ weight = types_1.SEMANTIC_PRIORITY_VALUES[w.weight];
155
+ }
156
+ else if (typeof w.weight === 'number') {
157
+ weight = w.weight;
158
+ }
159
+ else {
160
+ throw new errors_1.CompilationError(`Invalid weight for party '${partyId}', dimension '${w.dimensionId}': '${w.weight}'`);
161
+ }
162
+ return {
163
+ dimensionId: w.dimensionId,
164
+ weight
165
+ };
166
+ });
167
+ // Normalize to sum to 1.0
168
+ const totalWeight = resolved.reduce((sum, w) => sum + w.weight, 0);
169
+ if (totalWeight === 0) {
170
+ throw new errors_1.CompilationError(`Value weights for party '${partyId}' must not all be zero`);
171
+ }
172
+ for (const w of resolved) {
173
+ w.weight = w.weight / totalWeight;
174
+ }
175
+ return resolved;
176
+ }
177
+ //# sourceMappingURL=compiler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../../src/engines/negotiation/compiler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Negotiation Engine
3
+ *
4
+ * Two-party negotiation engine that analyzes zones of possible agreement,
5
+ * plans concession strategies, and optimizes deal packages across
6
+ * multiple dimensions.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * const engine = new NegotiationEngine();
11
+ *
12
+ * const result = engine.execute(compiledNegotiation);
13
+ * console.log(result.outcome); // 'agreed' | 'no-zopa' | 'batna-preferred'
14
+ * ```
15
+ */
16
+ import { WorkingMemory, Fact, FactInput, FactChange } from '../../core';
17
+ import type { CompiledNegotiationRuleSet, NegotiationOptions, NegotiationResult } from './types';
18
+ export declare class NegotiationEngine {
19
+ private wm;
20
+ private strategy;
21
+ constructor(workingMemory?: WorkingMemory);
22
+ add<T = Record<string, any>>(input: FactInput<T>): Fact<T>;
23
+ remove(factId: string): Fact | undefined;
24
+ update<T = Record<string, any>>(input: FactInput<T>): Fact<T>;
25
+ get(factId: string): Fact | undefined;
26
+ getByType(type: string): Fact[];
27
+ getAll(): Fact[];
28
+ has(factId: string): boolean;
29
+ size(): number;
30
+ clear(): void;
31
+ getChanges(): FactChange[];
32
+ clearChanges(): void;
33
+ /**
34
+ * Execute a negotiation ruleset.
35
+ *
36
+ * Analyzes party positions across all dimensions and produces
37
+ * a negotiation result with ZOPA, concession plans, or optimized packages.
38
+ *
39
+ * @param ruleSet - Compiled negotiation ruleset
40
+ * @param options - Runtime options (onStep callback, onPackage callback)
41
+ * @returns Negotiation result with outcome and analysis
42
+ */
43
+ execute(ruleSet: CompiledNegotiationRuleSet, options?: NegotiationOptions): NegotiationResult;
44
+ getWorkingMemory(): WorkingMemory;
45
+ }
46
+ //# sourceMappingURL=engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/engines/negotiation/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,aAAa,EACb,IAAI,EACJ,SAAS,EACT,UAAU,EACX,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EACV,0BAA0B,EAC1B,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAIjB,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,EAAE,CAAgB;IAC1B,OAAO,CAAC,QAAQ,CAAsB;gBAE1B,aAAa,CAAC,EAAE,aAAa;IASzC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAI1D,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAIxC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAI7D,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAIrC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE;IAI/B,MAAM,IAAI,IAAI,EAAE;IAIhB,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAI5B,IAAI,IAAI,MAAM;IAId,KAAK,IAAI,IAAI;IAIb,UAAU,IAAI,UAAU,EAAE;IAI1B,YAAY,IAAI,IAAI;IAQpB;;;;;;;;;OASG;IACH,OAAO,CACL,OAAO,EAAE,0BAA0B,EACnC,OAAO,GAAE,kBAAuB,GAC/B,iBAAiB;IAQpB,gBAAgB,IAAI,aAAa;CAGlC"}
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ /**
3
+ * Negotiation Engine
4
+ *
5
+ * Two-party negotiation engine that analyzes zones of possible agreement,
6
+ * plans concession strategies, and optimizes deal packages across
7
+ * multiple dimensions.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * const engine = new NegotiationEngine();
12
+ *
13
+ * const result = engine.execute(compiledNegotiation);
14
+ * console.log(result.outcome); // 'agreed' | 'no-zopa' | 'batna-preferred'
15
+ * ```
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.NegotiationEngine = void 0;
19
+ const core_1 = require("../../core");
20
+ const strategy_1 = require("./strategy");
21
+ class NegotiationEngine {
22
+ wm;
23
+ strategy;
24
+ constructor(workingMemory) {
25
+ this.wm = workingMemory ?? new core_1.WorkingMemory();
26
+ this.strategy = new strategy_1.NegotiationExecutor();
27
+ }
28
+ // ========================================
29
+ // IWorkingMemory Implementation
30
+ // ========================================
31
+ add(input) {
32
+ return this.wm.add(input);
33
+ }
34
+ remove(factId) {
35
+ return this.wm.remove(factId);
36
+ }
37
+ update(input) {
38
+ return this.wm.update(input);
39
+ }
40
+ get(factId) {
41
+ return this.wm.get(factId);
42
+ }
43
+ getByType(type) {
44
+ return this.wm.getByType(type);
45
+ }
46
+ getAll() {
47
+ return this.wm.getAll();
48
+ }
49
+ has(factId) {
50
+ return this.wm.has(factId);
51
+ }
52
+ size() {
53
+ return this.wm.size();
54
+ }
55
+ clear() {
56
+ this.wm.clear();
57
+ }
58
+ getChanges() {
59
+ return this.wm.getChanges();
60
+ }
61
+ clearChanges() {
62
+ this.wm.clearChanges();
63
+ }
64
+ // ========================================
65
+ // Engine Execution
66
+ // ========================================
67
+ /**
68
+ * Execute a negotiation ruleset.
69
+ *
70
+ * Analyzes party positions across all dimensions and produces
71
+ * a negotiation result with ZOPA, concession plans, or optimized packages.
72
+ *
73
+ * @param ruleSet - Compiled negotiation ruleset
74
+ * @param options - Runtime options (onStep callback, onPackage callback)
75
+ * @returns Negotiation result with outcome and analysis
76
+ */
77
+ execute(ruleSet, options = {}) {
78
+ return this.strategy.run(ruleSet, options);
79
+ }
80
+ // ========================================
81
+ // Utility Methods
82
+ // ========================================
83
+ getWorkingMemory() {
84
+ return this.wm;
85
+ }
86
+ }
87
+ exports.NegotiationEngine = NegotiationEngine;
88
+ //# sourceMappingURL=engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/engines/negotiation/engine.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,qCAKoB;AAQpB,yCAAiD;AAEjD,MAAa,iBAAiB;IACpB,EAAE,CAAgB;IAClB,QAAQ,CAAsB;IAEtC,YAAY,aAA6B;QACvC,IAAI,CAAC,EAAE,GAAG,aAAa,IAAI,IAAI,oBAAa,EAAE,CAAC;QAC/C,IAAI,CAAC,QAAQ,GAAG,IAAI,8BAAmB,EAAE,CAAC;IAC5C,CAAC;IAED,2CAA2C;IAC3C,gCAAgC;IAChC,2CAA2C;IAE3C,GAAG,CAA0B,KAAmB;QAC9C,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,MAAc;QACnB,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,CAA0B,KAAmB;QACjD,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,GAAG,CAAC,MAAc;QAChB,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;IAC1B,CAAC;IAED,GAAG,CAAC,MAAc;QAChB,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;IAC9B,CAAC;IAED,YAAY;QACV,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;IACzB,CAAC;IAED,2CAA2C;IAC3C,mBAAmB;IACnB,2CAA2C;IAE3C;;;;;;;;;OASG;IACH,OAAO,CACL,OAAmC,EACnC,UAA8B,EAAE;QAEhC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,2CAA2C;IAC3C,kBAAkB;IAClB,2CAA2C;IAE3C,gBAAgB;QACd,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;CACF;AArFD,8CAqFC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Negotiation Engine -- Two-Party Deal Analysis
3
+ */
4
+ export type { NegotiationStrategy, ConcessionStyle, DealOutcome, DimensionDirection, NegotiationDimension, PartyPosition, PartyProfile, ValueFunction, CompiledValueFunction, CompiledPartyProfile, ZopaAnalysisConfig, ConcessionPlanningConfig, PackageOptimizationConfig, ZopaAnalysisRuleSet, ConcessionPlanningRuleSet, PackageOptimizationRuleSet, NegotiationRuleSet, CompiledZopaAnalysisRuleSet, CompiledConcessionPlanningRuleSet, CompiledPackageOptimizationRuleSet, CompiledNegotiationRuleSet, ZopaRange, ConcessionStep, PackageCandidate, NegotiationResult, NegotiationOptions } from './types';
5
+ export { compileNegotiationRuleSet } from './compiler';
6
+ export { NegotiationExecutor, negotiationStrategy } from './strategy';
7
+ export { NegotiationEngine } from './engine';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/engines/negotiation/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACV,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,EACnB,yBAAyB,EACzB,0BAA0B,EAC1B,kBAAkB,EAClB,2BAA2B,EAC3B,iCAAiC,EACjC,kCAAkC,EAClC,0BAA0B,EAC1B,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAGvD,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ /**
3
+ * Negotiation Engine -- Two-Party Deal Analysis
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.NegotiationEngine = exports.negotiationStrategy = exports.NegotiationExecutor = exports.compileNegotiationRuleSet = void 0;
7
+ // Compiler
8
+ var compiler_1 = require("./compiler");
9
+ Object.defineProperty(exports, "compileNegotiationRuleSet", { enumerable: true, get: function () { return compiler_1.compileNegotiationRuleSet; } });
10
+ // Strategy
11
+ var strategy_1 = require("./strategy");
12
+ Object.defineProperty(exports, "NegotiationExecutor", { enumerable: true, get: function () { return strategy_1.NegotiationExecutor; } });
13
+ Object.defineProperty(exports, "negotiationStrategy", { enumerable: true, get: function () { return strategy_1.negotiationStrategy; } });
14
+ // Engine
15
+ var engine_1 = require("./engine");
16
+ Object.defineProperty(exports, "NegotiationEngine", { enumerable: true, get: function () { return engine_1.NegotiationEngine; } });
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engines/negotiation/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAgCH,WAAW;AACX,uCAAuD;AAA9C,qHAAA,yBAAyB,OAAA;AAElC,WAAW;AACX,uCAAsE;AAA7D,+GAAA,mBAAmB,OAAA;AAAE,+GAAA,mBAAmB,OAAA;AAEjD,SAAS;AACT,mCAA6C;AAApC,2GAAA,iBAAiB,OAAA"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Negotiation Engine Strategy
3
+ *
4
+ * Core execution logic for all negotiation strategies:
5
+ * - zopa-analysis: Compute zones of possible agreement per dimension
6
+ * - concession-planning: Simulate round-by-round concession trajectories
7
+ * - package-optimization: Find optimal deal packages within the ZOPA
8
+ */
9
+ import type { CompiledNegotiationRuleSet, NegotiationOptions, NegotiationResult } from './types';
10
+ export declare class NegotiationExecutor {
11
+ run(ruleSet: CompiledNegotiationRuleSet, options?: NegotiationOptions): NegotiationResult;
12
+ private runZopaAnalysis;
13
+ private runConcessionPlanning;
14
+ private runPackageOptimization;
15
+ }
16
+ /** Singleton instance */
17
+ export declare const negotiationStrategy: NegotiationExecutor;
18
+ //# sourceMappingURL=strategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategy.d.ts","sourceRoot":"","sources":["../../../src/engines/negotiation/strategy.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,0BAA0B,EAO1B,kBAAkB,EAClB,iBAAiB,EAMlB,MAAM,SAAS,CAAC;AAMjB,qBAAa,mBAAmB;IAC9B,GAAG,CACD,OAAO,EAAE,0BAA0B,EACnC,OAAO,GAAE,kBAAuB,GAC/B,iBAAiB;IAiBpB,OAAO,CAAC,eAAe;IA0EvB,OAAO,CAAC,qBAAqB;IA+J7B,OAAO,CAAC,sBAAsB;CA0J/B;AAmJD,yBAAyB;AACzB,eAAO,MAAM,mBAAmB,qBAA4B,CAAC"}