@agent-relay/factory 0.1.57 → 0.1.60

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 (125) hide show
  1. package/README.md +152 -1
  2. package/dist/cli/fleet.d.ts +20 -1
  3. package/dist/cli/fleet.d.ts.map +1 -1
  4. package/dist/cli/fleet.js +550 -106
  5. package/dist/cli/fleet.js.map +1 -1
  6. package/dist/config/schema.d.ts +1778 -515
  7. package/dist/config/schema.d.ts.map +1 -1
  8. package/dist/config/schema.js +104 -6
  9. package/dist/config/schema.js.map +1 -1
  10. package/dist/delivery/ticket-dispatch.d.ts +15 -0
  11. package/dist/delivery/ticket-dispatch.d.ts.map +1 -0
  12. package/dist/delivery/ticket-dispatch.js +20 -0
  13. package/dist/delivery/ticket-dispatch.js.map +1 -0
  14. package/dist/feature-guardian/conversation.d.ts +251 -0
  15. package/dist/feature-guardian/conversation.d.ts.map +1 -0
  16. package/dist/feature-guardian/conversation.js +1893 -0
  17. package/dist/feature-guardian/conversation.js.map +1 -0
  18. package/dist/feature-guardian/index.d.ts +2 -0
  19. package/dist/feature-guardian/index.d.ts.map +1 -0
  20. package/dist/feature-guardian/index.js +2 -0
  21. package/dist/feature-guardian/index.js.map +1 -0
  22. package/dist/git/agent-worktree.d.ts.map +1 -1
  23. package/dist/git/agent-worktree.js +4 -0
  24. package/dist/git/agent-worktree.js.map +1 -1
  25. package/dist/github/index.d.ts +2 -0
  26. package/dist/github/index.d.ts.map +1 -1
  27. package/dist/github/index.js +1 -0
  28. package/dist/github/index.js.map +1 -1
  29. package/dist/github/routed-pr-babysitter.d.ts +48 -0
  30. package/dist/github/routed-pr-babysitter.d.ts.map +1 -0
  31. package/dist/github/routed-pr-babysitter.js +197 -0
  32. package/dist/github/routed-pr-babysitter.js.map +1 -0
  33. package/dist/index.d.ts +5 -2
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +3 -0
  36. package/dist/index.js.map +1 -1
  37. package/dist/intake/index.d.ts +4 -0
  38. package/dist/intake/index.d.ts.map +1 -0
  39. package/dist/intake/index.js +4 -0
  40. package/dist/intake/index.js.map +1 -0
  41. package/dist/intake/notion-relay-claim.d.ts +32 -0
  42. package/dist/intake/notion-relay-claim.d.ts.map +1 -0
  43. package/dist/intake/notion-relay-claim.js +173 -0
  44. package/dist/intake/notion-relay-claim.js.map +1 -0
  45. package/dist/intake/notion-relay-contract.d.ts +33 -0
  46. package/dist/intake/notion-relay-contract.d.ts.map +1 -0
  47. package/dist/intake/notion-relay-contract.js +163 -0
  48. package/dist/intake/notion-relay-contract.js.map +1 -0
  49. package/dist/intake/notion.d.ts +375 -0
  50. package/dist/intake/notion.d.ts.map +1 -0
  51. package/dist/intake/notion.js +773 -0
  52. package/dist/intake/notion.js.map +1 -0
  53. package/dist/issue-key-match.d.ts +6 -0
  54. package/dist/issue-key-match.d.ts.map +1 -1
  55. package/dist/issue-key-match.js +14 -0
  56. package/dist/issue-key-match.js.map +1 -1
  57. package/dist/mount/github-api-issue-read.d.ts +28 -0
  58. package/dist/mount/github-api-issue-read.d.ts.map +1 -0
  59. package/dist/mount/github-api-issue-read.js +163 -0
  60. package/dist/mount/github-api-issue-read.js.map +1 -0
  61. package/dist/mount/local-mount-preflight.d.ts +2 -0
  62. package/dist/mount/local-mount-preflight.d.ts.map +1 -1
  63. package/dist/mount/local-mount-preflight.js +59 -9
  64. package/dist/mount/local-mount-preflight.js.map +1 -1
  65. package/dist/mount/mount-auth-error.d.ts +41 -0
  66. package/dist/mount/mount-auth-error.d.ts.map +1 -0
  67. package/dist/mount/mount-auth-error.js +94 -0
  68. package/dist/mount/mount-auth-error.js.map +1 -0
  69. package/dist/mount/relayfile-binary.d.ts +5 -0
  70. package/dist/mount/relayfile-binary.d.ts.map +1 -1
  71. package/dist/mount/relayfile-binary.js +16 -2
  72. package/dist/mount/relayfile-binary.js.map +1 -1
  73. package/dist/mount/relayfile-cloud-mount-client.d.ts +18 -3
  74. package/dist/mount/relayfile-cloud-mount-client.d.ts.map +1 -1
  75. package/dist/mount/relayfile-cloud-mount-client.js +157 -13
  76. package/dist/mount/relayfile-cloud-mount-client.js.map +1 -1
  77. package/dist/mount/relayfile-github-connection-write.d.ts.map +1 -1
  78. package/dist/mount/relayfile-github-connection-write.js +6 -3
  79. package/dist/mount/relayfile-github-connection-write.js.map +1 -1
  80. package/dist/mount/workspace-mirror.d.ts +13 -0
  81. package/dist/mount/workspace-mirror.d.ts.map +1 -0
  82. package/dist/mount/workspace-mirror.js +94 -0
  83. package/dist/mount/workspace-mirror.js.map +1 -0
  84. package/dist/observability/events.d.ts +32 -32
  85. package/dist/orchestrator/batch-tracker.d.ts +2 -1
  86. package/dist/orchestrator/batch-tracker.d.ts.map +1 -1
  87. package/dist/orchestrator/batch-tracker.js.map +1 -1
  88. package/dist/orchestrator/factory.d.ts +51 -0
  89. package/dist/orchestrator/factory.d.ts.map +1 -1
  90. package/dist/orchestrator/factory.js +1736 -116
  91. package/dist/orchestrator/factory.js.map +1 -1
  92. package/dist/ports/fleet.d.ts +4 -0
  93. package/dist/ports/fleet.d.ts.map +1 -1
  94. package/dist/ports/index.d.ts +1 -1
  95. package/dist/ports/index.d.ts.map +1 -1
  96. package/dist/ports/mount.d.ts +60 -1
  97. package/dist/ports/mount.d.ts.map +1 -1
  98. package/dist/ports/state.d.ts +66 -1
  99. package/dist/ports/state.d.ts.map +1 -1
  100. package/dist/state/file-state-store.d.ts +15 -1
  101. package/dist/state/file-state-store.d.ts.map +1 -1
  102. package/dist/state/file-state-store.js +210 -2
  103. package/dist/state/file-state-store.js.map +1 -1
  104. package/dist/state/in-memory-state-store.d.ts +15 -1
  105. package/dist/state/in-memory-state-store.d.ts.map +1 -1
  106. package/dist/state/in-memory-state-store.js +105 -0
  107. package/dist/state/in-memory-state-store.js.map +1 -1
  108. package/dist/testing/fakes.d.ts +4 -0
  109. package/dist/testing/fakes.d.ts.map +1 -1
  110. package/dist/testing/fakes.js +6 -0
  111. package/dist/testing/fakes.js.map +1 -1
  112. package/dist/triage/schema.d.ts +169 -0
  113. package/dist/triage/schema.d.ts.map +1 -1
  114. package/dist/triage/schema.js +21 -0
  115. package/dist/triage/schema.js.map +1 -1
  116. package/dist/types.d.ts +61 -0
  117. package/dist/types.d.ts.map +1 -1
  118. package/dist/version-info.d.ts +21 -0
  119. package/dist/version-info.d.ts.map +1 -0
  120. package/dist/version-info.js +146 -0
  121. package/dist/version-info.js.map +1 -0
  122. package/dist/writeback/github.d.ts.map +1 -1
  123. package/dist/writeback/github.js +51 -0
  124. package/dist/writeback/github.js.map +1 -1
  125. package/package.json +10 -1
