@openagentpack/sdk 0.7.1 → 0.7.3

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.
@@ -14,7 +14,7 @@ import {
14
14
  resolveFetch,
15
15
  resolveTargetProviders,
16
16
  skillNameFromFiles
17
- } from "./chunk-ZBJDMUJT.js";
17
+ } from "./chunk-IRA4LOCJ.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,
@@ -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
  }
@@ -2885,12 +2894,10 @@ function mapAgent2(name, decl, refs, version, projectName) {
2885
2894
  }
2886
2895
  }
2887
2896
  }
2888
- if (refs.skill_ids.length) {
2889
- body.skills = refs.skill_ids.map((s) => ({
2890
- type: s.type === "official" ? "qoder" : s.type,
2891
- skill_id: s.skill_id
2892
- }));
2893
- }
2897
+ body.skills = refs.skill_ids.map((s) => ({
2898
+ type: s.type === "official" ? "qoder" : s.type,
2899
+ skill_id: s.skill_id
2900
+ }));
2894
2901
  return body;
2895
2902
  }
2896
2903
  function mapForwardTemplate(name, decl, refs, projectName) {
@@ -3230,7 +3237,7 @@ var QoderAdapter = class _QoderAdapter {
3230
3237
  if (type === "deployment") return "unsupported";
3231
3238
  return _QoderAdapter.ENDPOINT_MAP[type] ? "existence" : "unsupported";
3232
3239
  }
3233
- async readComparableResource(type, id, name) {
3240
+ async readComparableResource(type, id, name, decl) {
3234
3241
  if (type !== "agent" && type !== "environment" && type !== "template" && type !== "identity" && type !== "channel")
3235
3242
  return null;
3236
3243
  if (type === "identity" || type === "channel") {
@@ -3242,15 +3249,22 @@ var QoderAdapter = class _QoderAdapter {
3242
3249
  const comparable2 = this.normalizeRemote(type, raw2);
3243
3250
  return { id: remote.id, type, comparable: comparable2, snapshot: comparable2 };
3244
3251
  }
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
- );
3252
+ let raw;
3253
+ if ((type === "agent" || type === "environment") && decl !== void 0 && this.projectName) {
3254
+ const declaredName = decl.name;
3255
+ const displayName = typeof declaredName === "string" ? declaredName : name;
3256
+ raw = await this.readManagedResourceByIdentity(type, id, displayName);
3257
+ } else {
3258
+ const isTemplate = type === "template";
3259
+ const endpoint = type === "agent" ? "/agents" : type === "environment" ? "/environments" : "/templates";
3260
+ raw = await locateRemote(
3261
+ isTemplate ? this.forwardClient : this.client,
3262
+ endpoint,
3263
+ name,
3264
+ id,
3265
+ isTemplate ? (item) => item.status !== "archived" : notArchived
3266
+ );
3267
+ }
3254
3268
  if (!raw) return null;
3255
3269
  const comparable = this.normalizeRemote(type, raw);
3256
3270
  return {
@@ -3261,6 +3275,38 @@ var QoderAdapter = class _QoderAdapter {
3261
3275
  snapshot: comparable
3262
3276
  };
3263
3277
  }
3278
+ async readManagedResourceByIdentity(type, id, displayName) {
3279
+ const endpoint = type === "agent" ? "/agents" : "/environments";
3280
+ if (id) {
3281
+ try {
3282
+ const raw = await this.client.get(`${endpoint}/${id}`);
3283
+ return this.matchesManagedResourceIdentity(type, raw, displayName) ? raw : null;
3284
+ } catch (error) {
3285
+ if (ApiError.isNotFound(error)) return null;
3286
+ throw error;
3287
+ }
3288
+ }
3289
+ const matches = (await this.client.getAllPaged(endpoint)).filter(
3290
+ (raw) => this.matchesManagedResourceIdentity(type, raw, displayName)
3291
+ );
3292
+ if (matches.length !== 1) return null;
3293
+ const matchedId = matches[0]?.id;
3294
+ if (typeof matchedId !== "string") return null;
3295
+ try {
3296
+ const raw = await this.client.get(`${endpoint}/${matchedId}`);
3297
+ return this.matchesManagedResourceIdentity(type, raw, displayName) ? raw : null;
3298
+ } catch (error) {
3299
+ if (ApiError.isNotFound(error)) return null;
3300
+ throw error;
3301
+ }
3302
+ }
3303
+ matchesManagedResourceIdentity(type, raw, displayName) {
3304
+ if (!notArchived(raw) || raw.name !== displayName) return false;
3305
+ if (typeof raw.type === "string" && raw.type !== type) return false;
3306
+ const metadata = raw.metadata;
3307
+ if (!metadata || typeof metadata !== "object") return false;
3308
+ return metadata["agents.project"] === this.projectName && metadata["agents.resource"] === displayName;
3309
+ }
3264
3310
  normalizeDesiredResource(type, name, decl) {
3265
3311
  if (type === "environment") {
3266
3312
  return this.normalizeRemote(
@@ -3342,7 +3388,7 @@ var QoderAdapter = class _QoderAdapter {
3342
3388
  }
3343
3389
  return compactDeep({
3344
3390
  name: raw.name,
3345
- description: raw.description,
3391
+ description: raw.description === "" ? void 0 : raw.description,
3346
3392
  model: normalizeModel(raw.model),
3347
3393
  instructions: raw.system,
3348
3394
  tools: normalizeQoderTools(raw.tools),
@@ -4356,18 +4402,16 @@ function mapAgent3(name, decl, refs, version, projectName, skillVersions) {
4356
4402
  });
4357
4403
  }
4358
4404
  }
4359
- if (refs.skill_ids.length) {
4360
- body.skills = refs.skill_ids.map((s) => ({
4361
- // Bailian's SkillType enum is "customer" | "official"; map the
4362
- // resolver's generic "custom" sentinel to "customer".
4363
- type: s.type === "custom" ? "customer" : s.type,
4364
- skill_id: s.skill_id,
4365
- // Bailian composes `{skill_id}@{version}` internally and rejects
4366
- // entries without a version. Prefer explicit external references, then
4367
- // the latest active remote version, then the common initial version.
4368
- version: s.version ?? skillVersions?.[s.skill_id] ?? "1.0"
4369
- }));
4370
- }
4405
+ body.skills = refs.skill_ids.map((s) => ({
4406
+ // Bailian's SkillType enum is "customer" | "official"; map the
4407
+ // resolver's generic "custom" sentinel to "customer".
4408
+ type: s.type === "custom" ? "customer" : s.type,
4409
+ skill_id: s.skill_id,
4410
+ // Bailian composes `{skill_id}@{version}` internally and rejects
4411
+ // entries without a version. Prefer explicit external references, then
4412
+ // the latest active remote version, then the common initial version.
4413
+ version: s.version ?? skillVersions?.[s.skill_id] ?? "1.0"
4414
+ }));
4371
4415
  return body;
4372
4416
  }
4373
4417
  function mapSession3(bindings) {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  UserError,
3
3
  inspectProjectSource
4
- } from "./chunk-ZBJDMUJT.js";
4
+ } from "./chunk-IRA4LOCJ.js";
5
5
 
6
6
  // src/internal/project-versions/directory.ts
7
7
  import { createHash, randomUUID } from "crypto";
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-DFRNXUT3.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-IRA4LOCJ.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-XQMLTTGI.js";
17
+ import "./chunk-IRA4LOCJ.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-DFRNXUT3.js";
8
8
  import {
9
9
  createDirectoryProjectVersionService
10
- } from "./chunk-56BB46YT.js";
10
+ } from "./chunk-XQMLTTGI.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-IRA4LOCJ.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.3",
4
4
  "description": "OpenAgentPack SDK (Node-compatible runtime)",
5
5
  "license": "Apache-2.0",
6
6
  "keywords": [