@cat-factory/kernel 0.165.0 → 0.166.0

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.
@@ -18,7 +18,7 @@
18
18
  * - Runtime-specific tables that only exist on one facade (e.g. the Cloudflare-only
19
19
  * `live_containers` Durable-Object tracking table) are appended by that facade.
20
20
  */
21
- export declare const WORKSPACE_SCOPED_TABLES: readonly ['agent_runs', 'blocks', 'brainstorm_sessions', 'clarity_reviews', 'consensus_sessions', 'custom_manifest_types', 'doc_interview_sessions', 'document_connections', 'documents', 'environment_connections', 'environment_test_runs', 'environment_user_handlers', 'environments', 'github_branches', 'github_check_runs', 'github_commits', 'github_installations', 'github_issues', 'github_pull_requests', 'github_repos', 'incident_enrichment_connections', 'initiatives', 'kaizen_gradings', 'kaizen_verified_combos', 'merge_threshold_presets', 'merge_track_records', 'model_presets', 'notification_webhooks', 'notifications', 'observability_connections', 'package_registry_connections', 'pipeline_schedule_runs', 'pipeline_schedules', 'pipelines', 'provider_model_catalog', 'provider_subscription_tokens', 'public_api_keys', 'reference_architectures', 'release_health_configs', 'requirement_reviews', 'review_question_posts', 'runner_pool_connections', 'shared_stacks', 'slack_settings', 'task_connections', 'task_source_settings', 'tasks', 'test_secrets', 'token_usage', 'tracker_settings', 'validation_configs', 'workspace_fragment_defaults', 'workspace_members', 'workspace_settings'];
21
+ export declare const WORKSPACE_SCOPED_TABLES: readonly ['agent_runs', 'blocks', 'brainstorm_sessions', 'clarity_reviews', 'consensus_sessions', 'custom_manifest_types', 'doc_interview_sessions', 'document_connections', 'documents', 'environment_connections', 'environment_test_runs', 'environment_user_handlers', 'environments', 'github_branches', 'github_check_runs', 'github_commits', 'github_installations', 'github_issues', 'github_pull_requests', 'github_repos', 'incident_enrichment_connections', 'initiatives', 'kaizen_gradings', 'kaizen_verified_combos', 'merge_threshold_presets', 'merge_track_records', 'model_presets', 'notification_webhooks', 'notifications', 'observability_connections', 'package_registry_connections', 'pipeline_schedule_runs', 'pipeline_schedules', 'pipelines', 'provider_model_catalog', 'provider_subscription_tokens', 'public_api_keys', 'reference_architectures', 'release_health_configs', 'requirement_reviews', 'review_question_posts', 'runner_pool_connections', 'shared_stacks', 'slack_settings', 'task_connections', 'task_source_settings', 'tasks', 'test_secrets', 'tracker_comment_ingests', 'token_usage', 'tracker_settings', 'validation_configs', 'workspace_fragment_defaults', 'workspace_members', 'workspace_settings'];
22
22
  export type WorkspaceScopedTable = (typeof WORKSPACE_SCOPED_TABLES)[number];
