cyrus-core 0.2.64-test.7 → 0.2.65

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.
@@ -1,4 +1,4 @@
1
- import type { HookCallbackMatcher, HookEvent, McpServerConfig, SDKMessage, SDKUserMessage, SdkPluginConfig } from "@anthropic-ai/claude-agent-sdk";
1
+ import type { BackgroundTaskSummary, HookCallbackMatcher, HookEvent, McpServerConfig, SDKMessage, SDKUserMessage, SdkPluginConfig, SessionCronSummary } from "@anthropic-ai/claude-agent-sdk";
2
2
  import type { AskUserQuestionInput as SDKAskUserQuestionInput } from "@anthropic-ai/claude-agent-sdk/sdk-tools";
3
3
  import type { ILogger } from "./logging/ILogger.js";
4
4
  /**
@@ -7,6 +7,24 @@ import type { ILogger } from "./logging/ILogger.js";
7
7
  * @see {@link https://platform.claude.com/docs/en/agent-sdk/typescript#ask-user-question}
8
8
  */
9
9
  export type AskUserQuestionInput = SDKAskUserQuestionInput;
10
+ /**
11
+ * Work that will wake an agent session later, reported by the SDK's Stop
12
+ * hook (`session_crons` / `background_tasks` on `StopHookInput`). These are
13
+ * the only signals that distinguish "session is done" from "session is
14
+ * paused waiting to be woken" — the message stream itself (including the
15
+ * `result` message) carries no pending-work information. See the F1 test
16
+ * drive `2026-06-11-cypack-1310-schedulewakeup.md` for the evidence.
17
+ */
18
+ export interface AgentPendingWork {
19
+ /**
20
+ * Session-scoped cron tasks (CronCreate, ScheduleWakeup, /loop) that will
21
+ * wake the session later. One-shot wakeups have `recurring: false` and a
22
+ * cron `schedule` encoding their single fire time.
23
+ */
24
+ sessionCrons: SessionCronSummary[];
25
+ /** In-flight background work (running/pending + backgrounded tasks). */
26
+ backgroundTasks: BackgroundTaskSummary[];
27
+ }
10
28
  /**
11
29
  * Simplified option type for easier API consumption.
12
30
  * Matches the structure within AskUserQuestionInput but without tuple constraints.
@@ -286,6 +304,16 @@ export interface IAgentRunner {
286
304
  * `interrupt()` and `stop()`.
287
305
  */
288
306
  isWarm?(): boolean;
307
+ /**
308
+ * Pending work that will wake this session later (scheduled wakeups,
309
+ * session crons, in-flight background tasks), as last reported by the
310
+ * SDK's Stop hook. Runners that support this return the latest snapshot;
311
+ * both arrays are empty when nothing is scheduled or in flight.
312
+ *
313
+ * Consult this when a `result` message arrives to decide whether the
314
+ * session is truly finished or merely paused until a wakeup fires.
315
+ */
316
+ getPendingWork?(): AgentPendingWork;
289
317
  /**
290
318
  * Check if the session is currently running
291
319
  *
@@ -394,13 +422,6 @@ export interface AgentRunnerConfig {
394
422
  tools?: string[];
395
423
  /** Cyrus home directory (required) */
396
424
  cyrusHome: string;
397
- /**
398
- * Additional environment variables for the agent child process, merged on
399
- * top of the inherited process env. Used for per-session credentials
400
- * (e.g. org-matched GH_TOKEN) and sandbox CA cert paths. Currently only
401
- * the Claude runner consumes this.
402
- */
403
- additionalEnv?: Record<string, string>;
404
425
  /**
405
426
  * Custom directory path for Claude's auto-memory storage. Forwarded to the
406
427
  * Claude SDK as settings.autoMemoryDirectory. When unset, the SDK falls
@@ -426,7 +447,8 @@ export interface AgentRunnerConfig {
426
447
  * - `string[]`: enable only the listed skills.
427
448
  *
428
449
  * Used to enforce per-skill scope (repository / Linear team / Linear label).
429
- * Only the Claude runner respects this today.
450
+ * Claude passes this to its SDK; Codex uses it to stage only allowed skills
451
+ * into its native repository skill discovery layout.
430
452
  */
431
453
  skills?: string[] | "all";
432
454
  /**
@@ -497,5 +519,5 @@ export type AgentUserMessage = SDKUserMessage;
497
519
  * from a single location (packages/core) without knowing the
498
520
  * underlying provider SDK.
499
521
  */
500
- export type { HookCallbackMatcher, HookEvent, McpServerConfig, SDKAssistantMessage, SDKAssistantMessageError, SDKMessage, SDKResultMessage, SDKUserMessage, } from "@anthropic-ai/claude-agent-sdk";
522
+ export type { BackgroundTaskSummary, HookCallbackMatcher, HookEvent, McpServerConfig, SDKAssistantMessage, SDKAssistantMessageError, SDKMessage, SDKResultMessage, SDKUserMessage, SessionCronSummary, } from "@anthropic-ai/claude-agent-sdk";
501
523
  //# sourceMappingURL=agent-runner-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-runner-types.d.ts","sourceRoot":"","sources":["../src/agent-runner-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-runner-types.d.ts","sourceRoot":"","sources":["../src/agent-runner-types.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -2,17 +2,13 @@ export type { ErrorReporter, ErrorReporterContext, ErrorReporterLogAttributes, E
