@agent-relay/factory 0.1.1 → 0.1.2

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.
Files changed (132) hide show
  1. package/README.md +146 -205
  2. package/dist/cli/fleet.d.ts +5 -1
  3. package/dist/cli/fleet.d.ts.map +1 -1
  4. package/dist/cli/fleet.js +86 -15
  5. package/dist/cli/fleet.js.map +1 -1
  6. package/dist/config/schema.d.ts +4 -4
  7. package/dist/config/schema.d.ts.map +1 -1
  8. package/dist/config/schema.js +13 -2
  9. package/dist/config/schema.js.map +1 -1
  10. package/dist/constants/linear.d.ts +2 -0
  11. package/dist/constants/linear.d.ts.map +1 -1
  12. package/dist/constants/linear.js +6 -0
  13. package/dist/constants/linear.js.map +1 -1
  14. package/dist/dispatch/templates.d.ts +18 -2
  15. package/dist/dispatch/templates.d.ts.map +1 -1
  16. package/dist/dispatch/templates.js +18 -10
  17. package/dist/dispatch/templates.js.map +1 -1
  18. package/dist/fleet/create-fleet.d.ts +3 -2
  19. package/dist/fleet/create-fleet.d.ts.map +1 -1
  20. package/dist/fleet/create-fleet.js +3 -2
  21. package/dist/fleet/create-fleet.js.map +1 -1
  22. package/dist/fleet/ensure-relay-broker.d.ts +24 -0
  23. package/dist/fleet/ensure-relay-broker.d.ts.map +1 -0
  24. package/dist/fleet/ensure-relay-broker.js +56 -0
  25. package/dist/fleet/ensure-relay-broker.js.map +1 -0
  26. package/dist/fleet/internal-fleet-client.d.ts +8 -3
  27. package/dist/fleet/internal-fleet-client.d.ts.map +1 -1
  28. package/dist/fleet/internal-fleet-client.js +32 -5
  29. package/dist/fleet/internal-fleet-client.js.map +1 -1
  30. package/dist/fleet/relay-fleet-client.d.ts +90 -13
  31. package/dist/fleet/relay-fleet-client.d.ts.map +1 -1
  32. package/dist/fleet/relay-fleet-client.js +496 -20
  33. package/dist/fleet/relay-fleet-client.js.map +1 -1
  34. package/dist/github/index.d.ts +4 -4
  35. package/dist/github/index.js +2 -2
  36. package/dist/github/probe-closer.d.ts +1 -1
  37. package/dist/github/probe-closer.js +1 -1
  38. package/dist/index.d.ts +33 -29
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +17 -15
  41. package/dist/index.js.map +1 -1
  42. package/dist/linear/state-resolver.d.ts +3 -2
  43. package/dist/linear/state-resolver.d.ts.map +1 -1
  44. package/dist/linear/state-resolver.js +74 -10
  45. package/dist/linear/state-resolver.js.map +1 -1
  46. package/dist/mount/local-mount-preflight.d.ts +1 -0
  47. package/dist/mount/local-mount-preflight.d.ts.map +1 -1
  48. package/dist/mount/local-mount-preflight.js +64 -12
  49. package/dist/mount/local-mount-preflight.js.map +1 -1
  50. package/dist/mount/relayfile-binary.d.ts +2 -0
  51. package/dist/mount/relayfile-binary.d.ts.map +1 -1
  52. package/dist/mount/relayfile-binary.js +39 -5
  53. package/dist/mount/relayfile-binary.js.map +1 -1
  54. package/dist/mount/relayfile-cloud-mount-client.d.ts +2 -2
  55. package/dist/mount/relayfile-cloud-mount-client.js +1 -1
  56. package/dist/node/factory-node.d.ts +59 -0
  57. package/dist/node/factory-node.d.ts.map +1 -0
  58. package/dist/node/factory-node.js +351 -0
  59. package/dist/node/factory-node.js.map +1 -0
  60. package/dist/node/factory.node.d.ts +3 -0
  61. package/dist/node/factory.node.d.ts.map +1 -0
  62. package/dist/node/factory.node.js +5 -0
  63. package/dist/node/factory.node.js.map +1 -0
  64. package/dist/orchestrator/batch-tracker.d.ts +2 -2
  65. package/dist/orchestrator/factory.d.ts +5 -2
  66. package/dist/orchestrator/factory.d.ts.map +1 -1
  67. package/dist/orchestrator/factory.js +413 -59
  68. package/dist/orchestrator/factory.js.map +1 -1
  69. package/dist/orchestrator/index.d.ts +4 -4
  70. package/dist/orchestrator/index.d.ts.map +1 -1
  71. package/dist/orchestrator/index.js +3 -3
  72. package/dist/orchestrator/index.js.map +1 -1
  73. package/dist/orchestrator/process-identity.d.ts +1 -1
  74. package/dist/orchestrator/reaper.d.ts +3 -3
  75. package/dist/orchestrator/reaper.js +3 -3
  76. package/dist/ports/fleet.d.ts +8 -2
  77. package/dist/ports/fleet.d.ts.map +1 -1
  78. package/dist/ports/index.d.ts +4 -4
  79. package/dist/ports/state.d.ts +3 -3
  80. package/dist/ports/writeback.d.ts +1 -1
  81. package/dist/safety/factory-scope.d.ts +2 -2
  82. package/dist/state/in-memory-state-store.d.ts +1 -1
  83. package/dist/state/in-memory-state-store.js +1 -1
  84. package/dist/subscriptions/event-client.d.ts +1 -1
  85. package/dist/subscriptions/event-client.js +2 -2
  86. package/dist/subscriptions/globs.js +1 -1
  87. package/dist/subscriptions/index.d.ts +7 -7
  88. package/dist/subscriptions/index.js +4 -4
  89. package/dist/subscriptions/linear-filter.d.ts +1 -1
  90. package/dist/subscriptions/linear-filter.js +1 -1
  91. package/dist/subscriptions/specs.d.ts +1 -1
  92. package/dist/subscriptions/specs.js +2 -2
  93. package/dist/testing/fakes.d.ts +1 -1
  94. package/dist/testing/fakes.js +1 -1
  95. package/dist/testing/fakes.js.map +1 -1
  96. package/dist/testing/index.d.ts +1 -1
  97. package/dist/testing/index.js +1 -1
  98. package/dist/triage/heuristic.d.ts +8 -4
  99. package/dist/triage/heuristic.d.ts.map +1 -1
  100. package/dist/triage/heuristic.js +70 -6
  101. package/dist/triage/heuristic.js.map +1 -1
  102. package/dist/triage/index.d.ts +6 -6
  103. package/dist/triage/index.d.ts.map +1 -1
  104. package/dist/triage/index.js +4 -4
  105. package/dist/triage/index.js.map +1 -1
  106. package/dist/triage/llm.d.ts +1 -1
  107. package/dist/triage/llm.d.ts.map +1 -1
  108. package/dist/triage/llm.js +5 -3
  109. package/dist/triage/llm.js.map +1 -1
  110. package/dist/triage/schema.d.ts +133 -29
  111. package/dist/triage/schema.d.ts.map +1 -1
  112. package/dist/triage/schema.js +6 -3
  113. package/dist/triage/schema.js.map +1 -1
  114. package/dist/triage/tiered.d.ts +1 -1
  115. package/dist/triage/tiered.d.ts.map +1 -1
  116. package/dist/triage/tiered.js +9 -2
  117. package/dist/triage/tiered.js.map +1 -1
  118. package/dist/types.d.ts +10 -9
  119. package/dist/types.d.ts.map +1 -1
  120. package/dist/writeback/github.d.ts +2 -2
  121. package/dist/writeback/github.js +1 -1
  122. package/dist/writeback/index.d.ts +5 -5
  123. package/dist/writeback/index.js +3 -3
  124. package/dist/writeback/linear.d.ts +3 -3
  125. package/dist/writeback/linear.d.ts.map +1 -1
  126. package/dist/writeback/linear.js +57 -14
  127. package/dist/writeback/linear.js.map +1 -1
  128. package/dist/writeback/slack.d.ts +1 -1
  129. package/dist/writeback/slack.js +2 -2
  130. package/package.json +10 -2
  131. package/scripts/com.agentrelay.factory-canary.plist.example +53 -0
  132. package/scripts/factory-canary.sh +89 -0
