@aligndottech/connector-core 0.1.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.
Files changed (106) hide show
  1. package/LICENSE +21 -0
  2. package/dist/fetchers/confluence.d.ts +9 -0
  3. package/dist/fetchers/confluence.d.ts.map +1 -0
  4. package/dist/fetchers/confluence.js +89 -0
  5. package/dist/fetchers/confluence.js.map +1 -0
  6. package/dist/fetchers/errors.d.ts +11 -0
  7. package/dist/fetchers/errors.d.ts.map +1 -0
  8. package/dist/fetchers/errors.js +15 -0
  9. package/dist/fetchers/errors.js.map +1 -0
  10. package/dist/fetchers/git.d.ts +23 -0
  11. package/dist/fetchers/git.d.ts.map +1 -0
  12. package/dist/fetchers/git.js +27 -0
  13. package/dist/fetchers/git.js.map +1 -0
  14. package/dist/fetchers/github.d.ts +9 -0
  15. package/dist/fetchers/github.d.ts.map +1 -0
  16. package/dist/fetchers/github.js +53 -0
  17. package/dist/fetchers/github.js.map +1 -0
  18. package/dist/fetchers/gitlab.d.ts +9 -0
  19. package/dist/fetchers/gitlab.d.ts.map +1 -0
  20. package/dist/fetchers/gitlab.js +33 -0
  21. package/dist/fetchers/gitlab.js.map +1 -0
  22. package/dist/fetchers/index.d.ts +20 -0
  23. package/dist/fetchers/index.d.ts.map +1 -0
  24. package/dist/fetchers/index.js +38 -0
  25. package/dist/fetchers/index.js.map +1 -0
  26. package/dist/fetchers/jira.d.ts +9 -0
  27. package/dist/fetchers/jira.d.ts.map +1 -0
  28. package/dist/fetchers/jira.js +73 -0
  29. package/dist/fetchers/jira.js.map +1 -0
  30. package/dist/fetchers/linear.d.ts +9 -0
  31. package/dist/fetchers/linear.d.ts.map +1 -0
  32. package/dist/fetchers/linear.js +71 -0
  33. package/dist/fetchers/linear.js.map +1 -0
  34. package/dist/fetchers/notion.d.ts +9 -0
  35. package/dist/fetchers/notion.d.ts.map +1 -0
  36. package/dist/fetchers/notion.js +85 -0
  37. package/dist/fetchers/notion.js.map +1 -0
  38. package/dist/fetchers/slack.d.ts +10 -0
  39. package/dist/fetchers/slack.d.ts.map +1 -0
  40. package/dist/fetchers/slack.js +103 -0
  41. package/dist/fetchers/slack.js.map +1 -0
  42. package/dist/fetchers/teams.d.ts +10 -0
  43. package/dist/fetchers/teams.d.ts.map +1 -0
  44. package/dist/fetchers/teams.js +76 -0
  45. package/dist/fetchers/teams.js.map +1 -0
  46. package/dist/fetchers/util/git.d.ts +22 -0
  47. package/dist/fetchers/util/git.d.ts.map +1 -0
  48. package/dist/fetchers/util/git.js +50 -0
  49. package/dist/fetchers/util/git.js.map +1 -0
  50. package/dist/fetchers/zoom.d.ts +9 -0
  51. package/dist/fetchers/zoom.d.ts.map +1 -0
  52. package/dist/fetchers/zoom.js +72 -0
  53. package/dist/fetchers/zoom.js.map +1 -0
  54. package/dist/index.d.ts +25 -0
  55. package/dist/index.d.ts.map +1 -0
  56. package/dist/index.js +33 -0
  57. package/dist/index.js.map +1 -0
  58. package/dist/parsers/CommandParser.d.ts +69 -0
  59. package/dist/parsers/CommandParser.d.ts.map +1 -0
  60. package/dist/parsers/CommandParser.js +233 -0
  61. package/dist/parsers/CommandParser.js.map +1 -0
  62. package/dist/services/GatewayClient.d.ts +147 -0
  63. package/dist/services/GatewayClient.d.ts.map +1 -0
  64. package/dist/services/GatewayClient.js +411 -0
  65. package/dist/services/GatewayClient.js.map +1 -0
  66. package/dist/services/StreamingResponseConsumer.d.ts +28 -0
  67. package/dist/services/StreamingResponseConsumer.d.ts.map +1 -0
  68. package/dist/services/StreamingResponseConsumer.js +58 -0
  69. package/dist/services/StreamingResponseConsumer.js.map +1 -0
  70. package/dist/services/TelemetryClient.d.ts +116 -0
  71. package/dist/services/TelemetryClient.d.ts.map +1 -0
  72. package/dist/services/TelemetryClient.js +234 -0
  73. package/dist/services/TelemetryClient.js.map +1 -0
  74. package/dist/testing/MockGatewayClient.d.ts +51 -0
  75. package/dist/testing/MockGatewayClient.d.ts.map +1 -0
  76. package/dist/testing/MockGatewayClient.js +84 -0
  77. package/dist/testing/MockGatewayClient.js.map +1 -0
  78. package/dist/testing/fixtures.d.ts +49 -0
  79. package/dist/testing/fixtures.d.ts.map +1 -0
  80. package/dist/testing/fixtures.js +59 -0
  81. package/dist/testing/fixtures.js.map +1 -0
  82. package/dist/tiers/capabilities.d.ts +18 -0
  83. package/dist/tiers/capabilities.d.ts.map +1 -0
  84. package/dist/tiers/capabilities.js +99 -0
  85. package/dist/tiers/capabilities.js.map +1 -0
  86. package/dist/types/fetcher.d.ts +59 -0
  87. package/dist/types/fetcher.d.ts.map +1 -0
  88. package/dist/types/fetcher.js +15 -0
  89. package/dist/types/fetcher.js.map +1 -0
  90. package/dist/types/flow.d.ts +190 -0
  91. package/dist/types/flow.d.ts.map +1 -0
  92. package/dist/types/flow.js +24 -0
  93. package/dist/types/flow.js.map +1 -0
  94. package/dist/types/index.d.ts +707 -0
  95. package/dist/types/index.d.ts.map +1 -0
  96. package/dist/types/index.js +13 -0
  97. package/dist/types/index.js.map +1 -0
  98. package/dist/utils/requestContext.d.ts +42 -0
  99. package/dist/utils/requestContext.d.ts.map +1 -0
  100. package/dist/utils/requestContext.js +56 -0
  101. package/dist/utils/requestContext.js.map +1 -0
  102. package/dist/utils/validation.d.ts +25 -0
  103. package/dist/utils/validation.d.ts.map +1 -0
  104. package/dist/utils/validation.js +31 -0
  105. package/dist/utils/validation.js.map +1 -0
  106. package/package.json +51 -0
