@framers/agentos 0.15.57 → 0.15.59
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/api/agent.d.ts +5 -1
- package/dist/api/agent.d.ts.map +1 -1
- package/dist/api/agent.js.map +1 -1
- package/dist/api/gmi.d.ts.map +1 -1
- package/dist/api/gmi.js +5 -1
- package/dist/api/gmi.js.map +1 -1
- package/dist/api/runtime/gmiPersona.d.ts +3 -0
- package/dist/api/runtime/gmiPersona.d.ts.map +1 -1
- package/dist/api/runtime/gmiPersona.js +7 -2
- package/dist/api/runtime/gmiPersona.js.map +1 -1
- package/dist/cognition/learning/LearnerSession.d.ts +20 -4
- package/dist/cognition/learning/LearnerSession.d.ts.map +1 -1
- package/dist/cognition/learning/LearnerSession.js +78 -10
- package/dist/cognition/learning/LearnerSession.js.map +1 -1
- package/dist/cognition/substrate/GMI.d.ts +10 -2
- package/dist/cognition/substrate/GMI.d.ts.map +1 -1
- package/dist/cognition/substrate/GMI.js +13 -4
- package/dist/cognition/substrate/GMI.js.map +1 -1
- package/dist/cognition/substrate/GMIManager.d.ts +6 -5
- package/dist/cognition/substrate/GMIManager.d.ts.map +1 -1
- package/dist/cognition/substrate/GMIManager.js +93 -16
- package/dist/cognition/substrate/GMIManager.js.map +1 -1
- package/dist/cognition/substrate/index.d.ts +1 -1
- package/dist/cognition/substrate/index.d.ts.map +1 -1
- package/dist/cognition/substrate/index.js.map +1 -1
- package/dist/cognition/substrate/personas/hexaco.d.ts +2 -0
- package/dist/cognition/substrate/personas/hexaco.d.ts.map +1 -1
- package/dist/cognition/substrate/personas/hexaco.js +1 -1
- package/dist/cognition/substrate/personas/hexaco.js.map +1 -1
- package/dist/cognition/substrate/personas/personalityPrompt.d.ts +6 -3
- package/dist/cognition/substrate/personas/personalityPrompt.d.ts.map +1 -1
- package/dist/cognition/substrate/personas/personalityPrompt.js +33 -5
- package/dist/cognition/substrate/personas/personalityPrompt.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +6 -1
|
@@ -30,7 +30,7 @@ export class LearnerSession {
|
|
|
30
30
|
/**
|
|
31
31
|
* Why this turn has no learner, or `undefined` when it has one. Every turn is read against the session's user and
|
|
32
32
|
* namespace first, a workflow turn included, so a turn of another user or namespace ends the session's learner
|
|
33
|
-
* whatever else it is
|
|
33
|
+
* whatever else it is. A tool continuation carries the GMI's own user (the GMI builds its input), so only its
|
|
34
34
|
* namespace is read: a continuation under another organization (a resume whose host passed one) ends it too.
|
|
35
35
|
*/
|
|
36
36
|
noLearnerReasonFor(input) {
|
|
@@ -48,6 +48,19 @@ export class LearnerSession {
|
|
|
48
48
|
return this.lostLearner;
|
|
49
49
|
return input.workflowSeat ? 'workflow_seat' : undefined;
|
|
50
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* Takes the loss of the learner that a deferred session saw on a turn it could not open for
|
|
53
|
+
* ({@link deferLearnerSession}): no turn of this session has a learner from now on, as if the session had been open
|
|
54
|
+
* at that turn, and the layer counts each such turn under the reason. A session with no learner keeps its own
|
|
55
|
+
* reason. A host's own session that has a method of this name and shape takes the loss the same way.
|
|
56
|
+
*
|
|
57
|
+
* @param reason - Why the turn the deferred session saw has no learner.
|
|
58
|
+
*/
|
|
59
|
+
adoptLatch(reason) {
|
|
60
|
+
if ('reason' in this.binding || this.lostLearner)
|
|
61
|
+
return;
|
|
62
|
+
this.lostLearner = reason;
|
|
63
|
+
}
|
|
51
64
|
/** Nothing to flush: the session holds no state that outlives it. */
|
|
52
65
|
async endSession() { }
|
|
53
66
|
currentTraits() {
|
|
@@ -56,26 +69,56 @@ export class LearnerSession {
|
|
|
56
69
|
}
|
|
57
70
|
/**
|
|
58
71
|
* A learner session whose learner is named at its first turn: the full runtime's GMIs built where the turn's
|
|
59
|
-
* organization is not known yet (a GMI built again for a tool-result resume)
|
|
60
|
-
* namespace its first turn carries, and every later turn is read against
|
|
72
|
+
* organization is not known yet (a GMI built again for a tool-result resume), and a session whose open failed. The
|
|
73
|
+
* session is opened under the namespace its first turn carries, on every attempt, and every later turn is read against
|
|
74
|
+
* it. A turn the open failed for is read against the first one as the opened session reads it (a tool continuation
|
|
75
|
+
* carries the GMI's own user, so only its namespace is read): the first such turn of another user or another namespace
|
|
76
|
+
* is remembered, and once the session opens no turn has a learner. A turn the opened session prepares, one that waited
|
|
77
|
+
* on the same open included, is read by the session itself, in the order the turns came. A session that cannot take
|
|
78
|
+
* the loss ({@link LearnerSession.adoptLatch}, a host's own that has no `adoptLatch`) has its later turns answered with
|
|
79
|
+
* no learner here.
|
|
61
80
|
*
|
|
62
|
-
* @param args.open - Opens the session for the first turn's namespace. A failed open is tried again on the next turn
|
|
81
|
+
* @param args.open - Opens the session for the first turn's namespace. A failed open is tried again on the next turn,
|
|
82
|
+
* under the same namespace.
|
|
63
83
|
* @param args.traits - What `currentTraits()` answers before the session is open.
|
|
64
84
|
*/
|
|
65
85
|
export function deferLearnerSession(args) {
|
|
66
86
|
let opening;
|
|
67
87
|
let opened;
|
|
68
|
-
|
|
88
|
+
/** The namespace of the session's first turn: every open is made under it. */
|
|
89
|
+
let firstNamespace;
|
|
90
|
+
/** The user of the session's first turn that is not a tool continuation. */
|
|
91
|
+
let firstUser;
|
|
92
|
+
/** The loss of the learner the first turn the open failed for, of another user or namespace, carried. */
|
|
93
|
+
let lost;
|
|
94
|
+
/** Whether the opened session took `lost` itself. */
|
|
95
|
+
let adopted = false;
|
|
96
|
+
/** Why a turn has no learner by the session's rule, read against the first turn as the opened session reads it. */
|
|
97
|
+
const ruleOf = (input) => {
|
|
98
|
+
const namespace = input.namespace ?? '';
|
|
99
|
+
if (firstNamespace === undefined)
|
|
100
|
+
firstNamespace = namespace;
|
|
101
|
+
if (!input.continuation) {
|
|
102
|
+
if (!firstUser)
|
|
103
|
+
firstUser = { id: input.userId };
|
|
104
|
+
else if (input.userId !== firstUser.id)
|
|
105
|
+
return 'other_user';
|
|
106
|
+
}
|
|
107
|
+
return namespace !== firstNamespace ? 'other_namespace' : undefined;
|
|
108
|
+
};
|
|
109
|
+
const sessionFor = () => {
|
|
110
|
+
if (opened)
|
|
111
|
+
return Promise.resolve(opened);
|
|
69
112
|
if (opening)
|
|
70
113
|
return opening;
|
|
71
114
|
const attempt = Promise.resolve()
|
|
72
|
-
.then(() => args.open(
|
|
115
|
+
.then(() => args.open(firstNamespace ?? ''))
|
|
73
116
|
.then((inner) => {
|
|
74
117
|
opened = inner;
|
|
75
118
|
return inner;
|
|
76
119
|
});
|
|
77
120
|
opening = attempt;
|
|
78
|
-
// A failed open is not kept: the next turn opens again.
|
|
121
|
+
// A failed open is not kept: the next turn opens again, under the same namespace.
|
|
79
122
|
attempt.catch(() => {
|
|
80
123
|
if (opening === attempt)
|
|
81
124
|
opening = undefined;
|
|
@@ -84,11 +127,36 @@ export function deferLearnerSession(args) {
|
|
|
84
127
|
};
|
|
85
128
|
return {
|
|
86
129
|
async prepareTurn(input) {
|
|
87
|
-
const
|
|
88
|
-
|
|
130
|
+
const rule = opened ? undefined : ruleOf(input);
|
|
131
|
+
let inner;
|
|
132
|
+
try {
|
|
133
|
+
inner = await sessionFor();
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
// The open failed for this turn: the session it opens takes the first such loss.
|
|
137
|
+
lost ?? (lost = rule);
|
|
138
|
+
throw error;
|
|
139
|
+
}
|
|
140
|
+
// Handed over as the session prepares a turn, so a turn it reads itself keeps its own answer.
|
|
141
|
+
if (lost && !adopted) {
|
|
142
|
+
const adopt = inner.adoptLatch;
|
|
143
|
+
if (typeof adopt === 'function') {
|
|
144
|
+
adopt.call(inner, lost);
|
|
145
|
+
adopted = true;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
const prepared = await inner.prepareTurn(input);
|
|
149
|
+
// A session that could not take the loss answers by its own reading of the session's rule; the loss is the first
|
|
150
|
+
// and stands over it. A reason the session has whatever the turn (no user id, a placeholder user, no agent key, a
|
|
151
|
+
// workflow seat) stays.
|
|
152
|
+
const ruled = prepared?.learner === 'bound' || prepared?.noLearnerReason === 'other_user' || prepared?.noLearnerReason === 'other_namespace';
|
|
153
|
+
if (lost && !adopted && prepared && ruled) {
|
|
154
|
+
return { ...prepared, learner: 'none', noLearnerReason: lost };
|
|
155
|
+
}
|
|
156
|
+
return prepared;
|
|
89
157
|
},
|
|
90
158
|
async endSession() {
|
|
91
|
-
const inner = await opening?.catch(() => undefined);
|
|
159
|
+
const inner = opened ?? (await opening?.catch(() => undefined));
|
|
92
160
|
await inner?.endSession();
|
|
93
161
|
},
|
|
94
162
|
currentTraits: () => (opened ? opened.currentTraits() : { ...args.traits }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LearnerSession.js","sourceRoot":"","sources":["../../../src/cognition/learning/LearnerSession.ts"],"names":[],"mappings":"AASA,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,4CAA4C,CAAC;AAyBpD,MAAM,OAAO,cAAc;IAMzB;;;;OAIG;IACH,YACmB,IAAwB,EACxB,OAAuB,EACxC,OAAuB;QAFN,SAAI,GAAJ,IAAI,CAAoB;QACxB,YAAO,GAAP,OAAO,CAAgB;QAGxC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,iBAAiB,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QAC7F,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,uBAAuB,wBAAwB,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAA2B;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5B,OAAO;YACL,aAAa,EAAE,IAAI,CAAC,OAAO;gBACzB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,2BAA2B,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC;gBACpG,CAAC,CAAC,EAAE;YACN,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;YAClC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;SAC3B,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,kBAAkB,CAAC,KAA2B;QACpD,IAAI,QAAQ,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACzD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;gBACpE,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC;YAClC,CAAC;iBAAM,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;gBAChE,IAAI,CAAC,WAAW,GAAG,iBAAiB,CAAC;YACvC,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC;QAC9C,OAAO,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1D,CAAC;IAED,qEAAqE;IACrE,KAAK,CAAC,UAAU,KAAmB,CAAC;IAEpC,aAAa;QACX,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;CACF;AAED
|
|
1
|
+
{"version":3,"file":"LearnerSession.js","sourceRoot":"","sources":["../../../src/cognition/learning/LearnerSession.ts"],"names":[],"mappings":"AASA,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,4CAA4C,CAAC;AAyBpD,MAAM,OAAO,cAAc;IAMzB;;;;OAIG;IACH,YACmB,IAAwB,EACxB,OAAuB,EACxC,OAAuB;QAFN,SAAI,GAAJ,IAAI,CAAoB;QACxB,YAAO,GAAP,OAAO,CAAgB;QAGxC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,iBAAiB,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QAC7F,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,uBAAuB,wBAAwB,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAA2B;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5B,OAAO;YACL,aAAa,EAAE,IAAI,CAAC,OAAO;gBACzB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,2BAA2B,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC;gBACpG,CAAC,CAAC,EAAE;YACN,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;YAClC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;SAC3B,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,kBAAkB,CAAC,KAA2B;QACpD,IAAI,QAAQ,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACzD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;gBACpE,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC;YAClC,CAAC;iBAAM,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;gBAChE,IAAI,CAAC,WAAW,GAAG,iBAAiB,CAAC;YACvC,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC;QAC9C,OAAO,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1D,CAAC;IAED;;;;;;;OAOG;IACH,UAAU,CAAC,MAAwC;QACjD,IAAI,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QACzD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;IAC5B,CAAC;IAED,qEAAqE;IACrE,KAAK,CAAC,UAAU,KAAmB,CAAC;IAEpC,aAAa;QACX,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;CACF;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAGnC;IACC,IAAI,OAA6C,CAAC;IAClD,IAAI,MAAmC,CAAC;IACxC,8EAA8E;IAC9E,IAAI,cAAkC,CAAC;IACvC,4EAA4E;IAC5E,IAAI,SAA4C,CAAC;IACjD,yGAAyG;IACzG,IAAI,IAAkD,CAAC;IACvD,qDAAqD;IACrD,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,mHAAmH;IACnH,MAAM,MAAM,GAAG,CAAC,KAA2B,EAAgD,EAAE;QAC3F,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;QACxC,IAAI,cAAc,KAAK,SAAS;YAAE,cAAc,GAAG,SAAS,CAAC;QAC7D,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YACxB,IAAI,CAAC,SAAS;gBAAE,SAAS,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;iBAC5C,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,EAAE;gBAAE,OAAO,YAAY,CAAC;QAC9D,CAAC;QACD,OAAO,SAAS,KAAK,cAAc,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,GAA6B,EAAE;QAChD,IAAI,MAAM;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;QAC5B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE;aAC9B,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;aAC3C,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YACd,MAAM,GAAG,KAAK,CAAC;YACf,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QACL,OAAO,GAAG,OAAO,CAAC;QAClB,kFAAkF;QAClF,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;YACjB,IAAI,OAAO,KAAK,OAAO;gBAAE,OAAO,GAAG,SAAS,CAAC;QAC/C,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,CAAC,WAAW,CAAC,KAA2B;YAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAChD,IAAI,KAAsB,CAAC;YAC3B,IAAI,CAAC;gBACH,KAAK,GAAG,MAAM,UAAU,EAAE,CAAC;YAC7B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,iFAAiF;gBACjF,IAAI,KAAJ,IAAI,GAAK,IAAI,EAAC;gBACd,MAAM,KAAK,CAAC;YACd,CAAC;YACD,8FAA8F;YAC9F,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACrB,MAAM,KAAK,GAAI,KAAkC,CAAC,UAAU,CAAC;gBAC7D,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;oBAChC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBACxB,OAAO,GAAG,IAAI,CAAC;gBACjB,CAAC;YACH,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAChD,iHAAiH;YACjH,kHAAkH;YAClH,wBAAwB;YACxB,MAAM,KAAK,GAAG,QAAQ,EAAE,OAAO,KAAK,OAAO,IAAI,QAAQ,EAAE,eAAe,KAAK,YAAY,IAAI,QAAQ,EAAE,eAAe,KAAK,iBAAiB,CAAC;YAC7I,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;gBAC1C,OAAO,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;YACjE,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,KAAK,CAAC,UAAU;YACd,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;YAChE,MAAM,KAAK,EAAE,UAAU,EAAE,CAAC;QAC5B,CAAC;QACD,aAAa,EAAE,GAAsB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;KAC/F,CAAC;AACJ,CAAC"}
|
|
@@ -112,8 +112,9 @@ export declare class GMI implements IGMI {
|
|
|
112
112
|
*/
|
|
113
113
|
private ownPersonalitySection;
|
|
114
114
|
/**
|
|
115
|
-
* What the learning layer prepared for the turn
|
|
116
|
-
*
|
|
115
|
+
* What the learning layer prepared for the latest turn. Set once per user turn, before the tool loop; a tool
|
|
116
|
+
* continuation reuses the preparation of the turn it continues. A turn's tool calls read the turn's own preparation,
|
|
117
|
+
* not this field, which a newer turn replaces.
|
|
117
118
|
*/
|
|
118
119
|
private turnLearning;
|
|
119
120
|
private memoryBridge;
|
|
@@ -259,6 +260,13 @@ export declare class GMI implements IGMI {
|
|
|
259
260
|
* for its conversation unless the turn names a conversation.
|
|
260
261
|
*/
|
|
261
262
|
private memoryTurnScope;
|
|
263
|
+
/**
|
|
264
|
+
* The session data each tool call of a turn carries: its session, conversation and organization, and the turn's own
|
|
265
|
+
* learning, never a newer turn's.
|
|
266
|
+
*
|
|
267
|
+
* @param turnInput - The turn's input.
|
|
268
|
+
* @param learning - The turn's own learning preparation.
|
|
269
|
+
*/
|
|
262
270
|
private buildToolSessionData;
|
|
263
271
|
/**
|
|
264
272
|
* Ensures the GMI is initialized and idle: READY, or ERRORED after a failed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GMI.d.ts","sourceRoot":"","sources":["../../../src/cognition/substrate/GMI.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EACL,IAAI,EACJ,aAAa,EACb,YAAY,EACZ,cAAc,EAEd,aAAa,EAIb,cAAc,EAGd,eAAe,EACf,oBAAoB,EACpB,uBAAuB,EAIvB,cAAc,EACd,iBAAiB,EACjB,SAAS,EAIV,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EAA+D,oBAAoB,EAAoD,MAAM,QAAQ,CAAC;AAElK,OAAO,EACL,kBAAkB,EAEnB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,KAAK,EAAE,eAAe,EAAuB,MAAM,sBAAsB,CAAC;AAgBjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAElF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAMnF,OAAO,EAAwB,KAAK,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAqInF;;;;;GAKG;AACH,qBAAa,GAAI,YAAW,IAAI;IAC9B,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,iBAAiB,EAAE,IAAI,CAAC;IAExC,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,MAAM,CAAiB;IAG/B,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,kBAAkB,CAAC,CAAsB;IACjD,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,kBAAkB,CAA0B;IACpD,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,eAAe,CAAC,CAA0B;IAGlD,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,kBAAkB,CAAe;IACzC,OAAO,CAAC,kBAAkB,CAAe;IACzC,OAAO,CAAC,cAAc,CAAiB;IACvC,wGAAwG;IACxG,OAAO,CAAC,WAAW,CAAuD;IAC1E,OAAO,CAAC,0BAA0B,CAA8B;IAEhE;;;;;;OAMG;IACH,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,cAAc,CAAK;IAE3B;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsE;IAEnG,2FAA2F;IAC3F,OAAO,CAAC,kBAAkB,CAA4B;IAEtD;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA8C;IAC7E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,yGAAyG;IACzG,OAAO,CAAC,iBAAiB,CAAoC;IAE7D;;;;OAIG;IACH,OAAO,CAAC,cAAc,CAAmC;IAEzD;;;;;OAKG;IACH,OAAO,CAAC,eAAe,CAA8B;IAErD;;;;OAIG;IACH,OAAO,CAAC,gBAAgB,CAA8B;IAEtD;;;;OAIG;IACH,OAAO,CAAC,cAAc,CAA0E;IAEhG;;;;OAIG;IACH,OAAO,CAAC,aAAa,CAA0B;IAE/C,sGAAsG;IACtG,OAAO,CAAC,cAAc,CAA8B;IAEpD;;;;OAIG;IACH,OAAO,CAAC,qBAAqB,CAAuB;IAEpD
|
|
1
|
+
{"version":3,"file":"GMI.d.ts","sourceRoot":"","sources":["../../../src/cognition/substrate/GMI.ts"],"names":[],"mappings":"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"}
|
|
@@ -674,7 +674,14 @@ export class GMI {
|
|
|
674
674
|
const namedConversation = typeof turnInput.metadata?.conversationId === 'string' ? turnInput.metadata.conversationId.trim() : '';
|
|
675
675
|
return { sessionId, conversationId: namedConversation || sessionId, organizationId };
|
|
676
676
|
}
|
|
677
|
-
|
|
677
|
+
/**
|
|
678
|
+
* The session data each tool call of a turn carries: its session, conversation and organization, and the turn's own
|
|
679
|
+
* learning, never a newer turn's.
|
|
680
|
+
*
|
|
681
|
+
* @param turnInput - The turn's input.
|
|
682
|
+
* @param learning - The turn's own learning preparation.
|
|
683
|
+
*/
|
|
684
|
+
buildToolSessionData(turnInput, learning) {
|
|
678
685
|
const sessionId = typeof turnInput.sessionId === 'string' ? turnInput.sessionId.trim() : '';
|
|
679
686
|
const conversationId = this.getConversationIdForTurn(turnInput);
|
|
680
687
|
const organizationId = this.getOrganizationIdForTurn(turnInput);
|
|
@@ -689,8 +696,10 @@ export class GMI {
|
|
|
689
696
|
sessionData.organizationId = organizationId;
|
|
690
697
|
}
|
|
691
698
|
// The turn's learner and mode, on a GMI with a learner session: a self-modification tool reads them before it acts.
|
|
692
|
-
|
|
693
|
-
|
|
699
|
+
// They come from the turn's own preparation, so a newer turn or a continuation that ran during this turn's tool
|
|
700
|
+
// call never changes them.
|
|
701
|
+
if (learning?.tools) {
|
|
702
|
+
sessionData.learning = { ...learning.tools };
|
|
694
703
|
}
|
|
695
704
|
return Object.keys(sessionData).length > 0 ? sessionData : undefined;
|
|
696
705
|
}
|
|
@@ -1704,7 +1713,7 @@ export class GMI {
|
|
|
1704
1713
|
gmiId: this.gmiId, personaId: this.activePersona.id,
|
|
1705
1714
|
personaCapabilities: this.activePersona.allowedCapabilities || [],
|
|
1706
1715
|
userContext: this.currentUserContext, correlationId: turnId,
|
|
1707
|
-
sessionData: this.buildToolSessionData(turnInput),
|
|
1716
|
+
sessionData: this.buildToolSessionData(turnInput, turnLearning),
|
|
1708
1717
|
};
|
|
1709
1718
|
this.addTraceEntry(ReasoningEntryType.TOOL_EXECUTION_START, `Orchestrating tool: ${toolCallReq.name}`, { reqId: toolCallReq.id });
|
|
1710
1719
|
callInFlight = toolCallReq;
|