@modelprofile.com/flexharness 3.4.0 → 3.6.0

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 CHANGED
@@ -1,5 +1,24 @@
1
1
  # Changelog
2
2
 
3
+ ## 2026-08-13 - 3.6.0
4
+
5
+ ### Features
6
+
7
+ - compose run-scoped resource tool providers (harness)
8
+ - Resolve fresh resource providers per run while preserving the existing application tool provider.
9
+ - Expose deterministic bounded tool namespaces and bind permissions to non-spoofable resource revision identity.
10
+ - Reject duplicate resources, namespaces, and exposed tools before execution, with complete retryable cleanup across failure, cancellation, retirement, and disposal.
11
+
12
+ ## 2026-08-13 - 3.5.0
13
+
14
+ ### Features
15
+
16
+ - add first-class foreground subagent sessions (harness)
17
+ - Expose bounded configured subagents through a reserved permission-gated `task` tool with durable child sessions and later-run resume by `taskId`.
18
+ - Project child session and model metadata through cumulative `part.updated` events while preserving the terminal tool result.
19
+ - Validate persisted parent, origin, agent, depth, and tombstone relationships without changing the existing snapshot schema version.
20
+ - Cancel and delete complete session subtrees child-first with retryable cleanup ownership, exact alias contexts, and deadlock-safe namespace fencing.
21
+
3
22
  ## 2026-08-13 - 3.4.0
4
23
 
5
24
  ### Features
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@modelprofile.com/flexharness',
6
- version: '3.4.0',
6
+ version: '3.6.0',
7
7
  description: 'Provider-neutral model-session runtime with durable history, permissions, typed events, and pluggable local or remote tool execution.'
8
8
  };
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSwrQkFBK0I7SUFDckMsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLHVJQUF1STtDQUNySixDQUFBIn0=
@@ -1,8 +1,11 @@
1
1
  import type { IFlexBackgroundExecution, IFlexCreateSessionOptions, IFlexEventArchiveMetadata, IFlexHarnessOptions, IFlexMessage, IFlexMessagePage, IFlexMessagePageOptions, IFlexPermissionRequest, IFlexPromptAdmission, IFlexPromptQueueAdmission, IFlexPromptQueueEntry, IFlexPromptOptions, IFlexPromptResult, IFlexScheduledPromptAdmission, IFlexSchedulePromptOptions, IFlexSession, IFlexUncertainToolExecution, IFlexUpdateSessionOptions, IJsonObject, TFlexHarnessEventListener, TFlexPermissionDecision, TFlexPrompt, TFlexToolExecutionReconciliation } from './interfaces.js';
2
+ export declare function createFlexResourceToolNamespace(resourceId: string, attachmentRevision: number): string;
3
+ export declare function createFlexResourceToolName(namespace: string, toolName: string): string;
2
4
  export declare class FlexHarness<TScope = unknown> {
3
5
  private readonly scopeResolver;
4
6
  private readonly modelResolver;
5
7
  private readonly toolProvider;
8
+ private readonly resourceToolProviderResolver;
6
9
  private readonly executionContextProvider;
7
10
  private readonly stores;
8
11
  private readonly agentSessionPolicy;
@@ -10,6 +13,9 @@ export declare class FlexHarness<TScope = unknown> {
10
13
  private readonly callbackLimits;
11
14
  private readonly promptQueueLimits;
12
15
  private readonly externalErrorProjector?;
16
+ private readonly subagents;
17
+ private readonly maxSubagentDepth;
18
+ private readonly maxSubagentCallsPerRun;
13
19
  private readonly stateLoads;
14
20
  private readonly scopeAdmissions;
15
21
  private readonly scopeRetirements;
@@ -82,6 +88,12 @@ export declare class FlexHarness<TScope = unknown> {
82
88
  private executeRun;
83
89
  private finishFailedRun;
84
90
  private prepareGeneration;
91
+ private createSubagentTool;
92
+ private executeSubagentTask;
93
+ private acquireSubagentSession;
94
+ private createSubagentSessionId;
95
+ private updateSubagentToolPart;
96
+ private abortExactRun;
85
97
  private createReservation;
86
98
  private buildTerminal;
87
99
  private promoteCompletedTerminal;
@@ -110,6 +122,8 @@ export declare class FlexHarness<TScope = unknown> {
110
122
  private abortRunInternally;
111
123
  private rollbackAdmission;
112
124
  private normalizeToolHandle;
125
+ private provideRunToolHandle;
126
+ private normalizeResourceToolProviderDescriptors;
113
127
  private closePartialToolHandle;
114
128
  private retainDetachedCleanup;
115
129
  private observeDetachedToolProvider;
@@ -133,9 +147,19 @@ export declare class FlexHarness<TScope = unknown> {
133
147
  private createScopeSnapshot;
134
148
  private createProjectionSnapshot;
135
149
  private cleanupSessionDomains;
150
+ private collectSessionSubtree;
151
+ private tombstoneGroup;
152
+ private descendantTombstoneRoots;
153
+ private orderTombstoneRootsChildFirst;
136
154
  private finishTombstoneCleanup;
137
155
  private finishTombstoneCleanupInternal;
138
156
  private fenceNamespace;
157
+ private deferNamespaceDrain;
158
+ private sessionsAreDependencyRelated;
159
+ private isSessionAncestor;
160
+ private sessionAncestryDepth;
161
+ private sessionParentSessionId;
162
+ private sessionMetadata;
139
163
  private closeStoredSession;
140
164
  private abortStoredSession;
141
165
  private storedSessionCleanupCompleted;