@codeam/shared 2.61.29 → 2.61.31
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/index.d.mts +37 -4
- package/dist/index.d.ts +37 -4
- package/dist/index.js +64 -4
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +64 -4
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -351,12 +351,36 @@ declare function isHeadroomWrappable(agentId: string): boolean;
|
|
|
351
351
|
* ubiquitous CLI for the tool → `cliEnv`; otherwise → `mcp`. A tool may
|
|
352
352
|
* declare both.
|
|
353
353
|
*/
|
|
354
|
-
type IntegrationId = 'jira' | 'sentry' | 'linear' | 'slack' | 'notion' | 'azure_devops' | 'figma' | 'microsoft_teams' | 'google_chat' | 'discord';
|
|
355
|
-
|
|
354
|
+
type IntegrationId = 'jira' | 'sentry' | 'linear' | 'slack' | 'notion' | 'azure_devops' | 'figma' | 'microsoft_teams' | 'google_chat' | 'discord' | 'github_issues' | 'github';
|
|
355
|
+
/**
|
|
356
|
+
* `derived` = no link flow of its own: the credential is BORROWED live from a
|
|
357
|
+
* connection the user already made elsewhere (see `derivedFrom`). The backend
|
|
358
|
+
* resolves it per call instead of vaulting a copy, so it can never go stale and
|
|
359
|
+
* there is exactly one source of truth. Such an integration is "linked" iff its
|
|
360
|
+
* source connection exists, and has no Connect/Disconnect action of its own.
|
|
361
|
+
*/
|
|
362
|
+
/**
|
|
363
|
+
* `connection` = the integration IS a standing connection whose credential lives
|
|
364
|
+
* in a `ProviderToken` row rather than the integrations vault, and whose
|
|
365
|
+
* connect/disconnect flow is owned by ANOTHER module (GitHub's OAuth belongs to
|
|
366
|
+
* the codespaces rail). It renders and acts like any other connector — the only
|
|
367
|
+
* difference is which code performs the link.
|
|
368
|
+
*
|
|
369
|
+
* Contrast `derived`, which BORROWS such a connection and owns no actions at
|
|
370
|
+
* all. Both resolve their credential from the same place; only `derived` has no
|
|
371
|
+
* link flow of its own.
|
|
372
|
+
*/
|
|
373
|
+
type IntegrationAuthKind = 'oauth_redirect' | 'oauth_device' | 'api_key' | 'derived' | 'connection';
|
|
374
|
+
/**
|
|
375
|
+
* A standing connection whose credential lives in a `ProviderToken` row — either
|
|
376
|
+
* because the integration IS that connection (`kind: 'connection'`) or because
|
|
377
|
+
* it borrows it (`kind: 'derived'`). Its own id doubles as the source name.
|
|
378
|
+
*/
|
|
379
|
+
type DerivedCredentialSource = 'github';
|
|
356
380
|
/** Grouping used by category-driven surfaces (Start-from-Work-Item picker,
|
|
357
381
|
* catalog sections). A future tracker integration joins those features with
|
|
358
382
|
* ZERO feature code — they resolve sources from the registry by category. */
|
|
359
|
-
type IntegrationCategory = 'tracker' | 'design' | 'comms' | 'docs' | 'observability';
|
|
383
|
+
type IntegrationCategory = 'version_control' | 'tracker' | 'design' | 'comms' | 'docs' | 'observability';
|
|
360
384
|
/**
|
|
361
385
|
* One user-entered field for an `api_key` integration (no browser OAuth — the
|
|
362
386
|
* user pastes credentials directly, e.g. a PAT + an org URL). The mobile form
|
|
@@ -402,6 +426,15 @@ interface IntegrationDefinition {
|
|
|
402
426
|
scopes?: string[];
|
|
403
427
|
/** For `kind: 'api_key'` — the credential fields the user pastes (no OAuth). */
|
|
404
428
|
fields?: IntegrationApiKeyField[];
|
|
429
|
+
/** For `kind: 'derived'` — the connection whose credential this borrows.
|
|
430
|
+
* Drives both the backend's credential resolution and the client's
|
|
431
|
+
* "no connect action, managed by <source>" rendering. */
|
|
432
|
+
derivedFrom?: DerivedCredentialSource;
|
|
433
|
+
/** For `kind: 'connection'` — the connection this integration IS. Same
|
|
434
|
+
* credential lookup as `derivedFrom`, but this one owns its link flow
|
|
435
|
+
* (performed by the module that owns the connection, not by the generic
|
|
436
|
+
* integrations OAuth path). */
|
|
437
|
+
connection?: DerivedCredentialSource;
|
|
405
438
|
};
|
|
406
439
|
delivery: IntegrationDelivery;
|
|
407
440
|
}
|
|
@@ -1489,4 +1522,4 @@ type UserEventName = (typeof USER_EVENTS)[keyof typeof USER_EVENTS];
|
|
|
1489
1522
|
*/
|
|
1490
1523
|
declare const PREVIEW_DETECT_PROMPT: string;
|
|
1491
1524
|
|
|
1492
|
-
export { AGENT_REGISTRY, type AgentAuth, type AgentAuthKind, type AgentId, type AgentMetadata, type AgentMode, type AgentModel, type AgentReviewFinding, type AgentReviewPlan, type AgentReviewReport, type AnswerResolvedEvent, type AwaitingAnswerEvent, type BeadsActionCommand, type BeadsActionKind, type BeadsActionPayload, type BeadsActionRequest, type BeadsActionType, type BeadsConfigureAction, type BeadsDependencyDto, type BeadsDependencyKind, type BeadsIngestPayload, type BeadsIssueDto, type BeadsIssueStatus, type BeadsMemoryDto, type BeadsProjectDto, type BeadsProvisioningPayload, type BeadsProvisioningStatus, type BeadsSnapshotDto, type BeadsStatus, type BeadsStatusState, type BeadsStatusSummary, type BlameLineWire, type BrokeredIntegrationToken, type ChromeStep, type ChromeToolType, type CommitEntryWire, DEFAULT_API_BASE_URL, DEV_API_BASE_URL, type EnvVar, type FileBlameEvent, type FileChangeStatus, type FileChangedEvent, type FileHistoryEvent, type FileReviewStatus, HEADROOM_BACKEND_ENV, HEADROOM_EXTRAS_BY_SURFACE, HEADROOM_MODELS, HEADROOM_PIP_COMPANIONS, HEADROOM_PROXY_PORT, HEARTBEAT_INTERVAL_MS_DEFAULT, HOUSE_AGENT_ID, HOUSE_AGENT_NAME, HOUSE_AGENT_PROVIDER, HOUSE_AGENT_SUBTITLE, HOUSE_AGENT_VENDOR, type HeadroomBudgetCommand, type HeadroomBudgetPeriod, type HeadroomBudgetUsage, type HeadroomKind, type HeadroomModelSpec, type HeadroomPythonRenderOpts, type HeadroomStatus, type HeadroomStep, type HeadroomSurface, type HunkLineType, INTEGRATION_BRANDING, INTEGRATION_REGISTRY, INTERNAL_TO_PUBLIC, type InputSuggestionChunk, type IntegrationApiKeyField, type IntegrationAuthKind, type IntegrationBranding, type IntegrationCategory, type IntegrationDefinition, type IntegrationDelivery, type IntegrationHealth, type IntegrationId, type IntegrationMcpDelivery, type IntegrationStatus, type IntegrationsManifest, type IntegrationsManifestEntry, LINKED_AGENT_IDS, type LinkedAgentId, MODEL_CONTEXT_WINDOW, MODEL_PRICING, type ModelPricing, type NormalizedMessage, OBSERVER_BRIDGE_PORT, PREVIEW_DETECT_PROMPT, PROTOCOL_VERSION, PUBLIC_TO_INTERNAL, type PendingReviewHunkEvent, type PendingReviewHunkLine, type PrCheck, type PrRef, type PrReviewEntry, type PrReviewVerdict, type PreviewDetection, type PreviewErrorStage, type PreviewState, type PreviewStatus, type PullRequestDetail, type PullRequestSummary, type RemoteCommand, SKILL_REGISTRY, SSE_SOCKET_TIMEOUT_MS, type SelectPrompt, type SkillDefinition, type SkillDelivery, type SkillFileDelivery, type SkillId, type SkillRail, type SkillsManifest, type SkillsManifestEntry, type StreamingChunkEvent, type StreamingChunkKind, TERMINAL_AGENT_PREFIX, UNKNOWN_MODEL_PRICING, UPCOMING_INTEGRATION_IDS, USER_EVENTS, type UserEventName, getAgent, getContextWindow, getEnabledAgents, getEnabledIntegrations, getIntegration, getIntegrationBranding, getIntegrationsByCategory, getPricing, getSkillDefinition, headroomKindFor, headroomModelPredownloadScript, headroomPipPackage, headroomSnapshotDownloadLine, internalToPublic, isHeadroomWrappable, isKnownAgentId, isKnownIntegrationId, isKnownModel, isLinkedAgentId, isSkillId, normalizeAgentId, publicToInternal, renderToLines, resolveApiBaseUrl, skillHasRail, toRemoteCommand, tryGetContextWindow };
|
|
1525
|
+
export { AGENT_REGISTRY, type AgentAuth, type AgentAuthKind, type AgentId, type AgentMetadata, type AgentMode, type AgentModel, type AgentReviewFinding, type AgentReviewPlan, type AgentReviewReport, type AnswerResolvedEvent, type AwaitingAnswerEvent, type BeadsActionCommand, type BeadsActionKind, type BeadsActionPayload, type BeadsActionRequest, type BeadsActionType, type BeadsConfigureAction, type BeadsDependencyDto, type BeadsDependencyKind, type BeadsIngestPayload, type BeadsIssueDto, type BeadsIssueStatus, type BeadsMemoryDto, type BeadsProjectDto, type BeadsProvisioningPayload, type BeadsProvisioningStatus, type BeadsSnapshotDto, type BeadsStatus, type BeadsStatusState, type BeadsStatusSummary, type BlameLineWire, type BrokeredIntegrationToken, type ChromeStep, type ChromeToolType, type CommitEntryWire, DEFAULT_API_BASE_URL, DEV_API_BASE_URL, type DerivedCredentialSource, type EnvVar, type FileBlameEvent, type FileChangeStatus, type FileChangedEvent, type FileHistoryEvent, type FileReviewStatus, HEADROOM_BACKEND_ENV, HEADROOM_EXTRAS_BY_SURFACE, HEADROOM_MODELS, HEADROOM_PIP_COMPANIONS, HEADROOM_PROXY_PORT, HEARTBEAT_INTERVAL_MS_DEFAULT, HOUSE_AGENT_ID, HOUSE_AGENT_NAME, HOUSE_AGENT_PROVIDER, HOUSE_AGENT_SUBTITLE, HOUSE_AGENT_VENDOR, type HeadroomBudgetCommand, type HeadroomBudgetPeriod, type HeadroomBudgetUsage, type HeadroomKind, type HeadroomModelSpec, type HeadroomPythonRenderOpts, type HeadroomStatus, type HeadroomStep, type HeadroomSurface, type HunkLineType, INTEGRATION_BRANDING, INTEGRATION_REGISTRY, INTERNAL_TO_PUBLIC, type InputSuggestionChunk, type IntegrationApiKeyField, type IntegrationAuthKind, type IntegrationBranding, type IntegrationCategory, type IntegrationDefinition, type IntegrationDelivery, type IntegrationHealth, type IntegrationId, type IntegrationMcpDelivery, type IntegrationStatus, type IntegrationsManifest, type IntegrationsManifestEntry, LINKED_AGENT_IDS, type LinkedAgentId, MODEL_CONTEXT_WINDOW, MODEL_PRICING, type ModelPricing, type NormalizedMessage, OBSERVER_BRIDGE_PORT, PREVIEW_DETECT_PROMPT, PROTOCOL_VERSION, PUBLIC_TO_INTERNAL, type PendingReviewHunkEvent, type PendingReviewHunkLine, type PrCheck, type PrRef, type PrReviewEntry, type PrReviewVerdict, type PreviewDetection, type PreviewErrorStage, type PreviewState, type PreviewStatus, type PullRequestDetail, type PullRequestSummary, type RemoteCommand, SKILL_REGISTRY, SSE_SOCKET_TIMEOUT_MS, type SelectPrompt, type SkillDefinition, type SkillDelivery, type SkillFileDelivery, type SkillId, type SkillRail, type SkillsManifest, type SkillsManifestEntry, type StreamingChunkEvent, type StreamingChunkKind, TERMINAL_AGENT_PREFIX, UNKNOWN_MODEL_PRICING, UPCOMING_INTEGRATION_IDS, USER_EVENTS, type UserEventName, getAgent, getContextWindow, getEnabledAgents, getEnabledIntegrations, getIntegration, getIntegrationBranding, getIntegrationsByCategory, getPricing, getSkillDefinition, headroomKindFor, headroomModelPredownloadScript, headroomPipPackage, headroomSnapshotDownloadLine, internalToPublic, isHeadroomWrappable, isKnownAgentId, isKnownIntegrationId, isKnownModel, isLinkedAgentId, isSkillId, normalizeAgentId, publicToInternal, renderToLines, resolveApiBaseUrl, skillHasRail, toRemoteCommand, tryGetContextWindow };
|
package/dist/index.d.ts
CHANGED
|
@@ -351,12 +351,36 @@ declare function isHeadroomWrappable(agentId: string): boolean;
|
|
|
351
351
|
* ubiquitous CLI for the tool → `cliEnv`; otherwise → `mcp`. A tool may
|
|
352
352
|
* declare both.
|
|
353
353
|
*/
|
|
354
|
-
type IntegrationId = 'jira' | 'sentry' | 'linear' | 'slack' | 'notion' | 'azure_devops' | 'figma' | 'microsoft_teams' | 'google_chat' | 'discord';
|
|
355
|
-
|
|
354
|
+
type IntegrationId = 'jira' | 'sentry' | 'linear' | 'slack' | 'notion' | 'azure_devops' | 'figma' | 'microsoft_teams' | 'google_chat' | 'discord' | 'github_issues' | 'github';
|
|
355
|
+
/**
|
|
356
|
+
* `derived` = no link flow of its own: the credential is BORROWED live from a
|
|
357
|
+
* connection the user already made elsewhere (see `derivedFrom`). The backend
|
|
358
|
+
* resolves it per call instead of vaulting a copy, so it can never go stale and
|
|
359
|
+
* there is exactly one source of truth. Such an integration is "linked" iff its
|
|
360
|
+
* source connection exists, and has no Connect/Disconnect action of its own.
|
|
361
|
+
*/
|
|
362
|
+
/**
|
|
363
|
+
* `connection` = the integration IS a standing connection whose credential lives
|
|
364
|
+
* in a `ProviderToken` row rather than the integrations vault, and whose
|
|
365
|
+
* connect/disconnect flow is owned by ANOTHER module (GitHub's OAuth belongs to
|
|
366
|
+
* the codespaces rail). It renders and acts like any other connector — the only
|
|
367
|
+
* difference is which code performs the link.
|
|
368
|
+
*
|
|
369
|
+
* Contrast `derived`, which BORROWS such a connection and owns no actions at
|
|
370
|
+
* all. Both resolve their credential from the same place; only `derived` has no
|
|
371
|
+
* link flow of its own.
|
|
372
|
+
*/
|
|
373
|
+
type IntegrationAuthKind = 'oauth_redirect' | 'oauth_device' | 'api_key' | 'derived' | 'connection';
|
|
374
|
+
/**
|
|
375
|
+
* A standing connection whose credential lives in a `ProviderToken` row — either
|
|
376
|
+
* because the integration IS that connection (`kind: 'connection'`) or because
|
|
377
|
+
* it borrows it (`kind: 'derived'`). Its own id doubles as the source name.
|
|
378
|
+
*/
|
|
379
|
+
type DerivedCredentialSource = 'github';
|
|
356
380
|
/** Grouping used by category-driven surfaces (Start-from-Work-Item picker,
|
|
357
381
|
* catalog sections). A future tracker integration joins those features with
|
|
358
382
|
* ZERO feature code — they resolve sources from the registry by category. */
|
|
359
|
-
type IntegrationCategory = 'tracker' | 'design' | 'comms' | 'docs' | 'observability';
|
|
383
|
+
type IntegrationCategory = 'version_control' | 'tracker' | 'design' | 'comms' | 'docs' | 'observability';
|
|
360
384
|
/**
|
|
361
385
|
* One user-entered field for an `api_key` integration (no browser OAuth — the
|
|
362
386
|
* user pastes credentials directly, e.g. a PAT + an org URL). The mobile form
|
|
@@ -402,6 +426,15 @@ interface IntegrationDefinition {
|
|
|
402
426
|
scopes?: string[];
|
|
403
427
|
/** For `kind: 'api_key'` — the credential fields the user pastes (no OAuth). */
|
|
404
428
|
fields?: IntegrationApiKeyField[];
|
|
429
|
+
/** For `kind: 'derived'` — the connection whose credential this borrows.
|
|
430
|
+
* Drives both the backend's credential resolution and the client's
|
|
431
|
+
* "no connect action, managed by <source>" rendering. */
|
|
432
|
+
derivedFrom?: DerivedCredentialSource;
|
|
433
|
+
/** For `kind: 'connection'` — the connection this integration IS. Same
|
|
434
|
+
* credential lookup as `derivedFrom`, but this one owns its link flow
|
|
435
|
+
* (performed by the module that owns the connection, not by the generic
|
|
436
|
+
* integrations OAuth path). */
|
|
437
|
+
connection?: DerivedCredentialSource;
|
|
405
438
|
};
|
|
406
439
|
delivery: IntegrationDelivery;
|
|
407
440
|
}
|
|
@@ -1489,4 +1522,4 @@ type UserEventName = (typeof USER_EVENTS)[keyof typeof USER_EVENTS];
|
|
|
1489
1522
|
*/
|
|
1490
1523
|
declare const PREVIEW_DETECT_PROMPT: string;
|
|
1491
1524
|
|
|
1492
|
-
export { AGENT_REGISTRY, type AgentAuth, type AgentAuthKind, type AgentId, type AgentMetadata, type AgentMode, type AgentModel, type AgentReviewFinding, type AgentReviewPlan, type AgentReviewReport, type AnswerResolvedEvent, type AwaitingAnswerEvent, type BeadsActionCommand, type BeadsActionKind, type BeadsActionPayload, type BeadsActionRequest, type BeadsActionType, type BeadsConfigureAction, type BeadsDependencyDto, type BeadsDependencyKind, type BeadsIngestPayload, type BeadsIssueDto, type BeadsIssueStatus, type BeadsMemoryDto, type BeadsProjectDto, type BeadsProvisioningPayload, type BeadsProvisioningStatus, type BeadsSnapshotDto, type BeadsStatus, type BeadsStatusState, type BeadsStatusSummary, type BlameLineWire, type BrokeredIntegrationToken, type ChromeStep, type ChromeToolType, type CommitEntryWire, DEFAULT_API_BASE_URL, DEV_API_BASE_URL, type EnvVar, type FileBlameEvent, type FileChangeStatus, type FileChangedEvent, type FileHistoryEvent, type FileReviewStatus, HEADROOM_BACKEND_ENV, HEADROOM_EXTRAS_BY_SURFACE, HEADROOM_MODELS, HEADROOM_PIP_COMPANIONS, HEADROOM_PROXY_PORT, HEARTBEAT_INTERVAL_MS_DEFAULT, HOUSE_AGENT_ID, HOUSE_AGENT_NAME, HOUSE_AGENT_PROVIDER, HOUSE_AGENT_SUBTITLE, HOUSE_AGENT_VENDOR, type HeadroomBudgetCommand, type HeadroomBudgetPeriod, type HeadroomBudgetUsage, type HeadroomKind, type HeadroomModelSpec, type HeadroomPythonRenderOpts, type HeadroomStatus, type HeadroomStep, type HeadroomSurface, type HunkLineType, INTEGRATION_BRANDING, INTEGRATION_REGISTRY, INTERNAL_TO_PUBLIC, type InputSuggestionChunk, type IntegrationApiKeyField, type IntegrationAuthKind, type IntegrationBranding, type IntegrationCategory, type IntegrationDefinition, type IntegrationDelivery, type IntegrationHealth, type IntegrationId, type IntegrationMcpDelivery, type IntegrationStatus, type IntegrationsManifest, type IntegrationsManifestEntry, LINKED_AGENT_IDS, type LinkedAgentId, MODEL_CONTEXT_WINDOW, MODEL_PRICING, type ModelPricing, type NormalizedMessage, OBSERVER_BRIDGE_PORT, PREVIEW_DETECT_PROMPT, PROTOCOL_VERSION, PUBLIC_TO_INTERNAL, type PendingReviewHunkEvent, type PendingReviewHunkLine, type PrCheck, type PrRef, type PrReviewEntry, type PrReviewVerdict, type PreviewDetection, type PreviewErrorStage, type PreviewState, type PreviewStatus, type PullRequestDetail, type PullRequestSummary, type RemoteCommand, SKILL_REGISTRY, SSE_SOCKET_TIMEOUT_MS, type SelectPrompt, type SkillDefinition, type SkillDelivery, type SkillFileDelivery, type SkillId, type SkillRail, type SkillsManifest, type SkillsManifestEntry, type StreamingChunkEvent, type StreamingChunkKind, TERMINAL_AGENT_PREFIX, UNKNOWN_MODEL_PRICING, UPCOMING_INTEGRATION_IDS, USER_EVENTS, type UserEventName, getAgent, getContextWindow, getEnabledAgents, getEnabledIntegrations, getIntegration, getIntegrationBranding, getIntegrationsByCategory, getPricing, getSkillDefinition, headroomKindFor, headroomModelPredownloadScript, headroomPipPackage, headroomSnapshotDownloadLine, internalToPublic, isHeadroomWrappable, isKnownAgentId, isKnownIntegrationId, isKnownModel, isLinkedAgentId, isSkillId, normalizeAgentId, publicToInternal, renderToLines, resolveApiBaseUrl, skillHasRail, toRemoteCommand, tryGetContextWindow };
|
|
1525
|
+
export { AGENT_REGISTRY, type AgentAuth, type AgentAuthKind, type AgentId, type AgentMetadata, type AgentMode, type AgentModel, type AgentReviewFinding, type AgentReviewPlan, type AgentReviewReport, type AnswerResolvedEvent, type AwaitingAnswerEvent, type BeadsActionCommand, type BeadsActionKind, type BeadsActionPayload, type BeadsActionRequest, type BeadsActionType, type BeadsConfigureAction, type BeadsDependencyDto, type BeadsDependencyKind, type BeadsIngestPayload, type BeadsIssueDto, type BeadsIssueStatus, type BeadsMemoryDto, type BeadsProjectDto, type BeadsProvisioningPayload, type BeadsProvisioningStatus, type BeadsSnapshotDto, type BeadsStatus, type BeadsStatusState, type BeadsStatusSummary, type BlameLineWire, type BrokeredIntegrationToken, type ChromeStep, type ChromeToolType, type CommitEntryWire, DEFAULT_API_BASE_URL, DEV_API_BASE_URL, type DerivedCredentialSource, type EnvVar, type FileBlameEvent, type FileChangeStatus, type FileChangedEvent, type FileHistoryEvent, type FileReviewStatus, HEADROOM_BACKEND_ENV, HEADROOM_EXTRAS_BY_SURFACE, HEADROOM_MODELS, HEADROOM_PIP_COMPANIONS, HEADROOM_PROXY_PORT, HEARTBEAT_INTERVAL_MS_DEFAULT, HOUSE_AGENT_ID, HOUSE_AGENT_NAME, HOUSE_AGENT_PROVIDER, HOUSE_AGENT_SUBTITLE, HOUSE_AGENT_VENDOR, type HeadroomBudgetCommand, type HeadroomBudgetPeriod, type HeadroomBudgetUsage, type HeadroomKind, type HeadroomModelSpec, type HeadroomPythonRenderOpts, type HeadroomStatus, type HeadroomStep, type HeadroomSurface, type HunkLineType, INTEGRATION_BRANDING, INTEGRATION_REGISTRY, INTERNAL_TO_PUBLIC, type InputSuggestionChunk, type IntegrationApiKeyField, type IntegrationAuthKind, type IntegrationBranding, type IntegrationCategory, type IntegrationDefinition, type IntegrationDelivery, type IntegrationHealth, type IntegrationId, type IntegrationMcpDelivery, type IntegrationStatus, type IntegrationsManifest, type IntegrationsManifestEntry, LINKED_AGENT_IDS, type LinkedAgentId, MODEL_CONTEXT_WINDOW, MODEL_PRICING, type ModelPricing, type NormalizedMessage, OBSERVER_BRIDGE_PORT, PREVIEW_DETECT_PROMPT, PROTOCOL_VERSION, PUBLIC_TO_INTERNAL, type PendingReviewHunkEvent, type PendingReviewHunkLine, type PrCheck, type PrRef, type PrReviewEntry, type PrReviewVerdict, type PreviewDetection, type PreviewErrorStage, type PreviewState, type PreviewStatus, type PullRequestDetail, type PullRequestSummary, type RemoteCommand, SKILL_REGISTRY, SSE_SOCKET_TIMEOUT_MS, type SelectPrompt, type SkillDefinition, type SkillDelivery, type SkillFileDelivery, type SkillId, type SkillRail, type SkillsManifest, type SkillsManifestEntry, type StreamingChunkEvent, type StreamingChunkKind, TERMINAL_AGENT_PREFIX, UNKNOWN_MODEL_PRICING, UPCOMING_INTEGRATION_IDS, USER_EVENTS, type UserEventName, getAgent, getContextWindow, getEnabledAgents, getEnabledIntegrations, getIntegration, getIntegrationBranding, getIntegrationsByCategory, getPricing, getSkillDefinition, headroomKindFor, headroomModelPredownloadScript, headroomPipPackage, headroomSnapshotDownloadLine, internalToPublic, isHeadroomWrappable, isKnownAgentId, isKnownIntegrationId, isKnownModel, isLinkedAgentId, isSkillId, normalizeAgentId, publicToInternal, renderToLines, resolveApiBaseUrl, skillHasRail, toRemoteCommand, tryGetContextWindow };
|
package/dist/index.js
CHANGED
|
@@ -672,6 +672,54 @@ var INTEGRATION_REGISTRY = {
|
|
|
672
672
|
}
|
|
673
673
|
}
|
|
674
674
|
},
|
|
675
|
+
github: {
|
|
676
|
+
id: "github",
|
|
677
|
+
name: "GitHub",
|
|
678
|
+
icon: "github",
|
|
679
|
+
category: "version_control",
|
|
680
|
+
// LIVE. GitHub is the product's code substrate (codespaces + the PR
|
|
681
|
+
// Command Center), and it was historically the ONE connection outside this
|
|
682
|
+
// registry: its credential lives in a `ProviderToken` row rather than the
|
|
683
|
+
// integrations vault, so it was rendered by a hand-written special-case row
|
|
684
|
+
// and could not legally appear in a deploy's `integrationIds` (the manifest
|
|
685
|
+
// resolver rejects unknown ids — a recurring bug class).
|
|
686
|
+
//
|
|
687
|
+
// `kind: 'connection'` closes that gap without re-plumbing OAuth: the entry
|
|
688
|
+
// makes GitHub a first-class, categorised catalog row whose credential the
|
|
689
|
+
// backend resolves from the SAME `ProviderToken` it always used, while the
|
|
690
|
+
// connect/disconnect flow stays owned by the codespaces rail (the clients
|
|
691
|
+
// route those two actions there). ⚠️ It is a REAL connection with a REAL
|
|
692
|
+
// disconnect — do NOT treat it like `github_issues`, which merely derives
|
|
693
|
+
// from it and has no actions of its own.
|
|
694
|
+
enabled: true,
|
|
695
|
+
auth: { kind: "connection", connection: "github" },
|
|
696
|
+
// No MCP: a deployed box already has an authenticated `gh` on PATH.
|
|
697
|
+
delivery: {}
|
|
698
|
+
},
|
|
699
|
+
github_issues: {
|
|
700
|
+
id: "github_issues",
|
|
701
|
+
name: "GitHub Issues",
|
|
702
|
+
icon: "github_issues",
|
|
703
|
+
category: "tracker",
|
|
704
|
+
// LIVE, and the ONLY integration with NO link flow of its own: the
|
|
705
|
+
// credential is DERIVED from the GitHub connection the user already made
|
|
706
|
+
// for codespaces/PRs (`ProviderToken` provider='github-codespaces', which
|
|
707
|
+
// carries `repo` scope — enough for the whole Issues surface). So there is
|
|
708
|
+
// no OAuth app, no client id/secret, no Secret Manager entry and nothing
|
|
709
|
+
// to configuration-gate. The backend auto-provisions the catalog row the
|
|
710
|
+
// same way `ensureHouseAgentRow` does for the house agent, and resolves
|
|
711
|
+
// the token live per call rather than vaulting a copy (it can't go stale,
|
|
712
|
+
// and GitHub token refresh stays owned by exactly one place).
|
|
713
|
+
enabled: true,
|
|
714
|
+
auth: { kind: "derived", derivedFrom: "github" },
|
|
715
|
+
// NO MCP server on purpose. Every other tracker needs one to give the agent
|
|
716
|
+
// tools, but a deployed box ALREADY has an authenticated `gh` on PATH (the
|
|
717
|
+
// codespace bootstrap exports GH_TOKEN), so `gh issue list/create/comment`
|
|
718
|
+
// works with zero delivery. That also means nothing to pre-warm and no
|
|
719
|
+
// third-party MCP package to pin and keep alive. The Start-from-Work-Item
|
|
720
|
+
// side is served backend-side by the `TrackerProvider`, not by delivery.
|
|
721
|
+
delivery: {}
|
|
722
|
+
},
|
|
675
723
|
slack: {
|
|
676
724
|
id: "slack",
|
|
677
725
|
name: "Slack",
|
|
@@ -908,10 +956,10 @@ function getIntegrationsByCategory(category) {
|
|
|
908
956
|
|
|
909
957
|
// src/integrations/branding.ts
|
|
910
958
|
var INTEGRATION_BRANDING = {
|
|
911
|
-
// GitHub — a
|
|
912
|
-
//
|
|
913
|
-
//
|
|
914
|
-
//
|
|
959
|
+
// GitHub — now a REAL `IntegrationId` (`version_control`, `kind: 'connection'`).
|
|
960
|
+
// It started life here as a brand-only entry, back when GitHub was rendered by
|
|
961
|
+
// a hand-written special-case row; the mark is unchanged, it's just also the
|
|
962
|
+
// catalog row's logo now. Still used by the PR/MR Command Center surfaces.
|
|
915
963
|
github: {
|
|
916
964
|
id: "github",
|
|
917
965
|
name: "GitHub",
|
|
@@ -920,6 +968,18 @@ var INTEGRATION_BRANDING = {
|
|
|
920
968
|
brandColor: "#FFFFFF",
|
|
921
969
|
logoSvg: '<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path fill="#FFFFFF" d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg>'
|
|
922
970
|
},
|
|
971
|
+
// GitHub Issues — the `tracker`-category toolkit integration (a real
|
|
972
|
+
// `IntegrationId`, unlike the `github` entry above). Same official mark, its
|
|
973
|
+
// own name/tagline so the catalog row reads as the issue tracker rather than
|
|
974
|
+
// the code host.
|
|
975
|
+
github_issues: {
|
|
976
|
+
id: "github_issues",
|
|
977
|
+
name: "GitHub Issues",
|
|
978
|
+
vendor: "GitHub",
|
|
979
|
+
tagline: "Issues & project tracking",
|
|
980
|
+
brandColor: "#FFFFFF",
|
|
981
|
+
logoSvg: '<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path fill="#FFFFFF" d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg>'
|
|
982
|
+
},
|
|
923
983
|
// npm — a brand-only entry (NOT an `IntegrationId`): the registry the
|
|
924
984
|
// codeam-cli ships to. Present so surfaces like the Wiki can render the
|
|
925
985
|
// official npm mark from the ONE shared catalog instead of a loose asset.
|