@evalops/maestro 0.10.15 → 0.10.17

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 +1 @@
1
- {"version":3,"file":"managed-context.d.ts","sourceRoot":"","sources":["../../src/evalops/managed-context.ts"],"names":[],"mappings":"AACA,OAAO,EACN,KAAK,gBAAgB,EAGrB,MAAM,qBAAqB,CAAC;AAE7B,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAE9C,MAAM,MAAM,wBAAwB,GAAG,MAAM,GAAG,gBAAgB,CAAC;AACjE,MAAM,MAAM,+BAA+B,GAAG,SAAS,GAAG,MAAM,CAAC;AACjE,MAAM,MAAM,4BAA4B,GAAG,SAAS,GAAG,OAAO,CAAC;AAE/D,MAAM,WAAW,qBAAqB;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,+BAA+B,CAAC;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,4BAA4B,CAAC;IACxC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,iBAAiB,GAAG,uBAAuB,GAAG,OAAO,CAAC;IAC5D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,wBAAwB,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAiBD,MAAM,MAAM,sBAAsB,GAAG,MAAM,gBAAgB,GAAG,IAAI,CAAC;AA4HnE,wBAAgB,4BAA4B,CAC3C,GAAG,GAAE,GAAiB,EACtB,eAAe,CAAC,EAAE,sBAAsB,GACtC,qBAAqB,CAsDvB;AAED,wBAAgB,0BAA0B,CACzC,OAAO,EAAE,qBAAqB,EAC9B,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAC/B,MAAM,CAmDR"}
1
+ {"version":3,"file":"managed-context.d.ts","sourceRoot":"","sources":["../../src/evalops/managed-context.ts"],"names":[],"mappings":"AACA,OAAO,EACN,KAAK,gBAAgB,EAGrB,MAAM,qBAAqB,CAAC;AAE7B,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAE9C,MAAM,MAAM,wBAAwB,GAAG,MAAM,GAAG,gBAAgB,CAAC;AACjE,MAAM,MAAM,+BAA+B,GAAG,SAAS,GAAG,MAAM,CAAC;AACjE,MAAM,MAAM,4BAA4B,GAAG,SAAS,GAAG,OAAO,CAAC;AAE/D,MAAM,WAAW,qBAAqB;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,+BAA+B,CAAC;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,4BAA4B,CAAC;IACxC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,iBAAiB,GAAG,uBAAuB,GAAG,OAAO,CAAC;IAC5D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,wBAAwB,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAiBD,MAAM,MAAM,sBAAsB,GAAG,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAgJnE,wBAAgB,4BAA4B,CAC3C,GAAG,GAAE,GAAiB,EACtB,eAAe,CAAC,EAAE,sBAAsB,GACtC,qBAAqB,CAuDvB;AAED,wBAAgB,0BAA0B,CACzC,OAAO,EAAE,qBAAqB,EAC9B,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAC/B,MAAM,CAqDR"}
@@ -22,6 +22,26 @@ const USER_ENV = [
22
22
  "MAESTRO_USER_ID",
23
23
  ];
24
24
  const TOKEN_ENV = ["MAESTRO_EVALOPS_ACCESS_TOKEN", "EVALOPS_TOKEN"];