2
2
  export { getGlobalErrorReporter, getGlobalErrorTags, NoopErrorReporter, resetGlobalErrorReporter, setGlobalErrorReporter, setGlobalErrorTags, } from "./error-reporting/index.js";
3
3
  export type { ILogger, LogContext, LogEventAttributes, } from "./logging/index.js";
4
4
  export { createLogger, LogLevel } from "./logging/index.js";
5
- export type { AgentMessage, AgentRunnerConfig, AgentSessionInfo, AgentUserMessage, AskUserQuestion, AskUserQuestionAnswers, AskUserQuestionInput, AskUserQuestionOption, AskUserQuestionResult, HookCallbackMatcher, HookEvent, IAgentRunner, IMessageFormatter, McpServerConfig, OnAskUserQuestion, SDKAssistantMessage, SDKAssistantMessageError, SDKMessage, SDKResultMessage, SDKUserMessage, } from "./agent-runner-types.js";
5
+ export type { AgentMessage, AgentPendingWork, AgentRunnerConfig, AgentSessionInfo, AgentUserMessage, AskUserQuestion, AskUserQuestionAnswers, AskUserQuestionInput, AskUserQuestionOption, AskUserQuestionResult, BackgroundTaskSummary, HookCallbackMatcher, HookEvent, IAgentRunner, IMessageFormatter, McpServerConfig, OnAskUserQuestion, SDKAssistantMessage, SDKAssistantMessageError, SDKMessage, SDKResultMessage, SDKUserMessage, SessionCronSummary, } from "./agent-runner-types.js";
6
6
  export type { AllowedToolsPlatform } from "./allowed-tools-defaults.js";
7
7
  export { GITHUB_DEFAULT_ALLOWED_TOOLS, getDefaultAllowedTools, LINEAR_DEFAULT_ALLOWED_TOOLS, SLACK_DEFAULT_ALLOWED_TOOLS, } from "./allowed-tools-defaults.js";
8
8
  export type { BaseBranchResolution, CyrusAgentSession, CyrusAgentSessionEntry, IssueContext, IssueMinimal, RepositoryContext, Workspace, } from "./CyrusAgentSession.js";
9
9
  export type { EdgeConfig, EdgeConfigPayload, EdgeWorkerConfig, LinearWorkspaceConfig, NetworkPolicy, OAuthCallbackHandler, RepositoryConfig, RepositoryConfigPayload, RunnerType, SandboxConfig, UserAccessControlConfig, UserIdentifier, } from "./config-types.js";
10
10
  export { EdgeConfigPayloadSchema, EdgeConfigSchema, LinearWorkspaceConfigSchema, migrateEdgeConfig, NetworkPolicySchema, RepositoryConfigPayloadSchema, RepositoryConfigSchema, RunnerTypeSchema, requireLinearWorkspaceId, resolvePath, SandboxConfigSchema, TRUSTED_DOMAINS, UserAccessControlConfigSchema, UserIdentifierSchema, } from "./config-types.js";
11
11
  export { DEFAULT_BASE_BRANCH, DEFAULT_CONFIG_FILENAME, DEFAULT_PROXY_URL, DEFAULT_REPOS_DIR, DEFAULT_WORKTREES_DIR, getDefaultReposDir, getDefaultWorktreesDir, } from "./constants.js";
12
- export type { GitProvider, GitProviderToken, GitProviderTokensFile, } from "./git-provider-token-store.js";
13
- export { extractGitProviderRepoParts, GIT_PROVIDER_TOKENS_FILENAME, GitProviderTokenStore, } from "./git-provider-token-store.js";
14
- export type { GitHubInstallationToken, GitHubTokensFile, } from "./github-token-store.js";
15
- export { extractOwnerFromGitHubUrl, GITHUB_TOKENS_FILENAME, GitHubTokenStore, } from "./github-token-store.js";
16
12
  export type { AgentActivity, AgentActivityContent, AgentActivityCreateInput, AgentActivityPayload, AgentActivitySDK, AgentEvent, AgentEventTransportConfig, AgentEventTransportEvents, AgentSession, AgentSessionCreatedWebhook, AgentSessionCreateOnCommentInput, AgentSessionCreateOnIssueInput, AgentSessionCreateResponse, AgentSessionPromptedWebhook, AgentSessionSDK, Comment, CommentCreateInput, CommentWithAttachments, Connection, FetchChildrenOptions, FileUploadRequest, FileUploadResponse, GuidanceRule, IAgentEventTransport, IIssueTrackerService, Issue, IssueDeletedWebhook, IssueRelation, IssueStateChangeWebhook, IssueUnassignedWebhook, IssueUpdateInput, IssueUpdateWebhook, IssueWithChildren, Label, PaginationOptions, Team, User, Webhook, WebhookAgentSession, WebhookComment, WebhookIssue, WorkflowState, } from "./issue-tracker/index.js";