23
23
  /**
24
24
  * Tables that carry a `workspace_id` column but are NOT in {@link WORKSPACE_SCOPED_TABLES}
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-cascade.d.ts","sourceRoot":"","sources":["../../src/domain/workspace-cascade.ts"],"names":[],"mappings":"AAyBA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,uBAAuB,YAClC,YAAY,EACZ,QAAQ,EACR,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,WAAW,EACX,yBAAyB,EACzB,uBAAuB,EACvB,2BAA2B,EAC3B,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,sBAAsB,EACtB,cAAc,EACd,iCAAiC,EACjC,aAAa,EACb,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,EACrB,eAAe,EACf,uBAAuB,EACvB,eAAe,EACf,2BAA2B,EAC3B,8BAA8B,EAC9B,wBAAwB,EACxB,oBAAoB,EACpB,WAAW,EACX,wBAAwB,EACxB,8BAA8B,EAC9B,iBAAiB,EACjB,yBAAyB,EACzB,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,OAAO,EACP,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,6BAA6B,EAC7B,mBAAmB,EACnB,oBAAoB,CACZ,CAAA;AAEV,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAA;AAE3E;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,YAAI,oBAAoB,EAAE,kBAAkB,CAAU,CAAA"}
1
+ {"version":3,"file":"workspace-cascade.d.ts","sourceRoot":"","sources":["../../src/domain/workspace-cascade.ts"],"names":[],"mappings":"AAyBA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,uBAAuB,YAClC,YAAY,EACZ,QAAQ,EACR,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,WAAW,EACX,yBAAyB,EACzB,uBAAuB,EACvB,2BAA2B,EAC3B,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,sBAAsB,EACtB,cAAc,EACd,iCAAiC,EACjC,aAAa,EACb,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,EACrB,eAAe,EACf,uBAAuB,EACvB,eAAe,EACf,2BAA2B,EAC3B,8BAA8B,EAC9B,wBAAwB,EACxB,oBAAoB,EACpB,WAAW,EACX,wBAAwB,EACxB,8BAA8B,EAC9B,iBAAiB,EACjB,yBAAyB,EACzB,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,OAAO,EACP,cAAc,EACd,yBAAyB,EACzB,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,6BAA6B,EAC7B,mBAAmB,EACnB,oBAAoB,CACZ,CAAA;AAEV,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAA;AAE3E;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,YAAI,oBAAoB,EAAE,kBAAkB,CAAU,CAAA"}
@@ -91,6 +91,7 @@ export const WORKSPACE_SCOPED_TABLES = [
91
91
  'task_source_settings',
92
92
  'tasks',
93
93
  'test_secrets',
94
+ 'tracker_comment_ingests',
94
95
  'token_usage',
95
96
  'tracker_settings',
96
97
  'validation_configs',
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-cascade.js","sourceRoot":"","sources":["../../src/domain/workspace-cascade.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,+EAA+E;AAC/E,2EAA2E;AAC3E,kFAAkF;AAClF,kFAAkF;AAClF,iFAAiF;AACjF,kFAAkF;AAClF,mFAAmF;AACnF,2CAA2C;AAC3C,EAAE;AACF,kFAAkF;AAClF,kFAAkF;AAClF,8EAA8E;AAC9E,0EAA0E;AAC1E,EAAE;AACF,4EAA4E;AAC5E,mFAAmF;AACnF,2EAA2E;AAC3E,+EAA+E;AAC/E,oFAAoF;AACpF,mFAAmF;AACnF,mFAAmF;AACnF,oFAAoF;AACpF,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,YAAY;IACZ,QAAQ;IACR,qBAAqB;IACrB,iBAAiB;IACjB,oBAAoB;IACpB,uBAAuB;IACvB,wBAAwB;IACxB,sBAAsB;IACtB,WAAW;IACX,yBAAyB;IACzB,uBAAuB;IACvB,2BAA2B;IAC3B,cAAc;IACd,iBAAiB;IACjB,mBAAmB;IACnB,gBAAgB;IAChB,sBAAsB;IACtB,eAAe;IACf,sBAAsB;IACtB,cAAc;IACd,iCAAiC;IACjC,aAAa;IACb,iBAAiB;IACjB,wBAAwB;IACxB,yBAAyB;IACzB,qBAAqB;IACrB,eAAe;IACf,uBAAuB;IACvB,eAAe;IACf,2BAA2B;IAC3B,8BAA8B;IAC9B,wBAAwB;IACxB,oBAAoB;IACpB,WAAW;IACX,wBAAwB;IACxB,8BAA8B;IAC9B,iBAAiB;IACjB,yBAAyB;IACzB,wBAAwB;IACxB,qBAAqB;IACrB,uBAAuB;IACvB,yBAAyB;IACzB,eAAe;IACf,gBAAgB;IAChB,kBAAkB;IAClB,sBAAsB;IACtB,OAAO;IACP,cAAc;IACd,aAAa;IACb,kBAAkB;IAClB,oBAAoB;IACpB,6BAA6B;IAC7B,mBAAmB;IACnB,oBAAoB;CACZ,CAAA;AAIV;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,oBAAoB,EAAE,kBAAkB,CAAU,CAAA"}
1
+ {"version":3,"file":"workspace-cascade.js","sourceRoot":"","sources":["../../src/domain/workspace-cascade.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,+EAA+E;AAC/E,2EAA2E;AAC3E,kFAAkF;AAClF,kFAAkF;AAClF,iFAAiF;AACjF,kFAAkF;AAClF,mFAAmF;AACnF,2CAA2C;AAC3C,EAAE;AACF,kFAAkF;AAClF,kFAAkF;AAClF,8EAA8E;AAC9E,0EAA0E;AAC1E,EAAE;AACF,4EAA4E;AAC5E,mFAAmF;AACnF,2EAA2E;AAC3E,+EAA+E;AAC/E,oFAAoF;AACpF,mFAAmF;AACnF,mFAAmF;AACnF,oFAAoF;AACpF,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,YAAY;IACZ,QAAQ;IACR,qBAAqB;IACrB,iBAAiB;IACjB,oBAAoB;IACpB,uBAAuB;IACvB,wBAAwB;IACxB,sBAAsB;IACtB,WAAW;IACX,yBAAyB;IACzB,uBAAuB;IACvB,2BAA2B;IAC3B,cAAc;IACd,iBAAiB;IACjB,mBAAmB;IACnB,gBAAgB;IAChB,sBAAsB;IACtB,eAAe;IACf,sBAAsB;IACtB,cAAc;IACd,iCAAiC;IACjC,aAAa;IACb,iBAAiB;IACjB,wBAAwB;IACxB,yBAAyB;IACzB,qBAAqB;IACrB,eAAe;IACf,uBAAuB;IACvB,eAAe;IACf,2BAA2B;IAC3B,8BAA8B;IAC9B,wBAAwB;IACxB,oBAAoB;IACpB,WAAW;IACX,wBAAwB;IACxB,8BAA8B;IAC9B,iBAAiB;IACjB,yBAAyB;IACzB,wBAAwB;IACxB,qBAAqB;IACrB,uBAAuB;IACvB,yBAAyB;IACzB,eAAe;IACf,gBAAgB;IAChB,kBAAkB;IAClB,sBAAsB;IACtB,OAAO;IACP,cAAc;IACd,yBAAyB;IACzB,aAAa;IACb,kBAAkB;IAClB,oBAAoB;IACpB,6BAA6B;IAC7B,mBAAmB;IACnB,oBAAoB;CACZ,CAAA;AAIV;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,oBAAoB,EAAE,kBAAkB,CAAU,CAAA"}
@@ -46,7 +46,7 @@ export interface EnvironmentConnectionRecord {
46
46
  }
47
47
  /**
48
48
  * Idempotently ensures a deployment's pre-declared environment handlers (rows in
49
- * `environment_connections`) exist for a workspace. A deployment (e.g. a Kargo adapter) declares
49
+ * `environment_connections`) exist for a workspace. A deployment (via a custom environment adapter) declares
50
50
  * its handler seeds in config; the server ensures each is registered for every existing workspace
51
51
  * at boot AND for each newly-created workspace — so a service's provision type resolves a handler
52
52
  * WITHOUT a human filling the Infrastructure → Test environments form. Idempotent (a seed already
@@ -46,6 +46,8 @@ export type { WebhookVerifier } from './webhook-verifier.js';
46
46
  export type { DocumentCredentials, DocumentContent, NormalizedConnection, DocumentSourceProvider, DocumentSourceRegistry, DocumentContentResolver, } from './document-source.js';
47
47
  export type { DocumentConnectionRecord, DocumentConnectionRepository, DocumentRecord, DocumentRepository, } from './document-repositories.js';
48
48
  export type { TaskCredentials, TaskContent, TaskSearchRepoScope, IssueIntakeQuery, NormalizedTaskConnection, TaskSourceProvider, TaskSourceRegistry, } from './task-source.js';
49
+ export type { TaskSourceWebhookAdapter, TrackerCommentAuthor, TrackerCommentEvent, TrackerIssueEvent, TrackerWebhookDelivery, TrackerWebhookEvent, } from './tracker-webhook.js';
50
+ export { TRACKER_WEBHOOK_REPLY_ALLOW_KEY, TRACKER_WEBHOOK_SECRET_KEY, isTaskSourceKind, trackerWebhookSecret, } from './tracker-webhook.js';
49
51
  export type { TaskConnectionRecord, TaskConnectionRepository, TaskSourceSettingsRecord, TaskSourceSettingsRepository, TaskRecord, TaskRef, TaskRepository, } from './task-repositories.js';
50
52
  export type { FragmentAppliesTo, PromptFragmentRecord, PromptFragmentRepository, FragmentSourceRecord, FragmentSourceRepository, ResolvedCatalogEntry, } from './fragment-repositories.js';
51
53
  export type { SkillResource, AccountSkillRecord, AccountSkillRepository, SkillSourceRecord, SkillSourceRepository, SkillSourceResyncRequest, } from './skill-repositories.js';
@@ -116,8 +118,10 @@ export type { ServiceFragmentDefaultsRepository } from './service-fragment-defau
116
118
  export type { DueSchedule, PipelineScheduleRepository } from './recurring-repositories.js';
117
119
  export type { TrackerSettingsRepository } from './tracker-settings-repositories.js';
118
120
  export type { CreateTicketRequest, CreatedTicket, TicketTrackerProvider } from './ticket-tracker.js';
119
- export type { IssueWritebackProvider, ReviewQuestionFinding, ReviewQuestionPost, ReviewQuestionPostOutcome, } from './issue-writeback.js';
121
+ export type { IssueWritebackProvider, ReviewQuestionFinding, ReviewQuestionPost, ReviewQuestionPostOutcome, ReviewReplyAck, ReviewReplyRejection, } from './issue-writeback.js';
120
122
  export type { ReviewQuestionPostClaimWindow, ReviewQuestionPostKey, ReviewQuestionPostRecord, ReviewQuestionPostRepository, ReviewQuestionPostStatus, } from './review-question-post-repositories.js';
121
123
  export { REVIEW_QUESTION_POST_CLAIM_TTL_MS } from './review-question-post-repositories.js';
124
+ export type { TrackerCommentIngestClaimWindow, TrackerCommentIngestKey, TrackerCommentIngestRecord, TrackerCommentIngestRepository, TrackerCommentIngestStatus, } from './tracker-comment-ingest-repositories.js';
125
+ export { TRACKER_COMMENT_INGEST_CLAIM_TTL_MS } from './tracker-comment-ingest-repositories.js';
122
126
  export { type NotificationChannel, type RaiseNotificationInput, CompositeNotificationChannel, NoopNotificationChannel, } from './notification-channel.js';
123
127
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ports/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ports/index.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ export { NoopWorkRunner } from './work-runner.js';
6
6
  export { NoopEventPublisher } from './execution-events.js';
7
7
  export { VcsIdentityError } from './vcs-identity.js';
8
8
  export { createBinaryArtifactStore } from './binary-artifacts.js';
9
+ export { TRACKER_WEBHOOK_REPLY_ALLOW_KEY, TRACKER_WEBHOOK_SECRET_KEY, isTaskSourceKind, trackerWebhookSecret, } from './tracker-webhook.js';
9
10
  export { readCachedWorkspaceSettings, repoFilesCacheGroup } from './caching.js';
10
11
  export { SecretDecryptError, isSecretDecryptError } from './secret-cipher.js';
11
12
  export { STRICT_URL_SAFETY_POLICY } from './url-safety-policy.js';
@@ -15,5 +16,6 @@ export { NoopEnvironmentTestRunner } from './environment-test.js';
15
16
  export { PREVIEW_HARNESS_JOB_ID, PREVIEW_PROVISION_TYPE } from './preview-transport.js';
16
17
  export { CompositeIncidentEnrichmentProvider } from './incident-enrichment.js';
17
18
  export { REVIEW_QUESTION_POST_CLAIM_TTL_MS } from './review-question-post-repositories.js';
19
+ export { TRACKER_COMMENT_INGEST_CLAIM_TTL_MS } from './tracker-comment-ingest-repositories.js';
18
20
  export { CompositeNotificationChannel, NoopNotificationChannel, } from './notification-channel.js';
19
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ports/index.ts"],"names":[],"mappings":"AAwEA,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAA;AAchF,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAA;AA8B7D,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,8BAA8B,GAC/B,MAAM,qBAAqB,CAAA;AAW5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAmB,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAClE,OAAO,EAAgC,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAmCxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AA8BpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AAmFjE,OAAO,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAW/E,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAqC7E,OAAO,EAAwB,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AAiCvF,OAAO,EAAwB,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAWjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AAOlE,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AAiBjE,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AA+EvF,OAAO,EAAE,mCAAmC,EAAE,MAAM,0BAA0B,CAAA;AA4F9E,OAAO,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAA;AAC1F,OAAO,EAGL,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ports/index.ts"],"names":[],"mappings":"AAwEA,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAA;AAchF,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAA;AA8B7D,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,8BAA8B,GAC/B,MAAM,qBAAqB,CAAA;AAW5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAmB,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAClE,OAAO,EAAgC,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAmCxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AA8BpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AAwDjE,OAAO,EACL,+BAA+B,EAC/B,0BAA0B,EAC1B,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,sBAAsB,CAAA;AAoC7B,OAAO,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAW/E,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAqC7E,OAAO,EAAwB,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AAiCvF,OAAO,EAAwB,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAWjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AAOlE,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AAiBjE,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AA+EvF,OAAO,EAAE,mCAAmC,EAAE,MAAM,0BAA0B,CAAA;AA8F9E,OAAO,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAA;AAQ1F,OAAO,EAAE,mCAAmC,EAAE,MAAM,0CAA0C,CAAA;AAC9F,OAAO,EAGL,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,2BAA2B,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { Block, PullRequestRef } from '../domain/types.js';
1
+ import type { Block, PullRequestRef, TaskSourceKind } from '../domain/types.js';
2
2
  /** One open finding of a parked review, as rendered onto a tracker issue. */