25
+ const INTEGRATION_PROFILE_ENV = [
26
+ "MAESTRO_EVALOPS_INTEGRATION_PROFILE",
27
+ "MAESTRO_INTEGRATION_PROFILE",
28
+ ];
29
+ const MEMORY_MODE_ENV = [
30
+ "MAESTRO_EVALOPS_MEMORY_MODE",
31
+ "MAESTRO_MEMORY_MODE",
32
+ ];
33
+ const RUNTIME_OWNER_ENV = [
34
+ "MAESTRO_EVALOPS_RUNTIME_OWNER",
35
+ "MAESTRO_RUNTIME_OWNER",
36
+ ];
37
+ const SHIM_TYPE_ENV = [
38
+ "MAESTRO_EVALOPS_SHIM_TYPE",
39
+ "MAESTRO_SHIM_TYPE",
40
+ ];
41
+ const TRACE_MODE_ENV = [
42
+ "MAESTRO_EVALOPS_TRACE_MODE",
43
+ "MAESTRO_TRACE_MODE",
44
+ ];
25
45
  function nonEmptyString(value) {
26
46
  return typeof value === "string" && value.trim().length > 0
27
47
  ? value.trim()
@@ -129,20 +149,20 @@ export function resolveManagedEvalOpsContext(env = process.env, loadCredentials)
129
149
  evidencePublisher: managed ? "EvalOps" : "none",
130
150
  expiresAt: credentials?.expires,
131
151
  inference: managed ? "managed" : "local",
132
- integrationProfile: agentMcp?.integrationProfile,
152
+ integrationProfile: readEnv(env, INTEGRATION_PROFILE_ENV) ?? agentMcp?.integrationProfile,
133
153
  keyPrefix: agentMcp?.keyPrefix,
134
154
  managed,
135
- memoryMode: agentMcp?.memoryMode,
155
+ memoryMode: readEnv(env, MEMORY_MODE_ENV) ?? agentMcp?.memoryMode,
136
156
  mode,
137
157
  organizationId,
138
158
  providerRef,
139
159
  runId,
140
- runtimeOwner: agentMcp?.runtimeOwner,
160
+ runtimeOwner: readEnv(env, RUNTIME_OWNER_ENV) ?? agentMcp?.runtimeOwner,
141
161
  sessionExpiresAt: agentMcp?.sessionExpiresAt,
142
162
  sessionId: readEnv(env, ["MAESTRO_SESSION_ID"]),
143
- shimType: agentMcp?.shimType,
163
+ shimType: readEnv(env, SHIM_TYPE_ENV) ?? agentMcp?.shimType,
144
164
  traceIngestion: managed && runId ? "live" : "not configured",
145
- traceMode: agentMcp?.traceMode,
165
+ traceMode: readEnv(env, TRACE_MODE_ENV) ?? agentMcp?.traceMode,
146
166
  userEmail: nonEmptyString(metadata?.email),
147
167
  userId: readEnv(env, USER_ENV) ?? nonEmptyString(metadata?.userId),
148
168
  workspaceId,
@@ -173,6 +193,8 @@ export function formatManagedEvalOpsStatus(context, options = {}) {
173
193
  if (context.integrationProfile) {
174
194
  lines.push(`${dim("Integration profile")}: ${context.integrationProfile}`);
175
195
  }
196
+ if (context.runtimeOwner)
197
+ lines.push(`${dim("Runtime owner")}: ${context.runtimeOwner}`);
176
198
  if (context.shimType)
177
199
  lines.push(`${dim("Shim")}: ${context.shimType}`);
178
200
  if (context.traceMode)
@@ -1 +1 @@
1
- {"version":3,"file":"managed-context.js","sourceRoot":"","sources":["../../src/evalops/managed-context.ts"],"names":[],"mappings":"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","sourcesContent":["import chalk from \"chalk\";\nimport {\n\ttype OAuthCredentials,\n\tgetOAuthStorageRevision,\n\tloadOAuthCredentials,\n} from \"../oauth/storage.js\";\n\ntype Env = Record<string, string | undefined>;\n\nexport type EvalOpsManagedTraceState = \"live\" | \"not configured\";\nexport type EvalOpsManagedEvidencePublisher = \"EvalOps\" | \"none\";\nexport type EvalOpsManagedInferenceState = \"managed\" | \"local\";\n\nexport interface EvalOpsManagedContext {\n\taccessToken?: string;\n\tagentId?: string;\n\tauthenticated: boolean;\n\tcontrolPlaneEnvironment?: string;\n\tcontrolPlaneUrl?: string;\n\tevidencePublisher: EvalOpsManagedEvidencePublisher;\n\texpiresAt?: number;\n\tinference: EvalOpsManagedInferenceState;\n\tintegrationProfile?: string;\n\tkeyPrefix?: string;\n\tmanaged: boolean;\n\tmemoryMode?: string;\n\tmode: \"EvalOps managed\" | \"EvalOps authenticated\" | \"local\";\n\torganizationId?: string;\n\tproviderRef?: Record<string, unknown>;\n\trunId?: string;\n\truntimeOwner?: string;\n\tsessionExpiresAt?: string;\n\tsessionId?: string;\n\tshimType?: string;\n\ttraceIngestion: EvalOpsManagedTraceState;\n\ttraceMode?: string;\n\tuserEmail?: string;\n\tuserId?: string;\n\tworkspaceId?: string;\n}\n\ninterface StoredAgentMcpMetadata {\n\tagentId?: string;\n\tapiKey?: string;\n\tendpoint?: string;\n\tintegrationProfile?: string;\n\tkeyPrefix?: string;\n\tmemoryMode?: string;\n\trunId?: string;\n\truntimeOwner?: string;\n\tsessionExpiresAt?: string;\n\tshimType?: string;\n\ttraceMode?: string;\n\tworkspaceId?: string;\n}\n\nexport type LoadEvalOpsCredentials = () => OAuthCredentials | null;\n\nconst PROCESS_CREDENTIAL_CACHE_MS = 30_000;\nlet processCredentialCache:\n\t| {\n\t\t\tcredentials: OAuthCredentials | null;\n\t\t\texpiresAt: number;\n\t\t\trevision: number;\n\t }\n\t| undefined;\n\nconst ORG_ENV = [\n\t\"MAESTRO_EVALOPS_ORG_ID\",\n\t\"EVALOPS_ORGANIZATION_ID\",\n\t\"EVALOPS_ORG_ID\",\n\t\"MAESTRO_ENTERPRISE_ORG_ID\",\n\t\"MAESTRO_LLM_GATEWAY_ORG_ID\",\n\t\"MAESTRO_REMOTE_RUNNER_ORG_ID\",\n] as const;\n\nconst WORKSPACE_ENV = [\n\t\"MAESTRO_EVALOPS_WORKSPACE_ID\",\n\t\"EVALOPS_WORKSPACE_ID\",\n\t\"MAESTRO_REMOTE_RUNNER_WORKSPACE_ID\",\n\t\"MAESTRO_WORKSPACE_ID\",\n] as const;\n\nconst USER_ENV = [\n\t\"MAESTRO_EVALOPS_USER_ID\",\n\t\"EVALOPS_USER_ID\",\n\t\"MAESTRO_USER_ID\",\n] as const;\n\nconst TOKEN_ENV = [\"MAESTRO_EVALOPS_ACCESS_TOKEN\", \"EVALOPS_TOKEN\"] as const;\n\nfunction nonEmptyString(value: unknown): string | undefined {\n\treturn typeof value === \"string\" && value.trim().length > 0\n\t\t? value.trim()\n\t\t: undefined;\n}\n\nfunction readEnv(env: Env, names: readonly string[]): string | undefined {\n\tfor (const name of names) {\n\t\tconst value = nonEmptyString(env[name]);\n\t\tif (value) return value;\n\t}\n\treturn undefined;\n}\n\nfunction recordValue(\n\trecord: Record<string, unknown> | undefined,\n\tkey: string,\n): string | undefined {\n\treturn nonEmptyString(record?.[key]);\n}\n\nfunction asRecord(value: unknown): Record<string, unknown> | undefined {\n\treturn value && typeof value === \"object\" && !Array.isArray(value)\n\t\t? (value as Record<string, unknown>)\n\t\t: undefined;\n}\n\nfunction storedAgentMcp(\n\tcredentials: OAuthCredentials | null,\n): StoredAgentMcpMetadata | undefined {\n\tconst agentMcp = asRecord(credentials?.metadata?.agentMcp);\n\tif (!agentMcp) return undefined;\n\treturn {\n\t\tagentId: recordValue(agentMcp, \"agentId\"),\n\t\tapiKey: recordValue(agentMcp, \"apiKey\"),\n\t\tendpoint: recordValue(agentMcp, \"endpoint\"),\n\t\tintegrationProfile: recordValue(agentMcp, \"integrationProfile\"),\n\t\tkeyPrefix: recordValue(agentMcp, \"keyPrefix\"),\n\t\tmemoryMode: recordValue(agentMcp, \"memoryMode\"),\n\t\trunId: recordValue(agentMcp, \"runId\"),\n\t\truntimeOwner: recordValue(agentMcp, \"runtimeOwner\"),\n\t\tsessionExpiresAt: recordValue(agentMcp, \"sessionExpiresAt\"),\n\t\tshimType: recordValue(agentMcp, \"shimType\"),\n\t\ttraceMode: recordValue(agentMcp, \"traceMode\"),\n\t\tworkspaceId: recordValue(agentMcp, \"workspaceId\"),\n\t};\n}\n\nfunction controlPlaneEnvironment(\n\tendpoint: string | undefined,\n): string | undefined {\n\tif (!endpoint) return undefined;\n\ttry {\n\t\tconst parsed = new URL(endpoint);\n\t\tif (parsed.hostname === \"app.evalops.dev\") return \"production\";\n\t\tif (parsed.hostname === \"staging.evalops.dev\") return \"staging\";\n\t\treturn parsed.hostname;\n\t} catch {\n\t\treturn endpoint;\n\t}\n}\n\nfunction safeLoadCredentials(loadCredentials: LoadEvalOpsCredentials) {\n\ttry {\n\t\treturn loadCredentials();\n\t} catch {\n\t\treturn null;\n\t}\n}\n\nfunction loadProcessEvalOpsCredentialsCached(): OAuthCredentials | null {\n\tconst now = Date.now();\n\tconst revision = getOAuthStorageRevision();\n\tif (\n\t\tprocessCredentialCache &&\n\t\tprocessCredentialCache.revision === revision &&\n\t\tprocessCredentialCache.expiresAt > now\n\t) {\n\t\treturn processCredentialCache.credentials;\n\t}\n\tconst credentials = loadOAuthCredentials(\"evalops\");\n\tprocessCredentialCache = {\n\t\tcredentials,\n\t\texpiresAt: now + PROCESS_CREDENTIAL_CACHE_MS,\n\t\trevision,\n\t};\n\treturn credentials;\n}\n\nexport function resolveManagedEvalOpsContext(\n\tenv: Env = process.env,\n\tloadCredentials?: LoadEvalOpsCredentials,\n): EvalOpsManagedContext {\n\tconst credentials = safeLoadCredentials(\n\t\tloadCredentials ??\n\t\t\t(env === process.env ? loadProcessEvalOpsCredentialsCached : () => null),\n\t);\n\tconst metadata = credentials?.metadata;\n\tconst providerRef = asRecord(metadata?.providerRef);\n\tconst agentMcp = storedAgentMcp(credentials);\n\tconst accessToken =\n\t\treadEnv(env, TOKEN_ENV) ?? nonEmptyString(credentials?.access);\n\tconst organizationId =\n\t\treadEnv(env, ORG_ENV) ?? nonEmptyString(metadata?.organizationId);\n\tconst workspaceId =\n\t\treadEnv(env, WORKSPACE_ENV) ?? agentMcp?.workspaceId ?? organizationId;\n\tconst agentId = readEnv(env, [\"MAESTRO_AGENT_ID\"]) ?? agentMcp?.agentId;\n\tconst runId = readEnv(env, [\"MAESTRO_AGENT_RUN_ID\"]) ?? agentMcp?.runId;\n\tconst authenticated = Boolean(accessToken || credentials);\n\tconst managedAgentSession = Boolean(\n\t\tagentMcp?.apiKey || (readEnv(env, TOKEN_ENV) && (agentId || runId)),\n\t);\n\tconst managed = Boolean(organizationId && managedAgentSession);\n\tconst mode = managed\n\t\t? \"EvalOps managed\"\n\t\t: authenticated\n\t\t\t? \"EvalOps authenticated\"\n\t\t\t: \"local\";\n\n\treturn {\n\t\taccessToken,\n\t\tagentId,\n\t\tauthenticated,\n\t\tcontrolPlaneEnvironment: controlPlaneEnvironment(agentMcp?.endpoint),\n\t\tcontrolPlaneUrl: agentMcp?.endpoint,\n\t\tevidencePublisher: managed ? \"EvalOps\" : \"none\",\n\t\texpiresAt: credentials?.expires,\n\t\tinference: managed ? \"managed\" : \"local\",\n\t\tintegrationProfile: agentMcp?.integrationProfile,\n\t\tkeyPrefix: agentMcp?.keyPrefix,\n\t\tmanaged,\n\t\tmemoryMode: agentMcp?.memoryMode,\n\t\tmode,\n\t\torganizationId,\n\t\tproviderRef,\n\t\trunId,\n\t\truntimeOwner: agentMcp?.runtimeOwner,\n\t\tsessionExpiresAt: agentMcp?.sessionExpiresAt,\n\t\tsessionId: readEnv(env, [\"MAESTRO_SESSION_ID\"]),\n\t\tshimType: agentMcp?.shimType,\n\t\ttraceIngestion: managed && runId ? \"live\" : \"not configured\",\n\t\ttraceMode: agentMcp?.traceMode,\n\t\tuserEmail: nonEmptyString(metadata?.email),\n\t\tuserId: readEnv(env, USER_ENV) ?? nonEmptyString(metadata?.userId),\n\t\tworkspaceId,\n\t};\n}\n\nexport function formatManagedEvalOpsStatus(\n\tcontext: EvalOpsManagedContext,\n\toptions: { color?: boolean } = {},\n): string {\n\tconst color = options.color ?? true;\n\tconst good = (value: string) => (color ? chalk.green(value) : value);\n\tconst dim = (value: string) => (color ? chalk.dim(value) : value);\n\tconst lines = [\n\t\t`${good(\"Mode\")}: ${context.mode}`,\n\t\t`${good(\"Control plane\")}: ${context.controlPlaneEnvironment ?? \"not configured\"}`,\n\t];\n\tif (context.controlPlaneUrl) {\n\t\tlines.push(`${dim(\"Control plane URL\")}: ${context.controlPlaneUrl}`);\n\t}\n\tif (context.userEmail)\n\t\tlines.push(`${dim(\"Authenticated as\")}: ${context.userEmail}`);\n\tif (context.organizationId)\n\t\tlines.push(`${dim(\"Organization\")}: ${context.organizationId}`);\n\tif (context.workspaceId)\n\t\tlines.push(`${dim(\"Workspace\")}: ${context.workspaceId}`);\n\tlines.push(\n\t\t`${good(\"Agent runtime\")}: ${context.agentId ? \"registered\" : \"not registered\"}`,\n\t);\n\tif (context.agentId) lines.push(`${dim(\"Agent\")}: ${context.agentId}`);\n\tif (context.runId) lines.push(`${dim(\"Run\")}: ${context.runId}`);\n\tif (context.integrationProfile) {\n\t\tlines.push(`${dim(\"Integration profile\")}: ${context.integrationProfile}`);\n\t}\n\tif (context.shimType) lines.push(`${dim(\"Shim\")}: ${context.shimType}`);\n\tif (context.traceMode)\n\t\tlines.push(`${dim(\"Trace mode\")}: ${context.traceMode}`);\n\tif (context.memoryMode)\n\t\tlines.push(`${dim(\"Memory mode\")}: ${context.memoryMode}`);\n\tlines.push(`${good(\"Trace ingestion\")}: ${context.traceIngestion}`);\n\tlines.push(`${good(\"Evidence publisher\")}: ${context.evidencePublisher}`);\n\tlines.push(`${good(\"Inference\")}: ${context.inference}`);\n\tif (context.providerRef) {\n\t\tconst provider = nonEmptyString(context.providerRef.provider) ?? \"openai\";\n\t\tconst environment =\n\t\t\tnonEmptyString(context.providerRef.environment) ?? \"prod\";\n\t\tlines.push(`${dim(\"Provider ref\")}: ${provider}/${environment}`);\n\t}\n\tif (context.keyPrefix) lines.push(`${dim(\"API key\")}: ${context.keyPrefix}`);\n\tif (context.sessionExpiresAt) {\n\t\tlines.push(`${dim(\"Agent session expires\")}: ${context.sessionExpiresAt}`);\n\t}\n\tif (context.expiresAt) {\n\t\tconst remainingMs = Math.max(0, context.expiresAt - Date.now());\n\t\tconst minutes = Math.round(remainingMs / 60_000);\n\t\tlines.push(\n\t\t\t`${dim(\"Access token\")}: expires in ~${minutes} minute${minutes === 1 ? \"\" : \"s\"}`,\n\t\t);\n\t}\n\treturn lines.join(\"\\n\");\n}\n"]}
1
+ {"version":3,"file":"managed-context.js","sourceRoot":"","sources":["../../src/evalops/managed-context.ts"],"names":[],"mappings":"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","sourcesContent":["import chalk from \"chalk\";\nimport {\n\ttype OAuthCredentials,\n\tgetOAuthStorageRevision,\n\tloadOAuthCredentials,\n} from \"../oauth/storage.js\";\n\ntype Env = Record<string, string | undefined>;\n\nexport type EvalOpsManagedTraceState = \"live\" | \"not configured\";\nexport type EvalOpsManagedEvidencePublisher = \"EvalOps\" | \"none\";\nexport type EvalOpsManagedInferenceState = \"managed\" | \"local\";\n\nexport interface EvalOpsManagedContext {\n\taccessToken?: string;\n\tagentId?: string;\n\tauthenticated: boolean;\n\tcontrolPlaneEnvironment?: string;\n\tcontrolPlaneUrl?: string;\n\tevidencePublisher: EvalOpsManagedEvidencePublisher;\n\texpiresAt?: number;\n\tinference: EvalOpsManagedInferenceState;\n\tintegrationProfile?: string;\n\tkeyPrefix?: string;\n\tmanaged: boolean;\n\tmemoryMode?: string;\n\tmode: \"EvalOps managed\" | \"EvalOps authenticated\" | \"local\";\n\torganizationId?: string;\n\tproviderRef?: Record<string, unknown>;\n\trunId?: string;\n\truntimeOwner?: string;\n\tsessionExpiresAt?: string;\n\tsessionId?: string;\n\tshimType?: string;\n\ttraceIngestion: EvalOpsManagedTraceState;\n\ttraceMode?: string;\n\tuserEmail?: string;\n\tuserId?: string;\n\tworkspaceId?: string;\n}\n\ninterface StoredAgentMcpMetadata {\n\tagentId?: string;\n\tapiKey?: string;\n\tendpoint?: string;\n\tintegrationProfile?: string;\n\tkeyPrefix?: string;\n\tmemoryMode?: string;\n\trunId?: string;\n\truntimeOwner?: string;\n\tsessionExpiresAt?: string;\n\tshimType?: string;\n\ttraceMode?: string;\n\tworkspaceId?: string;\n}\n\nexport type LoadEvalOpsCredentials = () => OAuthCredentials | null;\n\nconst PROCESS_CREDENTIAL_CACHE_MS = 30_000;\nlet processCredentialCache:\n\t| {\n\t\t\tcredentials: OAuthCredentials | null;\n\t\t\texpiresAt: number;\n\t\t\trevision: number;\n\t }\n\t| undefined;\n\nconst ORG_ENV = [\n\t\"MAESTRO_EVALOPS_ORG_ID\",\n\t\"EVALOPS_ORGANIZATION_ID\",\n\t\"EVALOPS_ORG_ID\",\n\t\"MAESTRO_ENTERPRISE_ORG_ID\",\n\t\"MAESTRO_LLM_GATEWAY_ORG_ID\",\n\t\"MAESTRO_REMOTE_RUNNER_ORG_ID\",\n] as const;\n\nconst WORKSPACE_ENV = [\n\t\"MAESTRO_EVALOPS_WORKSPACE_ID\",\n\t\"EVALOPS_WORKSPACE_ID\",\n\t\"MAESTRO_REMOTE_RUNNER_WORKSPACE_ID\",\n\t\"MAESTRO_WORKSPACE_ID\",\n] as const;\n\nconst USER_ENV = [\n\t\"MAESTRO_EVALOPS_USER_ID\",\n\t\"EVALOPS_USER_ID\",\n\t\"MAESTRO_USER_ID\",\n] as const;\n\nconst TOKEN_ENV = [\"MAESTRO_EVALOPS_ACCESS_TOKEN\", \"EVALOPS_TOKEN\"] as const;\nconst INTEGRATION_PROFILE_ENV = [\n\t\"MAESTRO_EVALOPS_INTEGRATION_PROFILE\",\n\t\"MAESTRO_INTEGRATION_PROFILE\",\n] as const;\nconst MEMORY_MODE_ENV = [\n\t\"MAESTRO_EVALOPS_MEMORY_MODE\",\n\t\"MAESTRO_MEMORY_MODE\",\n] as const;\nconst RUNTIME_OWNER_ENV = [\n\t\"MAESTRO_EVALOPS_RUNTIME_OWNER\",\n\t\"MAESTRO_RUNTIME_OWNER\",\n] as const;\nconst SHIM_TYPE_ENV = [\n\t\"MAESTRO_EVALOPS_SHIM_TYPE\",\n\t\"MAESTRO_SHIM_TYPE\",\n] as const;\nconst TRACE_MODE_ENV = [\n\t\"MAESTRO_EVALOPS_TRACE_MODE\",\n\t\"MAESTRO_TRACE_MODE\",\n] as const;\n\nfunction nonEmptyString(value: unknown): string | undefined {\n\treturn typeof value === \"string\" && value.trim().length > 0\n\t\t? value.trim()\n\t\t: undefined;\n}\n\nfunction readEnv(env: Env, names: readonly string[]): string | undefined {\n\tfor (const name of names) {\n\t\tconst value = nonEmptyString(env[name]);\n\t\tif (value) return value;\n\t}\n\treturn undefined;\n}\n\nfunction recordValue(\n\trecord: Record<string, unknown> | undefined,\n\tkey: string,\n): string | undefined {\n\treturn nonEmptyString(record?.[key]);\n}\n\nfunction asRecord(value: unknown): Record<string, unknown> | undefined {\n\treturn value && typeof value === \"object\" && !Array.isArray(value)\n\t\t? (value as Record<string, unknown>)\n\t\t: undefined;\n}\n\nfunction storedAgentMcp(\n\tcredentials: OAuthCredentials | null,\n): StoredAgentMcpMetadata | undefined {\n\tconst agentMcp = asRecord(credentials?.metadata?.agentMcp);\n\tif (!agentMcp) return undefined;\n\treturn {\n\t\tagentId: recordValue(agentMcp, \"agentId\"),\n\t\tapiKey: recordValue(agentMcp, \"apiKey\"),\n\t\tendpoint: recordValue(agentMcp, \"endpoint\"),\n\t\tintegrationProfile: recordValue(agentMcp, \"integrationProfile\"),\n\t\tkeyPrefix: recordValue(agentMcp, \"keyPrefix\"),\n\t\tmemoryMode: recordValue(agentMcp, \"memoryMode\"),\n\t\trunId: recordValue(agentMcp, \"runId\"),\n\t\truntimeOwner: recordValue(agentMcp, \"runtimeOwner\"),\n\t\tsessionExpiresAt: recordValue(agentMcp, \"sessionExpiresAt\"),\n\t\tshimType: recordValue(agentMcp, \"shimType\"),\n\t\ttraceMode: recordValue(agentMcp, \"traceMode\"),\n\t\tworkspaceId: recordValue(agentMcp, \"workspaceId\"),\n\t};\n}\n\nfunction controlPlaneEnvironment(\n\tendpoint: string | undefined,\n): string | undefined {\n\tif (!endpoint) return undefined;\n\ttry {\n\t\tconst parsed = new URL(endpoint);\n\t\tif (parsed.hostname === \"app.evalops.dev\") return \"production\";\n\t\tif (parsed.hostname === \"staging.evalops.dev\") return \"staging\";\n\t\treturn parsed.hostname;\n\t} catch {\n\t\treturn endpoint;\n\t}\n}\n\nfunction safeLoadCredentials(loadCredentials: LoadEvalOpsCredentials) {\n\ttry {\n\t\treturn loadCredentials();\n\t} catch {\n\t\treturn null;\n\t}\n}\n\nfunction loadProcessEvalOpsCredentialsCached(): OAuthCredentials | null {\n\tconst now = Date.now();\n\tconst revision = getOAuthStorageRevision();\n\tif (\n\t\tprocessCredentialCache &&\n\t\tprocessCredentialCache.revision === revision &&\n\t\tprocessCredentialCache.expiresAt > now\n\t) {\n\t\treturn processCredentialCache.credentials;\n\t}\n\tconst credentials = loadOAuthCredentials(\"evalops\");\n\tprocessCredentialCache = {\n\t\tcredentials,\n\t\texpiresAt: now + PROCESS_CREDENTIAL_CACHE_MS,\n\t\trevision,\n\t};\n\treturn credentials;\n}\n\nexport function resolveManagedEvalOpsContext(\n\tenv: Env = process.env,\n\tloadCredentials?: LoadEvalOpsCredentials,\n): EvalOpsManagedContext {\n\tconst credentials = safeLoadCredentials(\n\t\tloadCredentials ??\n\t\t\t(env === process.env ? loadProcessEvalOpsCredentialsCached : () => null),\n\t);\n\tconst metadata = credentials?.metadata;\n\tconst providerRef = asRecord(metadata?.providerRef);\n\tconst agentMcp = storedAgentMcp(credentials);\n\tconst accessToken =\n\t\treadEnv(env, TOKEN_ENV) ?? nonEmptyString(credentials?.access);\n\tconst organizationId =\n\t\treadEnv(env, ORG_ENV) ?? nonEmptyString(metadata?.organizationId);\n\tconst workspaceId =\n\t\treadEnv(env, WORKSPACE_ENV) ?? agentMcp?.workspaceId ?? organizationId;\n\tconst agentId = readEnv(env, [\"MAESTRO_AGENT_ID\"]) ?? agentMcp?.agentId;\n\tconst runId = readEnv(env, [\"MAESTRO_AGENT_RUN_ID\"]) ?? agentMcp?.runId;\n\tconst authenticated = Boolean(accessToken || credentials);\n\tconst managedAgentSession = Boolean(\n\t\tagentMcp?.apiKey || (readEnv(env, TOKEN_ENV) && (agentId || runId)),\n\t);\n\tconst managed = Boolean(organizationId && managedAgentSession);\n\tconst mode = managed\n\t\t? \"EvalOps managed\"\n\t\t: authenticated\n\t\t\t? \"EvalOps authenticated\"\n\t\t\t: \"local\";\n\n\treturn {\n\t\taccessToken,\n\t\tagentId,\n\t\tauthenticated,\n\t\tcontrolPlaneEnvironment: controlPlaneEnvironment(agentMcp?.endpoint),\n\t\tcontrolPlaneUrl: agentMcp?.endpoint,\n\t\tevidencePublisher: managed ? \"EvalOps\" : \"none\",\n\t\texpiresAt: credentials?.expires,\n\t\tinference: managed ? \"managed\" : \"local\",\n\t\tintegrationProfile:\n\t\t\treadEnv(env, INTEGRATION_PROFILE_ENV) ?? agentMcp?.integrationProfile,\n\t\tkeyPrefix: agentMcp?.keyPrefix,\n\t\tmanaged,\n\t\tmemoryMode: readEnv(env, MEMORY_MODE_ENV) ?? agentMcp?.memoryMode,\n\t\tmode,\n\t\torganizationId,\n\t\tproviderRef,\n\t\trunId,\n\t\truntimeOwner: readEnv(env, RUNTIME_OWNER_ENV) ?? agentMcp?.runtimeOwner,\n\t\tsessionExpiresAt: agentMcp?.sessionExpiresAt,\n\t\tsessionId: readEnv(env, [\"MAESTRO_SESSION_ID\"]),\n\t\tshimType: readEnv(env, SHIM_TYPE_ENV) ?? agentMcp?.shimType,\n\t\ttraceIngestion: managed && runId ? \"live\" : \"not configured\",\n\t\ttraceMode: readEnv(env, TRACE_MODE_ENV) ?? agentMcp?.traceMode,\n\t\tuserEmail: nonEmptyString(metadata?.email),\n\t\tuserId: readEnv(env, USER_ENV) ?? nonEmptyString(metadata?.userId),\n\t\tworkspaceId,\n\t};\n}\n\nexport function formatManagedEvalOpsStatus(\n\tcontext: EvalOpsManagedContext,\n\toptions: { color?: boolean } = {},\n): string {\n\tconst color = options.color ?? true;\n\tconst good = (value: string) => (color ? chalk.green(value) : value);\n\tconst dim = (value: string) => (color ? chalk.dim(value) : value);\n\tconst lines = [\n\t\t`${good(\"Mode\")}: ${context.mode}`,\n\t\t`${good(\"Control plane\")}: ${context.controlPlaneEnvironment ?? \"not configured\"}`,\n\t];\n\tif (context.controlPlaneUrl) {\n\t\tlines.push(`${dim(\"Control plane URL\")}: ${context.controlPlaneUrl}`);\n\t}\n\tif (context.userEmail)\n\t\tlines.push(`${dim(\"Authenticated as\")}: ${context.userEmail}`);\n\tif (context.organizationId)\n\t\tlines.push(`${dim(\"Organization\")}: ${context.organizationId}`);\n\tif (context.workspaceId)\n\t\tlines.push(`${dim(\"Workspace\")}: ${context.workspaceId}`);\n\tlines.push(\n\t\t`${good(\"Agent runtime\")}: ${context.agentId ? \"registered\" : \"not registered\"}`,\n\t);\n\tif (context.agentId) lines.push(`${dim(\"Agent\")}: ${context.agentId}`);\n\tif (context.runId) lines.push(`${dim(\"Run\")}: ${context.runId}`);\n\tif (context.integrationProfile) {\n\t\tlines.push(`${dim(\"Integration profile\")}: ${context.integrationProfile}`);\n\t}\n\tif (context.runtimeOwner)\n\t\tlines.push(`${dim(\"Runtime owner\")}: ${context.runtimeOwner}`);\n\tif (context.shimType) lines.push(`${dim(\"Shim\")}: ${context.shimType}`);\n\tif (context.traceMode)\n\t\tlines.push(`${dim(\"Trace mode\")}: ${context.traceMode}`);\n\tif (context.memoryMode)\n\t\tlines.push(`${dim(\"Memory mode\")}: ${context.memoryMode}`);\n\tlines.push(`${good(\"Trace ingestion\")}: ${context.traceIngestion}`);\n\tlines.push(`${good(\"Evidence publisher\")}: ${context.evidencePublisher}`);\n\tlines.push(`${good(\"Inference\")}: ${context.inference}`);\n\tif (context.providerRef) {\n\t\tconst provider = nonEmptyString(context.providerRef.provider) ?? \"openai\";\n\t\tconst environment =\n\t\t\tnonEmptyString(context.providerRef.environment) ?? \"prod\";\n\t\tlines.push(`${dim(\"Provider ref\")}: ${provider}/${environment}`);\n\t}\n\tif (context.keyPrefix) lines.push(`${dim(\"API key\")}: ${context.keyPrefix}`);\n\tif (context.sessionExpiresAt) {\n\t\tlines.push(`${dim(\"Agent session expires\")}: ${context.sessionExpiresAt}`);\n\t}\n\tif (context.expiresAt) {\n\t\tconst remainingMs = Math.max(0, context.expiresAt - Date.now());\n\t\tconst minutes = Math.round(remainingMs / 60_000);\n\t\tlines.push(\n\t\t\t`${dim(\"Access token\")}: expires in ~${minutes} minute${minutes === 1 ? \"\" : \"s\"}`,\n\t\t);\n\t}\n\treturn lines.join(\"\\n\");\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuFG;AA4TH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,iBAy+BxC"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuFG;AA4TH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,iBA+/BxC"}
package/dist/main.js CHANGED
@@ -353,6 +353,11 @@ export async function main(args) {
353
353
  console.error(chalk.red(parsed.error));
354
354
  process.exit(1);
355
355
  }
356
+ const exitWithEarlyStartupError = (error) => {
357
+ const message = error instanceof Error ? error.message : String(error);
358
+ console.error(chalk.red(message));
359
+ process.exit(1);
360
+ };
356
361
  // Handle `maestro hosted-runner` before importing web-server so hosted
357
362
  // defaults are visible to its module-level runtime profile.
358
363
  if (parsed.command === "hosted-runner") {
@@ -375,6 +380,32 @@ export async function main(args) {
375
380
  await startWebServer(port, { skipStartupMigration: true });
376
381
  return;
377
382
  }
383
+ // Bootstrap/status commands need stdout to stay under their direct control.
384
+ // In particular, `maestro init --json` must be parseable JSON with any
385
+ // progress or diagnostic output on stderr, so route it before config loading
386
+ // can emit normal CLI startup logs.
387
+ if (parsed.command === "init") {
388
+ try {
389
+ validateCodexFlags(args, parsed.command);
390
+ }
391
+ catch (error) {
392
+ exitWithEarlyStartupError(error);
393
+ }
394
+ const { handleInitCommand } = await import("./cli/commands/init.js");
395
+ await handleInitCommand(parsed.commandArgs ?? []);
396
+ return;
397
+ }
398
+ if (parsed.command === "status") {
399
+ try {
400
+ validateCodexFlags(args, parsed.command);
401
+ }
402
+ catch (error) {
403
+ exitWithEarlyStartupError(error);
404
+ }
405
+ const { handleStatusCommand } = await import("./cli/commands/status.js");
406
+ await handleStatusCommand();
407
+ return;
408
+ }
378
409
  // If we're about to enter interactive TUI mode (no prompt messages and not RPC/exec),
379
410
  // or headless mode (stdout is JSON-only), redirect all logging/console output to a file.
380
411
  // This must run before config/model loading to catch any early warnings.
@@ -576,16 +607,6 @@ export async function main(args) {
576
607
  await handleEvalOpsCommand(parsed.subcommand, parsed.commandArgs ?? []);
577
608
  return;
578
609
  }
579
- if (parsed.command === "status") {
580
- const { handleStatusCommand } = await import("./cli/commands/status.js");
581
- await handleStatusCommand();
582
- return;
583
- }
584
- if (parsed.command === "init") {
585
- const { handleInitCommand } = await import("./cli/commands/init.js");
586
- await handleInitCommand(parsed.commandArgs ?? []);
587
- return;
588
- }
589
610
  if (parsed.command === "codex") {
590
611
  const { handleCodexCommand } = await import("./cli/commands/codex.js");
591
612
  await handleCodexCommand(parsed.subcommand, parsed.messages);