17
13
  export { AgentActivityContentType, AgentActivitySignal, AgentSessionStatus, AgentSessionType, CLIEventTransport, CLIIssueTrackerService, CLIRPCServer, isAgentSessionCreatedEvent, isAgentSessionCreatedWebhook, isAgentSessionPromptedEvent, isAgentSessionPromptedWebhook, isCommentMentionEvent, isIssueAssignedEvent, isIssueAssignedWebhook, isIssueCommentMentionWebhook, isIssueDeletedWebhook, isIssueNewCommentWebhook, isIssueStateChangeWebhook, isIssueStateIdUpdateWebhook, isIssueTitleOrDescriptionUpdateWebhook, isIssueUnassignedEvent, isIssueUnassignedWebhook, isNewCommentEvent, } from "./issue-tracker/index.js";
18
14
  export type { ContentChanges, ContentUpdateMessage, GitHubPlatformRef, GitHubSessionStartPlatformData, GitHubUserPromptPlatformData, GitLabPlatformRef, GitLabSessionStartPlatformData, GitLabUserPromptPlatformData, GuidanceItem, IMessageTranslator, InternalMessage, InternalMessageBase, IssueStateChangeMessage, LinearContentUpdatePlatformData, LinearIssueStateChangePlatformData, LinearPlatformRef, LinearSessionStartPlatformData, LinearStopSignalPlatformData, LinearUnassignPlatformData, LinearUserPromptPlatformData, MessageAction, MessageAuthor, MessageSource, SessionStartMessage, SlackPlatformRef, SlackSessionStartPlatformData, SlackUserPromptPlatformData, StopSignalMessage, TranslationContext, TranslationResult, UnassignMessage, UserPromptMessage, } from "./messages/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -7,8 +7,6 @@ export { EdgeConfigPayloadSchema,
7
7
  EdgeConfigSchema, LinearWorkspaceConfigSchema, migrateEdgeConfig, NetworkPolicySchema, RepositoryConfigPayloadSchema, RepositoryConfigSchema, RunnerTypeSchema, requireLinearWorkspaceId, resolvePath, SandboxConfigSchema, TRUSTED_DOMAINS, UserAccessControlConfigSchema, UserIdentifierSchema, } from "./config-types.js";
8
8
  // Constants
9
9
  export { DEFAULT_BASE_BRANCH, DEFAULT_CONFIG_FILENAME, DEFAULT_PROXY_URL, DEFAULT_REPOS_DIR, DEFAULT_WORKTREES_DIR, getDefaultReposDir, getDefaultWorktreesDir, } from "./constants.js";
10
- export { extractGitProviderRepoParts, GIT_PROVIDER_TOKENS_FILENAME, GitProviderTokenStore, } from "./git-provider-token-store.js";
11
- export { extractOwnerFromGitHubUrl, GITHUB_TOKENS_FILENAME, GitHubTokenStore, } from "./github-token-store.js";
12
10
  export { AgentActivityContentType, AgentActivitySignal, AgentSessionStatus, AgentSessionType, CLIEventTransport, CLIIssueTrackerService, CLIRPCServer, isAgentSessionCreatedEvent, isAgentSessionCreatedWebhook, isAgentSessionPromptedEvent, isAgentSessionPromptedWebhook, isCommentMentionEvent, isIssueAssignedEvent, isIssueAssignedWebhook, isIssueCommentMentionWebhook, isIssueDeletedWebhook, isIssueNewCommentWebhook, isIssueStateChangeWebhook, isIssueStateIdUpdateWebhook, isIssueTitleOrDescriptionUpdateWebhook, isIssueUnassignedEvent, isIssueUnassignedWebhook, isNewCommentEvent, } from "./issue-tracker/index.js";
13
11
  export { hasGitHubSessionStartPlatformData, hasGitHubUserPromptPlatformData, hasGitLabSessionStartPlatformData, hasGitLabUserPromptPlatformData, hasLinearSessionStartPlatformData, hasLinearUserPromptPlatformData, hasSlackSessionStartPlatformData, hasSlackUserPromptPlatformData, isContentUpdateMessage, isGitHubMessage, isGitLabMessage, isIssueStateChangeMessage, isLinearMessage, isSessionStartMessage, isSlackMessage, isStopSignalMessage, isUnassignMessage, isUserPromptMessage, } from "./messages/index.js";
