@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.
Files changed (37) hide show
  1. package/dist/api/agent.d.ts +5 -1
  2. package/dist/api/agent.d.ts.map +1 -1
  3. package/dist/api/agent.js.map +1 -1
  4. package/dist/api/gmi.d.ts.map +1 -1
  5. package/dist/api/gmi.js +5 -1
  6. package/dist/api/gmi.js.map +1 -1
  7. package/dist/api/runtime/gmiPersona.d.ts +3 -0
  8. package/dist/api/runtime/gmiPersona.d.ts.map +1 -1
  9. package/dist/api/runtime/gmiPersona.js +7 -2
  10. package/dist/api/runtime/gmiPersona.js.map +1 -1
  11. package/dist/cognition/learning/LearnerSession.d.ts +20 -4
  12. package/dist/cognition/learning/LearnerSession.d.ts.map +1 -1
  13. package/dist/cognition/learning/LearnerSession.js +78 -10
  14. package/dist/cognition/learning/LearnerSession.js.map +1 -1
  15. package/dist/cognition/substrate/GMI.d.ts +10 -2
  16. package/dist/cognition/substrate/GMI.d.ts.map +1 -1
  17. package/dist/cognition/substrate/GMI.js +13 -4
  18. package/dist/cognition/substrate/GMI.js.map +1 -1
  19. package/dist/cognition/substrate/GMIManager.d.ts +6 -5
  20. package/dist/cognition/substrate/GMIManager.d.ts.map +1 -1
  21. package/dist/cognition/substrate/GMIManager.js +93 -16
  22. package/dist/cognition/substrate/GMIManager.js.map +1 -1
  23. package/dist/cognition/substrate/index.d.ts +1 -1
  24. package/dist/cognition/substrate/index.d.ts.map +1 -1
  25. package/dist/cognition/substrate/index.js.map +1 -1
  26. package/dist/cognition/substrate/personas/hexaco.d.ts +2 -0
  27. package/dist/cognition/substrate/personas/hexaco.d.ts.map +1 -1
  28. package/dist/cognition/substrate/personas/hexaco.js +1 -1
  29. package/dist/cognition/substrate/personas/hexaco.js.map +1 -1
  30. package/dist/cognition/substrate/personas/personalityPrompt.d.ts +6 -3
  31. package/dist/cognition/substrate/personas/personalityPrompt.d.ts.map +1 -1
  32. package/dist/cognition/substrate/personas/personalityPrompt.js +33 -5
  33. package/dist/cognition/substrate/personas/personalityPrompt.js.map +1 -1
  34. package/dist/index.d.ts +1 -0
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js.map +1 -1
  37. 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 (D3). A tool continuation carries the GMI's own user (the GMI builds its input), so only its
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). The session is opened under the
60
- * namespace its first turn carries, and every later turn is read against it.
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
- const sessionFor = (namespace) => {
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(namespace))
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 inner = await sessionFor(input.namespace ?? '');
88
- return inner.prepareTurn(input);
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":"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"}
1
+ {"version":3,"file":"LearnerSession.js","sourceRoot":"","sources":["../../../src/cognition/learning/LearnerSession.ts"],"names":[],"mappings":"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"}
@@ -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 in progress. Set once per user turn, before the tool loop;
116
- * a tool continuation keeps the preparation of the turn it continues.
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":"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"}
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
- buildToolSessionData(turnInput) {
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
- if (this.turnLearning?.tools) {
693
- sessionData.learning = { ...this.turnLearning.tools };
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;