@amaster.ai/employee-runtime-connector 0.1.1-beta.234 → 0.1.1-beta.236

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.
@@ -5758,6 +5758,24 @@ var ISSUE_THREAD_INTERACTION_KINDS = [
5758
5758
  "request_confirmation",
5759
5759
  "request_checkbox_confirmation"
5760
5760
  ];
5761
+ var ISSUE_THREAD_INTERACTION_SETTLEMENT_PURPOSE_CODES = [
5762
+ "request_required_inputs",
5763
+ "clarify_required_scope",
5764
+ "resolve_staffing_gap",
5765
+ "review_suggested_tasks",
5766
+ "choose_task_disposition",
5767
+ "review_delivery_package",
5768
+ "review_document_revision",
5769
+ "review_accepted_outcome_policy",
5770
+ "mirrorx_candidate_promotion",
5771
+ "mirrorx_new_direction_candidate",
5772
+ "mirrorx_risk_acknowledgement",
5773
+ "durable_live_path_conflict"
5774
+ ];
5775
+ var RUNTIME_ACTION_INTERACTION_PURPOSE_CODES = [
5776
+ ...ISSUE_THREAD_INTERACTION_SETTLEMENT_PURPOSE_CODES,
5777
+ "company_strategy_goal_confirmation"
5778
+ ];
5761
5779
  var REQUEST_INPUT_ACCEPTED_TYPES = ["text", "attachment", "oauth_authorization"];
5762
5780
  var REQUEST_CHECKBOX_CONFIRMATION_OPTION_LIMIT = 200;
