@cat-factory/kernel 0.164.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.
- package/dist/domain/workspace-cascade.d.ts +1 -1
- package/dist/domain/workspace-cascade.d.ts.map +1 -1
- package/dist/domain/workspace-cascade.js +1 -0
- package/dist/domain/workspace-cascade.js.map +1 -1
- package/dist/ports/environment-repositories.d.ts +1 -1
- package/dist/ports/index.d.ts +5 -1
- package/dist/ports/index.d.ts.map +1 -1
- package/dist/ports/index.js +2 -0
- package/dist/ports/index.js.map +1 -1
- package/dist/ports/issue-writeback.d.ts +68 -3
- package/dist/ports/issue-writeback.d.ts.map +1 -1
- package/dist/ports/repo-files.d.ts +9 -0
- package/dist/ports/repo-files.d.ts.map +1 -1
- package/dist/ports/repositories.d.ts +50 -1
- package/dist/ports/repositories.d.ts.map +1 -1
- package/dist/ports/task-source.d.ts +12 -0
- package/dist/ports/task-source.d.ts.map +1 -1
- package/dist/ports/tracker-comment-ingest-repositories.d.ts +61 -0
- package/dist/ports/tracker-comment-ingest-repositories.d.ts.map +1 -0
- package/dist/ports/tracker-comment-ingest-repositories.js +11 -0
- package/dist/ports/tracker-comment-ingest-repositories.js.map +1 -0
- package/dist/ports/tracker-webhook.d.ts +114 -0
- package/dist/ports/tracker-webhook.d.ts.map +1 -0
- package/dist/ports/tracker-webhook.js +37 -0
- package/dist/ports/tracker-webhook.js.map +1 -0
- package/package.json +2 -2
|
@@ -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"}
|
|
@@ -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 (
|
|
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
|
package/dist/ports/index.d.ts
CHANGED
|
@@ -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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"}
|
package/dist/ports/index.js
CHANGED
|
@@ -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
|
package/dist/ports/index.js.map
CHANGED
|
@@ -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;
|
|
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
|
|
62
|
-
*
|
|
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/
|
|
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,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAE/E,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;;;;;;;;;;;;;OAaG;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;IACrC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,kBAAkB,CAChB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE;QAAE,MAAM,EAAE,cAAc,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,EACrD,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,IAAI,CAAC,CAAA;CACjB;AAED,kFAAkF;AAClF,MAAM,WAAW,oBAAoB;IACnC,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAA;IACf,yFAAyF;IACzF,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,cAAc;IAC7B,gFAAgF;IAChF,QAAQ,EAAE,MAAM,CAAA;IAChB,8EAA8E;IAC9E,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,eAAe,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAA;IAC3E,kDAAkD;IAClD,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,mDAAmD;IACnD,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,iFAAiF;IACjF,WAAW,EAAE,qBAAqB,EAAE,CAAA;IACpC,uEAAuE;IACvE,QAAQ,EAAE,oBAAoB,EAAE,CAAA;CACjC"}
|
|
@@ -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,4 @@
|
|
|
1
|
-
import type { AgentFailure, Block, ExecutionInstance, ExecutionStatus, Pipeline, Workspace, WorkspaceAccessMode } from '../domain/types.js';
|
|
1
|
+
import type { AgentFailure, Block, BlockStatus, ExecutionInstance, ExecutionStatus, Pipeline, Workspace, WorkspaceAccessMode } from '../domain/types.js';
|
|
2
2
|
import type { WorkspaceAccessRow } from '../domain/workspace-access.js';
|
|
3
3
|
/**
|
|
4
4
|
* The set of boards a signed-in user may see, resolved SQL-side (never a JS post-filter —
|
|
@@ -141,6 +141,31 @@ export interface BlockRepository {
|
|
|
141
141
|
* load-and-count in JS (an unbounded external caller could otherwise start runs without limit).
|
|
142
142
|
*/
|
|
143
143
|
countActiveInternal(workspaceId: string): Promise<number>;
|
|
144
|
+
/**
|
|
145
|
+
* One BOUNDED page of a service frame's `task`-level blocks — the WHOLE task subtree (tasks
|
|
146
|
+
* directly under the frame AND under its modules), excluding the headless `internal` anchors.
|
|
147
|
+
* Backs the public API's paginated service-task list, which previously read the ENTIRE board
|
|
148
|
+
* (`listByWorkspace`) and filtered the subtree in JS — so a large board paid a full table read
|
|
149
|
+
* per external page request.
|
|
150
|
+
*
|
|
151
|
+
* The subtree resolves in ONE query: a `task` may only be parented by a `frame` or a `module`
|
|
152
|
+
* (enforced by `canReparent` on reparent AND by `BoardService.addTask` on create), so
|
|
153
|
+
* "parented by the frame, or by a module of the frame" is exhaustive — there is no deeper
|
|
154
|
+
* level to recurse through, which is what makes the general `descendantIds` walk (and its
|
|
155
|
+
* whole-board read) unnecessary here. The module leg is a SUBQUERY rather than an id list
|
|
156
|
+
* resolved by a prior read: D1 hard-rejects a statement with more than 100 bound parameters
|
|
157
|
+
* (see `chunkForIn`), so an `IN (...)` over a service's modules would 500 on a service that
|
|
158
|
+
* accumulated ~96 of them — and blueprint reconciliation only ever ADDS modules.
|
|
159
|
+
*
|
|
160
|
+
* Ordered by `id` ASC — blocks carry no creation timestamp, so id order is arbitrary but
|
|
161
|
+
* STABLE, which is what a keyset cursor actually needs. `afterId` is exclusive. `limit` is the
|
|
162
|
+
* row cap (the caller reads one extra row to detect a further page).
|
|
163
|
+
*/
|
|
164
|
+
listServiceTasks(workspaceId: string, frameId: string, opts: {
|
|
165
|
+
limit: number;
|
|
166
|
+
afterId?: string;
|
|
167
|
+
status?: BlockStatus;
|
|
168
|
+
}): Promise<Block[]>;
|
|
144
169
|
}
|
|
145
170
|
export interface PipelineRepository {
|
|
146
171
|
listByWorkspace(workspaceId: string): Promise<Pipeline[]>;
|
|
@@ -202,6 +227,30 @@ export interface ExecutionRepository {
|
|
|
202
227
|
* from all the services it mounts without one round-trip per mount. Empty input → empty.
|
|
203
228
|
*/
|
|
204
229
|
listByServices(serviceIds: string[]): Promise<ExecutionInstance[]>;
|
|
230
|
+
/**
|
|
231
|
+
* One BOUNDED page of the workspace's HEADLESS initiative runs — executions whose anchor block
|
|
232
|
+
* is `internal` — newest first (`created_at DESC, id DESC`). This is the list form of the
|
|
233
|
+
* `loadPublicJob` double-scope: the `internal` predicate is applied in SQL by joining the
|
|
234
|
+
* anchor block, so the public list can NEVER surface an ordinary board run that merely shares
|
|
235
|
+
* the workspace. Filtering in JS after an unbounded `listByWorkspace` would be both an
|
|
236
|
+
* unbounded read and a scoping rule enforced in the wrong layer.
|
|
237
|
+
*
|
|
238
|
+
* `cursor` is an EXCLUSIVE keyset on the same `(createdAt, id)` composite the ordering uses —
|
|
239
|
+
* not a bare `createdAt`, because a burst of concurrent starts shares a millisecond and a
|
|
240
|
+
* timestamp-only cursor would silently drop the tied rows from the next page. `statuses`
|
|
241
|
+
* filters on the INTERNAL execution status (the caller expands the coarse public status it
|
|
242
|
+
* exposes); `since` is an inclusive lower bound on `created_at`. `limit` caps the rows (the
|
|
243
|
+
* caller reads one extra to detect a further page).
|
|
244
|
+
*/
|
|
245
|
+
listInternal(workspaceId: string, opts: {
|
|
246
|
+
limit: number;
|
|
247
|
+
cursor?: {
|
|
248
|
+
createdAt: number;
|
|
249
|
+
id: string;
|
|
250
|
+
};
|
|
251
|
+
statuses?: ExecutionStatus[];
|
|
252
|
+
since?: number;
|
|
253
|
+
}): Promise<ExecutionInstance[]>;
|
|
205
254
|
get(workspaceId: string, id: string): Promise<ExecutionInstance | null>;
|
|
206
255
|
getByBlock(workspaceId: string, blockId: string): Promise<ExecutionInstance | null>;
|
|
207
256
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repositories.d.ts","sourceRoot":"","sources":["../../src/ports/repositories.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"repositories.d.ts","sourceRoot":"","sources":["../../src/ports/repositories.ts"],"names":[],"mappings":"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"}
|
|
@@ -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":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,oBAAoB,CAAA;
|
|
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.
|
|
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.
|
|
29
|
+
"@cat-factory/contracts": "0.172.0"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@vitest/coverage-v8": "^4.1.10",
|