14
12
  export { PERSISTENCE_VERSION, PersistenceManager, } from "./PersistenceManager.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,UAAU;AAUV,OAAO,EACN,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,GAClB,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAgC5D,OAAO,EACN,4BAA4B,EAC5B,sBAAsB,EACtB,4BAA4B,EAC5B,2BAA2B,GAC3B,MAAM,6BAA6B,CAAC;AAyBrC,OAAO,EACN,uBAAuB;AACvB,qCAAqC;AACrC,gBAAgB,EAChB,2BAA2B,EAC3B,iBAAiB,EACjB,mBAAmB,EACnB,6BAA6B,EAC7B,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,EACxB,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,6BAA6B,EAC7B,oBAAoB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,YAAY;AACZ,OAAO,EACN,mBAAmB,EACnB,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,GACtB,MAAM,gBAAgB,CAAC;AAMxB,OAAO,EACN,2BAA2B,EAC3B,4BAA4B,EAC5B,qBAAqB,GACrB,MAAM,+BAA+B,CAAC;AAMvC,OAAO,EACN,yBAAyB,EACzB,sBAAsB,EACtB,gBAAgB,GAChB,MAAM,yBAAyB,CAAC;AA8CjC,OAAO,EACN,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,EACZ,0BAA0B,EAC1B,4BAA4B,EAC5B,2BAA2B,EAC3B,6BAA6B,EAC7B,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,4BAA4B,EAC5B,qBAAqB,EACrB,wBAAwB,EACxB,yBAAyB,EACzB,2BAA2B,EAC3B,sCAAsC,EACtC,sBAAsB,EACtB,wBAAwB,EACxB,iBAAiB,GACjB,MAAM,0BAA0B,CAAC;AAoClC,OAAO,EACN,iCAAiC,EACjC,+BAA+B,EAC/B,iCAAiC,EACjC,+BAA+B,EAC/B,iCAAiC,EACjC,+BAA+B,EAC/B,gCAAgC,EAChC,8BAA8B,EAC9B,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,GACnB,MAAM,qBAAqB,CAAC;AAS7B,OAAO,EACN,mBAAmB,EACnB,kBAAkB,GAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAKvD,wBAAwB;AACxB,OAAO,EACN,6BAA6B,EAC7B,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GAClB,MAAM,qBAAqB,CAAC;AAS7B,uEAAuE;AACvE,yFAAyF;AACzF,gGAAgG"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,UAAU;AAUV,OAAO,EACN,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,GAClB,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAmC5D,OAAO,EACN,4BAA4B,EAC5B,sBAAsB,EACtB,4BAA4B,EAC5B,2BAA2B,GAC3B,MAAM,6BAA6B,CAAC;AAyBrC,OAAO,EACN,uBAAuB;AACvB,qCAAqC;AACrC,gBAAgB,EAChB,2BAA2B,EAC3B,iBAAiB,EACjB,mBAAmB,EACnB,6BAA6B,EAC7B,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,EACxB,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,6BAA6B,EAC7B,oBAAoB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,YAAY;AACZ,OAAO,EACN,mBAAmB,EACnB,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,GACtB,MAAM,gBAAgB,CAAC;AA8CxB,OAAO,EACN,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,EACZ,0BAA0B,EAC1B,4BAA4B,EAC5B,2BAA2B,EAC3B,6BAA6B,EAC7B,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,4BAA4B,EAC5B,qBAAqB,EACrB,wBAAwB,EACxB,yBAAyB,EACzB,2BAA2B,EAC3B,sCAAsC,EACtC,sBAAsB,EACtB,wBAAwB,EACxB,iBAAiB,GACjB,MAAM,0BAA0B,CAAC;AAoClC,OAAO,EACN,iCAAiC,EACjC,+BAA+B,EAC/B,iCAAiC,EACjC,+BAA+B,EAC/B,iCAAiC,EACjC,+BAA+B,EAC/B,gCAAgC,EAChC,8BAA8B,EAC9B,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,GACnB,MAAM,qBAAqB,CAAC;AAS7B,OAAO,EACN,mBAAmB,EACnB,kBAAkB,GAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAKvD,wBAAwB;AACxB,OAAO,EACN,6BAA6B,EAC7B,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GAClB,MAAM,qBAAqB,CAAC;AAS7B,uEAAuE;AACvE,yFAAyF;AACzF,gGAAgG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cyrus-core",
3
- "version": "0.2.64-test.7",
3
+ "version": "0.2.65",
4
4
  "description": "Core business logic for Cyrus",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -10,7 +10,7 @@
10
10
  "schemas"
11
11
  ],
12
12
  "dependencies": {
13
- "@anthropic-ai/claude-agent-sdk": "0.3.170",
13
+ "@anthropic-ai/claude-agent-sdk": "0.3.173",
14
14
  "@linear/sdk": "^64.0.0",
15
15
  "zod": "^4.3.6"
16
16
  },
