@aigne/afs-github 1.11.0-beta.6 → 1.11.0-beta.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Octokit } from "@octokit/rest";
2
+ import { AFSEntry, AFSExecOptions, AFSExecResult, AFSExplainOptions, AFSExplainResult, AFSListOptions, AFSListResult, AFSModule, AFSReadOptions, AFSReadResult, AFSRoot, AFSSearchOptions, AFSSearchResult, AFSStatOptions, AFSStatResult, AFSWorldMappingCapable, ExternalRef, MappingStatus, MutateAction, MutateResult, ProjectionContext } from "@aigne/afs";
2
3
  import { WorldMappingCore } from "@aigne/afs-world-mapping";
3
4
  import { z } from "zod";
4
- import { AFSEntry, AFSListOptions, AFSListResult, AFSModule, AFSReadOptions, AFSReadResult, AFSRoot, AFSWorldMappingCapable, ExternalRef, MappingStatus, MutateAction, MutateResult, ProjectionContext } from "@aigne/afs";
5
5
 
6
6
  //#region src/types.d.ts
7
7
  /**
@@ -352,6 +352,11 @@ declare class AFSGitHub implements AFSModule, AFSWorldMappingCapable {
352
352
  * Returns the available resource types (issues, pulls, repo)
353
353
  */
354
354
  private getVirtualDirectories;
355
+ /**
356
+ * Check if path points to a file (leaf node) like /issues/{n} or /pulls/{n}
357
+ * These are individual issues/PRs that don't have children.
358
+ */
359
+ private isFilePath;
355
360
  /**
356
361
  * Check if path is root or empty
357
362
  */
