@amaster.ai/employee-runtime-connector 0.1.1-beta.46 → 0.1.1-beta.48

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.
@@ -2699,7 +2699,6 @@ export default function amasterEffectiveToolsAttestor(pi) {
2699
2699
 
2700
2700
  // src/amaster-runtime-daemon/pi-managed-mcp-profile.mjs
2701
2701
  var MANAGED_PI_MCP_TOOL_MODE = "proxy_only";
2702
- var MANAGED_PI_HYBRID_MCP_TOOL_MODE = "hybrid";
2703
2702
  var MANAGED_PI_DIRECT_TYPED_MCP_TOOL_MODE = "direct_typed";
2704
2703
  var MANAGED_PI_MCP_ARGS_NORMALIZATION = "json_string_control_characters_v1";
2705
2704
  var MANAGED_PI_MCP_ARGS_NORMALIZER_FILENAME = "amaster-mcp-args-normalizer.js";
@@ -2732,12 +2731,43 @@ function createManagedPiMcpProfileApi(options = {}) {
2732
2731
  "wiki_read_page",
2733
2732
  "wiki_list_pages"
2734
2733
  ]);
2735
- const HYBRID_DIRECT_TYPED_V1_TOOL_NAMES = /* @__PURE__ */ new Set([
2736
- "amaster.read_company_snapshot",
2737
- "amaster.read_governed_business_state",
2734
+ const FULL_DIRECT_TYPED_V1_BASE_TOOL_NAMES = /* @__PURE__ */ new Set([
2738
2735
  "runtime_action.describe",
2736
+ "runtime_action.prepare",
2737
+ "runtime_action.submit",
2738
+ "runtime_action.plan",
2739
+ "runtime_action.commit",
2740
+ "runtime_action.status",
2741
+ "amaster.read_company_snapshot",
2742
+ "amaster.read_issue",
2739
2743
  "amaster.read_issue_document",
2740
- "amaster.read_issue_evidence"
2744
+ "amaster.read_issue_delivery",
2745
+ "amaster.read_issue_evidence",
2746
+ "amaster.read_governed_business_state",
2747
+ "amaster.read_company_diagnosis",
2748
+ "amaster.publish_company_diagnosis_brief"
2749
+ ]);
2750
+ const FULL_DIRECT_TYPED_V1_WIKI_TOOL_NAMES = /* @__PURE__ */ new Set([
2751
+ "wiki_search",
2752
+ "wiki_read_page",
2753
+ "wiki_list_pages",
2754
+ "wiki_read_source",
2755
+ "wiki_write_page"
2756
+ ]);
2757
+ const FULL_DIRECT_TYPED_V1_CONNECTOR_TOOL_NAMES = /* @__PURE__ */ new Set([
2758
+ "connector.search_actions",
2759
+ "connector.get_action_guide",
2760
+ "connector.execute_action",
2761
+ "connector.admin.list_apps",
2762
+ "connector.admin.list_connections",
2763
+ "connector.admin.upsert_connection",
2764
+ "connector.admin.delete_connection",
2765
+ "connector.admin.validate_connection"
2766
+ ]);
2767
+ const FULL_DIRECT_TYPED_V1_TOOL_NAMES = /* @__PURE__ */ new Set([
2768
+ ...FULL_DIRECT_TYPED_V1_BASE_TOOL_NAMES,
2769
+ ...FULL_DIRECT_TYPED_V1_WIKI_TOOL_NAMES,
2770
+ ...FULL_DIRECT_TYPED_V1_CONNECTOR_TOOL_NAMES
2741
2771
  ]);
2742
2772
  const SOURCE_ACQUISITION_DIRECT_TYPED_V1_TOOL_NAMES = /* @__PURE__ */ new Set([
2743
2773
  "runtime_action.submit",
@@ -2976,12 +3006,19 @@ function createManagedPiMcpProfileApi(options = {}) {
2976
3006
  }
2977
3007
  const tools = Array.isArray(catalog.tools) ? catalog.tools.map(record6) : [];
2978
3008
  const declaredToolNames = new Set(tools.map((tool) => tool.name).filter((name) => typeof name === "string"));
2979
- const sourceAcquisitionCatalog = mcpToolMode === MANAGED_PI_DIRECT_TYPED_MCP_TOOL_MODE && tools.length === SOURCE_ACQUISITION_DIRECT_TYPED_V1_TOOL_NAMES.size && [...SOURCE_ACQUISITION_DIRECT_TYPED_V1_TOOL_NAMES].every((name) => declaredToolNames.has(name));
2980
- const admittedToolNames = mcpToolMode === MANAGED_PI_HYBRID_MCP_TOOL_MODE ? HYBRID_DIRECT_TYPED_V1_TOOL_NAMES : sourceAcquisitionCatalog ? SOURCE_ACQUISITION_DIRECT_TYPED_V1_TOOL_NAMES : /* @__PURE__ */ new Set([...DIRECT_TYPED_V1_TOOL_NAMES, ...DIAGNOSIS_WIKI_READ_DIRECT_TYPED_V1_TOOL_NAMES]);
2981
- const directTypedSizeValid = mcpToolMode !== MANAGED_PI_DIRECT_TYPED_MCP_TOOL_MODE || sourceAcquisitionCatalog || tools.length === DIRECT_TYPED_V1_TOOL_NAMES.size || tools.length === DIRECT_TYPED_V1_TOOL_NAMES.size + DIAGNOSIS_WIKI_READ_DIRECT_TYPED_V1_TOOL_NAMES.size;
2982
- if (!directTypedSizeValid || mcpToolMode === MANAGED_PI_HYBRID_MCP_TOOL_MODE && tools.length !== admittedToolNames.size) {
3009
+ const covers = (set) => [...set].every((name) => declaredToolNames.has(name));
3010
+ const countIn = (set) => tools.filter((tool) => set.has(tool.name)).length;
3011
+ const sourceAcquisitionCatalog = mcpToolMode === MANAGED_PI_DIRECT_TYPED_MCP_TOOL_MODE && tools.length === SOURCE_ACQUISITION_DIRECT_TYPED_V1_TOOL_NAMES.size && covers(SOURCE_ACQUISITION_DIRECT_TYPED_V1_TOOL_NAMES);
3012
+ const diagnosisWikiCount = countIn(DIAGNOSIS_WIKI_READ_DIRECT_TYPED_V1_TOOL_NAMES);
3013
+ const diagnosisCatalog = mcpToolMode === MANAGED_PI_DIRECT_TYPED_MCP_TOOL_MODE && !sourceAcquisitionCatalog && tools.length === DIRECT_TYPED_V1_TOOL_NAMES.size + diagnosisWikiCount && covers(DIRECT_TYPED_V1_TOOL_NAMES) && (diagnosisWikiCount === 0 || diagnosisWikiCount === DIAGNOSIS_WIKI_READ_DIRECT_TYPED_V1_TOOL_NAMES.size);
3014
+ const fullWikiCount = countIn(FULL_DIRECT_TYPED_V1_WIKI_TOOL_NAMES);
3015
+ const fullConnectorCount = countIn(FULL_DIRECT_TYPED_V1_CONNECTOR_TOOL_NAMES);
3016
+ const fullCatalog = mcpToolMode === MANAGED_PI_DIRECT_TYPED_MCP_TOOL_MODE && !sourceAcquisitionCatalog && !diagnosisCatalog && tools.length === FULL_DIRECT_TYPED_V1_BASE_TOOL_NAMES.size + fullWikiCount + fullConnectorCount && covers(FULL_DIRECT_TYPED_V1_BASE_TOOL_NAMES) && (fullWikiCount === 0 || fullWikiCount === FULL_DIRECT_TYPED_V1_WIKI_TOOL_NAMES.size) && (fullConnectorCount === 0 || fullConnectorCount === FULL_DIRECT_TYPED_V1_CONNECTOR_TOOL_NAMES.size) && tools.every((tool) => FULL_DIRECT_TYPED_V1_TOOL_NAMES.has(tool.name));
3017
+ if (mcpToolMode === MANAGED_PI_DIRECT_TYPED_MCP_TOOL_MODE && !sourceAcquisitionCatalog && !diagnosisCatalog && !fullCatalog) {
2983
3018
  throw new Error("pi_managed_mcp_invalid: direct tool catalog size mismatch");
2984
3019
  }
3020
+ const catalogKind = sourceAcquisitionCatalog ? "source_acquisition" : diagnosisCatalog ? "diagnosis" : "full";
3021
+ const admittedToolNames = sourceAcquisitionCatalog ? SOURCE_ACQUISITION_DIRECT_TYPED_V1_TOOL_NAMES : diagnosisCatalog ? /* @__PURE__ */ new Set([...DIRECT_TYPED_V1_TOOL_NAMES, ...DIAGNOSIS_WIKI_READ_DIRECT_TYPED_V1_TOOL_NAMES]) : FULL_DIRECT_TYPED_V1_TOOL_NAMES;
2985
3022
  const names = /* @__PURE__ */ new Set();
2986
3023
  const exposedNames = /* @__PURE__ */ new Set();
2987
3024
  const normalized = tools.map((tool) => {
@@ -3010,9 +3047,6 @@ function createManagedPiMcpProfileApi(options = {}) {
3010
3047
  if (!(/* @__PURE__ */ new Set(["read", "write", "destructive"])).has(riskLevel)) {
3011
3048
  throw new Error(`pi_managed_mcp_invalid: direct tool risk level mismatch for ${name}`);
3012
3049
  }
3013
- if (mcpToolMode === MANAGED_PI_HYBRID_MCP_TOOL_MODE && riskLevel !== "read") {
3014
- throw new Error(`pi_managed_mcp_invalid: hybrid direct tool must be read-only for ${name}`);
3015
- }
3016
3050
  return {
3017
3051
  name,
3018
3052
  exposedName,
@@ -3024,16 +3058,6 @@ function createManagedPiMcpProfileApi(options = {}) {
3024
3058
  effectiveSchemaHash: stablePiToolSchemaHash(inputSchema, { adapterNormalized: true })
3025
3059
  };
3026
3060
  });
3027
- if (mcpToolMode === MANAGED_PI_DIRECT_TYPED_MCP_TOOL_MODE) {
3028
- const requiredToolNames = sourceAcquisitionCatalog ? SOURCE_ACQUISITION_DIRECT_TYPED_V1_TOOL_NAMES : DIRECT_TYPED_V1_TOOL_NAMES;
3029
- for (const name of requiredToolNames) {
3030
- if (!names.has(name)) throw new Error("pi_managed_mcp_invalid: direct tool catalog name mismatch");
3031
- }
3032
- const wikiReadCount = sourceAcquisitionCatalog ? 0 : [...DIAGNOSIS_WIKI_READ_DIRECT_TYPED_V1_TOOL_NAMES].filter((name) => names.has(name)).length;
3033
- if (wikiReadCount !== 0 && wikiReadCount !== DIAGNOSIS_WIKI_READ_DIRECT_TYPED_V1_TOOL_NAMES.size) {
3034
- throw new Error("pi_managed_mcp_invalid: diagnosis wiki read catalog incomplete");
3035
- }
3036
- }
3037
3061
  const setHash = stablePiDirectCatalogSetHash(normalized.map((tool) => ({
3038
3062
  name: tool.name,
3039
3063
  exposedName: tool.exposedName,
@@ -3043,7 +3067,7 @@ function createManagedPiMcpProfileApi(options = {}) {
3043
3067
  if (catalog.setHash !== setHash) {
3044
3068
  throw new Error("pi_managed_mcp_invalid: direct tool catalog set hash mismatch");
3045
3069
  }
3046
- return { setHash, tools: normalized.sort((left, right) => left.name.localeCompare(right.name)) };
3070
+ return { setHash, tools: normalized.sort((left, right) => left.name.localeCompare(right.name)), kind: catalogKind };
3047
3071
  }
3048
3072
  function resolvePiExecutablePath(executorCommand, env) {
3049
3073
  if (isAbsolute2(executorCommand) || executorCommand.includes("/") || executorCommand.includes("\\")) {
@@ -3120,7 +3144,7 @@ function createManagedPiMcpProfileApi(options = {}) {
3120
3144
  }
3121
3145
  if ((runtimeAuth.issueId ?? null) !== (headers["x-amaster-issue-id"] ?? null)) throw new Error("pi_managed_mcp_invalid: issue authority mismatch");
3122
3146
  const mcpToolMode = gateway.mcpToolMode ?? MANAGED_PI_MCP_TOOL_MODE;
3123
- if (mcpToolMode !== MANAGED_PI_MCP_TOOL_MODE && mcpToolMode !== MANAGED_PI_HYBRID_MCP_TOOL_MODE && mcpToolMode !== MANAGED_PI_DIRECT_TYPED_MCP_TOOL_MODE) {
3147
+ if (mcpToolMode !== MANAGED_PI_MCP_TOOL_MODE && mcpToolMode !== MANAGED_PI_DIRECT_TYPED_MCP_TOOL_MODE) {
3124
3148
  throw new Error("pi_managed_mcp_invalid: unsupported managed Pi MCP tool mode");
3125
3149
  }
3126
3150
  const directCatalog = mcpToolMode !== MANAGED_PI_MCP_TOOL_MODE ? validateDirectCatalog(gateway, mcpToolMode) : null;
@@ -3711,7 +3735,7 @@ ${result3.stderr ?? ""}`, "Pi", MINIMUM_PI_VERSION);
3711
3735
  name: tool.exposedName,
3712
3736
  schemaHash: tool.effectiveSchemaHash
3713
3737
  }))),
3714
- proxyMode: mcpToolMode === MANAGED_PI_HYBRID_MCP_TOOL_MODE ? "required" : "forbidden",
3738
+ proxyMode: "forbidden",
3715
3739
  attestorSourceSha256,
3716
3740
  configSha256: sha2562(readFileSync3(configPath)),
3717
3741
  cacheSha256
@@ -3809,7 +3833,10 @@ ${result3.stderr ?? ""}`, "Pi", MINIMUM_PI_VERSION);
3809
3833
  skillArgs,
3810
3834
  spawnIdentity,
3811
3835
  workspaceMcpConfigPath,
3812
- toolAllowlist: mcpToolMode === MANAGED_PI_DIRECT_TYPED_MCP_TOOL_MODE ? [...directToolNames] : null,
3836
+ // Only narrowed specialized catalogs (diagnosis/source-acquisition) pin
3837
+ // the run to the governed tool set. The full catalog is additive: an
3838
+ // ordinary run keeps Pi's native tools plus the direct governed tools.
3839
+ toolAllowlist: mcpToolMode === MANAGED_PI_DIRECT_TYPED_MCP_TOOL_MODE && directCatalog.kind !== "full" ? [...directToolNames] : null,
3813
3840
  protectedValues: [.../* @__PURE__ */ new Set([
3814
3841
  sessionToken,
3815
3842
  ...sharedRuntime.protectedValues,
@@ -3833,9 +3860,6 @@ ${result3.stderr ?? ""}`, "Pi", MINIMUM_PI_VERSION);
3833
3860
  function prepareDelegatedPiMcpProfile2(input) {
3834
3861
  assertInvocationIsolation2(input);
3835
3862
  const { gateway, gatewayUrl, sessionToken, headers, runId, mcpToolMode, directCatalog } = validateAuthority2(input);
3836
- if (mcpToolMode === MANAGED_PI_HYBRID_MCP_TOOL_MODE) {
3837
- throw new Error("pi_delegated_mcp_hybrid_unsupported: managed effective-tool attestation is required");
3838
- }
3839
3863
  const runDir = resolve3(nonEmpty2(input.runDir, "runDir"));
3840
3864
  const cwd = resolve3(nonEmpty2(input.cwd, "cwd"));
3841
3865
  if (!within2(cwd, runDir)) throw new Error("pi_delegated_mcp_owner_mismatch: cwd is outside the managed run");
@@ -4905,6 +4929,11 @@ function continuationText(context) {
4905
4929
  if (!body) return "";
4906
4930
  return [readString(summary.title), body].filter(Boolean).join("\n");
4907
4931
  }
4932
+ var CONTINUATION_SUMMARY_TITLE_ALLOWLIST = /* @__PURE__ */ new Set(["Continuation Summary", "Predecessor Execution Summary"]);
4933
+ function continuationSectionTitle(context) {
4934
+ const title = readString(asRecord(context.paperclipContinuationSummary).title);
4935
+ return title && CONTINUATION_SUMMARY_TITLE_ALLOWLIST.has(title) ? title : "Continuation Summary";
4936
+ }
4908
4937
  function taskAcceptanceContractError(code, message) {
4909
4938
  const error = new Error(message);
4910
4939
  error.code = code;
@@ -5421,10 +5450,10 @@ function wikiAccessRuleLine(input) {
5421
5450
  const tools = input.hasGovernedMcp === true && access.tools === true;
5422
5451
  const treePath = readString(access.treePath);
5423
5452
  if (tools && treePath) {
5424
- return `- Company wiki access in this run: the governed tools wiki_search / wiki_read_page / wiki_list_pages / wiki_read_source / wiki_write_page via the amaster MCP, and the wiki tree at ${treePath} (read wiki/index.md there first).`;
5453
+ return `- Company wiki access in this run: the wiki tools wiki_search / wiki_read_page / wiki_list_pages / wiki_read_source / wiki_write_page via the amaster MCP, and the wiki tree at ${treePath} (read wiki/index.md there first).`;
5425
5454
  }
5426
5455
  if (tools) {
5427
- return "- Company wiki access in this run: the governed tools wiki_search / wiki_read_page / wiki_list_pages / wiki_read_source / wiki_write_page via the amaster MCP. Use them for governed lookup and durable Wiki updates; Company Knowledge operations must use the exact operationId and sourceRefs named by the issue.";
5456
+ return "- Company wiki access in this run: the wiki tools wiki_search / wiki_read_page / wiki_list_pages / wiki_read_source / wiki_write_page via the amaster MCP. Use them for targeted lookup and durable Wiki updates; Company Knowledge operations must use the exact operationId and sourceRefs named by the issue.";
5428
5457
  }
5429
5458
  if (treePath) {
5430
5459
  return `- Company wiki access in this run: the wiki tree at ${treePath}. Read wiki/index.md first (every page listed with a one-line summary), then open the specific pages you need; wiki_* tools are not available in this run.`;
@@ -5542,7 +5571,7 @@ function fixedRules(input, includeIssueLine) {
5542
5571
  wikiAccessRuleLine(input),
5543
5572
  "- Runtime Artifact lineage fields sourceWorkProductId and sourceWorkProductIds accept only current artifact work product ids returned as result.effectResult.workProductId by a succeeded upload_artifact action. Never pass a documentId or revisionId as artifact lineage.",
5544
5573
  "- When all inputs are issue documents and there is no source artifact work product, persist the derived result with upsert_document and do not call upload_artifact for a derived or review artifact.",
5545
- input.hasGovernedMcp && input.executorKind === "pi" && input.managedMcpToolMode === "proxy_only" ? "- For proxy-only Pi MCP writes, put the complete target argument object directly in actual `mcp` string `args` as strict JSON; escape quotes, backslashes, and control characters. Do not stage or print tool calls. If inner JSON syntax fails, correct it once without changing values; never repeat a possibly accepted call. After `runtime_action.describe`, emit the write." : input.hasGovernedMcp && input.executorKind === "pi" && input.managedMcpToolMode === "hybrid" ? "- For hybrid Pi MCP writes, call direct `runtime_action_describe`, then put long-tail write arguments in `mcp.args` as strict JSON. Never stage, print, or repeat a possibly accepted call." : ""
5574
+ input.hasGovernedMcp && input.executorKind === "pi" && input.managedMcpToolMode === "proxy_only" ? "- For proxy-only Pi MCP writes, put the complete target argument object directly in actual `mcp` string `args` as strict JSON; escape quotes, backslashes, and control characters. Do not stage or print tool calls. If inner JSON syntax fails, correct it once without changing values; never repeat a possibly accepted call. After `runtime_action.describe`, emit the write." : ""
5546
5575
  ].filter(Boolean).join("\n");
5547
5576
  }
5548
5577
  function approvalContinuationText(input) {
@@ -5666,14 +5695,14 @@ function continuationRuntimeActionEnvelope(context) {
5666
5695
  return envelope;
5667
5696
  }
5668
5697
  function managedDirectToolName(input, canonicalName) {
5669
- if (input.managedMcpToolMode !== "direct_typed" && input.managedMcpToolMode !== "hybrid") return null;
5698
+ if (input.managedMcpToolMode !== "direct_typed") return null;
5670
5699
  const catalog = asRecord(input.managedMcpToolCatalog);
5671
5700
  const tools = Array.isArray(catalog.tools) ? catalog.tools.map(asRecord) : [];
5672
5701
  const match = tools.find((tool) => readString(tool.name) === canonicalName);
5673
5702
  return readString(match?.exposedName) ?? null;
5674
5703
  }
5675
5704
  function managedPiMcpProxyAvailable(input) {
5676
- return input.managedMcpToolMode === "proxy_only" || input.managedMcpToolMode === "hybrid";
5705
+ return input.managedMcpToolMode === "proxy_only";
5677
5706
  }
5678
5707
  function managedPiMcpProxyToolName(canonicalName) {
5679
5708
  const name = readString(canonicalName);
@@ -5701,7 +5730,7 @@ A standalone continuation action is unavailable in this repair lane. First persi
5701
5730
  }
5702
5731
  if (!input.hasGovernedMcp) {
5703
5732
  return `${heading}
5704
- Runtime Action continuation is unavailable: managed governed MCP capability is missing. Do not guess a tool call.`;
5733
+ Runtime Action continuation is unavailable: managed MCP capability is missing. Do not guess a tool call.`;
5705
5734
  }
5706
5735
  const envelope = continuationRuntimeActionEnvelope(asRecord(input.context));
5707
5736
  if (!envelope) {
@@ -5987,15 +6016,15 @@ function piMcpUsageText(input) {
5987
6016
  ].join("\n");
5988
6017
  }
5989
6018
  function piDirectTypedToolsText(input) {
5990
- if (!input.hasGovernedMcp || input.executorKind !== "pi" || input.managedMcpToolMode !== "direct_typed" && input.managedMcpToolMode !== "hybrid") return "";
6019
+ if (!input.hasGovernedMcp || input.executorKind !== "pi" || input.managedMcpToolMode !== "direct_typed") return "";
5991
6020
  const catalog = asRecord(input.managedMcpToolCatalog);
5992
6021
  const tools = (Array.isArray(catalog.tools) ? catalog.tools : []).map(asRecord).map((tool) => ({ name: readString(tool.exposedName), description: readString(tool.description) })).filter((tool) => tool.name);
5993
6022
  if (tools.length === 0) {
5994
- return "Direct typed governed tools are unavailable because the run catalog snapshot is empty. Do not guess a proxy or tool name.";
6023
+ return "Direct typed tools are unavailable because the run catalog snapshot is empty. Do not guess a proxy or tool name.";
5995
6024
  }
5996
6025
  return [
5997
- input.managedMcpToolMode === "hybrid" ? "Use the attested direct typed tools already present in the provider tool definitions with object arguments; do not duplicate them through the `mcp` proxy." : "Use only the attested direct typed tools already present in the provider tool definitions. Call their exact names with object arguments; do not call the `mcp` proxy and do not stringify an inner argument envelope.",
5998
- input.managedMcpToolMode === "hybrid" ? "For a canonical tool absent from those definitions, first use the direct typed `runtime_action_describe`, then call the single managed `mcp` proxy with stringified inner `args`. Never infer an alias, use REST, or bypass the governed Gateway." : "A tool absent from the provider tool definitions is unavailable in this run. Do not infer a namespace or fall back to REST/bare MCP."
6026
+ "Use only the attested direct typed tools already present in the provider tool definitions. Call their exact names with object arguments; do not call the `mcp` proxy and do not stringify an inner argument envelope.",
6027
+ "A tool absent from the provider tool definitions is unavailable in this run. Do not infer a namespace or fall back to REST/bare MCP."
5999
6028
  ].join("\n");
6000
6029
  }
6001
6030
  function sourceAcquisitionTaskSection(input) {
@@ -6138,7 +6167,7 @@ var CONTEXT_AVAILABILITY_SECTION_TITLES = Object.freeze({
6138
6167
  runtime_decomposition_requirement: "Required Task Decomposition",
6139
6168
  task_context_authority: "Task Context Authority",
6140
6169
  verified_company_context: "Verified Company Context",
6141
- pi_mcp_usage: "Pi Governed MCP Usage",
6170
+ pi_mcp_usage: "Pi MCP Usage",
6142
6171
  governed_reads: "Governed External Reads",
6143
6172
  optional_task_wiki_context: "Optional Company Wiki Context",
6144
6173
  agent_instructions: "Agent Instructions",
@@ -6375,7 +6404,7 @@ ${resolvedDependencies.details.content}` : ""
6375
6404
  { name: "task", title: "Task Context", priority: 90, sourceRef: taskSourceRefs, originalContent: [taskText, taskCommentRefGuidance(input, taskText)].filter(Boolean).join("\n"), content: includeTask ? [taskText, taskCommentRefGuidance(input, taskText)].filter(Boolean).join("\n") : "", truncationReason: includeTask ? null : "mode_selection" },
6376
6405
  ...taskAcceptanceContract ? [{ name: "task_acceptance_contract", title: "Task Acceptance Contract", priority: 100, ...taskAcceptanceContract }] : [],
6377
6406
  ...governedBusinessState ? [{ name: "governed_business_state", title: "Governed Business State", priority: 99, ...governedBusinessState }] : [],
6378
- { name: "continuation_summary", title: "Continuation Summary", priority: 97, sourceRef: readString(asRecord(context.paperclipContinuationSummary).key) ?? `issue:${input.issueId ?? "unknown"}`, observedAt: readString(asRecord(context.paperclipContinuationSummary).updatedAt), originalContent: continuationSummary, content: mode === "cold" ? "" : continuationSummary, truncationReason: mode === "cold" ? "mode_selection" : null },
6407
+ { name: "continuation_summary", title: continuationSectionTitle(context), priority: 97, sourceRef: readString(asRecord(context.paperclipContinuationSummary).key) ?? `issue:${input.issueId ?? "unknown"}`, observedAt: readString(asRecord(context.paperclipContinuationSummary).updatedAt), originalContent: continuationSummary, content: mode === "cold" ? "" : continuationSummary, truncationReason: mode === "cold" ? "mode_selection" : null },
6379
6408
  ...resolvedDependencyContent ? [{
6380
6409
  name: "resolved_dependencies",
6381
6410
  title: "Resolved Dependency Outputs",
@@ -6392,7 +6421,7 @@ ${resolvedDependencies.details.content}` : ""
6392
6421
  ...verifiedCompanyContext.content ? [{ name: "verified_company_context", title: "Verified Company Context", priority: 96, sourceRef: verifiedCompanyContext.sourceRef, observedAt: verifiedCompanyContext.observedAt, freshness: { kind: "run_snapshot" }, content: verifiedCompanyContext.content }] : [],
6393
6422
  ...piMcpUsage ? [{
6394
6423
  name: "pi_mcp_usage",
6395
- title: "Pi Governed MCP Usage",
6424
+ title: "Pi MCP Usage",
6396
6425
  priority: 96,
6397
6426
  sourceRef: "amaster_governed_mcp_proxy_contract",
6398
6427
  content: piMcpUsage
@@ -10097,7 +10126,7 @@ var source_acquisition_compatibility_default = {
10097
10126
  };
10098
10127
 
10099
10128
  // src/amaster-runtime-daemon.mjs
10100
- var CONNECTOR_VERSION = "0.1.1-beta.46";
10129
+ var CONNECTOR_VERSION = "0.1.1-beta.48";
10101
10130
  var CONNECTOR_CONTRACT_VERSION = "2026-06-04.v1";
10102
10131
  var SOURCE_ACQUISITION_CAPABILITY = source_acquisition_compatibility_default.profileVersion;
10103
10132
  var SOURCE_ACQUISITION_PROFILE_VERSION = source_acquisition_compatibility_default.profileVersion;
@@ -6,7 +6,7 @@ import { basename, dirname, join, resolve } from "node:path";
6
6
  import { homedir, hostname } from "node:os";
7
7
  import { fileURLToPath } from "node:url";
8
8
 
9
- const CONNECTOR_VERSION = "0.1.1-beta.46";
9
+ const CONNECTOR_VERSION = "0.1.1-beta.48";
10
10
 
11
11
  const CAPABILITIES = [
12
12
  "remote_registration",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amaster.ai/employee-runtime-connector",
3
- "version": "0.1.1-beta.46",
3
+ "version": "0.1.1-beta.48",
4
4
  "description": "MirrorX runtime connector CLI and daemon",
5
5
  "license": "MIT",
6
6
  "type": "module",