@@ -1,39 +0,0 @@
1
- export type GitProvider = "github" | "gitlab";
2
- export interface GitProviderToken {
3
- provider: GitProvider;
4
- /** Hostname that owns the token, e.g. github.com or gitlab.example.com */
5
- host: string;
6
- /** Owner/group namespace used for path matching when present */
7
- namespace: string | null;
8
- /** Optional provider connection identifier from cyrus-hosted */
9
- connectionId?: string | null;
10
- /** Access token used for HTTPS git/API calls */
11
- token: string;
12
- /** ISO timestamp when the token expires. Null means non-expiring PAT/bot token. */
13
- expiresAt: string | null;
14
- /** Username to return to git. GitLab accepts oauth2 for OAuth tokens. */
15
- username?: string | null;
16
- }
17
- export interface GitProviderTokensFile {
18
- version: 1;
19
- updatedAt: string;
20
- tokens: GitProviderToken[];
21
- }
22
- export declare const GIT_PROVIDER_TOKENS_FILENAME = "git-provider-tokens.json";
23
- export declare function extractGitProviderRepoParts(url: string): {
24
- host: string;
25
- namespace: string | null;
26
- } | null;
27
- export declare class GitProviderTokenStore {
28
- private cyrusHome;
29
- private cachedTokens;
30
- private cachedMtimeMs;
31
- private cachedSize;
32
- constructor(cyrusHome: string);
33
- get filePath(): string;
34
- save(tokens: GitProviderToken[]): void;
35
- load(): GitProviderToken[];
36
- private loadValid;
37
- getTokenForRepoUrl(url: string, provider?: GitProvider): GitProviderToken | undefined;
38
- }
39
- //# sourceMappingURL=git-provider-token-store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"git-provider-token-store.d.ts","sourceRoot":"","sources":["../src/git-provider-token-store.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE9C,MAAM,WAAW,gBAAgB;IAChC,QAAQ,EAAE,WAAW,CAAC;IACtB,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,mFAAmF;IACnF,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACrC,OAAO,EAAE,CAAC,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,gBAAgB,EAAE,CAAC;CAC3B;AAED,eAAO,MAAM,4BAA4B,6BAA6B,CAAC;AAmBvE,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,GAAG;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,GAAG,IAAI,CA+BP;AAED,qBAAa,qBAAqB;IACjC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,YAAY,CAAmC;IACvD,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,UAAU,CAAuB;gBAE7B,SAAS,EAAE,MAAM;IAI7B,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI;IAiBtC,IAAI,IAAI,gBAAgB,EAAE;IAyC1B,OAAO,CAAC,SAAS;IAKjB,kBAAkB,CACjB,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,WAAW,GACpB,gBAAgB,GAAG,SAAS;CAyB/B"}
@@ -1,133 +0,0 @@
1
- import { chmodSync, existsSync, mkdirSync, readFileSync, renameSync, statSync, writeFileSync, } from "node:fs";
2
- import { dirname, join } from "node:path";
3
- export const GIT_PROVIDER_TOKENS_FILENAME = "git-provider-tokens.json";
4
- function normalizeHost(host) {
5
- return host.trim().toLowerCase();
6
- }
7
- function normalizeNamespace(namespace) {
8
- const value = namespace?.trim().replace(/^\/+|\/+$/g, "");
9
- return value ? value.toLowerCase() : null;
10
- }
11
- function isExpired(token, now) {
12
- if (!token.expiresAt)
13
- return false;
14
- const expiresAt = Date.parse(token.expiresAt);
15
- return Number.isNaN(expiresAt) || expiresAt <= now;
16
- }
17
- export function extractGitProviderRepoParts(url) {
18
- if (!url || typeof url !== "string")
19
- return null;
20
- const trimmed = url.trim();
21
- const scpMatch = trimmed.match(/^[\w.-]+@([^:]+):(.+)$/);
22
- if (scpMatch?.[1] && scpMatch[2]) {
23
- const segments = scpMatch[2].replace(/\.git$/i, "").split("/");
24
- segments.pop();
25
- return {
26
- host: normalizeHost(scpMatch[1]),
27
- namespace: normalizeNamespace(segments.join("/")),
28
- };
29
- }
30
- const withScheme = /^[a-z][a-z0-9+.-]*:\/\//i.test(trimmed)
31
- ? trimmed
32
- : `https://${trimmed}`;
33
- try {
34
- const parsed = new URL(withScheme);
35
- const segments = parsed.pathname
36
- .replace(/\.git$/i, "")
37
- .split("/")
38
- .filter(Boolean);
39
- segments.pop();
40
- return {
41
- host: normalizeHost(parsed.hostname),
42
- namespace: normalizeNamespace(segments.join("/")),
43
- };
44
- }
45
- catch {
46
- return null;
47
- }
48
- }
49
- export class GitProviderTokenStore {
50
- cyrusHome;
51
- cachedTokens = null;
52
- cachedMtimeMs = null;
53
- cachedSize = null;
54
- constructor(cyrusHome) {
55
- this.cyrusHome = cyrusHome;
56
- }
57
- get filePath() {
58
- return join(this.cyrusHome, GIT_PROVIDER_TOKENS_FILENAME);
59
- }
60
- save(tokens) {
61
- const file = {
62
- version: 1,
63
- updatedAt: new Date().toISOString(),
64
- tokens,
65
- };
66
- const target = this.filePath;
67
- mkdirSync(dirname(target), { recursive: true });
68
- const tmpPath = `${target}.tmp`;
69
- writeFileSync(tmpPath, JSON.stringify(file, null, 2), { mode: 0o600 });
70
- chmodSync(tmpPath, 0o600);
71
- renameSync(tmpPath, target);
72
- this.cachedTokens = null;
73
- this.cachedMtimeMs = null;
74
- this.cachedSize = null;
75
- }
76
- load() {
77
- const target = this.filePath;
78
- if (!existsSync(target)) {
79
- this.cachedTokens = null;
80
- this.cachedMtimeMs = null;
81
- this.cachedSize = null;
82
- return [];
83
- }
84
- try {
85
- const stat = statSync(target);
86
- if (this.cachedTokens !== null &&
87
- this.cachedMtimeMs === stat.mtimeMs &&
88
- this.cachedSize === stat.size) {
89
- return this.cachedTokens;
90
- }
91
- const parsed = JSON.parse(readFileSync(target, "utf-8"));
92
- const tokens = Array.isArray(parsed.tokens)
93
- ? parsed.tokens.filter((t) => !!t &&
94
- typeof t === "object" &&
95
- (t.provider === "github" || t.provider === "gitlab") &&
96
- typeof t.host === "string" &&
97
- typeof t.token === "string")
98
- : [];
99
- this.cachedTokens = tokens;
100
- this.cachedMtimeMs = stat.mtimeMs;
101
- this.cachedSize = stat.size;
102
- return tokens;
103
- }
104
- catch {
105
- return [];
106
- }
107
- }
108
- loadValid() {
109
- const now = Date.now();
110
- return this.load().filter((t) => !isExpired(t, now));
111
- }
112
- getTokenForRepoUrl(url, provider) {
113
- const parts = extractGitProviderRepoParts(url);
114
- if (!parts)
115
- return undefined;
116
- const host = normalizeHost(parts.host);
117
- const namespace = normalizeNamespace(parts.namespace);
118
- const candidates = this.loadValid().filter((t) => normalizeHost(t.host) === host &&
119
- (!provider || t.provider === provider));
120
- if (namespace) {
121
- const match = candidates.find((t) => {
122
- const tokenNamespace = normalizeNamespace(t.namespace);
123
- return (tokenNamespace !== null &&
124
- (namespace === tokenNamespace ||
125
- namespace.startsWith(`${tokenNamespace}/`)));
126
- });
127
- if (match)
128
- return match;
129
- }
130
- return candidates.length === 1 ? candidates[0] : undefined;
131
- }
132
- }
133
- //# sourceMappingURL=git-provider-token-store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"git-provider-token-store.js","sourceRoot":"","sources":["../src/git-provider-token-store.ts"],"names":[],"mappings":"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"}
@@ -1,91 +0,0 @@
1
- /**
2
- * A short-lived GitHub App installation token pushed by cyrus-hosted.
3
- * One entry per GitHub App installation (org or user account) the team
4
- * has attached.
5
- */
6
- export interface GitHubInstallationToken {
7
- /** GitHub App installation ID this token was minted for */
8
- installationId: string;
9
- /** Org/user login the installation belongs to (e.g. "ceedaragents") */
10
- organization: string | null;
11
- /** GitHub account type of the installation target */
12
- accountType: "Organization" | "User" | null;
13
- /** Short-lived installation access token */
14
- token: string;
15
- /** ISO timestamp when the token expires */
16
- expiresAt: string;
17
- }
18
- /**
19
- * On-disk shape of `<cyrusHome>/github-tokens.json`.
20
- */
21
- export interface GitHubTokensFile {
22
- version: 1;
23
- updatedAt: string;
24
- tokens: GitHubInstallationToken[];
25
- }
26
- /** Filename of the token store inside the Cyrus home directory */
27
- export declare const GITHUB_TOKENS_FILENAME = "github-tokens.json";
28
- /**
29
- * Extract the owner (org or user login) from a GitHub repository URL.
30
- * Supports:
31
- * - https://github.com/owner/name and https://github.com/owner/name.git
32
- * - git@github.com:owner/name.git
33
- * - ssh://git@github.com/owner/name.git
34
- * - github.com/owner/name (no scheme)
35
- *
36
- * Returns null for non-GitHub hosts or unparseable URLs.
37
- */
38
- export declare function extractOwnerFromGitHubUrl(url: string): string | null;
39
- /**
40
- * Persistent store for per-installation GitHub App tokens, keyed by org.
41
- *
42
- * Tokens are pushed by cyrus-hosted via the `/api/update/github-tokens`
43
- * ConfigUpdater route and consumed lazily by the EdgeWorker (token
44
- * resolution, session env) and by the git credential helper script.
45
- *
46
- * Reads are cached on file mtime+size, so frequent lookups don't re-parse
47
- * the JSON while still picking up writes from the ConfigUpdater handler
48
- * (which runs in the same process but writes via this class too) or any
49
- * external writer.
50
- */
51
- export declare class GitHubTokenStore {
52
- private cyrusHome;
53
- private cachedTokens;
54
- private cachedMtimeMs;
55
- private cachedSize;
56
- constructor(cyrusHome: string);
57
- /** Absolute path of the token store file */
58
- get filePath(): string;
59
- /**
60
- * Atomically persist the given tokens (write to a temp file, then rename)
61
- * with owner-only permissions (0600).
62
- */
63
- save(tokens: GitHubInstallationToken[]): void;
64
- /**
65
- * Load all tokens from disk (including expired ones). Returns an empty
66
- * array when the file is missing or unreadable/corrupt.
67
- */
68
- load(): GitHubInstallationToken[];
69
- /**
70
- * All non-expired tokens currently on disk.
71
- */
72
- private loadValid;
73
- /**
74
- * Return the non-expired token for the given org (case-insensitive),
75
- * or undefined when no installation matches.
76
- */
77
- getTokenForOrg(org: string): string | undefined;
78
- /**
79
- * Return the non-expired token for the owner of the given GitHub
80
- * repository URL (https or ssh form), or undefined when the URL is not
81
- * a GitHub URL or no installation matches the owner.
82
- */
83
- getTokenForRepoUrl(url: string): string | undefined;
84
- /**
85
- * When exactly one non-expired token exists, return it (covers
86
- * single-installation teams where the org name may not match, e.g.
87
- * user-account installs). Otherwise undefined.
88
- */
89
- getFallbackToken(): string | undefined;
90
- }
91
- //# sourceMappingURL=github-token-store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"github-token-store.d.ts","sourceRoot":"","sources":["../src/github-token-store.ts"],"names":[],"mappings":"AAWA;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACvC,2DAA2D;IAC3D,cAAc,EAAE,MAAM,CAAC;IACvB,uEAAuE;IACvE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,qDAAqD;IACrD,WAAW,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI,CAAC;IAC5C,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,OAAO,EAAE,CAAC,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,uBAAuB,EAAE,CAAC;CAClC;AAED,kEAAkE;AAClE,eAAO,MAAM,sBAAsB,uBAAuB,CAAC;AAE3D;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAwBpE;AAWD;;;;;;;;;;;GAWG;AACH,qBAAa,gBAAgB;IAC5B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,YAAY,CAA0C;IAC9D,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,UAAU,CAAuB;gBAE7B,SAAS,EAAE,MAAM;IAI7B,4CAA4C;IAC5C,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED;;;OAGG;IACH,IAAI,CAAC,MAAM,EAAE,uBAAuB,EAAE,GAAG,IAAI;IAoB7C;;;OAGG;IACH,IAAI,IAAI,uBAAuB,EAAE;IAqCjC;;OAEG;IACH,OAAO,CAAC,SAAS;IAKjB;;;OAGG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAW/C;;;;OAIG;IACH,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAMnD;;;;OAIG;IACH,gBAAgB,IAAI,MAAM,GAAG,SAAS;CAItC"}
@@ -1,168 +0,0 @@
1
- import { chmodSync, existsSync, mkdirSync, readFileSync, renameSync, statSync, writeFileSync, } from "node:fs";
2
- import { dirname, join } from "node:path";
3
- /** Filename of the token store inside the Cyrus home directory */
4
- export const GITHUB_TOKENS_FILENAME = "github-tokens.json";
5
- /**
6
- * Extract the owner (org or user login) from a GitHub repository URL.
7
- * Supports:
8
- * - https://github.com/owner/name and https://github.com/owner/name.git
9
- * - git@github.com:owner/name.git
10
- * - ssh://git@github.com/owner/name.git
11
- * - github.com/owner/name (no scheme)
12
- *
13
- * Returns null for non-GitHub hosts or unparseable URLs.
14
- */
15
- export function extractOwnerFromGitHubUrl(url) {
16
- if (!url || typeof url !== "string")
17
- return null;
18
- const trimmed = url.trim();
19
- // SCP-like SSH form: git@github.com:owner/name.git
20
- const scpMatch = trimmed.match(/^[\w.-]+@github\.com:(.+)$/i);
21
- if (scpMatch?.[1]) {
22
- const owner = scpMatch[1].split("/")[0];
23
- return owner ? owner : null;
24
- }
25
- // URL forms (https://, ssh://, or scheme-less)
26
- const withScheme = /^[a-z][a-z0-9+.-]*:\/\//i.test(trimmed)
27
- ? trimmed
28
- : `https://${trimmed}`;
29
- try {
30
- const parsed = new URL(withScheme);
31
- if (parsed.hostname.toLowerCase() !== "github.com")
32
- return null;
33
- const segments = parsed.pathname.split("/").filter(Boolean);
34
- const owner = segments[0];
35
- return owner ? owner : null;
36
- }
37
- catch {
38
- return null;
39
- }
40
- }
41
- /**
42
- * Returns true when the token is missing an expiry, the expiry is
43
- * unparseable, or the expiry is in the past.
44
- */
45
- function isExpired(token, now) {
46
- const expiresAt = Date.parse(token.expiresAt);
47
- return Number.isNaN(expiresAt) || expiresAt <= now;
48
- }
49
- /**
50
- * Persistent store for per-installation GitHub App tokens, keyed by org.
51
- *
52
- * Tokens are pushed by cyrus-hosted via the `/api/update/github-tokens`
53
- * ConfigUpdater route and consumed lazily by the EdgeWorker (token
54
- * resolution, session env) and by the git credential helper script.
55
- *
56
- * Reads are cached on file mtime+size, so frequent lookups don't re-parse
57
- * the JSON while still picking up writes from the ConfigUpdater handler
58
- * (which runs in the same process but writes via this class too) or any
59
- * external writer.
60
- */
61
- export class GitHubTokenStore {
62
- cyrusHome;
63
- cachedTokens = null;
64
- cachedMtimeMs = null;
65
- cachedSize = null;
66
- constructor(cyrusHome) {
67
- this.cyrusHome = cyrusHome;
68
- }
69
- /** Absolute path of the token store file */
70
- get filePath() {
71
- return join(this.cyrusHome, GITHUB_TOKENS_FILENAME);
72
- }
73
- /**
74
- * Atomically persist the given tokens (write to a temp file, then rename)
75
- * with owner-only permissions (0600).
76
- */
77
- save(tokens) {
78
- const file = {
79
- version: 1,
80
- updatedAt: new Date().toISOString(),
81
- tokens,
82
- };
83
- const target = this.filePath;
84
- mkdirSync(dirname(target), { recursive: true });
85
- const tmpPath = `${target}.tmp`;
86
- writeFileSync(tmpPath, JSON.stringify(file, null, 2), { mode: 0o600 });
87
- // writeFileSync `mode` only applies on creation — enforce on overwrite too
88
- chmodSync(tmpPath, 0o600);
89
- renameSync(tmpPath, target);
90
- // Invalidate the read cache so the next load reflects this write even
91
- // if the rename lands within the same mtime granularity window.
92
- this.cachedTokens = null;
93
- this.cachedMtimeMs = null;
94
- this.cachedSize = null;
95
- }
96
- /**
97
- * Load all tokens from disk (including expired ones). Returns an empty
98
- * array when the file is missing or unreadable/corrupt.
99
- */
100
- load() {
101
- const target = this.filePath;
102
- if (!existsSync(target)) {
103
- this.cachedTokens = null;
104
- this.cachedMtimeMs = null;
105
- this.cachedSize = null;
106
- return [];
107
- }
108
- try {
109
- const stat = statSync(target);
110
- if (this.cachedTokens !== null &&
111
- this.cachedMtimeMs === stat.mtimeMs &&
112
- this.cachedSize === stat.size) {
113
- return this.cachedTokens;
114
- }
115
- const parsed = JSON.parse(readFileSync(target, "utf-8"));
116
- const tokens = Array.isArray(parsed.tokens)
117
- ? parsed.tokens.filter((t) => !!t && typeof t === "object" && typeof t.token === "string")
118
- : [];
119
- this.cachedTokens = tokens;
120
- this.cachedMtimeMs = stat.mtimeMs;
121
- this.cachedSize = stat.size;
122
- return tokens;
123
- }
124
- catch {
125
- return [];
126
- }
127
- }
128
- /**
129
- * All non-expired tokens currently on disk.
130
- */
131
- loadValid() {
132
- const now = Date.now();
133
- return this.load().filter((t) => !isExpired(t, now));
134
- }
135
- /**
136
- * Return the non-expired token for the given org (case-insensitive),
137
- * or undefined when no installation matches.
138
- */
139
- getTokenForOrg(org) {
140
- if (!org)
141
- return undefined;
142
- const lowered = org.toLowerCase();
143
- const match = this.loadValid().find((t) => typeof t.organization === "string" &&
144
- t.organization.toLowerCase() === lowered);
145
- return match?.token;
146
- }
147
- /**
148
- * Return the non-expired token for the owner of the given GitHub
149
- * repository URL (https or ssh form), or undefined when the URL is not
150
- * a GitHub URL or no installation matches the owner.
151
- */
152
- getTokenForRepoUrl(url) {
153
- const owner = extractOwnerFromGitHubUrl(url);
154
- if (!owner)
155
- return undefined;
156
- return this.getTokenForOrg(owner);
157
- }
158
- /**
159
- * When exactly one non-expired token exists, return it (covers
160
- * single-installation teams where the org name may not match, e.g.
161
- * user-account installs). Otherwise undefined.
162
- */
163
- getFallbackToken() {
164
- const valid = this.loadValid();
165
- return valid.length === 1 ? valid[0]?.token : undefined;
166
- }
167
- }
168
- //# sourceMappingURL=github-token-store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"github-token-store.js","sourceRoot":"","sources":["../src/github-token-store.ts"],"names":[],"mappings":"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"}