package/dist/index.d.ts CHANGED
@@ -13,6 +13,7 @@ export { slackMessagePath, slackReplyPath, } from './constants/slack.js';
13
13
  export { agentSpecWithRenderedTask, mergePolicyLine, renderAgentTask, } from './dispatch/templates.js';
14
14
  export type { RenderAgentTaskInput, TemplateIssue, TemplateRoute, } from './dispatch/templates.js';
15
15
  export * from './featuremap/index.js';
16
+ export * from './feature-guardian/index.js';
16
17
  export { createRelayflowPolicyRegistry, dispatchRelayflowForChangeEvent, dispatchRelayflowForTrigger, RelayflowPolicyRegistry, triggerEventFromChangeEvent, } from './dispatch/relayflow-registry.js';
17
18
  export type { DispatchRelayflowOptions, IntegrationTrigger, RelayflowDynamicClient, RelayflowDynamicProviderClient, RelayflowDispatchResult, RelayflowPolicyEntry, TriggerEvent, TriggerInputMapper, TriggerMapperContext, } from './dispatch/relayflow-registry.js';
18
19
  export { FACTORY_AGENT_EXIT_TIMEOUT_ENV, createFleet, parseOwnedBrokerAgentExitTimeoutMs, resolveOwnedBrokerAgentExitTimeoutMs, } from './fleet/create-fleet.js';
@@ -24,6 +25,7 @@ export type { HarnessDriverClientLike, InternalFleetClientOptions, } from './fle
24
25
  export { RelayFleetClient } from './fleet/relay-fleet-client.js';
25
26
  export { RelayfileCloudMountClient, resolveFactoryWorkspace, } from './mount/relayfile-cloud-mount-client.js';
26
27
  export { RelayfileGithubConnectionWrite } from './mount/relayfile-github-connection-write.js';
28
+ export { GithubApiIssueRead } from './mount/github-api-issue-read.js';
27
29
  export { ensureFactoryIntegrations, inspectFactoryIntegration, openIntegrationUrl, } from './mount/relayfile-integration-preflight.js';
28
30
  export type { FactoryIntegrationObservation, FactoryIntegrationPreflightIO, } from './mount/relayfile-integration-preflight.js';
29
31
  export type { ActiveWorkspaceResolver, LocalMountHealthEvent, RelayFileClientLike, RelayfileCloudMountClientConfig, ResolvedFactoryWorkspace, } from './mount/relayfile-cloud-mount-client.js';
@@ -44,7 +46,7 @@ export { assertInFactoryScope, factoryScopeSafety, isInFactoryScope, } from './s
44
46
  export type { FactoryScopeSafety, NormalizedFactoryScopeSafety, } from './safety/factory-scope.js';
45
47
  export { canonicalMountPaths, createResourceSubscriptionsSdkClient, createWorkspaceScopedEventClient, deliveryTargetsFor, eventPathGlobsForIntegration, filesystemEventToChangeEvent, filterLinearPredicateSpecs, filterSlackThreadReplySpecs, globMatchesPath, globSegmentMatches, hasLinearPredicates, integrationRelayFileSyncOptions, isLinearIssueEventPath, isSlackMessageEventPath, linearIssueMatchesPredicates, linearRecordCandidates, linearScopePredicates, normalizeChangePath, relayfileSdkPathFiltersFor, ResourceSubscriptionsUnavailableError, isResourceSubscriptionsUnavailable, parseSlackThreadReply, slackThreadReplyGlob, slackListenDms, subscriptionSpecsFor, } from './subscriptions/index.js';