3
3
  export interface ReviewQuestionFinding {
4
4
  /** The review item's stable id — rendered verbatim so an answer can name it. */
@@ -58,8 +58,12 @@ export interface IssueWritebackProvider {
58
58
  * The bug-triage clarification gate (`clarity-review`) parked for a human because the
59
59
  * investigator flagged the report as unclear — echo the open questions as a comment on
60
60
  * the block's linked tracker issue(s) so the reporter sees the ask where they filed the
61
- * bug. This is an ECHO only: answers still arrive in-app (the clarity window); there is
62
- * no tracker-side reply polling. Best-effort like the other hooks (a tracker outage never
61
+ * bug. This is an ECHO only: answers to a CLARITY gate still arrive in-app (the clarity
62
+ * window). The tracker-side reply path built in
63
+ * `docs/initiatives/tracker-webhook-intake.md` is scoped to the REQUIREMENTS review — its
64
+ * findings carry the stable ids a reply names ({@link postReviewQuestions}); a clarity
65
+ * question has none, so a comment answering one is ignored rather than guessed at.
66
+ * Best-effort like the other hooks (a tracker outage never
63
67
  * fails the run) and, like {@link onIssuePickedUp}, NOT gated on the workspace writeback
64
68
  * settings — asking the reporter for the detail needed to fix their bug is intake
65
69
  * semantics, not an optional courtesy. A no-op when the block has no linked issue.
@@ -84,5 +88,66 @@ export interface IssueWritebackProvider {
84
88
  * tracker outage rather than leaving it invisible.
85
89
  */
86
90
  postReviewQuestions(workspaceId: string, block: Block, post: ReviewQuestionPost): Promise<ReviewQuestionPostOutcome>;
91
+ /**
92
+ * A reporter answered {@link postReviewQuestions}' findings IN THE TICKET — acknowledge what
93
+ * the reply did, on the very issue it arrived on.
94
+ *
95
+ * This is the closing half of the ticket loop: without it a reporter who answered two of three
96
+ * findings has no way to learn that the third is still holding the run, and a reply that named
97
+ * an unknown id or landed after the review settled looks identical to one that worked. So the
98
+ * ack always states the disposition — what was applied, what is still outstanding, and what was
99
+ * rejected and why (see D6 of `docs/initiatives/tracker-webhook-intake.md`).
100
+ *
101
+ * Targeted at ONE issue (`source`/`externalId`) rather than the block's whole linked set: the
102
+ * reply came from a specific thread, and broadcasting the ack to sibling issues would answer
103
+ * people who never asked. Ungated by the workspace writeback settings — a reply is an explicit
104
+ * request for a response, not a courtesy — and best-effort like every other hook: the answer is
105
+ * already applied and settled before this is attempted, so a tracker outage costs the ack, never
106
+ * the reply.
107
+ *
108
+ * An UNAUTHORIZED reply never reaches this method. Replying to one would confirm the hook exists
109
+ * and hand an attacker an oracle, so it is dropped silently at ingest.
110
+ */
111
+ postReviewReplyAck(workspaceId: string, issue: {
112
+ source: TaskSourceKind;
113
+ externalId: string;
114
+ }, ack: ReviewReplyAck): Promise<void>;
115
+ }
116
+ /** How a ticket reply's command was disposed of, when it could not be applied. */
117
+ export interface ReviewReplyRejection {
118
+ /** The command line as written, capped + scrubbed before it is echoed back. */
119
+ command: string;
120
+ /** Why it did not apply, in plain prose (`unknown finding id`, `unknown command`, …). */
121
+ reason: string;
122
+ }
123
+ /**
124
+ * The disposition of one ticket reply, rendered back onto the issue it arrived on.
125
+ *
126
+ * `outcome` is what the RUN did, which is the part a reporter actually cares about and the part
127
+ * they cannot see from the tracker:
128
+ *
129
+ * - `incorporating` — nothing is open any more, so the answers were folded in and the run is
130
+ * re-reviewing on its own.
131
+ * - `awaiting` — the answers landed but findings remain open; the run is still parked.
132
+ * - `exceeded` — the review hit its iteration cap; the reply's options are `proceed` / `stop` /
133
+ * `extra-round` and the run stays parked until one is chosen (there is deliberately no timed
134
+ * auto-proceed — see D6).
135
+ * - `settled` — the review had already moved on before the reply arrived, so nothing was applied.
136
+ * - `resolved` — a `proceed` / `stop` / `extra-round` command settled the park outright.
137
+ */
138
+ export interface ReviewReplyAck {
139
+ /** The review the reply was applied to (or would have been, when `settled`). */
140
+ reviewId: string;
141
+ /** The run whose park this reply answered — named so a reader can find it. */
142
+ runId: string;
143
+ outcome: 'incorporating' | 'awaiting' | 'exceeded' | 'settled' | 'resolved';
144
+ /** Findings this reply answered, by stable id. */
145
+ answered: string[];
146
+ /** Findings this reply dismissed, by stable id. */
147
+ dismissed: string[];
148
+ /** Findings still open AFTER the reply — what the reporter must still answer. */
149
+ outstanding: ReviewQuestionFinding[];
150
+ /** Commands that could not be applied. Never silently dropped (D4). */
151
+ rejected: ReviewReplyRejection[];
87
152
  }
88
153
  //# sourceMappingURL=issue-writeback.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"issue-writeback.d.ts","sourceRoot":"","sources":["../../src/ports/issue-writeback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAE/D,6EAA6E;AAC7E,MAAM,WAAW,qBAAqB;IACpC,gFAAgF;IAChF,EAAE,EAAE,MAAM,CAAA;IACV,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAA;IACb,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAA;IAChB,uFAAuF;IACvF,SAAS,EAAE,MAAM,CAAA;IACjB,qFAAqF;IACrF,aAAa,EAAE,MAAM,CAAA;IACrB,sFAAsF;IACtF,QAAQ,EAAE,qBAAqB,EAAE,CAAA;IACjC,uFAAuF;IACvF,KAAK,EAAE,MAAM,CAAA;CACd;AAED,mFAAmF;AACnF,MAAM,WAAW,yBAAyB;IACxC,uEAAuE;IACvE,MAAM,EAAE,MAAM,CAAA;IACd,qFAAqF;IACrF,OAAO,EAAE,MAAM,CAAA;IACf,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAA;CACf;AAaD,MAAM,WAAW,sBAAsB;IACrC,uFAAuF;IACvF,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzF,oFAAoF;IACpF,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzF;;;;;;;;;OASG;IACH,eAAe,CACb,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,GAClD,OAAO,CAAC,IAAI,CAAC,CAAA;IAChB;;;;;;;;;OASG;IACH,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACvF;;;;;;;;;;;;;;;;;OAiBG;IACH,mBAAmB,CACjB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,yBAAyB,CAAC,CAAA;CACtC"}
1
+ {"version":3,"file":"issue-writeback.d.ts","sourceRoot":"","sources":["../../src/ports/issue-writeback.ts"],"names":[],"mappings":"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"}
@@ -106,6 +106,15 @@ export interface RunRepoContext {
106
106
  * because the resolution already read it.
107
107
  */
108
108
  repoId: string;
109
+ /**
110
+ * The repo's GitHub owner (org) and name — together `owner/name` identify the repo. Surfaced so a
111
+ * code environment adapter can resolve a per-SERVICE target keyed by the repo (e.g. a provider
112
+ * whose project/namespace is named after the repo) at provision/status time, rather than a single
113
+ * static default. Optional for back-compat with older resolvers / test fakes; the real resolvers
114
+ * always set them.
115
+ */
116
+ owner?: string;
117
+ name?: string;
109
118
  /** Which VCS provider hosts it; absent ⇒ `github` (see the projection's `provider` column). */
110
119
  provider?: VcsProvider;
111
120
  }
@@ -1 +1 @@
1
- {"version":3,"file":"repo-files.d.ts","sourceRoot":"","sources":["../../src/ports/repo-files.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACnG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EAChB,MAAM,oBAAoB,CAAA;AAiB3B,MAAM,WAAW,SAAS;IACxB;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAA;IACvE;;;OAGG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAA;IACzE;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAC/C,8EAA8E;IAC9E,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5D;;;;OAIG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3C;;;;;;;OAOG;IACH,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAChE;;;;OAIG;IACH,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;IACxE;;;;;;OAMG;IACH,kBAAkB,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAC3D;;;;;;;OAOG;IACH,kBAAkB,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAC3D;;;;;;OAMG;IACH,YAAY,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAA;IACpF;;;;;;;OAOG;IACH,gBAAgB,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAA;IAC/D;;;;;;;OAOG;IACH,iBAAiB,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAA;CAClE;AAED;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,KAAK,SAAS,CAAA;AAExF,kFAAkF;AAClF,MAAM,WAAW,cAAc;IAC7B,wEAAwE;IACxE,IAAI,EAAE,SAAS,CAAA;IACf,sFAAsF;IACtF,UAAU,EAAE,MAAM,CAAA;IAClB;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAA;IACd,+FAA+F;IAC/F,QAAQ,CAAC,EAAE,WAAW,CAAA;CACvB;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAClC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA"}
1
+ {"version":3,"file":"repo-files.d.ts","sourceRoot":"","sources":["../../src/ports/repo-files.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACnG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EAChB,MAAM,oBAAoB,CAAA;AAiB3B,MAAM,WAAW,SAAS;IACxB;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAA;IACvE;;;OAGG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAA;IACzE;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAC/C,8EAA8E;IAC9E,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5D;;;;OAIG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3C;;;;;;;OAOG;IACH,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAChE;;;;OAIG;IACH,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;IACxE;;;;;;OAMG;IACH,kBAAkB,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAC3D;;;;;;;OAOG;IACH,kBAAkB,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAC3D;;;;;;OAMG;IACH,YAAY,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAA;IACpF;;;;;;;OAOG;IACH,gBAAgB,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAA;IAC/D;;;;;;;OAOG;IACH,iBAAiB,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAA;CAClE;AAED;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,KAAK,SAAS,CAAA;AAExF,kFAAkF;AAClF,MAAM,WAAW,cAAc;IAC7B,wEAAwE;IACxE,IAAI,EAAE,SAAS,CAAA;IACf,sFAAsF;IACtF,UAAU,EAAE,MAAM,CAAA;IAClB;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,+FAA+F;IAC/F,QAAQ,CAAC,EAAE,WAAW,CAAA;CACvB;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAClC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import type { TaskSourceKind, TaskSourceDescriptor, TaskSourceDiagnostic, TaskComment, TaskDependencyLink, TaskSearchResult } from '../domain/types.js';
2
+ import type { TaskSourceWebhookAdapter } from './tracker-webhook.js';
2
3
  /** A source's per-workspace credentials, as a flat key→value bag. */
3
4
  export type TaskCredentials = Record<string, string>;
4
5
  export type { TaskComment };
@@ -135,6 +136,17 @@ export interface TaskSourceProvider {
135
136
  workspaceId: string;
136
137
  credentials: TaskCredentials | null;
137
138
  }): Promise<TaskSourceDiagnostic>;
139
+ /**
140
+ * Inbound-webhook capability: verify a delivery signed with the workspace connection's
141
+ * secret and map it onto a neutral {@link TrackerWebhookEvent}. Optional — a provider
142
+ * without it never receives deliveries (the shared receiver 404s that source), which is the
143
+ * push counterpart of a provider without {@link TaskSourceProvider.searchIssues} being
144
+ * unable to back a polling `bug-intake` schedule.
145
+ *
146
+ * Providers own their vendor parsing here exactly as VCS providers own theirs; the shared
147
+ * receiver owns only the transport (raw body, ack fast, hand off to the facade's queue).
148
+ */
149
+ readonly webhook?: TaskSourceWebhookAdapter;
138
150
  }
139
151
  /** A lookup of the providers wired for this deployment, keyed by source. */
140
152
  export interface TaskSourceRegistry {
@@ -1 +1 @@
1
- {"version":3,"file":"task-source.d.ts","sourceRoot":"","sources":["../../src/ports/task-source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-source.d.ts","sourceRoot":"","sources":["../../src/ports/task-source.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import type { TaskSourceKind } from '../domain/types.js';
2
+ /** Identifies one ingested tracker comment. */
3
+ export interface TrackerCommentIngestKey {
4
+ workspaceId: string;
5
+ /** Which tracker the comment came from — two trackers can hand out the same ids. */
6
+ source: TaskSourceKind;
7
+ /** The issue the comment is on, as the source's canonical key. */
8
+ externalId: string;
9
+ /** The vendor's comment id. */
10
+ commentId: string;
11
+ }
12
+ /** Delivery state of one ingest marker. */
13
+ export type TrackerCommentIngestStatus = 'pending' | 'applied' | 'failed';
14
+ export interface TrackerCommentIngestRecord extends TrackerCommentIngestKey {
15
+ status: TrackerCommentIngestStatus;
16
+ /** How many times an apply has been attempted for this key (claims, not HTTP retries). */
17
+ attempts: number;
18
+ /** The last failure's message, scrubbed + truncated; null unless `status` is `failed`. */
19
+ error: string | null;
20
+ updatedAt: number;
21
+ }
22
+ /**
23
+ * How long a `pending` claim may sit before another delivery may take it over.
24
+ *
25
+ * Sized well above a live ingest (which settles its row in seconds — it is a handful of local
26
+ * service calls plus one outbound comment) and well below a human's turnaround on the question,
27
+ * so a takeover cannot race a still-running apply. Mirrors
28
+ * {@link REVIEW_QUESTION_POST_CLAIM_TTL_MS}; the two windows are independent knobs on purpose,
29
+ * because they bound different work.
30
+ */
31
+ export declare const TRACKER_COMMENT_INGEST_CLAIM_TTL_MS: number;
32
+ /** The instant a claim is taken, plus the cutoff at which an abandoned claim may be stolen. */
33
+ export interface TrackerCommentIngestClaimWindow {
34
+ /** Wall clock now — stamped onto the row. */
35
+ now: number;
36
+ /**
37
+ * Claims still `pending` at or before this instant are treated as ABANDONED and may be
38
+ * re-taken. Callers derive it as `now - TRACKER_COMMENT_INGEST_CLAIM_TTL_MS`; passing it in
39
+ * keeps the policy in ONE place and leaves the two dialects purely mechanical.
40
+ */
41
+ reclaimPendingBefore: number;
42
+ }
43
+ export interface TrackerCommentIngestRepository {
44
+ /**
45
+ * Atomically take ownership of applying this comment. Returns `true` when the caller now owns
46
+ * it — the marker did not exist, it existed `failed` and is being retried, or a previous claim
47
+ * was abandoned mid-apply — and `false` when another delivery already applied it or is still
48
+ * mid-flight, in which case the caller must NOT apply.
49
+ */
50
+ claim(key: TrackerCommentIngestKey, window: TrackerCommentIngestClaimWindow): Promise<boolean>;
51
+ /** Record the outcome of a claimed apply. */
52
+ settle(key: TrackerCommentIngestKey, outcome: {
53
+ status: 'applied';
54
+ } | {
55
+ status: 'failed';
56
+ error: string;
57
+ }, now: number): Promise<void>;
58
+ /** Read a marker back (diagnostics + tests). */
59
+ get(key: TrackerCommentIngestKey): Promise<TrackerCommentIngestRecord | null>;
60
+ }
61
+ //# sourceMappingURL=tracker-comment-ingest-repositories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracker-comment-ingest-repositories.d.ts","sourceRoot":"","sources":["../../src/ports/tracker-comment-ingest-repositories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAuBxD,+CAA+C;AAC/C,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAA;IACnB,oFAAoF;IACpF,MAAM,EAAE,cAAc,CAAA;IACtB,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAA;IAClB,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,2CAA2C;AAC3C,MAAM,MAAM,0BAA0B,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAA;AAEzE,MAAM,WAAW,0BAA2B,SAAQ,uBAAuB;IACzE,MAAM,EAAE,0BAA0B,CAAA;IAClC,0FAA0F;IAC1F,QAAQ,EAAE,MAAM,CAAA;IAChB,0FAA0F;IAC1F,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,mCAAmC,QAAc,CAAA;AAE9D,+FAA+F;AAC/F,MAAM,WAAW,+BAA+B;IAC9C,6CAA6C;IAC7C,GAAG,EAAE,MAAM,CAAA;IACX;;;;OAIG;IACH,oBAAoB,EAAE,MAAM,CAAA;CAC7B;AAED,MAAM,WAAW,8BAA8B;IAC7C;;;;;OAKG;IACH,KAAK,CAAC,GAAG,EAAE,uBAAuB,EAAE,MAAM,EAAE,+BAA+B,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC9F,6CAA6C;IAC7C,MAAM,CACJ,GAAG,EAAE,uBAAuB,EAC5B,OAAO,EAAE;QAAE,MAAM,EAAE,SAAS,CAAA;KAAE,GAAG;QAAE,MAAM,EAAE,QAAQ,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EACpE,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CAAA;IAChB,gDAAgD;IAChD,GAAG,CAAC,GAAG,EAAE,uBAAuB,GAAG,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAAC,CAAA;CAC9E"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * How long a `pending` claim may sit before another delivery may take it over.
3
+ *
4
+ * Sized well above a live ingest (which settles its row in seconds — it is a handful of local
5
+ * service calls plus one outbound comment) and well below a human's turnaround on the question,
6
+ * so a takeover cannot race a still-running apply. Mirrors
7
+ * {@link REVIEW_QUESTION_POST_CLAIM_TTL_MS}; the two windows are independent knobs on purpose,
8
+ * because they bound different work.
9
+ */
10
+ export const TRACKER_COMMENT_INGEST_CLAIM_TTL_MS = 10 * 60_000;
11
+ //# sourceMappingURL=tracker-comment-ingest-repositories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracker-comment-ingest-repositories.js","sourceRoot":"","sources":["../../src/ports/tracker-comment-ingest-repositories.ts"],"names":[],"mappings":"AA8CA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,EAAE,GAAG,MAAM,CAAA"}
@@ -0,0 +1,114 @@
1
+ import type { TaskSourceKind } from '../domain/types.js';
2
+ import type { TaskCredentials } from './task-source.js';
3
+ /** A raw inbound delivery, before any parsing. */
4
+ export interface TrackerWebhookDelivery {
5
+ /**
6
+ * The vendor's event-name header (`x-github-event`, `x-atlassian-webhook-identifier`,
7
+ * Linear's `linear-event`), or `''` when the vendor sends none. Providers that key off the
8
+ * payload instead may ignore it.
9
+ */
10
+ eventName: string;
11
+ /** Every request header, with LOWER-CASED keys (Hono's `c.req.header()` shape). */
12
+ headers: Record<string, string>;
13
+ /**
14
+ * The request bytes exactly as received. Verification runs over THESE — never over a
15
+ * re-serialised parse, which is a classic signature bypass.
16
+ */
17
+ raw: ArrayBuffer;
18
+ }
19
+ /** Who wrote a tracker comment, as much as the vendor tells us. */
20
+ export interface TrackerCommentAuthor {
21
+ /** The vendor's stable user id (GitHub node id, Jira `accountId`, Linear user id); null if absent. */
22
+ id: string | null;
23
+ /** The display handle / login the human would recognise (GitHub login, Jira/Linear display name). */
24
+ handle: string | null;
25
+ /** The author's email where the vendor exposes it (Jira/Linear); null on GitHub. */
26
+ email: string | null;
27
+ /**
28
+ * Whether the vendor marked the author as a bot / app. Load-bearing: the platform's OWN
29
+ * writeback comments come back as deliveries, so a bot author is dropped before any parsing —
30
+ * otherwise the follow-up comment feeds itself.
31
+ */
32
+ bot: boolean;
33
+ }
34
+ /** An issue was created or changed on the tracker. */
35
+ export interface TrackerIssueEvent {
36
+ kind: 'issue';
37
+ source: TaskSourceKind;
38
+ /** The source's canonical key for the issue — half of the task projection's natural key. */
39
+ externalId: string;
40
+ /** Coarse lifecycle action; `updated` covers label/type/field edits and reopen. */
41
+ action: 'created' | 'updated' | 'closed';
42
+ title: string;
43
+ labels: string[];
44
+ /** Issue type name where the vendor has one (Jira issue type / GitHub issue type); else null. */
45
+ issueType: string | null;
46
+ /** Canonical web URL, when the payload carries one. */
47
+ url: string | null;
48
+ }
49
+ /** A comment was added to an issue on the tracker. */
50
+ export interface TrackerCommentEvent {
51
+ kind: 'comment';
52
+ source: TaskSourceKind;
53
+ /** The issue the comment is on. */
54
+ externalId: string;
55
+ /** The vendor's comment id — the ingest claim's dedup key, so a redelivery applies once. */
56
+ commentId: string;
57
+ /** The comment body, as the vendor sent it (normalisation/capping happens at ingest). */
58
+ body: string;
59
+ author: TrackerCommentAuthor;
60
+ }
61
+ /** The neutral shape every provider maps its deliveries onto. */
62
+ export type TrackerWebhookEvent = TrackerIssueEvent | TrackerCommentEvent;
63
+ /**
64
+ * A task source's inbound-webhook capability. Optional on {@link TaskSourceProvider}: a source
65
+ * that cannot push (or whose push we don't support yet) simply omits it.
66
+ */
67
+ export interface TaskSourceWebhookAdapter {
68
+ /**
69
+ * Verify a delivery against the workspace connection's stored webhook secret, over the RAW
70
+ * bytes. MUST return false — never throw — for a missing, malformed or mismatched signature,
71
+ * and MUST fail closed when `secret` is empty (an empty HMAC key lets an attacker forge a
72
+ * signature over their own body).
73
+ */
74
+ verify(secret: string, delivery: TrackerWebhookDelivery): Promise<boolean>;
75
+ /**
76
+ * Map a VERIFIED delivery onto the neutral event, or null when it is a delivery kind this
77
+ * integration does not act on (a project update, a sprint change, a vendor ping). A null is
78
+ * acked, not an error — trackers send far more event kinds than we consume.
79
+ */
80
+ parse(delivery: TrackerWebhookDelivery): TrackerWebhookEvent | null;
81
+ }
82
+ /**
83
+ * The credential-bag key a connection's inbound webhook secret is stored under.
84
+ *
85
+ * It rides the existing sealed `credentials` bag rather than a new column: the bag is already
86
+ * encrypted at rest, already per `(workspace, source)`, and already the thing a provider is
87
+ * handed — so the secret needs no table, no migration and no second lifecycle. Providers MUST
88
+ * NOT treat it as a vendor credential (it is never sent to the vendor), which is why
89
+ * `normalizeConnection` implementations preserve it rather than reading it.
90
+ */
91
+ export declare const TRACKER_WEBHOOK_SECRET_KEY = "webhookSecret";
92
+ /**
93
+ * The credential-bag key holding the reply-identity allow-list: a comma-separated list of
94
+ * author handles / emails / vendor ids permitted to drive a parked review from a ticket
95
+ * comment. Empty or absent ⇒ any NON-BOT author is allowed, which is the right default for a
96
+ * private tracker and the wrong one for a public repo — hence the knob.
97
+ */
98
+ export declare const TRACKER_WEBHOOK_REPLY_ALLOW_KEY = "webhookReplyAllow";
99
+ /** Read the inbound webhook secret out of a connection's credential bag (`''` when unset). */
100
+ export declare function trackerWebhookSecret(credentials: TaskCredentials | undefined): string;
101
+ /**
102
+ * Every task source this build knows about — the runtime companion of the closed
103
+ * `taskSourceKindSchema` union, so the webhook receiver can reject an unknown `:source` path
104
+ * segment before touching the container.
105
+ *
106
+ * Kept in step with `@cat-factory/contracts`' `taskSourceKindSchema` by the `TaskSourceKind` type
107
+ * annotation: adding a member there without adding it here fails the typecheck at the
108
+ * `readonly TaskSourceKind[]` position. Widening the union for deployment-registered trackers is a
109
+ * deliberate follow-up (slice 4 of `docs/initiatives/tracker-webhook-intake.md`).
110
+ */
111
+ export declare const TASK_SOURCE_KINDS: readonly TaskSourceKind[];
112
+ /** Type guard: is `value` one of the known {@link TaskSourceKind}s? */
113
+ export declare function isTaskSourceKind(value: unknown): value is TaskSourceKind;
114
+ //# sourceMappingURL=tracker-webhook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracker-webhook.d.ts","sourceRoot":"","sources":["../../src/ports/tracker-webhook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAgBvD,kDAAkD;AAClD,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB,mFAAmF;IACnF,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B;;;OAGG;IACH,GAAG,EAAE,WAAW,CAAA;CACjB;AAED,mEAAmE;AACnE,MAAM,WAAW,oBAAoB;IACnC,sGAAsG;IACtG,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;IACjB,qGAAqG;IACrG,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,oFAAoF;IACpF,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB;;;;OAIG;IACH,GAAG,EAAE,OAAO,CAAA;CACb;AAED,sDAAsD;AACtD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,EAAE,cAAc,CAAA;IACtB,4FAA4F;IAC5F,UAAU,EAAE,MAAM,CAAA;IAClB,mFAAmF;IACnF,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAA;IACxC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,iGAAiG;IACjG,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,uDAAuD;IACvD,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CACnB;AAED,sDAAsD;AACtD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,SAAS,CAAA;IACf,MAAM,EAAE,cAAc,CAAA;IACtB,mCAAmC;IACnC,UAAU,EAAE,MAAM,CAAA;IAClB,4FAA4F;IAC5F,SAAS,EAAE,MAAM,CAAA;IACjB,yFAAyF;IACzF,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,oBAAoB,CAAA;CAC7B;AAED,iEAAiE;AACjE,MAAM,MAAM,mBAAmB,GAAG,iBAAiB,GAAG,mBAAmB,CAAA;AAEzE;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,sBAAsB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC1E;;;;OAIG;IACH,KAAK,CAAC,QAAQ,EAAE,sBAAsB,GAAG,mBAAmB,GAAG,IAAI,CAAA;CACpE;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B,kBAAkB,CAAA;AAEzD;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,sBAAsB,CAAA;AAElE,8FAA8F;AAC9F,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,eAAe,GAAG,SAAS,GAAG,MAAM,CAErF;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,cAAc,EAA0C,CAAA;AAEjG,uEAAuE;AACvE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAExE"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * The credential-bag key a connection's inbound webhook secret is stored under.
3
+ *
4
+ * It rides the existing sealed `credentials` bag rather than a new column: the bag is already
5
+ * encrypted at rest, already per `(workspace, source)`, and already the thing a provider is
6
+ * handed — so the secret needs no table, no migration and no second lifecycle. Providers MUST
7
+ * NOT treat it as a vendor credential (it is never sent to the vendor), which is why
8
+ * `normalizeConnection` implementations preserve it rather than reading it.
9
+ */
10
+ export const TRACKER_WEBHOOK_SECRET_KEY = 'webhookSecret';
11
+ /**
12
+ * The credential-bag key holding the reply-identity allow-list: a comma-separated list of
13
+ * author handles / emails / vendor ids permitted to drive a parked review from a ticket
14
+ * comment. Empty or absent ⇒ any NON-BOT author is allowed, which is the right default for a
15
+ * private tracker and the wrong one for a public repo — hence the knob.
16
+ */
17
+ export const TRACKER_WEBHOOK_REPLY_ALLOW_KEY = 'webhookReplyAllow';
18
+ /** Read the inbound webhook secret out of a connection's credential bag (`''` when unset). */
19
+ export function trackerWebhookSecret(credentials) {
20
+ return credentials?.[TRACKER_WEBHOOK_SECRET_KEY]?.trim() ?? '';
21
+ }
22
+ /**
23
+ * Every task source this build knows about — the runtime companion of the closed
24
+ * `taskSourceKindSchema` union, so the webhook receiver can reject an unknown `:source` path
25
+ * segment before touching the container.
26
+ *
27
+ * Kept in step with `@cat-factory/contracts`' `taskSourceKindSchema` by the `TaskSourceKind` type
28
+ * annotation: adding a member there without adding it here fails the typecheck at the
29
+ * `readonly TaskSourceKind[]` position. Widening the union for deployment-registered trackers is a
30
+ * deliberate follow-up (slice 4 of `docs/initiatives/tracker-webhook-intake.md`).
31
+ */
32
+ export const TASK_SOURCE_KINDS = ['jira', 'github', 'linear'];
33
+ /** Type guard: is `value` one of the known {@link TaskSourceKind}s? */
34
+ export function isTaskSourceKind(value) {
35
+ return typeof value === 'string' && TASK_SOURCE_KINDS.includes(value);
36
+ }
37
+ //# sourceMappingURL=tracker-webhook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracker-webhook.js","sourceRoot":"","sources":["../../src/ports/tracker-webhook.ts"],"names":[],"mappings":"AAsGA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,eAAe,CAAA;AAEzD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,mBAAmB,CAAA;AAElE,8FAA8F;AAC9F,MAAM,UAAU,oBAAoB,CAAC,WAAwC;IAC3E,OAAO,WAAW,EAAE,CAAC,0BAA0B,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;AAChE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAA8B,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAA;AAEjG,uEAAuE;AACvE,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,iBAAuC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAC9F,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/kernel",
3
- "version": "0.165.0",
3
+ "version": "0.166.0",
4
4
  "description": "Shared vocabulary, pure logic, and port interfaces for the Agent Architecture Board.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -26,7 +26,7 @@
26
26
  "dependencies": {
27
27
  "ai": "^7.0.37",
28
28
  "yaml": "^2.9.0",
29
- "@cat-factory/contracts": "0.171.0"
29
+ "@cat-factory/contracts": "0.172.0"
30
30
  },
31
31
  "devDependencies": {
32
32
  "@vitest/coverage-v8": "^4.1.10",