@@ -395,11 +400,18 @@ declare class AFSGitHub implements AFSModule, AFSWorldMappingCapable {
395
400
  * - /repo -> list all branches
396
401
  * - /repo/{branch} -> list branch root
397
402
  * - /repo/{branch}/path -> list contents at path
403
+ *
404
+ * @throws AFSNotFoundError if path does not exist
398
405
  */
399
406
  private listViaContentsAPI;
400
407
  /**
401
- * Read file content via GitHub Contents API
402
- * Path format: /repo/{branch}/{filePath}
408
+ * Read via GitHub Contents API
409
+ * Supports:
410
+ * - /repo - return repo virtual directory
411
+ * - /repo/{branch} - return branch directory entry
412
+ * - /repo/{branch}/{path} - return file/directory entry
413
+ *
414
+ * @throws AFSNotFoundError if path does not exist
403
415
  */
404
416
  private readViaContentsAPI;
405
417
  /**
@@ -411,20 +423,115 @@ declare class AFSGitHub implements AFSModule, AFSWorldMappingCapable {
411
423
  * Fetch all repos with pagination support
412
424
  */
413
425
  private fetchAllRepos;
426
+ /**
427
+ * Apply limit to entries array
428
+ */
429
+ private applyLimit;
430
+ /**
431
+ * List immediate children at a path (maxDepth=1 only)
432
+ */
433
+ private listImmediate;
434
+ /**
435
+ * Check if a path represents a directory (has children)
436
+ */
437
+ private isDirectoryPath;
414
438
  /**
415
439
  * List entries at a path
440
+ *
441
+ * Per AFS semantics:
442
+ * - maxDepth=0: return empty array (no children)
443
+ * - maxDepth=1: return immediate children
444
+ * - maxDepth>1: recursively include deeper levels
445
+ * - limit: maximum number of entries to return
446
+ *
447
+ * @throws AFSNotFoundError if path does not exist
416
448
  */
417
449
  list(path: string, options?: AFSListOptions): Promise<AFSListResult>;
450
+ /**
451
+ * Check if path is a .meta path and extract the target path
452
+ */
453
+ private isMetaPath;
454
+ /**
455
+ * Get entry info for a virtual directory path
456
+ */
457
+ private getVirtualDirectoryEntry;
418
458
  /**
419
459
  * Read a single entry
460
+ *
461
+ * Supports:
462
+ * - Directory paths (returns entry info)
463
+ * - .meta paths (returns metadata)
464
+ * - Issue/PR paths (returns content via API)
465
+ * - Repo file paths (returns content via Contents API)
466
+ *
467
+ * @throws AFSNotFoundError if path does not exist
420
468
  */
421
469
  read(path: string, options?: AFSReadOptions): Promise<AFSReadResult>;
470
+ /**
471
+ * Read metadata for a path
472
+ * Returns an entry with meta field containing the metadata
473
+ *
474
+ * @throws AFSNotFoundError if path does not exist
475
+ */
476
+ private readMeta;
422
477
  loadMapping(mappingPath: string): Promise<void>;
423
478
  reloadMapping(): Promise<void>;
424
479
  getMappingStatus(): MappingStatus;
425
480
  resolve(path: string): ExternalRef | null;
426
481
  project(externalData: unknown, context: ProjectionContext): AFSEntry[];
427
482
  mutate(_path: string, _action: MutateAction, _payload: unknown): Promise<MutateResult>;
483
+ /**
484
+ * Get metadata for a path without content.
485
+ * Supports issues, PRs, and virtual directories.
486
+ */
487
+ stat(path: string, _options?: AFSStatOptions): Promise<AFSStatResult>;
488
+ private statIssue;
489
+ private statPR;
490
+ /**
491
+ * Search issues and PRs using the GitHub Search API.
492
+ * Path determines scope: /issues searches issues, /pulls searches PRs, / searches both.
493
+ */
494
+ search(path: string, query: string, options?: AFSSearchOptions): Promise<AFSSearchResult>;
495
+ /**
496
+ * Provide human/LLM-readable explanation of a path.
497
+ */
498
+ explain(path: string, _options?: AFSExplainOptions): Promise<AFSExplainResult>;
499
+ private explainRoot;
500
+ private explainIssuesDir;
501
+ private explainPullsDir;
502
+ private explainIssue;
503
+ private explainPR;
504
+ private readCapabilities;
505
+ /**
506
+ * Get enriched metadata for an issue or PR path.
507
+ * Returns labels, assignees, milestone, reactions from GitHub API.
508
+ */
509
+ private getEnrichedMeta;
510
+ private extractReactions;
511
+ private zeroReactions;
512
+ /**
513
+ * Parse a path to determine if it's an issue or PR path.
514
+ * Returns { type, number } or null.
515
+ */
516
+ private parseIssuePRPath;
517
+ /**
518
+ * List available actions at a path.
519
+ * Returns null if the path is not an .actions path.
520
+ */
521
+ private listActions;
522
+ /**
523
+ * Execute an action at a path.
524
+ * Path format: /{resource}/.actions/{action-name}
525
+ */
526
+ exec(path: string, args: Record<string, unknown>, _options: AFSExecOptions): Promise<AFSExecResult>;
527
+ private execRootAction;
528
+ private execIssueAction;
529
+ private execPRAction;
530
+ /**
531
+ * Handle errors from action execution.
532
+ * Sanitizes error messages to prevent token leaks.
533
+ */
534
+ private handleExecError;
428
535
  }
429
536
  //#endregion
430
537
  export { AFSGitHub, AFSGitHubOptions, AFSGitHubOptionsParsed, AFSGitHubOptionsResolved, AccessMode, AuthOptions, BranchItem, CacheOptions, ContentsItem, ContentsResponse, GitHubClient, GitHubClientOptions, OwnerType, RateLimitOptions, RepoMode, accessModeSchema, afsGitHubOptionsSchema, authOptionsSchema, cacheOptionsSchema, ownerTypeSchema, rateLimitOptionsSchema, repoModeSchema };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/client.ts","../src/github.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/client.ts","../src/github.ts"],"mappings":"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"}