46
48
  export type { ConnectedIntegrationLike, DeliveryTargets, FilesystemEventLike, IntegrationRelayFileSyncOptionsInput, LinearPredicateSubscriptionSpec, LinearScopePredicates, LocalMountRoot, SlackThreadPredicateSubscriptionSpec, SlackThreadReply, SlackThreadScopePredicates, RelayfileEventClient, RelayFileSyncFactory, RelayFileSyncLike, SubscriptionSpec, TokenProvider, WatchRegistration, WorkspaceEventClientSource, WorkspaceScopedEventClientOptions, WorkspaceScopedSubscribeOptions, ChangeEvent as SubscriptionChangeEvent, AcceptedResourceDelivery, ResourceDeliveryClaim, ResourceSubscription, ResourceSubscriptionInput, ResourceSubscriptionsClient, ResourceSubscriptionsSdk, ResourceSubscriptionsSdkClientOptions, } from './subscriptions/index.js';
47
- export type { Capability, Environment, EnvironmentProvider, EnvironmentStatus, NodeCapability, PreviewCapability, PreviewReference, PreviewStartInput, PreviewSweepInput, PreviewSweepResult, ProvisionEnvironmentSpec, ChangeEvent, Clock, EventPage, GithubConnectionWrite, FactoryIntegrationConnectionStatus, FactoryIntegrationConnections, FactoryIntegrationConnectResult, FactoryIntegrationProvider, GithubPublishPullRequestInput, GithubPublishPullRequestResult, LocalMountOptions, MountClient, ProviderSyncStatus, SubscribeOptions, Subscription, AgentSpec, FleetClient, RestartPolicy, RosterEntry, SendInput, SpawnInput, SpawnResult, AgentUsage, GithubRead, GithubIssueStatus, GithubWriteback, LinearWriteback, Logger, SlackWriteback, TelemetrySink, FactoryEventReporter, FactoryEventReportResult, } from './ports/index.js';
49
+ export type { Capability, Environment, EnvironmentProvider, EnvironmentStatus, NodeCapability, PreviewCapability, PreviewReference, PreviewStartInput, PreviewSweepInput, PreviewSweepResult, ProvisionEnvironmentSpec, ChangeEvent, Clock, EventPage, GithubConnectionWrite, GithubConnectionIssue, GithubConnectionRead, GithubIssueLookup, FactoryIntegrationConnectionStatus, FactoryIntegrationConnections, FactoryIntegrationConnectResult, FactoryIntegrationProvider, GithubPublishPullRequestInput, GithubPublishPullRequestResult, LocalMountOptions, MountClient, ProviderSyncStatus, SubscribeOptions, Subscription, AgentSpec, FleetClient, RestartPolicy, RosterEntry, SendInput, SpawnInput, SpawnResult, AgentUsage, GithubRead, GithubIssueStatus, GithubWriteback, LinearWriteback, Logger, SlackWriteback, TelemetrySink, FactoryEventReporter, FactoryEventReportResult, } from './ports/index.js';
48
50
  export { DEFAULT_VERIFICATION_E2E_IMAGE, DEFAULT_VERIFICATION_STACK_PATH, VERIFICATION_STACK_API_VERSION, VERIFICATION_STACK_JSON_SCHEMA_URL, VERIFICATION_STACK_KIND, VerificationProbeSchema, VerificationStackDescriptorError, VerificationStackDescriptorSchema, VerificationStackSourceSchema, loadVerificationStack, loadVerificationStackFile, parseVerificationStack, resolveVerificationStackAsset, resolveVerificationStackDescriptor, } from './environments/verification-stack-descriptor.js';
49
51
  export type { LoadedVerificationStack, ResolveVerificationStackOptions, VerificationProbe, VerificationGateDescriptor, VerificationStackDescriptor, VerificationStackEndpoint, VerificationStackReferenceGroup, VerificationStackSeed, VerificationStackService, VerificationStackSource, } from './environments/verification-stack-descriptor.js';
50
52
  export { KubectlPortForwarder, StackDeploymentError, VerificationStackDeployer, deployVerificationStack, } from './environments/verification-stack-deployer.js';