@@ -0,0 +1,59 @@
1
+ /**
2
+ * The connector read contract.
3
+ *
4
+ * A `ConnectorFetcher` is the single thing a contributor implements to add a new
5
+ * connector: given a read-only token it returns normalized {@link FetcherItem}s.
6
+ * The SAME implementation drives two surfaces:
7
+ * - the free Align CLI, which calls {@link ConnectorFetcher.fetch} directly, and
8
+ * - the paid discover scan, which calls {@link ConnectorFetcher.fetchPage} from
9
+ * inside Align's (closed) queue/fan-out orchestration via the connector's
10
+ * `fetch_historical` MCP tool.
11
+ *
12
+ * Nothing about how the scan is orchestrated (queues, fan-out, dedup) lives here.
13
+ */
14
+ /** The human behind a decision - "who to talk to". */
15
+ export interface DecisionAuthor {
16
+ name: string;
17
+ handle?: string;
18
+ email?: string;
19
+ url?: string;
20
+ }
21
+ /** A normalized, source-agnostic item produced by a fetcher. */
22
+ export interface FetcherItem {
23
+ source_url: string;
24
+ platform: string;
25
+ raw_text: string;
26
+ title?: string;
27
+ /** Who to talk to about this item (decision owner / author), when resolvable. */
28
+ author?: DecisionAuthor;
29
+ }
30
+ /**
31
+ * Inputs to a fetch. `token` + `limit` cover the CLI personal import; `cursor`
32
+ * and the `since`/`until` window let the paid scan page through larger ranges.
33
+ * Per-provider extras (e.g. `cloudId`, `siteBase`, `domain`) ride on the index
34
+ * signature.
35
+ */
36
+ export interface ConnectorFetcherOptions {
37
+ token: string;
38
+ /** Max items to return (CLI personal cap). */
39
+ limit?: number;
40
+ /** Opaque continuation token for paged fetches (paid scan). */
41
+ cursor?: string;
42
+ /** ISO-8601 lower bound (inclusive) for the fetch window. */
43
+ since?: string;
44
+ /** ISO-8601 upper bound (exclusive) for the fetch window. */
45
+ until?: string;
46
+ [key: string]: unknown;
47
+ }
48
+ /** One page of results plus an optional continuation cursor. */
49
+ export interface FetcherPage {
50
+ items: FetcherItem[];
51
+ nextCursor?: string;
52
+ }
53
+ export interface ConnectorFetcher {
54
+ /** Single-shot read used by the CLI personal import. */
55
+ fetch(opts: ConnectorFetcherOptions): Promise<FetcherItem[]>;
56
+ /** Optional paged read used by the discover scan. Defaults can wrap `fetch`. */
57
+ fetchPage?(opts: ConnectorFetcherOptions): Promise<FetcherPage>;
58
+ }
59
+ //# sourceMappingURL=fetcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetcher.d.ts","sourceRoot":"","sources":["../../src/types/fetcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,sDAAsD;AACtD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,gEAAgE;AAChE,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAED;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,gEAAgE;AAChE,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,wDAAwD;IACxD,KAAK,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC7D,gFAAgF;IAChF,SAAS,CAAC,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACjE"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * The connector read contract.
3
+ *
4
+ * A `ConnectorFetcher` is the single thing a contributor implements to add a new
5
+ * connector: given a read-only token it returns normalized {@link FetcherItem}s.
6
+ * The SAME implementation drives two surfaces:
7
+ * - the free Align CLI, which calls {@link ConnectorFetcher.fetch} directly, and
8
+ * - the paid discover scan, which calls {@link ConnectorFetcher.fetchPage} from
9
+ * inside Align's (closed) queue/fan-out orchestration via the connector's
10
+ * `fetch_historical` MCP tool.
11
+ *
12
+ * Nothing about how the scan is orchestrated (queues, fan-out, dedup) lives here.
13
+ */
14
+ export {};
15
+ //# sourceMappingURL=fetcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetcher.js","sourceRoot":"","sources":["../../src/types/fetcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG"}
@@ -0,0 +1,190 @@
1
+ /**
2
+ * Decision-flow interfaces - the contracts a connector implements to participate
3
+ * in real-time decision capture.
4
+ *
5
+ * These are INTERFACES only. The orchestration engine that drives them
6
+ * (UnifiedConnectorFlow) and the concrete flow services (DecisionFlowService,
7
+ * etc.) are proprietary and live in Align's hosted platform - a connector author
8
+ * implements the interfaces here and the hosted engine calls them.
9
+ */
10
+ import type { ConnectorTier as TierConnectorTier } from '../tiers/capabilities.js';
11
+ import type { DecisionOperationResult, DecisionPlatform, ExtractedDecision, IngestResponse, MultiDecisionCommand, MultiDecisionReviewState, PlatformContext, RelatedDecision } from './index.js';
12
+ /**
13
+ * Platform-specific message/card that can be posted.
14
+ * Each platform returns its native format (Slack blocks, Adaptive Card, Markdown, etc.)
15
+ */
16
+ export type PlatformMessage = unknown;
17
+ /**
18
+ * Interface for platform-specific alert formatting.
19
+ * Each connector implements this with their native card/message format.
20
+ */
21
+ export interface DecisionAlertFormatter {
22
+ formatDecisionCard(params: {
23
+ decisionId: string;
24
+ title: string;
25
+ summary: string;
26
+ confidence?: number;
27
+ detailsUrl?: string;
28
+ }): Promise<PlatformMessage>;
29
+ formatRelatedDecisionAlert(params: {
30
+ currentDecisionId: string;
31
+ currentDecisionTitle?: string;
32
+ related: RelatedDecision;
33
+ detailsUrl?: string;
34
+ }): Promise<PlatformMessage>;
35
+ formatConsolidatedDuplicatesAlert(params: {
36
+ currentDecisionId: string;
37
+ currentDecisionTitle?: string;
38
+ duplicates: RelatedDecision[];
39
+ }): Promise<PlatformMessage>;
40
+ formatAmbiguityAlert(params: {
41
+ score: number;
42
+ reasons?: string[];
43
+ }): Promise<PlatformMessage>;
44
+ formatProcessingMessage(): PlatformMessage;
45
+ formatErrorMessage(title: string, message: string): PlatformMessage;
46
+ formatOperationResult(result: DecisionOperationResult): PlatformMessage;
47
+ }
48
+ /**
49
+ * Interface for platform-specific message posting.
50
+ */
51
+ export interface MessagePoster {
52
+ postMessage(message: PlatformMessage): Promise<string>;
53
+ updateMessage?(messageId: string, message: PlatformMessage): Promise<void>;
54
+ }
55
+ /**
56
+ * State stored for interactive alert resolution.
57
+ */
58
+ export interface DecisionFlowConversationState {
59
+ action: 'awaiting_conflict_action' | 'awaiting_duplicate_action' | 'awaiting_supersession_action';
60
+ currentDecisionId: string;
61
+ relatedDecisionId: string;
62
+ relatedDecisionTitle?: string;
63
+ relationship: 'conflicts_with' | 'duplicates' | 'supersedes';
64
+ allRelatedDecisions?: Array<{
65
+ id: string;
66
+ title?: string;
67
+ relationship: 'conflicts_with' | 'duplicates' | 'supersedes';
68
+ }>;
69
+ }
70
+ /**
71
+ * Commands for decision flow resolution.
72
+ */
73
+ export type DecisionFlowCommand = {
74
+ type: 'merge_duplicate';
75
+ } | {
76
+ type: 'merge_all_duplicates';
77
+ } | {
78
+ type: 'keep_current';
79
+ } | {
80
+ type: 'keep_related';
81
+ } | {
82
+ type: 'keep_both';
83
+ } | {
84
+ type: 'accept_supersession';
85
+ } | {
86
+ type: 'reject_supersession';
87
+ } | {
88
+ type: 'skip';
89
+ };
90
+ /**
91
+ * Interface for conversation state storage.
92
+ * Each platform has its own state storage.
93
+ */
94
+ export interface IDecisionFlowStateRepository {
95
+ saveAlertState(params: {
96
+ tenantId: string;
97
+ messageId: string;
98
+ currentDecisionId: string;
99
+ state: DecisionFlowConversationState;
100
+ expiresAt: Date;
101
+ }): Promise<void>;
102
+ getAlertState(params: {
103
+ tenantId: string;
104
+ messageId: string;
105
+ }): Promise<DecisionFlowConversationState | null>;
106
+ deleteAlertState(params: {
107
+ tenantId: string;
108
+ messageId: string;
109
+ }): Promise<void>;
110
+ }
111
+ /**
112
+ * Manages multi-decision review state.
113
+ */
114
+ export interface IMultiDecisionStateRepository {
115
+ saveState(conversationId: string, state: MultiDecisionReviewState): Promise<void>;
116
+ getState(conversationId: string): Promise<MultiDecisionReviewState | null>;
117
+ deleteState(conversationId: string): Promise<void>;
118
+ }
119
+ /**
120
+ * Manages conversation state for issue linking.
121
+ */
122
+ export interface IConversationStateRepository {
123
+ saveState(conversationId: string, state: unknown): Promise<void>;
124
+ getState(conversationId: string): Promise<unknown | null>;
125
+ deleteState(conversationId: string): Promise<void>;
126
+ }
127
+ /**
128
+ * Interface for the decision flow service (alert orchestration + command handling).
129
+ * Implemented by the hosted DecisionFlowService.
130
+ */
131
+ export interface IDecisionFlowService {
132
+ processIngestResponse(tenantId: string, response: IngestResponse, poster: MessagePoster, options?: {
133
+ decisionTitle?: string;
134
+ skipDecisionCard?: boolean;
135
+ }): Promise<void>;
136
+ executeCommand(tenantId: string, command: DecisionFlowCommand, state: DecisionFlowConversationState): Promise<DecisionOperationResult>;
137
+ }
138
+ /**
139
+ * Result of multi-decision flow command.
140
+ */
141
+ export interface MultiDecisionFlowResult {
142
+ handled: boolean;
143
+ [key: string]: unknown;
144
+ }
145
+ /**
146
+ * Interface for the multi-decision flow service (transcript review carousel).
147
+ * Implemented by the hosted MultiDecisionFlowService.
148
+ */
149
+ export interface IMultiDecisionFlowService {
150
+ parseCommand(text: string): MultiDecisionCommand | null;
151
+ handleCommand(context: PlatformContext, command: MultiDecisionCommand, stateRepo: IMultiDecisionStateRepository): Promise<MultiDecisionFlowResult>;
152
+ }
153
+ /**
154
+ * Interface for the conversation flow service (issue linking state machine).
155
+ * Implemented by the hosted ConversationFlowService.
156
+ */
157
+ export interface IConversationFlowService {
158
+ setupInitialState(context: PlatformContext, response: IngestResponse, title: string): Promise<void>;
159
+ handleMessage(context: PlatformContext, text: string): Promise<{
160
+ handled: boolean;
161
+ action?: unknown;
162
+ }>;
163
+ }
164
+ export type ConnectorTier = TierConnectorTier;
165
+ export interface ConnectorCapabilities {
166
+ tier: ConnectorTier;
167
+ platform: DecisionPlatform;
168
+ supportsTranscripts: boolean;
169
+ supportsIssueCreation: boolean;
170
+ }
171
+ export interface TranscriptAnalysisResult {
172
+ handled: boolean;
173
+ decisions?: ExtractedDecision[];
174
+ decisionCount?: number;
175
+ error?: string;
176
+ }
177
+ export interface DecisionCaptureResult {
178
+ handled: boolean;
179
+ decisionId?: string;
180
+ error?: string;
181
+ }
182
+ /**
183
+ * No-op state repository for connectors that don't need interactive buttons.
184
+ */
185
+ export declare class NoOpDecisionFlowStateRepository implements IDecisionFlowStateRepository {
186
+ saveAlertState(): Promise<void>;
187
+ getAlertState(): Promise<null>;
188
+ deleteAlertState(): Promise<void>;
189
+ }
190
+ //# sourceMappingURL=flow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../src/types/flow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Decision-flow interfaces - the contracts a connector implements to participate
3
+ * in real-time decision capture.
4
+ *
5
+ * These are INTERFACES only. The orchestration engine that drives them
6
+ * (UnifiedConnectorFlow) and the concrete flow services (DecisionFlowService,
7
+ * etc.) are proprietary and live in Align's hosted platform - a connector author
8
+ * implements the interfaces here and the hosted engine calls them.
9
+ */
10
+ /**
11
+ * No-op state repository for connectors that don't need interactive buttons.
12
+ */
13
+ export class NoOpDecisionFlowStateRepository {
14
+ async saveAlertState() {
15
+ /* no-op */
16
+ }
17
+ async getAlertState() {
18
+ return null;
19
+ }
20
+ async deleteAlertState() {
21
+ /* no-op */
22
+ }
23
+ }
24
+ //# sourceMappingURL=flow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow.js","sourceRoot":"","sources":["../../src/types/flow.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAuNH;;GAEG;AACH,MAAM,OAAO,+BAA+B;IAC1C,KAAK,CAAC,cAAc;QAClB,WAAW;IACb,CAAC;IACD,KAAK,CAAC,aAAa;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,KAAK,CAAC,gBAAgB;QACpB,WAAW;IACb,CAAC;CACF"}