@sellable/install 0.1.472 → 0.1.473

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.
@@ -1134,15 +1134,22 @@ function adminAgentServiceEnvironment(claim) {
1134
1134
  ) {
1135
1135
  throw new Error("admin_runtime_agent_service_environment_rejected");
1136
1136
  }
1137
- return buildAdminAgentServiceEnvironment({
1138
- agentKind: claim.agentKind,
1139
- workspaceId: operation.workspaceId,
1140
- agentId: operation.agentId,
1141
- serviceCredentialGeneration: service.credentialGeneration,
1142
- policyHash: service.policyHash,
1143
- selectedChannelIds: [
1144
- ...new Set(bindings.map((binding) => binding.channelId)),
1145
- ].sort(),
1137
+ return Object.freeze({
1138
+ ...buildAdminAgentServiceEnvironment({
1139
+ agentKind: claim.agentKind,
1140
+ workspaceId: operation.workspaceId,
1141
+ agentId: operation.agentId,
1142
+ serviceCredentialGeneration: service.credentialGeneration,
1143
+ policyHash: service.policyHash,
1144
+ selectedChannelIds: [
1145
+ ...new Set(bindings.map((binding) => binding.channelId)),
1146
+ ].sort(),
1147
+ }),
1148
+ // Admin intentionally has no customer workspace lock. This explicit kind
1149
+ // lets Product MCP distinguish that omission from a partially materialized
1150
+ // customer profile while the signed Agent service context remains the home
1151
+ // workspace authority.
1152
+ SELLABLE_AGENT_SERVER_AUTHENTICATED_KIND: "ADMIN",
1146
1153
  });
1147
1154
  }
1148
1155
 
@@ -1795,8 +1802,13 @@ async function startNativeGateway({ profile, claim }) {
1795
1802
  env: {
1796
1803
  ...adminToolEnv(adminHomeLayout(profile.profileHome)),
1797
1804
  ...adminAgentServiceEnvironment(claim),
1798
- HOME: SECRET_ROOT,
1805
+ // Keep model/tool credentials in the root-owned runtime directory, but
1806
+ // place ordinary terminal output under the durable profile. Hermes
1807
+ // denies /run as an attachment source, so using SECRET_ROOT as HOME made
1808
+ // valid MEDIA directives degrade into text-only Slack messages.
1809
+ HOME: profile.profileHome,
1799
1810
  HERMES_HOME: DATA_ROOT,
1811
+ HERMES_WRITE_SAFE_ROOT: DATA_ROOT,
1800
1812
  SELLABLE_HERMES_PROFILE_ID: profile.profile,
1801
1813
  CODEX_HOME: SECRET_ROOT,
1802
1814
  NO_COLOR: "1",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellable/install",
3
- "version": "0.1.472",
3
+ "version": "0.1.473",
4
4
  "type": "module",
5
5
  "description": "One-command installer for Sellable MCP in Claude Code, Codex, and Hermes",
6
6
  "bin": {