package/dist/index.d.ts CHANGED
@@ -1,32 +1,36 @@
1
1
  export * from './webhook/index.js';
2
2
  export * from './state/index.js';
3
- export type { FactoryConfig, FactoryStateRole } from './config/schema';
4
- export { FactoryConfigSchema, FACTORY_STATE_ROLES } from './config/schema';
5
- export { resolveFactoryStates, stateResolutionFromIds, } from './linear/state-resolver';
6
- export type { FactoryStateResolution, LinearStateReader, ResolveFactoryStatesInput, } from './linear/state-resolver';
7
- export { linearByStatePath, linearCommentPath, linearIssuePath, } from './constants/linear';
8
- export { slackMessagePath, slackReplyPath, } from './constants/slack';
9
- export { agentSpecWithRenderedTask, mergePolicyLine, renderAgentTask, } from './dispatch/templates';
10
- export type { RenderAgentTaskInput, TemplateIssue, TemplateRoute, } from './dispatch/templates';
11
- export { createFleet } from './fleet/create-fleet';
12
- export type { CreateFleetDeps, CreateFleetOptions, FleetBackend, } from './fleet/create-fleet';
13
- export { InternalFleetClient } from './fleet/internal-fleet-client';
14
- export type { HarnessDriverClientLike, InternalFleetClientOptions, } from './fleet/internal-fleet-client';
15
- export { RelayFleetClient } from './fleet/relay-fleet-client';
16
- export { RelayfileCloudMountClient, resolveFactoryWorkspace, } from './mount/relayfile-cloud-mount-client';
17
- export type { ActiveWorkspaceResolver, RelayFileClientLike, RelayfileCloudMountClientConfig, ResolvedFactoryWorkspace, } from './mount/relayfile-cloud-mount-client';
18
- export { GhCliGithubMergeGate, GithubMergeGate, closeProbePr, defaultGhRunner, evaluateGithubMergeGate, } from './github';
19
- export type { CloseProbePrInput, CloseProbePrResult, GhRunner, GhRunResult, GithubMergeInput, GithubMergeGateInput, GithubMergeGatePort, GithubMergeResult, GithubMergeGateVerdict, } from './github';
20
- export { BatchTracker, DEFAULT_FACTORY_LOOP_HEARTBEAT_PATH, DEFAULT_FACTORY_LOOP_REGISTRY_PATH, FactoryReaper, checkFactoryLoopLiveness, createFactory, FactoryLoop, issueKey, isRealLinearIssue, parseLinearIssue, readFactoryInFlightRegistry, readFactoryLoopHeartbeat, reapFactoryOrphansOnce, } from './orchestrator';
21
- export type { InFlightIssue, QueuedIssue, TrackedAgent } from './orchestrator';
22
- export { HeuristicTriage, LlmTriage, TieredTriage, TriageDecisionSchema, } from './triage';
23
- export type { HeuristicTriageOptions, LlmTriageOptions, } from './triage';
24
- export { linearCommentName, MountGithubRead, MountLinearWriteback, MountSlackWriteback, } from './writeback';
25
- export type { LinearCommentPayload, LinearCreateIssuePayload, LinearStateIds, MountLinearWritebackConfig, MountSlackWritebackConfig, } from './writeback';
26
- export { assertInFactoryScope, factoryScopeSafety, isInFactoryScope, } from './safety/factory-scope';
27
- export type { FactoryScopeSafety, NormalizedFactoryScopeSafety, } from './safety/factory-scope';
28
- export { canonicalMountPaths, createWorkspaceScopedEventClient, deliveryTargetsFor, eventPathGlobsForIntegration, filesystemEventToChangeEvent, filterLinearPredicateSpecs, globMatchesPath, globSegmentMatches, hasLinearPredicates, integrationRelayFileSyncOptions, isLinearIssueEventPath, linearIssueMatchesPredicates, linearRecordCandidates, linearScopePredicates, normalizeChangePath, relayfileSdkPathFiltersFor, slackListenDms, subscriptionSpecsFor, } from './subscriptions';
29
- export type { ConnectedIntegrationLike, DeliveryTargets, FilesystemEventLike, IntegrationRelayFileSyncOptionsInput, LinearPredicateSubscriptionSpec, LinearScopePredicates, LocalMountRoot, RelayfileEventClient, RelayFileSyncFactory, RelayFileSyncLike, SubscriptionSpec, TokenProvider, WatchRegistration, WorkspaceEventClientSource, WorkspaceScopedEventClientOptions, WorkspaceScopedSubscribeOptions, ChangeEvent as SubscriptionChangeEvent, } from './subscriptions';
30
- export type { Capability, ChangeEvent, Clock, EventPage, MountClient, ProviderSyncStatus, SubscribeOptions, Subscription, AgentSpec, FleetClient, RestartPolicy, RosterEntry, SendInput, SpawnInput, SpawnResult, GithubRead, LinearWriteback, Logger, SlackWriteback, TelemetrySink, } from './ports';
31
- export type { DispatchResult, Factory, FactoryEventPayload, FactoryInFlightRegistry, FactoryInFlightRegistryAgent, FactoryInFlightRegistryProcess, FactoryLoopHeartbeat, FactoryLoopLiveness, FactoryLoopRunOptions, FactoryLiveSubscriptionOptions, FactoryPorts, FactoryStartOptions, FactoryStatus, IssueRef, IterationReport, LinearIssue, ProbeCloser, ProbePrRef, ProbePrResolver, PrSummary, RepoMapEntry, TriageContext, TriageDecision, TriageEngine, } from './types';
3
+ export type { FactoryConfig, FactoryStateRole } from './config/schema.js';
4
+ export { FactoryConfigSchema, FACTORY_STATE_ROLES } from './config/schema.js';
5
+ export { resolveFactoryStates, stateResolutionFromIds, } from './linear/state-resolver.js';
6
+ export type { FactoryStateResolution, LinearStateReader, ResolveFactoryStatesInput, } from './linear/state-resolver.js';
7
+ export { linearByStatePath, linearCommentPath, linearIssuePath, } from './constants/linear.js';
8
+ export { slackMessagePath, slackReplyPath, } from './constants/slack.js';
9
+ export { agentSpecWithRenderedTask, mergePolicyLine, renderAgentTask, } from './dispatch/templates.js';
10
+ export type { RenderAgentTaskInput, TemplateIssue, TemplateRoute, } from './dispatch/templates.js';
11
+ export { createFleet } from './fleet/create-fleet.js';
12
+ export type { CreateFleetDeps, CreateFleetOptions, FleetBackend, } from './fleet/create-fleet.js';
13
+ export { ensureRelayBroker } from './fleet/ensure-relay-broker.js';
14
+ export type { EnsureRelayBrokerOptions } from './fleet/ensure-relay-broker.js';
15
+ export { InternalFleetClient } from './fleet/internal-fleet-client.js';
16
+ export type { HarnessDriverClientLike, InternalFleetClientOptions, } from './fleet/internal-fleet-client.js';
17
+ export { RelayFleetClient } from './fleet/relay-fleet-client.js';
18
+ export { RelayfileCloudMountClient, resolveFactoryWorkspace, } from './mount/relayfile-cloud-mount-client.js';
19
+ export type { ActiveWorkspaceResolver, RelayFileClientLike, RelayfileCloudMountClientConfig, ResolvedFactoryWorkspace, } from './mount/relayfile-cloud-mount-client.js';
20
+ export { GhCliGithubMergeGate, GithubMergeGate, closeProbePr, defaultGhRunner, evaluateGithubMergeGate, } from './github/index.js';
21
+ export type { CloseProbePrInput, CloseProbePrResult, GhRunner, GhRunResult, GithubMergeInput, GithubMergeGateInput, GithubMergeGatePort, GithubMergeResult, GithubMergeGateVerdict, } from './github/index.js';
22
+ export { BatchTracker, DEFAULT_FACTORY_LOOP_HEARTBEAT_PATH, DEFAULT_FACTORY_LOOP_REGISTRY_PATH, FactoryReaper, checkFactoryLoopLiveness, createFactory, FactoryLoop, issueKey, isRealLinearIssue, parseLinearIssue, readLinearIssueWithCanonicalFallback, readFactoryInFlightRegistry, readFactoryLoopHeartbeat, reapFactoryOrphansOnce, } from './orchestrator/index.js';
23
+ export type { InFlightIssue, QueuedIssue, TrackedAgent } from './orchestrator/index.js';
24
+ export { HeuristicTriage, LlmTriage, TieredTriage, TriageDecisionSchema, } from './triage/index.js';
25
+ export type { HeuristicTriageOptions, LlmTriageOptions, } from './triage/index.js';
26
+ export { linearCommentName, MountGithubRead, MountLinearWriteback, MountSlackWriteback, } from './writeback/index.js';
27
+ export type { LinearCommentPayload, LinearCreateIssuePayload, LinearStateIds, MountLinearWritebackConfig, MountSlackWritebackConfig, } from './writeback/index.js';
28
+ export { AGENT_RELAY_FACTORY_NODE_CONFIG_ENV, createFactoryNodeDefinition, DEFAULT_FACTORY_NODE_CONFIG_PATH, FACTORY_NODE_CONFIG_ENV, factoryNodeInventorySync, parseFactoryNodeConfig, readFactoryNodeConfigSync, resolveFactoryNodeConfigPath, runRelayflowsWorkflow, } from './node/factory-node.js';
29
+ export type { FactoryNodeDefinitionOptions, FactoryNodeInventoryAgent, FactoryNodeInventorySync, WorkflowRunner, WorkflowRunnerInput, WorkflowRunnerResult, } from './node/factory-node.js';
30
+ export { assertInFactoryScope, factoryScopeSafety, isInFactoryScope, } from './safety/factory-scope.js';
31
+ export type { FactoryScopeSafety, NormalizedFactoryScopeSafety, } from './safety/factory-scope.js';
32
+ export { canonicalMountPaths, createWorkspaceScopedEventClient, deliveryTargetsFor, eventPathGlobsForIntegration, filesystemEventToChangeEvent, filterLinearPredicateSpecs, globMatchesPath, globSegmentMatches, hasLinearPredicates, integrationRelayFileSyncOptions, isLinearIssueEventPath, linearIssueMatchesPredicates, linearRecordCandidates, linearScopePredicates, normalizeChangePath, relayfileSdkPathFiltersFor, slackListenDms, subscriptionSpecsFor, } from './subscriptions/index.js';
33
+ export type { ConnectedIntegrationLike, DeliveryTargets, FilesystemEventLike, IntegrationRelayFileSyncOptionsInput, LinearPredicateSubscriptionSpec, LinearScopePredicates, LocalMountRoot, RelayfileEventClient, RelayFileSyncFactory, RelayFileSyncLike, SubscriptionSpec, TokenProvider, WatchRegistration, WorkspaceEventClientSource, WorkspaceScopedEventClientOptions, WorkspaceScopedSubscribeOptions, ChangeEvent as SubscriptionChangeEvent, } from './subscriptions/index.js';
34
+ export type { Capability, ChangeEvent, Clock, EventPage, MountClient, ProviderSyncStatus, SubscribeOptions, Subscription, AgentSpec, FleetClient, RestartPolicy, RosterEntry, SendInput, SpawnInput, SpawnResult, GithubRead, LinearWriteback, Logger, SlackWriteback, TelemetrySink, } from './ports/index.js';
35
+ export type { DispatchResult, Factory, FactoryEventPayload, FactoryInFlightRegistry, FactoryInFlightRegistryAgent, FactoryInFlightRegistryProcess, FactoryLoopHeartbeat, FactoryLoopLiveness, FactoryLoopRunOptions, FactoryLiveSubscriptionOptions, FactoryPorts, FactoryStartOptions, FactoryStatus, IssueRef, IterationReport, LinearIssue, ProbeCloser, ProbePrRef, ProbePrResolver, PrSummary, RepoMapEntry, TriageContext, TriageDecision, TriageEngine, } from './types.js';
32
36
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,18 +1,20 @@
1
1
  export * from './webhook/index.js';