5763
5781
  var ISSUE_THREAD_INTERACTION_STATUSES = [
@@ -7783,6 +7801,7 @@ function resolveMirrorxWorkKindPurpose(workKind) {
7783
7801
 
7784
7802
  // ../shared/src/task-resource-input.ts
7785
7803
  var ATTACHMENT_PREPARATION_VERSION = "attachment-preparation-v1";
7804
+ var ORIGINAL_ONLY_PARSER_VERSION = "original-only-v1";
7786
7805
  var TASK_RESOURCE_INPUT_STATES = [
7787
7806
  "declared",
7788
7807
  "preparing",
@@ -7882,18 +7901,27 @@ var taskResourceInputSchema = external_exports.discriminatedUnion("kind", [
7882
7901
  assetId: external_exports.string().uuid(),
7883
7902
  byteSize: external_exports.number().int().nonnegative(),
7884
7903
  sha256: sha256Schema4,
7904
+ parserVersion: external_exports.string().trim().min(1).max(120).nullable().optional(),
7885
7905
  sidecarAssetId: external_exports.string().uuid().nullable().optional(),
7886
7906
  preparationReceipt: attachmentPreparationReceiptSchema.nullable().optional()
7887
7907
  }).strict()
7888
7908
  ]).superRefine((value, context) => {
7889
7909
  if (value.kind !== "attachment") return;
7890
- if (value.state === "prepared" && !value.preparationReceipt) {
7910
+ const originalOnly = value.parserVersion === ORIGINAL_ONLY_PARSER_VERSION;
7911
+ if (value.state === "prepared" && !value.preparationReceipt && !originalOnly) {
7891
7912
  context.addIssue({
7892
7913
  code: external_exports.ZodIssueCode.custom,
7893
7914
  path: ["preparationReceipt"],
7894
7915
  message: "Prepared attachment input requires a complete preparation receipt"
7895
7916
  });
7896
7917
  }
7918
+ if (originalOnly && (value.preparationReceipt || value.sidecarAssetId)) {
7919
+ context.addIssue({
7920
+ code: external_exports.ZodIssueCode.custom,
7921
+ path: ["preparationReceipt"],
7922
+ message: "Original-only attachment input must not carry a preparation sidecar"
7923
+ });
7924
+ }
7897
7925
  if (value.preparationReceipt && (value.preparationReceipt.originalSha256 !== value.sha256 || value.preparationReceipt.originalBytes !== value.byteSize)) {
7898
7926
  context.addIssue({
7899
7927
  code: external_exports.ZodIssueCode.custom,
@@ -9970,14 +9998,14 @@ function taskDirectionSelectionCount(value) {
9970
9998
  return new Set(value.labelIds ?? []).size + new Set(value.labels ?? []).size;
9971
9999
  }
9972
10000
  function addExactlyOneTaskDirectionIssue(value, ctx) {
9973
- const count = taskDirectionSelectionCount(value);
9974
- if (count === 1) return;
10001
+ const count2 = taskDirectionSelectionCount(value);
10002
+ if (count2 === 1) return;
9975
10003
  ctx.addIssue({
9976
10004
  code: external_exports.ZodIssueCode.custom,
9977
10005
  path: ["labelIds"],
9978
- message: count === 0 ? "Task direction is required" : "Exactly one task direction is required",
10006
+ message: count2 === 0 ? "Task direction is required" : "Exactly one task direction is required",
9979
10007
  params: {
9980
- code: count === 0 ? "task_direction_required" : "task_direction_exactly_one_required"
10008
+ code: count2 === 0 ? "task_direction_required" : "task_direction_exactly_one_required"
9981
10009
  }
9982
10010
  });
9983
10011
  }
@@ -11685,6 +11713,35 @@ var operatingAccountingReadModelSchema = external_exports.object({
11685
11713
  }).strict();
11686
11714
 
11687
11715
  // ../shared/src/ceo-periodic-auto-work.ts
11716
+ var ceoObserverAutoPauseCauseSchema = external_exports.object({
11717
+ schemaVersion: external_exports.literal("ceo_observer_auto_pause_cause/v1"),
11718
+ kind: external_exports.enum(["provider_dependency", "manual_required"]),
11719
+ failureFamily: external_exports.enum(["provider_quota", "other"]),
11720
+ provider: external_exports.literal("pi_credits").nullable(),
11721
+ // Null is a classification-only shadow projection. Enforce must revalidate
11722
+ // the exact lineage and materialize the Company circuit before recovery.
11723
+ circuitRecoveryEpochAtPause: external_exports.number().int().nonnegative().nullable(),
11724
+ sourceObservationId: external_exports.string().uuid(),
11725
+ sourceRoutineRunId: external_exports.string().uuid().nullable(),
11726
+ sourceHeartbeatRunId: external_exports.string().uuid().nullable(),
11727
+ pausedAt: external_exports.string().datetime({ offset: true }),
11728
+ automaticRecoveryAttemptedEpoch: external_exports.number().int().nonnegative().nullable(),
11729
+ lastRecoveryFailureCode: external_exports.string().trim().min(1).max(160).nullable()
11730
+ }).strict().superRefine((value, ctx) => {
11731
+ const recoverable = value.kind === "provider_dependency";
11732
+ if (recoverable && (value.failureFamily !== "provider_quota" || value.provider !== "pi_credits" || value.sourceRoutineRunId === null || value.sourceHeartbeatRunId === null)) {
11733
+ ctx.addIssue({
11734
+ code: external_exports.ZodIssueCode.custom,
11735
+ message: "Provider dependency pauses require an exact Pi quota lineage"
11736
+ });
11737
+ }
11738
+ if (!recoverable && (value.provider !== null || value.circuitRecoveryEpochAtPause !== null || value.automaticRecoveryAttemptedEpoch !== null)) {
11739
+ ctx.addIssue({
11740
+ code: external_exports.ZodIssueCode.custom,
11741
+ message: "Manual recovery pauses cannot carry provider recovery authority"
11742
+ });
11743
+ }
11744
+ });
11688
11745
  var CEO_PERIODIC_MAX_CANDIDATES_PER_OBSERVATION = 20;
11689
11746
  var CEO_PERIODIC_OBSERVER_DELTA_KINDS = [
11690
11747
  "source_ready",
@@ -12166,10 +12223,16 @@ var automaticWorkLifecycleCountsSchema = external_exports.object(
12166
12223
  AUTOMATIC_WORK_LIFECYCLE_STATES.map((state) => [state, external_exports.number().int().nonnegative()])
12167
12224
  )
12168
12225
  ).strict();
12226
+ var ceoObserverRecoveryStateSchema = external_exports.object({
12227
+ state: external_exports.enum(["quota_paused", "recovery_waiting", "validating", "manual_required"]),
12228
+ diagnosticCode: external_exports.string().trim().min(1).max(160),
12229
+ nextCheckAt: external_exports.string().datetime().nullable()
12230
+ }).strict();
12169
12231
  var automaticWorkOperationalStateSchema = external_exports.object({
12170
12232
  summary: external_exports.object({
12171
12233
  cycleState: automaticWorkCycleStateSchema,
12172
12234
  observerStatus: external_exports.enum(["active", "paused", "auto_paused"]).nullable(),
12235
+ observerRecovery: ceoObserverRecoveryStateSchema.nullable(),
12173
12236
  latestObservationStatus: external_exports.enum(["claimed", "running", "no_work", "work_created", "failed"]).nullable(),
12174
12237
  latestObservationReason: external_exports.enum(["baseline_required", "business_delta", "strategic_review_slot"]).nullable(),
12175
12238
  lastObservedAt: external_exports.string().datetime().nullable(),
@@ -12287,6 +12350,7 @@ var operatingRoundLogSchema = external_exports.object({
12287
12350
  summary: external_exports.object({
12288
12351
  currentState: automaticWorkCycleStateSchema,
12289
12352
  observerStatus: external_exports.enum(["active", "paused", "auto_paused"]).nullable(),
12353
+ observerRecovery: ceoObserverRecoveryStateSchema.nullable(),
12290
12354
  generatedAt: external_exports.string().datetime(),
12291
12355
  lastRoundAt: external_exports.string().datetime().nullable(),
12292
12356
  nextRoundAt: external_exports.string().datetime().nullable(),
@@ -16704,6 +16768,52 @@ var prerequisiteReleaseReceiptSchema = external_exports.object({
16704
16768
  }
16705
16769
  });
16706
16770
 
16771
+ // ../shared/src/mirrorx-prerequisite-read-model.ts
16772
+ var prerequisiteTargetWaitSchema = external_exports.enum([
16773
+ "company",
16774
+ "assignee",
16775
+ "interaction",
16776
+ "external",
16777
+ "dependency",
16778
+ "prerequisite",
16779
+ "recovery",
16780
+ "live_owner"
16781
+ ]);
16782
+ var prerequisiteRelationshipSchema = external_exports.object({
16783
+ bindingId: external_exports.string().uuid(),
16784
+ requirementId: external_exports.string().uuid(),
16785
+ requirementRevision: external_exports.number().int().positive(),
16786
+ requirementKind: external_exports.string().min(1),
16787
+ sourceAuthorityKind: external_exports.enum(["board_decision", "task_requirement", "registered_validator"]),
16788
+ targetIssueId: external_exports.string().uuid(),
16789
+ targetIdentifier: external_exports.string().nullable(),
16790
+ targetTitle: external_exports.string(),
16791
+ targetExecutionEpoch: external_exports.number().int().positive(),
16792
+ current: external_exports.boolean(),
16793
+ prerequisiteIssueId: external_exports.string().uuid(),
16794
+ prerequisiteIdentifier: external_exports.string().nullable(),
16795
+ prerequisiteTitle: external_exports.string(),
16796
+ state: prerequisiteBindingStateSchema,
16797
+ reasonCode: external_exports.string().nullable(),
16798
+ accepted: external_exports.boolean(),
16799
+ targetWaits: external_exports.array(prerequisiteTargetWaitSchema),
16800
+ escalatedAt: external_exports.string().nullable()
16801
+ }).strict();
16802
+ var prerequisiteAttentionPageSchema = external_exports.object({
16803
+ items: external_exports.array(prerequisiteRelationshipSchema.extend({ attentionId: external_exports.string() }).strict()),
16804
+ nextCursor: external_exports.string().uuid().nullable()
16805
+ }).strict();
16806
+ var interactionSettlementResultSchema = external_exports.object({
16807
+ interactionId: external_exports.string().uuid(),
16808
+ resolutionRevision: external_exports.number().int().positive(),
16809
+ issueExecutionEpoch: external_exports.number().int().positive(),
16810
+ decision: external_exports.enum(["resume_current_issue", "remain_waiting", "terminate_issue", "dedicated_finalizer", "no_issue_transition"]),
16811
+ reasonCode: external_exports.string().min(1),
16812
+ continuationReceiptId: external_exports.string().uuid().nullable(),
16813
+ committedAt: external_exports.string().datetime({ offset: true })
16814
+ }).strict();
16815
+ var interactionSettlementResultsSchema = external_exports.array(interactionSettlementResultSchema);
16816
+
16707
16817
  // ../shared/src/mirrorx-prerequisite-recovery.ts
16708
16818
  var prerequisiteRecoveryActionSchema = external_exports.enum(["retry_release", "assign_or_reassign_target", "open_staffing_request", "stop_target", "retry", "replace_prerequisite"]);
16709
16819
  var decisionBase = external_exports.object({
@@ -16749,6 +16859,7 @@ var prerequisiteRecoveryReceiptSchema = external_exports.object({
16749
16859
  }
16750
16860
  });
16751
16861
  var issuePrerequisitesSchema = external_exports.object({
16862
+ targets: external_exports.array(prerequisiteRelationshipSchema),
16752
16863
  companyId: external_exports.string().uuid(),
16753
16864
  targetIssueId: external_exports.string().uuid(),
16754
16865
  targetExecutionEpoch: external_exports.number().int().positive(),
@@ -16783,6 +16894,28 @@ var issuePrerequisitesSchema = external_exports.object({
16783
16894
  }).strict())
16784
16895
  }).strict();
16785
16896
 
16897
+ // ../shared/src/mirrorx-prerequisite-operations.ts
16898
+ var count = external_exports.number().int().nonnegative();
16899
+ var prerequisiteOperationsSchema = external_exports.object({
16900
+ asOf: external_exports.string().datetime(),
16901
+ windowHours: external_exports.literal(24),
16902
+ admission24h: external_exports.object({ sampleSize: count, rejectedCount: count, rejectionRate: external_exports.number().min(0).max(100), boardProposalCount: count }),
16903
+ boardDeferrals24h: count,
16904
+ parked: external_exports.object({ count, slaExceededCount: count, oldestWaitMs: count.nullable() }),
16905
+ churnIdentityCount: count,
16906
+ churn: external_exports.array(external_exports.object({
16907
+ targetIssueId: external_exports.string().uuid(),
16908
+ targetExecutionEpoch: external_exports.number().int().positive(),
16909
+ requirementKind: external_exports.string(),
16910
+ proposals24h: count,
16911
+ decisions24h: count,
16912
+ staleBeforeBind24h: count,
16913
+ generations24h: count,
16914
+ repeatGenerations24h: count,
16915
+ staleDimensions: external_exports.record(count)
16916
+ }))
16917
+ });
16918
+
16786
16919
  // src/amaster-runtime-daemon.mjs
16787
16920
  import { chmodSync as chmodSync7, copyFileSync as copyFileSync2, existsSync as existsSync17, lstatSync as lstatSync11, mkdirSync as mkdirSync9, mkdtempSync as mkdtempSync2, readFileSync as readFileSync18, readdirSync as readdirSync11, realpathSync as realpathSync8, renameSync as renameSync10, rmSync as rmSync9, statSync as statSync11, symlinkSync as symlinkSync2, unlinkSync as unlinkSync4, writeFileSync as writeFileSync11 } from "node:fs";
16788
16921
  import { arch as arch3, homedir as homedir3, hostname as hostname2, platform as platform3, tmpdir } from "node:os";
@@ -30355,6 +30488,7 @@ function readWorkspaceStatus(cwd, opts = {}) {
30355
30488
  }
30356
30489
 
30357
30490
  // src/amaster-runtime-daemon/required-task-attachment.mjs
30491
+ var ORIGINAL_ONLY_PARSER_VERSION2 = "original-only-v1";
30358
30492
  function text(value) {
30359
30493
  return typeof value === "string" && value.trim() ? value.trim() : null;
30360
30494
  }
@@ -30364,9 +30498,10 @@ function number(value) {
30364
30498
  function assertRequiredTaskAttachmentMaterialized(input, materialized) {
30365
30499
  if (input?.kind !== "attachment") return;
30366
30500
  if (input.state !== "prepared") throw new Error("required_attachment_not_prepared");
30501
+ const originalOnly = text(input.parserVersion) === ORIGINAL_ONLY_PARSER_VERSION2;
30367
30502
  const requirements = [
30368
30503
  { role: "original", assetId: text(input.assetId), sha256: text(input.sha256), byteSize: number(input.byteSize) },
30369
- { role: "sidecar", assetId: text(input.sidecarAssetId), sha256: text(input.sidecarSha256), byteSize: number(input.sidecarByteSize) }
30504
+ ...originalOnly ? [] : [{ role: "sidecar", assetId: text(input.sidecarAssetId), sha256: text(input.sidecarSha256), byteSize: number(input.sidecarByteSize) }]
30370
30505
  ];
30371
30506
  for (const requirement of requirements) {
30372
30507
  if (!requirement.assetId || !/^[a-f0-9]{64}$/iu.test(requirement.sha256 ?? "") || requirement.byteSize === null) {
@@ -30381,7 +30516,7 @@ function assertRequiredTaskAttachmentMaterialized(input, materialized) {
30381
30516
  }
30382
30517
 
30383
30518
  // src/amaster-runtime-daemon.mjs
30384
- var CONNECTOR_VERSION = "0.1.1-beta.234";
30519
+ var CONNECTOR_VERSION = "0.1.1-beta.236";
30385
30520
  var CONNECTOR_CONTRACT_VERSION = "2026-06-04.v1";
30386
30521
  var daemonRequire = createRequire(import.meta.url);
30387
30522
  var MAX_CHECKPOINT_BYTES = 20 * 1024 * 1024;
@@ -32720,7 +32855,7 @@ function createLiveOutputLogger(config, command, executorKind, protectedValues =
32720
32855
  await observationQueue;
32721
32856
  if (observationError) throw observationError;
32722
32857
  await queue;
32723
- const suppressedSummaries = Object.entries(suppressedCounts).filter(([, count]) => count > 0).map(([stream, count]) => ({ stream, count }));
32858
+ const suppressedSummaries = Object.entries(suppressedCounts).filter(([, count2]) => count2 > 0).map(([stream, count2]) => ({ stream, count: count2 }));
32724
32859
  if (suppressedSummaries.length > 0) {
32725
32860
  const suppressedCount = suppressedSummaries.reduce((total, summary) => total + summary.count, 0);
32726
32861
  await deliverLiveLog({
@@ -7,7 +7,7 @@ import { homedir, hostname } from "node:os";
7
7
  import { fileURLToPath } from "node:url";
8
8
  import { BUILD_SUPPORTED_CAPABILITIES } from "./amaster-runtime-daemon/capability-registry.mjs";
9
9
 
10
- const CONNECTOR_VERSION = "0.1.1-beta.234";
10
+ const CONNECTOR_VERSION = "0.1.1-beta.236";
11
11
 
12
12
  const CONFIG_KEY_MAP = new Map([
13
13
  ["server_url", "AMASTER_EMPLOYEE_SERVER_URL"],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amaster.ai/employee-runtime-connector",
3
- "version": "0.1.1-beta.234",
3
+ "version": "0.1.1-beta.236",
4
4
  "description": "MirrorX runtime connector CLI and daemon",
5
5
  "license": "MIT",
6
6
  "type": "module",