@openagentpack/sdk 0.7.1 → 0.7.2

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.
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  UserError,
3
3
  inspectProjectSource
4
- } from "./chunk-ZBJDMUJT.js";
4
+ } from "./chunk-HLZOSZ7B.js";
5
5
 
6
6
  // src/internal/project-versions/directory.ts
7
7
  import { createHash, randomUUID } from "crypto";
@@ -1361,6 +1361,13 @@ function injectMetadata(userMetadata, projectName, resourceName) {
1361
1361
  };
1362
1362
  return { ...injected, ...userMetadata };
1363
1363
  }
1364
+ function injectManagedResourceMetadata(userMetadata, projectName, resourceName) {
1365
+ return {
1366
+ ...userMetadata,
1367
+ "agents.project": projectName,
1368
+ "agents.resource": resourceName
1369
+ };
1370
+ }
1364
1371
  function slug(value, fallback) {
1365
1372
  const out = (value ?? "").trim().toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
1366
1373
  return out || fallback;
@@ -2574,6 +2581,7 @@ function normalizeEnvironmentPackages(value) {
2574
2581
  return Object.keys(packages).length > 0 ? packages : void 0;
2575
2582
  }
2576
2583
  function mapEnvironment2(name, decl, projectName) {
2584
+ const displayName = decl.name ?? name;
2577
2585
  const envType = decl.config.type ?? "cloud";
2578
2586
  const config = { type: envType };
2579
2587
  if (decl.config.networking) config.networking = decl.config.networking;
@@ -2582,10 +2590,10 @@ function mapEnvironment2(name, decl, projectName) {
2582
2590
  if (packages) config.packages = packages;
2583
2591
  if (decl.config.setup_script !== void 0) config.setup_script = decl.config.setup_script;
2584
2592
  return {
2585
- name,
2593
+ name: displayName,
2586
2594
  description: decl.description ?? "",
2587
2595
  config,
2588
- metadata: injectMetadata(decl.metadata, projectName, name)
2596
+ metadata: injectManagedResourceMetadata(decl.metadata, projectName, displayName)
2589
2597
  };
2590
2598
  }
2591
2599
  function mapForwardEnvironment(name, decl, projectName) {
@@ -2836,15 +2844,16 @@ function mapAgent2(name, decl, refs, version, projectName) {
2836
2844
  if (!qoderModel) throw new UserError(`No Qoder model specified for agent '${name}'`);
2837
2845
  model = typeof qoderModel === "string" ? qoderModel : qoderModel.id;
2838
2846
  }
2847
+ const displayName = decl.name ?? name;
2839
2848
  const body = {
2840
- name: decl.name ?? name,
2849
+ name: displayName,
2841
2850
  model,
2842
2851
  system: decl.instructions
2843
2852
  };
2844
2853
  if (version !== void 0) body.version = version;
2845
2854
  if (decl.description) body.description = decl.description;
2846
2855
  if (projectName) {
2847
- body.metadata = injectMetadata(decl.metadata, projectName, name);
2856
+ body.metadata = injectManagedResourceMetadata(decl.metadata, projectName, displayName);
2848
2857
  } else if (decl.metadata) {
2849
2858
  body.metadata = decl.metadata;
2850
2859
  }
@@ -3230,7 +3239,7 @@ var QoderAdapter = class _QoderAdapter {
3230
3239
  if (type === "deployment") return "unsupported";
3231
3240
  return _QoderAdapter.ENDPOINT_MAP[type] ? "existence" : "unsupported";
3232
3241
  }
3233
- async readComparableResource(type, id, name) {
3242
+ async readComparableResource(type, id, name, decl) {
3234
3243
  if (type !== "agent" && type !== "environment" && type !== "template" && type !== "identity" && type !== "channel")
3235
3244
  return null;
3236
3245
  if (type === "identity" || type === "channel") {
@@ -3242,15 +3251,22 @@ var QoderAdapter = class _QoderAdapter {
3242
3251
  const comparable2 = this.normalizeRemote(type, raw2);
3243
3252
  return { id: remote.id, type, comparable: comparable2, snapshot: comparable2 };
3244
3253
  }
3245
- const isTemplate = type === "template";
3246
- const endpoint = type === "agent" ? "/agents" : type === "environment" ? "/environments" : "/templates";
3247
- const raw = await locateRemote(
3248
- isTemplate ? this.forwardClient : this.client,
3249
- endpoint,
3250
- name,
3251
- id,
3252
- isTemplate ? (item) => item.status !== "archived" : notArchived
3253
- );
3254
+ let raw;
3255
+ if ((type === "agent" || type === "environment") && decl !== void 0 && this.projectName) {
3256
+ const declaredName = decl.name;
3257
+ const displayName = typeof declaredName === "string" ? declaredName : name;
3258
+ raw = await this.readManagedResourceByIdentity(type, id, displayName);
3259
+ } else {
3260
+ const isTemplate = type === "template";
3261
+ const endpoint = type === "agent" ? "/agents" : type === "environment" ? "/environments" : "/templates";
3262
+ raw = await locateRemote(
3263
+ isTemplate ? this.forwardClient : this.client,
3264
+ endpoint,
3265
+ name,
3266
+ id,
3267
+ isTemplate ? (item) => item.status !== "archived" : notArchived
3268
+ );
3269
+ }
3254
3270
  if (!raw) return null;
3255
3271
  const comparable = this.normalizeRemote(type, raw);
3256
3272
  return {
@@ -3261,6 +3277,38 @@ var QoderAdapter = class _QoderAdapter {
3261
3277
  snapshot: comparable
3262
3278
  };
3263
3279
  }
3280
+ async readManagedResourceByIdentity(type, id, displayName) {
3281
+ const endpoint = type === "agent" ? "/agents" : "/environments";
3282
+ if (id) {
3283
+ try {
3284
+ const raw = await this.client.get(`${endpoint}/${id}`);
3285
+ return this.matchesManagedResourceIdentity(type, raw, displayName) ? raw : null;
3286
+ } catch (error) {
3287
+ if (ApiError.isNotFound(error)) return null;
3288
+ throw error;
3289
+ }
3290
+ }
3291
+ const matches = (await this.client.getAllPaged(endpoint)).filter(
3292
+ (raw) => this.matchesManagedResourceIdentity(type, raw, displayName)
3293
+ );
3294
+ if (matches.length !== 1) return null;
3295
+ const matchedId = matches[0]?.id;
3296
+ if (typeof matchedId !== "string") return null;
3297
+ try {
3298
+ const raw = await this.client.get(`${endpoint}/${matchedId}`);
3299
+ return this.matchesManagedResourceIdentity(type, raw, displayName) ? raw : null;
3300
+ } catch (error) {
3301
+ if (ApiError.isNotFound(error)) return null;
3302
+ throw error;
3303
+ }
3304
+ }
3305
+ matchesManagedResourceIdentity(type, raw, displayName) {
3306
+ if (!notArchived(raw) || raw.name !== displayName) return false;
3307
+ if (typeof raw.type === "string" && raw.type !== type) return false;
3308
+ const metadata = raw.metadata;
3309
+ if (!metadata || typeof metadata !== "object") return false;
3310
+ return metadata["agents.project"] === this.projectName && metadata["agents.resource"] === displayName;
3311
+ }
3264
3312
  normalizeDesiredResource(type, name, decl) {
3265
3313
  if (type === "environment") {
3266
3314
  return this.normalizeRemote(
@@ -3342,7 +3390,7 @@ var QoderAdapter = class _QoderAdapter {
3342
3390
  }
3343
3391
  return compactDeep({
3344
3392
  name: raw.name,
3345
- description: raw.description,
3393
+ description: raw.description === "" ? void 0 : raw.description,
3346
3394
  model: normalizeModel(raw.model),
3347
3395
  instructions: raw.system,
3348
3396
  tools: normalizeQoderTools(raw.tools),
@@ -14,7 +14,7 @@ import {
14
14
  resolveFetch,
15
15
  resolveTargetProviders,
16
16
  skillNameFromFiles
17
- } from "./chunk-ZBJDMUJT.js";
17
+ } from "./chunk-HLZOSZ7B.js";
18
18
 
19
19
  // src/internal/core/project-runtime.ts
20
20
  function createProjectRuntime(input) {
@@ -403,11 +403,11 @@ function structurallyEqual(left, right) {
403
403
  function supportsFullDrift(adapter, type) {
404
404
  return adapter.getDriftSupport?.(type) === "full" && typeof adapter.readComparableResource === "function";
405
405
  }
406
- async function readComparableIfSupported(adapter, type, id, name) {
406
+ async function readComparableIfSupported(adapter, type, id, name, decl) {
407
407
  if (!supportsFullDrift(adapter, type)) return null;
408
408
  if (typeof adapter.readComparableResource !== "function") return null;
409
409
  try {
410
- return await adapter.readComparableResource(type, id, name);
410
+ return await adapter.readComparableResource(type, id, name, decl);
411
411
  } catch {
412
412
  return null;
413
413
  }
@@ -1232,7 +1232,13 @@ async function executeActionInner(action, provider, ctx) {
1232
1232
  const comparableHash = computeComparableDesiredHash(address, ctx.config, provider);
1233
1233
  let remoteHash = comparableHash;
1234
1234
  let remoteSnapshot;
1235
- const remote = await readComparableIfSupported(provider, type, result.id, name);
1235
+ const remote = await readComparableIfSupported(
1236
+ provider,
1237
+ type,
1238
+ result.id,
1239
+ name,
1240
+ getResourceDeclaration(address, ctx.config) ?? void 0
1241
+ );
1236
1242
  if (remote) {
1237
1243
  remoteHash = contentHash(remote.comparable);
1238
1244
  remoteSnapshot = remote.snapshot ?? remote.comparable;
@@ -1845,7 +1851,13 @@ async function refreshState(state, providers, options = {}) {
1845
1851
  try {
1846
1852
  const support = provider.getDriftSupport?.(res.address.type) ?? "existence";
1847
1853
  if (supportsFullDrift(provider, res.address.type) && provider.normalizeDesiredResource) {
1848
- const remote2 = await provider.readComparableResource?.(res.address.type, res.remote_id, res.address.name);
1854
+ const decl = options.config ? getResourceDeclaration(res.address, options.config) : null;
1855
+ const remote2 = await provider.readComparableResource?.(
1856
+ res.address.type,
1857
+ res.remote_id,
1858
+ res.address.name,
1859
+ decl ?? void 0
1860
+ );
1849
1861
  if (!remote2) {
1850
1862
  if (!options.quiet) {
1851
1863
  emitRuntimeFeedback(options.onFeedback, {
@@ -1861,7 +1873,6 @@ async function refreshState(state, providers, options = {}) {
1861
1873
  continue;
1862
1874
  }
1863
1875
  const remoteHash = contentHash(remote2.comparable);
1864
- const decl = options.config ? getResourceDeclaration(res.address, options.config) : null;
1865
1876
  const desiredComparable = decl ? provider.normalizeDesiredResource(res.address.type, res.address.name, decl) : null;
1866
1877
  const desiredComparableHash = desiredComparable === null ? void 0 : contentHash(desiredComparable);
1867
1878
  const baselineHash = res.desired_comparable_hash ?? desiredComparableHash ?? remoteHash;
@@ -2011,7 +2022,13 @@ async function importResource(ctx, address, remoteId, options = {}) {
2011
2022
  throw new UserError(`Planned ${address.type}.${address.name} is missing a content hash.`);
2012
2023
  }
2013
2024
  const provider = ctx.providers.get(address.provider);
2014
- const remote = provider ? await readComparableIfSupported(provider, address.type, remoteId, address.name) : null;
2025
+ const remote = provider ? await readComparableIfSupported(
2026
+ provider,
2027
+ address.type,
2028
+ remoteId,
2029
+ address.name,
2030
+ getResourceDeclaration(address, ctx.config) ?? void 0
2031
+ ) : null;
2015
2032
  const remoteHash = remote ? contentHash(remote.comparable) : void 0;
2016
2033
  const resource = {
2017
2034
  address,
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { U as UserError } from './errors-BcVE1wZB.js';
2
- import { P as ProjectConfig, S as SkillFile, R as ResolvedProjectConfig, a as ProjectRuntimeContext, D as DeploymentContext, b as DeploymentRunResult$1, c as DeploymentInfo$1, d as DeploymentListFilter, e as DeploymentListResult, f as ResourceState, g as ProviderSessionInfo, M as ManagedAgentProviderCapabilities, h as DeploymentRunInfo, i as ProviderSkillInfo, j as SkillDownloadInfo, k as SkillVersionInfo, A as AgentVersionListOptions, l as AgentPage, m as AgentListOptions, n as DeploymentRunPage, E as EnvironmentListOptions, o as EnvironmentPage, F as FileListOptions, p as FilePage, q as SkillVersionListOptions, r as SkillVersionPage, s as SkillListOptions, t as SkillPage, V as VaultListOptions, u as VaultPage, v as SessionEventInput, w as SessionEventSendResult, x as SessionUpdateInput, B as BackendRuntimeInput, y as RuntimeFeedbackSink, z as ModelInfo, C as ProviderAdapter, G as MemoryStoreInfo, H as BatchCreateMemoryInput, I as BatchCreateMemoryResult, J as CreateMemoryInput, K as MemoryInfo, L as CreateMemoryStoreInput, N as MemoryProviderCapabilities, O as MemoryVersionInfo, Q as MemoryListOptions, T as MemoryPage, U as MemoryListItem, W as MemoryStoreListOptions, X as MemoryVersionListOptions, Y as UpdateMemoryInput, Z as UpdateMemoryStoreInput, _ as AgentDecl, $ as SkillDecl, a0 as ResourcePlanResult, a1 as ResourceSyncMode, a2 as DestructivePolicy, a3 as EnvironmentDecl, a4 as RemoteResource, a5 as VaultDecl, a6 as SessionResourceDecl, a7 as SessionFilter, a8 as SessionBindings, a9 as SessionGithubRepositoryResource, aa as StateBackend, ab as StateScope, ac as IStateManager } from './resource-runtime-DZDY45_Q.js';
3
- export { ad as CredentialDecl, ae as CredentialInjectionLocation, af as CredentialNetworking, ag as CursorListOptions, ah as CursorPage, ai as DeploymentDecl, aj as LoadedProjectConfig, ak as ManagedAgentOperationAuth, al as ManagedAgentOperationCapability, am as MemoryPrefixInfo, an as ResourceActionResult, ao as ResourceExecutionResult, ap as ResourcePlanScope, aq as ResourceRefreshResult, ar as ResourceRuntimeOptions, as as ResourceSyncRun, at as RuntimeFeedbackEvent, au as SessionListResult, av as StateManager, aw as VaultCredentialInfo, ax as createProjectRuntime, ay as decideDestructive, az as executePlannedProject, aA as importResource, aB as planProjectContext, aC as planProjectWithStateBackend, aD as readProjectRuntime, aE as resolveProjectConfig, aF as resolveProjectConfigFromObject, aG as syncProjectResourcesWithStateBackend, aH as writeProjectRuntime } from './resource-runtime-DZDY45_Q.js';
2
+ import { P as ProjectConfig, S as SkillFile, R as ResolvedProjectConfig, a as ProjectRuntimeContext, D as DeploymentContext, b as DeploymentRunResult$1, c as DeploymentInfo$1, d as DeploymentListFilter, e as DeploymentListResult, f as ResourceState, g as ProviderSessionInfo, M as ManagedAgentProviderCapabilities, h as DeploymentRunInfo, i as ProviderSkillInfo, j as SkillDownloadInfo, k as SkillVersionInfo, A as AgentVersionListOptions, l as AgentPage, m as AgentListOptions, n as DeploymentRunPage, E as EnvironmentListOptions, o as EnvironmentPage, F as FileListOptions, p as FilePage, q as SkillVersionListOptions, r as SkillVersionPage, s as SkillListOptions, t as SkillPage, V as VaultListOptions, u as VaultPage, v as SessionEventInput, w as SessionEventSendResult, x as SessionUpdateInput, B as BackendRuntimeInput, y as RuntimeFeedbackSink, z as ModelInfo, C as ProviderAdapter, G as MemoryStoreInfo, H as BatchCreateMemoryInput, I as BatchCreateMemoryResult, J as CreateMemoryInput, K as MemoryInfo, L as CreateMemoryStoreInput, N as MemoryProviderCapabilities, O as MemoryVersionInfo, Q as MemoryListOptions, T as MemoryPage, U as MemoryListItem, W as MemoryStoreListOptions, X as MemoryVersionListOptions, Y as UpdateMemoryInput, Z as UpdateMemoryStoreInput, _ as AgentDecl, $ as SkillDecl, a0 as ResourcePlanResult, a1 as ResourceSyncMode, a2 as DestructivePolicy, a3 as EnvironmentDecl, a4 as RemoteResource, a5 as VaultDecl, a6 as SessionResourceDecl, a7 as SessionFilter, a8 as SessionBindings, a9 as SessionGithubRepositoryResource, aa as StateBackend, ab as StateScope, ac as IStateManager } from './resource-runtime-DZsBWDjg.js';
3
+ export { ad as CredentialDecl, ae as CredentialInjectionLocation, af as CredentialNetworking, ag as CursorListOptions, ah as CursorPage, ai as DeploymentDecl, aj as LoadedProjectConfig, ak as ManagedAgentOperationAuth, al as ManagedAgentOperationCapability, am as MemoryPrefixInfo, an as ResourceActionResult, ao as ResourceExecutionResult, ap as ResourcePlanScope, aq as ResourceRefreshResult, ar as ResourceRuntimeOptions, as as ResourceSyncRun, at as RuntimeFeedbackEvent, au as SessionListResult, av as StateManager, aw as VaultCredentialInfo, ax as createProjectRuntime, ay as decideDestructive, az as executePlannedProject, aA as importResource, aB as planProjectContext, aC as planProjectWithStateBackend, aD as readProjectRuntime, aE as resolveProjectConfig, aF as resolveProjectConfigFromObject, aG as syncProjectResourcesWithStateBackend, aH as writeProjectRuntime } from './resource-runtime-DZsBWDjg.js';
4
4
  import { D as Diagnostic, R as ResourceType, P as PlannedAction, A as AgentDefinition, a as AgentReadiness, b as AgentWithReadiness, C as CloudAgent, c as CloudEnvironment, d as CloudVault, e as AgentSyncRun, f as ResourceAddress } from './dto-BT1Q1Ii6.js';
5
5
  export { g as ActionType, h as ActionTypeSchema, i as AgentDefinitionSchema, j as AgentDriftSeverity, k as AgentDriftSeveritySchema, l as AgentModel, m as AgentModelSchema, n as AgentReadinessSchema, o as AgentReadinessStatus, p as AgentReadinessStatusSchema, q as AgentRecoveryAction, r as AgentRecoveryActionSchema, s as AgentSkillRef, t as AgentSkillRefSchema, u as AgentSyncReason, v as AgentSyncReasonSchema, w as AgentSyncResult, x as AgentSyncResultSchema, y as AgentSyncRunSchema, z as AgentSyncStatus, B as AgentSyncStatusSchema, E as AgentWithReadinessSchema, F as CloudAgentSchema, G as CloudEnvironmentSchema, H as CloudVaultSchema, I as CreateSessionRequest, J as CreateSessionRequestSchema, K as CreateSessionResponse, L as CreateSessionResponseSchema, M as DiagnosticSchema, N as DiagnosticSeverity, O as DiagnosticSeveritySchema, Q as DriftKind, S as DriftKindSchema, T as GetSessionRequest, U as GetSessionRequestSchema, V as KNOWN_SESSION_EVENT_TYPES, W as KnownSessionEventType, X as ListCloudAgentsResponse, Y as ListCloudAgentsResponseSchema, Z as ListCloudEnvironmentsResponse, _ as ListCloudEnvironmentsResponseSchema, $ as ListSessionEventsRequest, a0 as ListSessionEventsRequestSchema, a1 as ListSessionEventsResponse, a2 as ListSessionEventsResponseSchema, a3 as ListSessionsRequest, a4 as ListSessionsRequestSchema, a5 as ListSessionsResponse, a6 as ListSessionsResponseSchema, a7 as PlanReadinessImpact, a8 as PlanReadinessImpactSchema, a9 as PlannedActionSchema, aa as ResourceAddressSchema, ab as ResourceTypeSchema, ac as SendEventRequest, ad as SendEventRequestSchema, ae as SendEventResponse, af as SendEventResponseSchema, ag as Session, ah as SessionAgent, ai as SessionAgentSchema, aj as SessionContentBlock, ak as SessionContentBlockSchema, al as SessionEvent, am as SessionEventSchema, an as SessionEventType, ao as SessionEventTypeName, ap as SessionEventTypeSchema, aq as SessionSchema } from './dto-BT1Q1Ii6.js';
6
6
  import { P as ProviderFileInfo } from './file-Cj5-Vx27.js';
package/dist/index.js CHANGED
@@ -23,7 +23,7 @@ import {
23
23
  selectDestructive,
24
24
  syncProjectResourcesWithStateBackend,
25
25
  writeProjectRuntime
26
- } from "./chunk-HIK5DY4I.js";
26
+ } from "./chunk-LJQMLMAT.js";
27
27
  import {
28
28
  ApiError,
29
29
  ConflictError,
@@ -49,7 +49,7 @@ import {
49
49
  rewriteFileMentions,
50
50
  setDefaultFetch,
51
51
  validateProjectConfig
52
- } from "./chunk-ZBJDMUJT.js";
52
+ } from "./chunk-HLZOSZ7B.js";
53
53
  import "./chunk-6PDVAFLK.js";
54
54
  import {
55
55
  defaultFileUploadPurpose,
@@ -13,8 +13,8 @@ import {
13
13
  readProjectVersionSource,
14
14
  releasePreparedProjectVersion,
15
15
  restoreProjectVersion
16
- } from "./chunk-56BB46YT.js";
17
- import "./chunk-ZBJDMUJT.js";
16
+ } from "./chunk-7L73W3DL.js";
17
+ import "./chunk-HLZOSZ7B.js";
18
18
  import "./chunk-6PDVAFLK.js";
19
19
  import "./chunk-CHGDM6TX.js";
20
20
  export {
@@ -1,4 +1,4 @@
1
- import { aj as LoadedProjectConfig, a0 as ResourcePlanResult, as as ResourceSyncRun, y as RuntimeFeedbackSink } from './resource-runtime-DZDY45_Q.js';
1
+ import { aj as LoadedProjectConfig, a0 as ResourcePlanResult, as as ResourceSyncRun, y as RuntimeFeedbackSink } from './resource-runtime-DZsBWDjg.js';
2
2
  import { U as UserError } from './errors-BcVE1wZB.js';
3
3
  import { D as Diagnostic, P as PlannedAction } from './dto-BT1Q1Ii6.js';
4
4
  import { e as DirectoryProjectVersionService } from './directory-nY2Slsfi.js';
@@ -4,17 +4,17 @@ import {
4
4
  planProjectContext,
5
5
  planProjectWithStateBackend,
6
6
  writeProjectRuntime
7
- } from "./chunk-HIK5DY4I.js";
7
+ } from "./chunk-LJQMLMAT.js";
8
8
  import {
9
9
  createDirectoryProjectVersionService
10
- } from "./chunk-56BB46YT.js";
10
+ } from "./chunk-7L73W3DL.js";
11
11
  import {
12
12
  UserError,
13
13
  inspectProjectSource,
14
14
  resolveProjectConfig,
15
15
  resolveProjectConfigFromObject,
16
16
  validateProjectConfig
17
- } from "./chunk-ZBJDMUJT.js";
17
+ } from "./chunk-HLZOSZ7B.js";
18
18
  import "./chunk-6PDVAFLK.js";
19
19
  import "./chunk-CHGDM6TX.js";
20
20
 
@@ -809,7 +809,7 @@ interface ProviderAdapter {
809
809
  listVaultResources?(options?: VaultListOptions): Promise<VaultPage>;
810
810
  getRemoteVault?(id: string): Promise<CloudVault>;
811
811
  getDriftSupport?(type: ResourceType): DriftSupport;
812
- readComparableResource?(type: ResourceType, id: string | null, name: string): Promise<ComparableRemoteResource | null>;
812
+ readComparableResource?(type: ResourceType, id: string | null, name: string, decl?: unknown): Promise<ComparableRemoteResource | null>;
813
813
  normalizeDesiredResource?(type: ResourceType, name: string, decl: unknown): unknown | null;
814
814
  /**
815
815
  * Reverse-map remote resources of a given type into `agents.yaml` declarations
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openagentpack/sdk",
3
- "version": "0.7.1",
3
+ "version": "0.7.2",
4
4
  "description": "OpenAgentPack SDK (Node-compatible runtime)",
5
5
  "license": "Apache-2.0",
6
6
  "keywords": [