2
2
  export * from './state/index.js';
3
- export { FactoryConfigSchema, FACTORY_STATE_ROLES } from './config/schema';
4
- export { resolveFactoryStates, stateResolutionFromIds, } from './linear/state-resolver';
5
- export { linearByStatePath, linearCommentPath, linearIssuePath, } from './constants/linear';
6
- export { slackMessagePath, slackReplyPath, } from './constants/slack';
7
- export { agentSpecWithRenderedTask, mergePolicyLine, renderAgentTask, } from './dispatch/templates';
8
- export { createFleet } from './fleet/create-fleet';
9
- export { InternalFleetClient } from './fleet/internal-fleet-client';
10
- export { RelayFleetClient } from './fleet/relay-fleet-client';
11
- export { RelayfileCloudMountClient, resolveFactoryWorkspace, } from './mount/relayfile-cloud-mount-client';
12
- export { GhCliGithubMergeGate, GithubMergeGate, closeProbePr, defaultGhRunner, evaluateGithubMergeGate, } from './github';
13
- export { BatchTracker, DEFAULT_FACTORY_LOOP_HEARTBEAT_PATH, DEFAULT_FACTORY_LOOP_REGISTRY_PATH, FactoryReaper, checkFactoryLoopLiveness, createFactory, FactoryLoop, issueKey, isRealLinearIssue, parseLinearIssue, readFactoryInFlightRegistry, readFactoryLoopHeartbeat, reapFactoryOrphansOnce, } from './orchestrator';
14
- export { HeuristicTriage, LlmTriage, TieredTriage, TriageDecisionSchema, } from './triage';
15
- export { linearCommentName, MountGithubRead, MountLinearWriteback, MountSlackWriteback, } from './writeback';
16
- export { assertInFactoryScope, factoryScopeSafety, isInFactoryScope, } from './safety/factory-scope';
17
- export { canonicalMountPaths, createWorkspaceScopedEventClient, deliveryTargetsFor, eventPathGlobsForIntegration, filesystemEventToChangeEvent, filterLinearPredicateSpecs, globMatchesPath, globSegmentMatches, hasLinearPredicates, integrationRelayFileSyncOptions, isLinearIssueEventPath, linearIssueMatchesPredicates, linearRecordCandidates, linearScopePredicates, normalizeChangePath, relayfileSdkPathFiltersFor, slackListenDms, subscriptionSpecsFor, } from './subscriptions';
3
+ export { FactoryConfigSchema, FACTORY_STATE_ROLES } from './config/schema.js';
4
+ export { resolveFactoryStates, stateResolutionFromIds, } from './linear/state-resolver.js';
5
+ export { linearByStatePath, linearCommentPath, linearIssuePath, } from './constants/linear.js';
6
+ export { slackMessagePath, slackReplyPath, } from './constants/slack.js';
7
+ export { agentSpecWithRenderedTask, mergePolicyLine, renderAgentTask, } from './dispatch/templates.js';
8
+ export { createFleet } from './fleet/create-fleet.js';
9
+ export { ensureRelayBroker } from './fleet/ensure-relay-broker.js';
10
+ export { InternalFleetClient } from './fleet/internal-fleet-client.js';
11
+ export { RelayFleetClient } from './fleet/relay-fleet-client.js';
12
+ export { RelayfileCloudMountClient, resolveFactoryWorkspace, } from './mount/relayfile-cloud-mount-client.js';
13
+ export { GhCliGithubMergeGate, GithubMergeGate, closeProbePr, defaultGhRunner, evaluateGithubMergeGate, } from './github/index.js';
14
+ export { BatchTracker, DEFAULT_FACTORY_LOOP_HEARTBEAT_PATH, DEFAULT_FACTORY_LOOP_REGISTRY_PATH, FactoryReaper, checkFactoryLoopLiveness, createFactory, FactoryLoop, issueKey, isRealLinearIssue, parseLinearIssue, readLinearIssueWithCanonicalFallback, readFactoryInFlightRegistry, readFactoryLoopHeartbeat, reapFactoryOrphansOnce, } from './orchestrator/index.js';
15
+ export { HeuristicTriage, LlmTriage, TieredTriage, TriageDecisionSchema, } from './triage/index.js';
16
+ export { linearCommentName, MountGithubRead, MountLinearWriteback, MountSlackWriteback, } from './writeback/index.js';
17
+ export { AGENT_RELAY_FACTORY_NODE_CONFIG_ENV, createFactoryNodeDefinition, DEFAULT_FACTORY_NODE_CONFIG_PATH, FACTORY_NODE_CONFIG_ENV, factoryNodeInventorySync, parseFactoryNodeConfig, readFactoryNodeConfigSync, resolveFactoryNodeConfigPath, runRelayflowsWorkflow, } from './node/factory-node.js';
18
+ export { assertInFactoryScope, factoryScopeSafety, isInFactoryScope, } from './safety/factory-scope.js';
19
+ export { canonicalMountPaths, createWorkspaceScopedEventClient, deliveryTargetsFor, eventPathGlobsForIntegration, filesystemEventToChangeEvent, filterLinearPredicateSpecs, globMatchesPath, globSegmentMatches, hasLinearPredicates, integrationRelayFileSyncOptions, isLinearIssueEventPath, linearIssueMatchesPredicates, linearRecordCandidates, linearScopePredicates, normalizeChangePath, relayfileSdkPathFiltersFor, slackListenDms, subscriptionSpecsFor, } from './subscriptions/index.js';
18
20
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAEhC,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAC1E,OAAO,EACL,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,yBAAyB,CAAA;AAMhC,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,GAChB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,gBAAgB,EAChB,cAAc,GACf,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,yBAAyB,EACzB,eAAe,EACf,eAAe,GAChB,MAAM,sBAAsB,CAAA;AAM7B,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAMlD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AAKnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EACL,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,sCAAsC,CAAA;AAO7C,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,uBAAuB,GACxB,MAAM,UAAU,CAAA;AAYjB,OAAO,EACL,YAAY,EACZ,mCAAmC,EACnC,kCAAkC,EAClC,aAAa,EACb,wBAAwB,EACxB,aAAa,EACb,WAAW,EACX,QAAQ,EACR,iBAAiB,EACjB,gBAAgB,EAChB,2BAA2B,EAC3B,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EACL,eAAe,EACf,SAAS,EACT,YAAY,EACZ,oBAAoB,GACrB,MAAM,UAAU,CAAA;AAKjB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,aAAa,CAAA;AAQpB,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,wBAAwB,CAAA;AAK/B,OAAO,EACL,mBAAmB,EACnB,gCAAgC,EAChC,kBAAkB,EAClB,4BAA4B,EAC5B,4BAA4B,EAC5B,0BAA0B,EAC1B,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,+BAA+B,EAC/B,sBAAsB,EACtB,4BAA4B,EAC5B,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,0BAA0B,EAC1B,cAAc,EACd,oBAAoB,GACrB,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAEhC,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAC1E,OAAO,EACL,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,yBAAyB,CAAA;AAMhC,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,GAChB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,gBAAgB,EAChB,cAAc,GACf,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,yBAAyB,EACzB,eAAe,EACf,eAAe,GAChB,MAAM,sBAAsB,CAAA;AAM7B,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAMlD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAE/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AAKnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EACL,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,sCAAsC,CAAA;AAO7C,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,uBAAuB,GACxB,MAAM,UAAU,CAAA;AAYjB,OAAO,EACL,YAAY,EACZ,mCAAmC,EACnC,kCAAkC,EAClC,aAAa,EACb,wBAAwB,EACxB,aAAa,EACb,WAAW,EACX,QAAQ,EACR,iBAAiB,EACjB,gBAAgB,EAChB,oCAAoC,EACpC,2BAA2B,EAC3B,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EACL,eAAe,EACf,SAAS,EACT,YAAY,EACZ,oBAAoB,GACrB,MAAM,UAAU,CAAA;AAKjB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,aAAa,CAAA;AAQpB,OAAO,EACL,mCAAmC,EACnC,2BAA2B,EAC3B,gCAAgC,EAChC,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,yBAAyB,EACzB,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,qBAAqB,CAAA;AAS5B,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,wBAAwB,CAAA;AAK/B,OAAO,EACL,mBAAmB,EACnB,gCAAgC,EAChC,kBAAkB,EAClB,4BAA4B,EAC5B,4BAA4B,EAC5B,0BAA0B,EAC1B,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,+BAA+B,EAC/B,sBAAsB,EACtB,4BAA4B,EAC5B,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,0BAA0B,EAC1B,cAAc,EACd,oBAAoB,GACrB,MAAM,iBAAiB,CAAA"}
@@ -1,4 +1,4 @@
1
- import { type FactoryStateRole } from '../config/schema';
1
+ import { type FactoryStateRole } from '../config/schema.js';
2
2
  export interface LinearStateReader {
3
3
  readFile(path: string): Promise<{
4
4
  content: unknown;
@@ -17,9 +17,10 @@ export interface FactoryStateResolution {
17
17
  optionalIdFor(teamToken: string | undefined, role: FactoryStateRole): string | undefined;
18
18
  roleOf(stateId: string | undefined): FactoryStateRole | undefined;
19
19
  isRole(stateId: string | undefined, role: FactoryStateRole): boolean;
20
+ idForName(stateName: string | undefined, teamToken?: string): string | undefined;
20
21
  hasHumanReview(teamToken?: string): boolean;
21
22
  }
22
- export declare function stateResolutionFromIds(stateIds: RoleIds): FactoryStateResolution;
23
+ export declare function stateResolutionFromIds(stateIds: RoleIds, stateNames?: RoleNames): FactoryStateResolution;
23
24
  export declare function resolveFactoryStates(reader: LinearStateReader, input: ResolveFactoryStatesInput): Promise<FactoryStateResolution>;
24
25
  export {};
25
26
  //# sourceMappingURL=state-resolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"state-resolver.d.ts","sourceRoot":"","sources":["../../src/linear/state-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAoB7E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;CACtD;AAED,KAAK,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAA;AAC1D,KAAK,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAA;AAExD,MAAM,WAAW,yBAAyB;IAExC,MAAM,CAAC,EAAE,SAAS,CAAA;IAElB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAExC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAGlB,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,sBAAsB;IAIrC,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAAA;IACpE,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,gBAAgB,GAAG,MAAM,GAAG,SAAS,CAAA;IAGxF,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,gBAAgB,GAAG,SAAS,CAAA;IACjE,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAA;IAEpE,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAC5C;AAKD,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,OAAO,GAAG,sBAAsB,CAyBhF;AAwGD,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,iBAAiB,EACzB,KAAK,EAAE,yBAAyB,GAC/B,OAAO,CAAC,sBAAsB,CAAC,CAuFjC"}
1
+ {"version":3,"file":"state-resolver.d.ts","sourceRoot":"","sources":["../../src/linear/state-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAoB7E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;CACtD;AAED,KAAK,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAA;AAC1D,KAAK,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAA;AAExD,MAAM,WAAW,yBAAyB;IAExC,MAAM,CAAC,EAAE,SAAS,CAAA;IAElB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAExC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAGlB,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,sBAAsB;IAIrC,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAAA;IACpE,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,gBAAgB,GAAG,MAAM,GAAG,SAAS,CAAA;IAGxF,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,gBAAgB,GAAG,SAAS,CAAA;IACjE,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAA;IAIpE,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IAEhF,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAC5C;AAKD,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAE,SAAc,GAAG,sBAAsB,CA+B5G;AAgHD,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,iBAAiB,EACzB,KAAK,EAAE,yBAAyB,GAC/B,OAAO,CAAC,sBAAsB,CAAC,CA8IjC"}
@@ -1,4 +1,4 @@
1
- import { FACTORY_STATE_ROLES } from '../config/schema';
1
+ import { FACTORY_STATE_ROLES } from '../config/schema.js';
2
2
  // Roles the factory cannot operate without; humanReview is optional (the
3
3
  // terminalState falls back to `done` when it is unset).
4
4
  const REQUIRED_ROLES = [
@@ -15,12 +15,16 @@ const CATALOG_READ_CONCURRENCY = 10;
15
15
  // Build a resolution from explicit, already-known UUIDs (no mount reads). Used
16
16
  // as the back-compat / test path when names aren't configured: the global ids
17
17
  // apply to every team. Lenient — unresolved roles only throw when used.
18
- export function stateResolutionFromIds(stateIds) {
18
+ export function stateResolutionFromIds(stateIds, stateNames = {}) {
19
19
  const roleById = new Map();
20
+ const idByName = new Map();
20
21
  for (const role of FACTORY_STATE_ROLES) {
21
22
  const id = stateIds[role];
22
23
  if (id)
23
24
  roleById.set(id, role);
25
+ const name = stateNames[role];
26
+ if (id && name)
27
+ idByName.set(norm(name), id);
24
28
  }
25
29
  return {
26
30
  idFor(_teamToken, role) {
@@ -38,6 +42,9 @@ export function stateResolutionFromIds(stateIds) {
38
42
  isRole(stateId, role) {
39
43
  return Boolean(stateId) && roleById.get(stateId) === role;
40
44
  },
45
+ idForName(stateName) {
46
+ return stateName ? idByName.get(norm(stateName)) : undefined;
47
+ },
41
48
  hasHumanReview() {
42
49
  return Boolean(stateIds.humanReview);
43
50
  },
@@ -67,6 +74,13 @@ const unwrap = (value) => {
67
74
  const str = (value) => (typeof value === 'string' && value ? value : undefined);
68
75
  // Lazily load and cache the /linear/states catalog. Only invoked when at least
69
76
  // one role is configured by name, so explicit-UUID setups never read it.
77
+ // The states catalog could not be read at all (e.g. /linear/states unreadable
78
+ // under the mount token). Distinct from a *resolution* failure (ambiguous name,
79
+ // cross-team, no match) so optional roles can tolerate an absent catalog without
80
+ // also swallowing genuine misconfiguration.
81
+ class CatalogUnavailableError extends Error {
82
+ }
83
+ const isCatalogUnavailable = (error) => error instanceof CatalogUnavailableError;
70
84
  class StateCatalog {
71
85
  reader;
72
86
  #records;
@@ -81,7 +95,7 @@ class StateCatalog {
81
95
  index = (await this.reader.readFile(STATES_INDEX_PATH)).content;
82
96
  }
83
97
  catch (error) {
84
- throw new Error(`Cannot resolve Linear state names: ${STATES_INDEX_PATH} is unavailable ` +
98
+ throw new CatalogUnavailableError(`Cannot resolve Linear state names: ${STATES_INDEX_PATH} is unavailable ` +
85
99
  `(${error instanceof Error ? error.message : String(error)}). ` +
86
100
  `Deploy the workflow-states resource or pin stateIds (UUIDs) in config.`);
87
101
  }
@@ -147,12 +161,36 @@ export async function resolveFactoryStates(reader, input) {
147
161
  byTeamNames[norm(team)] = names;
148
162
  }
149
163
  // Resolve one role for one team token, applying precedence:
150
- // per-team name > global name > explicit UUID.
151
- const resolveRole = async (teamToken, role) => {
164
+ // per-team name > global name > explicit UUID. When a name is configured but
165
+ // the states catalog is unavailable (e.g. /linear/states unreadable under the
166
+ // mount token), fall back to the pinned UUID rather than failing startup — the
167
+ // name still feeds the reverse name->id map below for read-side backfill.
168
+ // `tolerant` is for the team-less default pass when subscribed teams exist:
169
+ // each team is resolved authoritatively below, so a team-less ambiguity must
170
+ // not abort startup (addresses the global-default-forces-teamless-lookup P1).
171
+ const resolveRole = async (teamToken, role, tolerant) => {
152
172
  const perTeamName = teamToken ? byTeamNames[norm(teamToken)]?.[role] : undefined;
153
173
  const name = perTeamName ?? globalNames[role];
154
- if (name)
155
- return catalog.resolve(name, teamToken);
174
+ if (name) {
175
+ try {
176
+ return await catalog.resolve(name, teamToken);
177
+ }
178
+ catch (error) {
179
+ // Fall back to the pinned UUID when the catalog can't resolve the name.
180
+ if (explicitIds[role])
181
+ return explicitIds[role];
182
+ // Best-effort team-less default pass: another team will fill this role.
183
+ if (tolerant)
184
+ return undefined;
185
+ // An OPTIONAL role (e.g. humanReview) tolerates an *absent* catalog
186
+ // (no /linear/states under the mount token) — but a real resolution
187
+ // failure (ambiguous name, cross-team, no match) must still surface, even
188
+ // for optional roles, rather than silently disabling the role.
189
+ if (!REQUIRED_ROLES.includes(role) && isCatalogUnavailable(error))
190
+ return undefined;
191
+ throw error;
192
+ }
193
+ }
156
194
  return explicitIds[role];
157
195
  };
158
196
  // Dedupe team tokens by normalized form while keeping the first original
@@ -164,10 +202,10 @@ export async function resolveFactoryStates(reader, input) {
164
202
  teamTokenByNorm.set(key, team);
165
203
  }
166
204
  const byTeam = new Map();
167
- const resolveAllRoles = async (teamToken, enforce) => {
205
+ const resolveAllRoles = async (teamToken, enforce, tolerant = false) => {
168
206
  const resolved = {};
169
207
  for (const role of FACTORY_STATE_ROLES) {
170
- const id = await resolveRole(teamToken, role);
208
+ const id = await resolveRole(teamToken, role, tolerant);
171
209
  if (id)
172
210
  resolved[role] = id;
173
211
  }
@@ -182,8 +220,15 @@ export async function resolveFactoryStates(reader, input) {
182
220
  // global config meant to fill it; a per-team-only setup leaves it best-effort
183
221
  // (each subscribed team is enforced below, and idFor() throws at use if an
184
222
  // unconfigured team's issue ever appears).
223
+ //
224
+ // When teams ARE configured, the team-less default pass is tolerant: the
225
+ // factory's default `linear.states` names are global, so resolving them
226
+ // team-lessly would be ambiguous in a multi-team workspace and wrongly fail
227
+ // startup — even though each subscribed team resolves cleanly. Per-team passes
228
+ // (below) are authoritative; the team-less default is only a fallback.
185
229
  const hasGlobalConfig = Object.keys(globalNames).length > 0 || Object.keys(explicitIds).length > 0;
186
- const defaultIds = await resolveAllRoles(undefined, hasGlobalConfig);
230
+ const hasTeamScopes = teamTokenByNorm.size > 0;
231
+ const defaultIds = await resolveAllRoles(undefined, hasGlobalConfig && !hasTeamScopes, hasTeamScopes);
187
232
  for (const [key, team] of teamTokenByNorm) {
188
233
  byTeam.set(key, await resolveAllRoles(team, true));
189
234
  }
@@ -197,6 +242,22 @@ export async function resolveFactoryStates(reader, input) {
197
242
  roleById.set(id, role);
198
243
  }
199
244
  }
245
+ // Reverse name->id map: lets a read path backfill the state UUID for issues
246
+ // whose synced payload only carries `state.name` (relayfile-adapters#205).
247
+ // Built from configured names paired with their resolved UUID (global + team).
248
+ const idByName = new Map();
249
+ const recordNames = (names, ids) => {
250
+ for (const role of FACTORY_STATE_ROLES) {
251
+ const name = names[role];
252
+ const id = ids[role];
253
+ if (name && id)
254
+ idByName.set(norm(name), id);
255
+ }
256
+ };
257
+ recordNames(globalNames, defaultIds);
258
+ for (const [key, team] of teamTokenByNorm) {
259
+ recordNames(byTeamNames[key] ?? {}, byTeam.get(key) ?? {});
260
+ }
200
261
  return {
201
262
  idFor(teamToken, role) {
202
263
  const id = idsFor(teamToken)[role];
@@ -213,6 +274,9 @@ export async function resolveFactoryStates(reader, input) {
213
274
  isRole(stateId, role) {
214
275
  return Boolean(stateId) && roleById.get(stateId) === role;
215
276
  },
277
+ idForName(stateName) {
278
+ return stateName ? idByName.get(norm(stateName)) : undefined;
279
+ },
216
280
  hasHumanReview(teamToken) {
217
281
  return Boolean(idsFor(teamToken).humanReview);
218
282
  },
@@ -1 +1 @@
1
- {"version":3,"file":"state-resolver.js","sourceRoot":"","sources":["../../src/linear/state-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state-resolver.js","sourceRoot":"","sources":["../../src/linear/state-resolver.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ interface EnsureLocalMountOptions {
2
2
  stateWaitTimeoutMs?: number;
3
3
  stateWaitPollMs?: number;
4
4
  acceptableWorkspaceIds?: readonly string[];
5
+ refreshStaleMount?: boolean;
5
6
  }
6
7
  export declare function ensureLocalMount(workspaceId: string, startDir: string, options?: EnsureLocalMountOptions): Promise<void>;
7
8
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"local-mount-preflight.d.ts","sourceRoot":"","sources":["../../src/mount/local-mount-preflight.ts"],"names":[],"mappings":"AAQA,UAAU,uBAAuB;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAA;IAIxB,sBAAsB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC3C;AAED,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,IAAI,CAAC,CAsBf"}
1
+ {"version":3,"file":"local-mount-preflight.d.ts","sourceRoot":"","sources":["../../src/mount/local-mount-preflight.ts"],"names":[],"mappings":"AAiBA,UAAU,uBAAuB;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAA;IAIxB,sBAAsB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAM1C,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,IAAI,CAAC,CA4Cf"}
@@ -1,8 +1,16 @@
1
1
  import { readFile } from 'node:fs/promises';
2
2
  import { join } from 'node:path';
3
3
  import { spawn } from 'node:child_process';
4
- import { checkMountStaleness, resolveRelayfileMountBinary } from './relayfile-binary';
4
+ import { checkMountStaleness, coercePid, resolveRelayfileCli, resolveRelayfileMountBinary } from './relayfile-binary.js';
5
5
  const STATE_FILE = '.integrations/.relay/state.json';
6
+ // How long to wait for a freshly-spawned mount to write a valid state.json
7
+ // (workspace match + a live pid). A CLI mount over a large `.integrations` tree
8
+ // can take well over 10s to complete its FIRST reconcile (early cycles hit
9
+ // `context deadline exceeded` while it materializes the tree), so a 10s wait
10
+ // reported a spurious "did not become ready" on a mount that was simply still
11
+ // bootstrapping. 60s covers that without blocking startup indefinitely. Callers
12
+ // can still override via `stateWaitTimeoutMs`.
13
+ const DEFAULT_STATE_READY_TIMEOUT_MS = 60_000;
6
14
  export async function ensureLocalMount(workspaceId, startDir, options = {}) {
7
15
  const stateFilePath = join(startDir, STATE_FILE);
8
16
  if (!(await isMountStatePresent(stateFilePath))) {
@@ -11,9 +19,26 @@ export async function ensureLocalMount(workspaceId, startDir, options = {}) {
11
19
  return;
12
20
  }
13
21
  const staleness = checkMountStaleness(stateFilePath, workspaceId, options.acceptableWorkspaceIds);
14
- if (staleness.stale) {
15
- const suffix = staleness.reason !== undefined ? ` (${staleness.reason})` : '';
16
- process.stderr.write(`[factory] local mount is stale${suffix}; writeback may not propagate. Run: relayfile stop && relayfile start ${workspaceId} .integrations --background\n`);
22
+ if (!staleness.stale)
23
+ return;
24
+ const suffix = staleness.reason !== undefined ? ` (${staleness.reason})` : '';
25
+ const manualHint = `Run: relayfile stop && relayfile start ${workspaceId} .integrations --background`;
26
+ if (options.refreshStaleMount === false) {
27
+ process.stderr.write(`[factory] local mount is stale${suffix}; writeback may not propagate. ${manualHint}\n`);
28
+ return;
29
+ }
30
+ // Self-heal: re-spawn the mount so writebacks propagate, rather than silently
31
+ // shipping them into a stale mirror. spawnMount runs the relayfile-mount
32
+ // binary with --rehome, which re-establishes the mount in place.
33
+ process.stderr.write(`[factory] local mount is stale${suffix}; refreshing\n`);
34
+ try {
35
+ await spawnMount(workspaceId, startDir);
36
+ await waitForStateFile(stateFilePath, workspaceId, options.stateWaitTimeoutMs, options.stateWaitPollMs, options.acceptableWorkspaceIds);
37
+ process.stderr.write('[factory] local mount refreshed\n');
38
+ }
39
+ catch (error) {
40
+ const reason = error instanceof Error ? error.message : String(error);
41
+ process.stderr.write(`[factory] local mount is stale${suffix} and auto-refresh failed (${reason}); writeback may not propagate. ${manualHint}\n`);
17
42
  }
18
43
  }
19
44
  async function isMountStatePresent(stateFilePath) {
@@ -27,9 +52,34 @@ async function isMountStatePresent(stateFilePath) {
27
52
  }
28
53
  }
29
54
  async function spawnMount(workspaceId, startDir) {
30
- const binaryPath = resolveRelayfileMountBinary();
55
+ // Prefer the relayfile CLI: it resolves workspace credentials itself (the raw
56
+ // relayfile-mount binary requires a --token the factory has no clean way to
57
+ // supply) and bundles an up-to-date mount, so the factory can self-start the
58
+ // writeback mount unattended. Fall back to the raw binary only when no CLI is
59
+ // available.
60
+ const cli = resolveRelayfileCli();
61
+ if (cli) {
62
+ await spawnMountViaCli(cli, workspaceId, startDir);
63
+ return;
64
+ }
65
+ await spawnMountViaRawBinary(workspaceId, startDir);
66
+ }
67
+ async function spawnMountViaCli(cli, workspaceId, startDir) {
68
+ // Best-effort stop first so a stale/dead mount registration does not make
69
+ // `start` reject (matches the documented `relayfile stop && relayfile start`
70
+ // recovery). A no-op when nothing is mounted here.
71
+ await runRelayfile(cli, ['stop'], startDir, workspaceId).catch(() => { });
72
+ await runRelayfile(cli, ['start', workspaceId, '.integrations', '--background'], startDir, workspaceId);
73
+ }
74
+ async function spawnMountViaRawBinary(workspaceId, startDir) {
75
+ // Search from the deployment dir (where factory.config.json + the bundled
76
+ // @relayfile/mount live), not this module's install location.
77
+ const binaryPath = resolveRelayfileMountBinary(startDir);
78
+ await runRelayfile(binaryPath, ['start', workspaceId, '.integrations', '--background', '--rehome'], startDir, workspaceId);
79
+ }
80
+ function runRelayfile(command, args, startDir, workspaceId) {
31
81
  return new Promise((resolve, reject) => {
32
- const child = spawn(binaryPath, ['start', workspaceId, '.integrations', '--background', '--rehome'], {
82
+ const child = spawn(command, args, {
33
83
  cwd: startDir,
34
84
  stdio: ['ignore', 'ignore', 'pipe'],
35
85
  });
@@ -44,17 +94,17 @@ async function spawnMount(workspaceId, startDir) {
44
94
  return;
45
95
  }
46
96
  if (code !== 0) {
47
- reject(new Error(`[factory] relayfile mount start failed (exit ${code ?? 'null'}): ${stderr.trim()}`));
97
+ reject(new Error(`[factory] relayfile mount ${args[0]} failed (exit ${code ?? 'null'}): ${stderr.trim()}`));
48
98
  return;
49
99
  }
50
100
  resolve();
51
101
  });
52
102
  child.on('error', (err) => {
53
- reject(new Error(`[factory] relayfile mount start error: ${err.message}`));
103
+ reject(new Error(`[factory] relayfile mount ${args[0]} error: ${err.message}`));
54
104
  });
55
105
  });
56
106
  }
57
- async function waitForStateFile(stateFilePath, workspaceId, timeoutMs = 10_000, pollMs = 200, acceptableWorkspaceIds = []) {
107
+ async function waitForStateFile(stateFilePath, workspaceId, timeoutMs = DEFAULT_STATE_READY_TIMEOUT_MS, pollMs = 200, acceptableWorkspaceIds = []) {
58
108
  const deadline = Date.now() + timeoutMs;
59
109
  let lastInvalidReason = 'state file was not created';
60
110
  while (Date.now() < deadline) {
@@ -83,12 +133,14 @@ function isValidMountState(value, workspaceId, acceptableWorkspaceIds = []) {
83
133
  return false;
84
134
  const state = value;
85
135
  const accepted = new Set([workspaceId, ...acceptableWorkspaceIds]);
136
+ // A CLI-daemonized mount (`relayfile start --background`) records its pid under
137
+ // `daemon.pid`, not the top-level `pid` — accept either, matching
138
+ // checkMountStaleness (else a freshly-started CLI mount is never confirmed ready).
139
+ const pid = coercePid(state.pid) ?? coercePid(state.daemon?.pid);
86
140
  return typeof state.workspaceId === 'string' && accepted.has(state.workspaceId) &&
87
141
  typeof state.lastReconcileAt === 'string' &&
88
142
  Number.isFinite(Date.parse(state.lastReconcileAt)) &&
89
- typeof state.pid === 'number' &&
90
- Number.isInteger(state.pid) &&
91
- state.pid > 0;
143
+ pid !== undefined;
92
144
  }
93
145
  const isAuthError = (stderr) => stderr.includes('workspace join') ||
94
146
  stderr.includes('unauthorized') ||
@@ -1 +1 @@
1
- {"version":3,"file":"local-mount-preflight.js","sourceRoot":"","sources":["../../src/mount/local-mount-preflight.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-mount-preflight.js","sourceRoot":"","sources":["../../src/mount/local-mount-preflight.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
+ export declare function coercePid(value: unknown): number | undefined;
1
2
  export declare function resolveRelayfileMountBinary(startDir?: string): string;
3
+ export declare function resolveRelayfileCli(): string | undefined;
2
4
  export declare function checkMountStaleness(stateFilePath: string, workspaceId: string, acceptableWorkspaceIds?: readonly string[]): {
3
5
  stale: boolean;
4
6
  reason?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"relayfile-binary.d.ts","sourceRoot":"","sources":["../../src/mount/relayfile-binary.ts"],"names":[],"mappings":"AA0EA,wBAAgB,2BAA2B,CAAC,QAAQ,SAAY,GAAG,MAAM,CAqBxE;AAED,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EAKnB,sBAAsB,GAAE,SAAS,MAAM,EAAO,GAC7C;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CA0DnD"}
1
+ {"version":3,"file":"relayfile-binary.d.ts","sourceRoot":"","sources":["../../src/mount/relayfile-binary.ts"],"names":[],"mappings":"AAqBA,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAE5D;AAgED,wBAAgB,2BAA2B,CAAC,QAAQ,SAAa,GAAG,MAAM,CAqBzE;AAWD,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,SAAS,CAYxD;AAED,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EAKnB,sBAAsB,GAAE,SAAS,MAAM,EAAO,GAC7C;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CA8DnD"}