@@ -59,7 +61,7 @@ export type { FactoryCloudEventEnqueueResult, FactoryCloudEventOutbox, FactoryCl
59
61
  export { FactoryCloudReporter } from './observability/cloud-reporter.js';
60
62
  export type { FactoryCloudAccessTokenProvider, FactoryCloudReporterOptions, } from './observability/cloud-reporter.js';
61
63
  export type { CreateFactoryCloudEventV1Options, FactoryCloudCancellationReasonV1, FactoryCloudEventAttributesV1, FactoryCloudEventBatchV1, FactoryCloudEventInputV1, FactoryCloudEventType, FactoryCloudEventV1, FactoryCloudInstanceV1, FactoryCloudRunCostV1, FactoryCloudVerificationEvidenceV1, FactoryCloudReleaseReasonV1, } from './observability/events.js';
62
- export type { DispatchResult, Factory, FactoryEventPayload, FactoryInFlightRegistry, FactoryInFlightRegistryAgent, FactoryInFlightRegistryProcess, FactoryLoopHeartbeat, FactoryLoopLiveness, FactoryLoopRunOptions, FactoryLiveSubscriptionOptions, FactoryPorts, FactoryRelayflowDispatchPort, FactoryStartOptions, FactoryStatus, IssueRef, IterationReport, LinearIssue, ProbeCloser, ProbePrRef, ProbePrResolver, PrSummary, RepoMapEntry, TriageContext, TriageDecision, TriageEngine, } from './types.js';
64
+ export type { DispatchResult, Factory, FactoryEventPayload, FactoryDispatchClaimStatus, FactoryInFlightDispatchStatus, FactoryInFlightRegistry, FactoryInFlightRegistryAgent, FactoryInFlightRegistryProcess, FactoryLoopHeartbeat, FactoryLoopLiveness, FactoryLoopRunOptions, FactoryLiveSubscriptionOptions, FactoryPorts, FactoryRelayflowDispatchPort, FactoryStartOptions, FactoryStatus, IssueRef, IssueResolution, IterationReport, LinearIssue, ProbeCloser, ProbePrRef, ProbePrResolver, PrSummary, RepoMapEntry, TriageContext, TriageDecision, TriageEngine, } from './types.js';
63
65
  export { LOAD_EVIDENCE_CONTRACT, LoadMeasurementsSchema, evaluateLoadSlo, parseK6LoadMeasurements, runLoad, serializeLoadEvidence, } from './environments/load-harness.js';
64
66
  export type { KubernetesLoadJobClient, LatencyHistogramBucket, LoadEnvironment, LoadEvidence, LoadMeasurements, LoadProfile, LoadResult, LoadSloEvaluation, LoadSloMetric, LoadSloViolation, LoadThresholds, RunLoadOptions, } from './environments/load-harness.js';
65
67
  export { LoadProfileSchema, LoadTargetSchema, LoadThresholdsSchema, durationToMilliseconds, loadLoadProfile, } from './environments/load-profile.js';
@@ -73,4 +75,5 @@ export { FACTORY_ENVIRONMENT_EXPIRES_ANNOTATION, FACTORY_ENVIRONMENT_ID_LABEL, F
73
75
  export type { KubectlEnvironmentCommandOptions, KubectlEnvironmentCommandResult, KubectlEnvironmentCommandRunner, KubectlEnvironmentProviderOptions, } from './environments/kubernetes-environment.js';
74
76
  export type { DeployEndpoint, DeployEnvironmentInput, DeployManifest, DeployReadinessCheck, ProvisionEnvironmentInput, VerificationEnvironment, VerificationEnvironmentProvider, } from './ports/environment.js';
75
77
  export type { CreateK6LoadJobOptions, K6LoadJobResources, KubectlCommandResult, KubectlCommandRunner, KubectlLoadJobClientOptions, ResolvedLoadTarget, } from './environments/k6-job.js';
78
+ export * from './intake/index.js';
76
79
  //# 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
@@ -9,6 +9,7 @@ export { linearByStatePath, linearCommentPath, linearIssuePath, } from './consta
9
9
  export { slackMessagePath, slackReplyPath, } from './constants/slack.js';
10
10
  export { agentSpecWithRenderedTask, mergePolicyLine, renderAgentTask, } from './dispatch/templates.js';
11
11
  export * from './featuremap/index.js';
12
+ export * from './feature-guardian/index.js';
12
13
  export { createRelayflowPolicyRegistry, dispatchRelayflowForChangeEvent, dispatchRelayflowForTrigger, RelayflowPolicyRegistry, triggerEventFromChangeEvent, } from './dispatch/relayflow-registry.js';
13
14
  export { FACTORY_AGENT_EXIT_TIMEOUT_ENV, createFleet, parseOwnedBrokerAgentExitTimeoutMs, resolveOwnedBrokerAgentExitTimeoutMs, } from './fleet/create-fleet.js';
14
15
  export { ensureRelayBroker } from './fleet/ensure-relay-broker.js';
@@ -16,6 +17,7 @@ export { InternalFleetClient } from './fleet/internal-fleet-client.js';
16
17
  export { RelayFleetClient } from './fleet/relay-fleet-client.js';
17
18
  export { RelayfileCloudMountClient, resolveFactoryWorkspace, } from './mount/relayfile-cloud-mount-client.js';
18
19
  export { RelayfileGithubConnectionWrite } from './mount/relayfile-github-connection-write.js';
20
+ export { GithubApiIssueRead } from './mount/github-api-issue-read.js';
19
21
  export { ensureFactoryIntegrations, inspectFactoryIntegration, openIntegrationUrl, } from './mount/relayfile-integration-preflight.js';
20
22
  export { GhCliGithubMergeGate, GithubMergeGate, closeProbePr, defaultGhRunner, evaluateGithubMergeGate, explicitLinkedIssueKey, parseStandaloneBabysitTarget, readStandalonePullRequest, standaloneBabysitterAgentName, } from './github/index.js';
21
23
  export { BatchTracker, DEFAULT_FACTORY_LOOP_HEARTBEAT_PATH, DEFAULT_FACTORY_LOOP_REGISTRY_PATH, FactoryEnvironmentReaper, FactoryReaper, checkFactoryLoopLiveness, createFactory, FactoryLoop, dependencyIdentity, findDependencyCycle, issueKey, isDispatchableIssue, isRealLinearIssue, githubIssuePathParts, parseGithubFactoryIssue, parseBlockedBy, parseLinearIssue, readLinearIssueWithCanonicalFallback, readFactoryInFlightRegistry, readFactoryLoopHeartbeat, reapFactoryEnvironmentsOnce, reapFactoryOrphansOnce, } from './orchestrator/index.js';
@@ -38,4 +40,5 @@ export { DEFAULT_K6_IMAGE, K6_EVIDENCE_PREFIX, KubectlLoadJobClient, createK6Loa
38
40
  export { DEFAULT_VERIFICATION_DESCRIPTOR, VERIFICATION_EVIDENCE_CONTRACT, VerificationPipeline, VerificationTimeoutError, resolveGitHeadRevision, runE2eCommand, } from './environments/verification-pipeline.js';
39
41
  export { loadVerificationGateStack } from './environments/verification-stack.js';
40
42
  export { FACTORY_ENVIRONMENT_EXPIRES_ANNOTATION, FACTORY_ENVIRONMENT_ID_LABEL, FACTORY_ENVIRONMENT_MANAGED_LABEL, FACTORY_ENVIRONMENT_REPOSITORY_ANNOTATION, KubectlEnvironmentProvider, VerificationEnvironmentAbortError, defaultKubectlEnvironmentRunner, } from './environments/kubernetes-environment.js';
43
+ export * from './intake/index.js';
41
44
  //# 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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { GhCliIssuePublisher, loadNotionIntakeManifest, normalizeNotionManifest, normalizeNotionPageId, parseChiefSpecHeader, runNotionIntake, type GithubIssuePublisher, type ExistingGithubIssue, type NotionIntakeManifest, type NotionIntakeClaim, type NotionIntakeClaimStore, type NotionIntakeReport, type NotionIntakeResult, type NotionIntakeTarget, type NotionContractDelivery, type NotionContractPublisher, type NotionRecipe, type NormalizedNotionTask, type WorkspaceTaskDispatcher, } from './notion.js';
2
+ export { RelayChannelNotionClaimStore, notionClaimChannelName, } from './notion-relay-claim.js';
3
+ export { RelayChannelNotionContractPublisher, contractChannelName, contractMarkerPrefix, } from './notion-relay-contract.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/intake/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,GAC7B,MAAM,UAAU,CAAA;AAEjB,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,GACvB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EACL,mCAAmC,EACnC,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,yBAAyB,CAAA"}
@@ -0,0 +1,4 @@
1
+ export { GhCliIssuePublisher, loadNotionIntakeManifest, normalizeNotionManifest, normalizeNotionPageId, parseChiefSpecHeader, runNotionIntake, } from './notion.js';
2
+ export { RelayChannelNotionClaimStore, notionClaimChannelName, } from './notion-relay-claim.js';
3
+ export { RelayChannelNotionContractPublisher, contractChannelName, contractMarkerPrefix, } from './notion-relay-contract.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/intake/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,GAchB,MAAM,UAAU,CAAA;AAEjB,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,GACvB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EACL,mCAAmC,EACnC,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,yBAAyB,CAAA"}
@@ -0,0 +1,32 @@
1
+ import { AgentRelay } from '@agent-relay/sdk';
2
+ import type { NotionIntakeClaim, NotionIntakeClaimStore } from './notion.js';
3
+ type RelayChannelClaimStoreOptions = {
4
+ workspaceKey: string;
5
+ baseUrl?: string;
6
+ publisherName?: string;
7
+ createRelay?: (options: {
8
+ workspaceKey: string;
9
+ baseUrl?: string;
10
+ agentToken?: string;
11
+ }) => ClaimRelay;
12
+ };
13
+ type ClaimRelay = Pick<AgentRelay, 'agents' | 'channels' | 'messages' | 'messaging'>;
14
+ /**
15
+ * Stores one immutable claim per Notion source key in a workspace-global Relay
16
+ * channel. Channel-name uniqueness is the cross-dispatcher compare-and-set;
17
+ * message idempotency is deliberately not used because it is actor-scoped and
18
+ * expires after a bounded interval.
19
+ */
20
+ export declare class RelayChannelNotionClaimStore implements NotionIntakeClaimStore {
21
+ #private;
22
+ constructor(options: RelayChannelClaimStoreOptions);
23
+ claim(input: NotionIntakeClaim): Promise<{
24
+ status: 'claimed' | 'existing';
25
+ claim: NotionIntakeClaim;
26
+ }>;
27
+ get(sourceKey: string): Promise<NotionIntakeClaim | undefined>;
28
+ dispose(): Promise<void>;
29
+ }
30
+ export declare function notionClaimChannelName(sourceKey: string): string;
31
+ export {};
32
+ //# sourceMappingURL=notion-relay-claim.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notion-relay-claim.d.ts","sourceRoot":"","sources":["../../src/intake/notion-relay-claim.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAI7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAWzE,KAAK,6BAA6B,GAAG;IACnC,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,UAAU,CAAA;CACvG,CAAA;AAED,KAAK,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC,CAAA;AAEpF;;;;;GAKG;AACH,qBAAa,4BAA6B,YAAW,sBAAsB;;gBAU7D,OAAO,EAAE,6BAA6B;IAQ5C,KAAK,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC;QAC7C,MAAM,EAAE,SAAS,GAAG,UAAU,CAAA;QAC9B,KAAK,EAAE,iBAAiB,CAAA;KACzB,CAAC;IAkCI,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAc9D,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAuC/B;AAQD,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAGhE"}
@@ -0,0 +1,173 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { AgentRelay } from '@agent-relay/sdk';
3
+ import { z } from 'zod';
4
+ const CLAIM_MARKER = '---FACTORY NOTION INTAKE CLAIM V1---';
5
+ const claimRecordSchema = z.object({
6
+ version: z.literal(1),
7
+ sourceKey: z.string().min(1),
8
+ digest: z.string().regex(/^[0-9a-f]{64}$/u),
9
+ claimedAt: z.string().datetime(),
10
+ }).strict();
11
+ /**
12
+ * Stores one immutable claim per Notion source key in a workspace-global Relay
13
+ * channel. Channel-name uniqueness is the cross-dispatcher compare-and-set;
14
+ * message idempotency is deliberately not used because it is actor-scoped and
15
+ * expires after a bounded interval.
16
+ */
17
+ export class RelayChannelNotionClaimStore {
18
+ #workspaceKey;
19
+ #baseUrl;
20
+ #publisherName;
21
+ #createRelay;
22
+ #workspaceRelay;
23
+ #agentRelay;
24
+ #relayReady;
25
+ #disposed = false;
26
+ constructor(options) {
27
+ this.#workspaceKey = options.workspaceKey;
28
+ this.#baseUrl = options.baseUrl;
29
+ this.#publisherName = options.publisherName ??
30
+ `factory-notion-claims-${process.pid}-${Date.now().toString(36)}`;
31
+ this.#createRelay = options.createRelay ?? ((relayOptions) => new AgentRelay(relayOptions));
32
+ }
33
+ async claim(input) {
34
+ if (this.#disposed)
35
+ throw new Error('Notion claim store has been disposed');
36
+ const record = claimRecordSchema.parse({ version: 1, ...input });
37
+ const claim = publicClaim(record);
38
+ const relay = await this.#relay();
39
+ const channel = notionClaimChannelName(claim.sourceKey);
40
+ try {
41
+ await relay.channels.create({
42
+ name: channel,
43
+ topic: `Immutable Factory Notion claim ${claim.digest}`,
44
+ });
45
+ }
46
+ catch (createError) {
47
+ try {
48
+ await relay.channels.join(channel);
49
+ }
50
+ catch (joinError) {
51
+ throw new Error(`unable to create or observe durable Notion claim ${channel}`, {
52
+ cause: new AggregateError([createError, joinError]),
53
+ });
54
+ }
55
+ return {
56
+ status: 'existing',
57
+ claim: await readExistingClaim(relay, channel, claim.sourceKey),
58
+ };
59
+ }
60
+ const text = renderClaim(record);
61
+ const written = await relay.messages.send({ channel, text });
62
+ if (written.text !== text) {
63
+ throw new Error(`durable Notion claim acknowledgement did not match ${channel}`);
64
+ }
65
+ return { status: 'claimed', claim };
66
+ }
67
+ async get(sourceKey) {
68
+ if (this.#disposed)
69
+ throw new Error('Notion claim store has been disposed');
70
+ const relay = await this.#relay();
71
+ const channel = notionClaimChannelName(sourceKey);
72
+ try {
73
+ await relay.channels.get(channel);
74
+ }
75
+ catch (error) {
76
+ if (isMissingChannel(error))
77
+ return undefined;
78
+ throw error;
79
+ }
80
+ await relay.channels.join(channel);
81
+ return await readExistingClaim(relay, channel, sourceKey);
82
+ }
83
+ async dispose() {
84
+ this.#disposed = true;
85
+ await this.#relayReady?.catch(() => undefined);
86
+ await this.#agentRelay?.messaging.events.disconnect().catch(() => undefined);
87
+ await this.#workspaceRelay?.agents.delete(this.#publisherName).catch(() => undefined);
88
+ this.#agentRelay = undefined;
89
+ this.#workspaceRelay = undefined;
90
+ this.#relayReady = undefined;
91
+ }
92
+ async #relay() {
93
+ if (this.#agentRelay)
94
+ return this.#agentRelay;
95
+ this.#relayReady ??= this.#initializeRelay();
96
+ try {
97
+ return await this.#relayReady;
98
+ }
99
+ catch (error) {
100
+ this.#relayReady = undefined;
101
+ throw error;
102
+ }
103
+ }
104
+ async #initializeRelay() {
105
+ const options = {
106
+ workspaceKey: this.#workspaceKey,
107
+ ...(this.#baseUrl ? { baseUrl: this.#baseUrl } : {}),
108
+ };
109
+ const workspaceRelay = this.#createRelay(options);
110
+ const registration = await workspaceRelay.agents.register({
111
+ name: this.#publisherName,
112
+ type: 'system',
113
+ });
114
+ if (this.#disposed) {
115
+ await workspaceRelay.agents.delete(this.#publisherName).catch(() => undefined);
116
+ throw new Error('Notion claim store was disposed during initialization');
117
+ }
118
+ this.#workspaceRelay = workspaceRelay;
119
+ this.#agentRelay = this.#createRelay({ ...options, agentToken: registration.token });
120
+ return this.#agentRelay;
121
+ }
122
+ }
123
+ function isMissingChannel(error) {
124
+ if (!error || typeof error !== 'object')
125
+ return false;
126
+ const record = error;
127
+ return record.code === 'channel_not_found' || record.status === 404;
128
+ }
129
+ export function notionClaimChannelName(sourceKey) {
130
+ const suffix = createHash('sha256').update(sourceKey).digest('hex');
131
+ return `factory-notion-claim-${suffix}`;
132
+ }
133
+ function renderClaim(claim) {
134
+ return `${CLAIM_MARKER}\n${JSON.stringify(claim)}`;
135
+ }
136
+ function publicClaim(record) {
137
+ return {
138
+ sourceKey: record.sourceKey,
139
+ digest: record.digest,
140
+ claimedAt: record.claimedAt,
141
+ };
142
+ }
143
+ async function readExistingClaim(relay, channel, expectedSourceKey) {
144
+ const messages = await listAllMessages(relay, channel);
145
+ const records = messages
146
+ .filter((message) => message.text.startsWith(`${CLAIM_MARKER}\n`))
147
+ .map((message) => claimRecordSchema.parse(JSON.parse(message.text.slice(CLAIM_MARKER.length + 1))));
148
+ if (records.length !== 1) {
149
+ throw new Error(`durable Notion claim ${channel} has ${records.length} immutable claim records; refusing dispatch`);
150
+ }
151
+ const [claim] = records;
152
+ if (claim.sourceKey !== expectedSourceKey) {
153
+ throw new Error(`durable Notion claim ${channel} does not match its source key`);
154
+ }
155
+ return publicClaim(claim);
156
+ }
157
+ async function listAllMessages(relay, channel) {
158
+ const messages = [];
159
+ let before;
160
+ for (let pageNumber = 0; pageNumber < 100; pageNumber += 1) {
161
+ const page = await relay.messages.list(channel, { limit: 100, ...(before ? { before } : {}) });
162
+ messages.push(...page);
163
+ if (page.length < 100)
164
+ return messages;
165
+ const nextBefore = page.at(-1)?.id;
166
+ if (!nextBefore || nextBefore === before) {
167
+ throw new Error('durable Notion claim message pagination did not advance');
168
+ }
169
+ before = nextBefore;
170
+ }
171
+ throw new Error('durable Notion claim channel exceeds the 10,000-message safety limit');
172
+ }
173
+ //# sourceMappingURL=notion-relay-claim.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notion-relay-claim.js","sourceRoot":"","sources":["../../src/intake/notion-relay-claim.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { AgentRelay } from '@agent-relay/sdk';
2
+ import type { NotionContractDelivery, NotionContractPublisher } from './notion.js';
3
+ type RelayChannelContractPublisherOptions = {
4
+ workspaceKey: string;
5
+ baseUrl?: string;
6
+ publisherName?: string;
7
+ createRelay?: (options: {
8
+ workspaceKey: string;
9
+ baseUrl?: string;
10
+ agentToken?: string;
11
+ }) => ContractRelay;
12
+ };
13
+ type ContractRelay = Pick<AgentRelay, 'agents' | 'channels' | 'messages' | 'messaging'>;
14
+ /**
15
+ * Publishes digest-bound Notion bytes to a workspace-private Relay channel.
16
+ * Workers can reconstruct a read-only local mount snapshot on any fleet node
17
+ * without exposing the private page through a public lifecycle issue.
18
+ */
19
+ export declare class RelayChannelNotionContractPublisher implements NotionContractPublisher {
20
+ #private;
21
+ constructor(options: RelayChannelContractPublisherOptions);
22
+ publish(input: {
23
+ pageId: string;
24
+ sourceKey: string;
25
+ content: string;
26
+ contentDigest: string;
27
+ }): Promise<NotionContractDelivery>;
28
+ dispose(): Promise<void>;
29
+ }
30
+ export declare function contractChannelName(pageId: string, sourceKey: string, contentDigest: string): string;
31
+ export declare function contractMarkerPrefix(pageId: string, contentDigest: string): string;
32
+ export {};
33
+ //# sourceMappingURL=notion-relay-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notion-relay-contract.d.ts","sourceRoot":"","sources":["../../src/intake/notion-relay-contract.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAG7C,OAAO,KAAK,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAM/E,KAAK,oCAAoC,GAAG;IAC1C,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,aAAa,CAAA;CAC1G,CAAA;AAED,KAAK,aAAa,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC,CAAA;AAEvF;;;;GAIG;AACH,qBAAa,mCAAoC,YAAW,uBAAuB;;gBAWrE,OAAO,EAAE,oCAAoC;IAQnD,OAAO,CAAC,KAAK,EAAE;QACnB,MAAM,EAAE,MAAM,CAAA;QACd,SAAS,EAAE,MAAM,CAAA;QACjB,OAAO,EAAE,MAAM,CAAA;QACf,aAAa,EAAE,MAAM,CAAA;KACtB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAiE7B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAuC/B;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAGpG;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAElF"}
@@ -0,0 +1,163 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { AgentRelay } from '@agent-relay/sdk';
3
+ const CONTRACT_CHUNK_CHARACTERS = 6_000;
4
+ const CONTRACT_BEGIN = '---BEGIN FACTORY NOTION CONTRACT BASE64---';
5
+ const CONTRACT_END = '---END FACTORY NOTION CONTRACT BASE64---';
6
+ /**
7
+ * Publishes digest-bound Notion bytes to a workspace-private Relay channel.
8
+ * Workers can reconstruct a read-only local mount snapshot on any fleet node
9
+ * without exposing the private page through a public lifecycle issue.
10
+ */
11
+ export class RelayChannelNotionContractPublisher {
12
+ #workspaceKey;
13
+ #baseUrl;
14
+ #publisherName;
15
+ #createRelay;
16
+ #cache = new Map();
17
+ #workspaceRelay;
18
+ #agentRelay;
19
+ #relayReady;
20
+ #disposed = false;
21
+ constructor(options) {
22
+ this.#workspaceKey = options.workspaceKey;
23
+ this.#baseUrl = options.baseUrl;
24
+ this.#publisherName = options.publisherName ??
25
+ `factory-notion-intake-${process.pid}-${Date.now().toString(36)}`;
26
+ this.#createRelay = options.createRelay ?? ((relayOptions) => new AgentRelay(relayOptions));
27
+ }
28
+ async publish(input) {
29
+ if (this.#disposed)
30
+ throw new Error('Notion contract publisher has been disposed');
31
+ const observedDigest = createHash('sha256').update(input.content).digest('hex');
32
+ if (observedDigest !== input.contentDigest) {
33
+ throw new Error('Notion contract changed before portable mount publication');
34
+ }
35
+ const cacheKey = `${input.sourceKey}\0${input.contentDigest}`;
36
+ const cached = this.#cache.get(cacheKey);
37
+ if (cached)
38
+ return cached;
39
+ const relay = await this.#relay();
40
+ const channel = contractChannelName(input.pageId, input.sourceKey, input.contentDigest);
41
+ try {
42
+ await relay.channels.join(channel);
43
+ }
44
+ catch (joinError) {
45
+ try {
46
+ await relay.channels.create({
47
+ name: channel,
48
+ topic: `Read-only Notion contract ${input.pageId}`,
49
+ });
50
+ }
51
+ catch (createError) {
52
+ try {
53
+ await relay.channels.join(channel);
54
+ }
55
+ catch (finalJoinError) {
56
+ throw new Error(`unable to join or create Notion contract channel ${channel}`, {
57
+ cause: new AggregateError([joinError, createError, finalJoinError]),
58
+ });
59
+ }
60
+ }
61
+ }
62
+ const encoded = Buffer.from(input.content, 'utf8').toString('base64');
63
+ const chunks = splitContract(encoded);
64
+ const markerPrefix = contractMarkerPrefix(input.pageId, input.contentDigest);
65
+ const existing = await listAllMessages(relay, channel);
66
+ const messageIds = [];
67
+ for (let index = 0; index < chunks.length; index += 1) {
68
+ const marker = `${markerPrefix}${index + 1}/${chunks.length}`;
69
+ const expectedText = `${marker}\n${CONTRACT_BEGIN}\n${chunks[index]}\n${CONTRACT_END}`;
70
+ const idempotencyKey = createHash('sha256')
71
+ .update(`${input.sourceKey}\0${input.contentDigest}\0${index + 1}\0${chunks.length}`)
72
+ .digest('hex');
73
+ const prior = existing.find((message) => message.text.startsWith(`${marker}\n`));
74
+ const message = prior ?? await relay.messages.send({
75
+ channel,
76
+ text: expectedText,
77
+ idempotencyKey: `factory-notion-contract-v1:${idempotencyKey}`,
78
+ });
79
+ if (message.text !== expectedText) {
80
+ throw new Error(`portable Notion contract chunk ${index + 1} does not match its digest-bound marker`);
81
+ }
82
+ messageIds.push(message.id);
83
+ }
84
+ const delivery = {
85
+ kind: 'relay-channel',
86
+ channel,
87
+ messageIds,
88
+ encoding: 'base64-chunks-v1',
89
+ };
90
+ this.#cache.set(cacheKey, delivery);
91
+ return delivery;
92
+ }
93
+ async dispose() {
94
+ this.#disposed = true;
95
+ await this.#relayReady?.catch(() => undefined);
96
+ await this.#agentRelay?.messaging.events.disconnect().catch(() => undefined);
97
+ await this.#workspaceRelay?.agents.delete(this.#publisherName).catch(() => undefined);
98
+ this.#agentRelay = undefined;
99
+ this.#workspaceRelay = undefined;
100
+ this.#relayReady = undefined;
101
+ }
102
+ async #relay() {
103
+ if (this.#agentRelay)
104
+ return this.#agentRelay;
105
+ this.#relayReady ??= this.#initializeRelay();
106
+ try {
107
+ return await this.#relayReady;
108
+ }
109
+ catch (error) {
110
+ this.#relayReady = undefined;
111
+ throw error;
112
+ }
113
+ }
114
+ async #initializeRelay() {
115
+ const options = {
116
+ workspaceKey: this.#workspaceKey,
117
+ ...(this.#baseUrl ? { baseUrl: this.#baseUrl } : {}),
118
+ };
119
+ const workspaceRelay = this.#createRelay(options);
120
+ const registration = await workspaceRelay.agents.register({
121
+ name: this.#publisherName,
122
+ type: 'system',
123
+ });
124
+ if (this.#disposed) {
125
+ await workspaceRelay.agents.delete(this.#publisherName).catch(() => undefined);
126
+ throw new Error('Notion contract publisher was disposed during initialization');
127
+ }
128
+ this.#workspaceRelay = workspaceRelay;
129
+ this.#agentRelay = this.#createRelay({ ...options, agentToken: registration.token });
130
+ return this.#agentRelay;
131
+ }
132
+ }
133
+ export function contractChannelName(pageId, sourceKey, contentDigest) {
134
+ const sourceSuffix = createHash('sha256').update(sourceKey).digest('hex').slice(0, 8);
135
+ return `factory-notion-${pageId.slice(-8)}-${sourceSuffix}-${contentDigest.slice(0, 10)}`;
136
+ }
137
+ export function contractMarkerPrefix(pageId, contentDigest) {
138
+ return `factory-notion-contract-v1:${pageId}:${contentDigest}:part:`;
139
+ }
140
+ function splitContract(encoded) {
141
+ const chunks = [];
142
+ for (let offset = 0; offset < encoded.length; offset += CONTRACT_CHUNK_CHARACTERS) {
143
+ chunks.push(encoded.slice(offset, offset + CONTRACT_CHUNK_CHARACTERS));
144
+ }
145
+ return chunks.length > 0 ? chunks : [''];
146
+ }
147
+ async function listAllMessages(relay, channel) {
148
+ const messages = [];
149
+ let before;
150
+ for (let pageNumber = 0; pageNumber < 100; pageNumber += 1) {
151
+ const page = await relay.messages.list(channel, { limit: 100, ...(before ? { before } : {}) });
152
+ messages.push(...page);
153
+ if (page.length < 100)
154
+ return messages;
155
+ const nextBefore = page.at(-1)?.id;
156
+ if (!nextBefore || nextBefore === before) {
157
+ throw new Error('portable Notion contract message pagination did not advance');
158
+ }
159
+ before = nextBefore;
160
+ }
161
+ throw new Error('portable Notion contract digest channel exceeds the 10,000-message safety limit');
162
+ }
163
+ //# sourceMappingURL=notion-relay-contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notion-relay-contract.js","sourceRoot":"","sources":["../../src/intake/notion-relay-contract.ts"],"names":[],"mappings":"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"}