gitx.do 0.0.2 → 0.0.3
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/cli/commands/blame.d.ts +259 -0
- package/dist/cli/commands/blame.d.ts.map +1 -0
- package/dist/cli/commands/blame.js +609 -0
- package/dist/cli/commands/blame.js.map +1 -0
- package/dist/cli/commands/branch.d.ts +249 -0
- package/dist/cli/commands/branch.d.ts.map +1 -0
- package/dist/cli/commands/branch.js +693 -0
- package/dist/cli/commands/branch.js.map +1 -0
- package/dist/cli/commands/commit.d.ts +182 -0
- package/dist/cli/commands/commit.d.ts.map +1 -0
- package/dist/cli/commands/commit.js +437 -0
- package/dist/cli/commands/commit.js.map +1 -0
- package/dist/cli/commands/diff.d.ts +464 -0
- package/dist/cli/commands/diff.d.ts.map +1 -0
- package/dist/cli/commands/diff.js +958 -0
- package/dist/cli/commands/diff.js.map +1 -0
- package/dist/cli/commands/log.d.ts +239 -0
- package/dist/cli/commands/log.d.ts.map +1 -0
- package/dist/cli/commands/log.js +535 -0
- package/dist/cli/commands/log.js.map +1 -0
- package/dist/cli/commands/review.d.ts +457 -0
- package/dist/cli/commands/review.d.ts.map +1 -0
- package/dist/cli/commands/review.js +533 -0
- package/dist/cli/commands/review.js.map +1 -0
- package/dist/cli/commands/status.d.ts +269 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +493 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/web.d.ts +199 -0
- package/dist/cli/commands/web.d.ts.map +1 -0
- package/dist/cli/commands/web.js +696 -0
- package/dist/cli/commands/web.js.map +1 -0
- package/dist/cli/fs-adapter.d.ts +656 -0
- package/dist/cli/fs-adapter.d.ts.map +1 -0
- package/dist/cli/fs-adapter.js +1179 -0
- package/dist/cli/fs-adapter.js.map +1 -0
- package/dist/cli/index.d.ts +387 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +523 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/ui/components/DiffView.d.ts +7 -0
- package/dist/cli/ui/components/DiffView.d.ts.map +1 -0
- package/dist/cli/ui/components/DiffView.js +11 -0
- package/dist/cli/ui/components/DiffView.js.map +1 -0
- package/dist/cli/ui/components/ErrorDisplay.d.ts +6 -0
- package/dist/cli/ui/components/ErrorDisplay.d.ts.map +1 -0
- package/dist/cli/ui/components/ErrorDisplay.js +11 -0
- package/dist/cli/ui/components/ErrorDisplay.js.map +1 -0
- package/dist/cli/ui/components/FuzzySearch.d.ts +9 -0
- package/dist/cli/ui/components/FuzzySearch.d.ts.map +1 -0
- package/dist/cli/ui/components/FuzzySearch.js +12 -0
- package/dist/cli/ui/components/FuzzySearch.js.map +1 -0
- package/dist/cli/ui/components/LoadingSpinner.d.ts +6 -0
- package/dist/cli/ui/components/LoadingSpinner.d.ts.map +1 -0
- package/dist/cli/ui/components/LoadingSpinner.js +10 -0
- package/dist/cli/ui/components/LoadingSpinner.js.map +1 -0
- package/dist/cli/ui/components/NavigationList.d.ts +9 -0
- package/dist/cli/ui/components/NavigationList.d.ts.map +1 -0
- package/dist/cli/ui/components/NavigationList.js +11 -0
- package/dist/cli/ui/components/NavigationList.js.map +1 -0
- package/dist/cli/ui/components/ScrollableContent.d.ts +8 -0
- package/dist/cli/ui/components/ScrollableContent.d.ts.map +1 -0
- package/dist/cli/ui/components/ScrollableContent.js +11 -0
- package/dist/cli/ui/components/ScrollableContent.js.map +1 -0
- package/dist/cli/ui/components/index.d.ts +7 -0
- package/dist/cli/ui/components/index.d.ts.map +1 -0
- package/dist/cli/ui/components/index.js +9 -0
- package/dist/cli/ui/components/index.js.map +1 -0
- package/dist/cli/ui/terminal-ui.d.ts +52 -0
- package/dist/cli/ui/terminal-ui.d.ts.map +1 -0
- package/dist/cli/ui/terminal-ui.js +121 -0
- package/dist/cli/ui/terminal-ui.js.map +1 -0
- package/dist/durable-object/object-store.d.ts +401 -23
- package/dist/durable-object/object-store.d.ts.map +1 -1
- package/dist/durable-object/object-store.js +414 -25
- package/dist/durable-object/object-store.js.map +1 -1
- package/dist/durable-object/schema.d.ts +188 -0
- package/dist/durable-object/schema.d.ts.map +1 -1
- package/dist/durable-object/schema.js +160 -0
- package/dist/durable-object/schema.js.map +1 -1
- package/dist/durable-object/wal.d.ts +336 -31
- package/dist/durable-object/wal.d.ts.map +1 -1
- package/dist/durable-object/wal.js +272 -27
- package/dist/durable-object/wal.js.map +1 -1
- package/dist/index.d.ts +379 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +379 -7
- package/dist/index.js.map +1 -1
- package/dist/mcp/adapter.d.ts +579 -38
- package/dist/mcp/adapter.d.ts.map +1 -1
- package/dist/mcp/adapter.js +426 -33
- package/dist/mcp/adapter.js.map +1 -1
- package/dist/mcp/sandbox.d.ts +532 -29
- package/dist/mcp/sandbox.d.ts.map +1 -1
- package/dist/mcp/sandbox.js +389 -22
- package/dist/mcp/sandbox.js.map +1 -1
- package/dist/mcp/sdk-adapter.d.ts +478 -56
- package/dist/mcp/sdk-adapter.d.ts.map +1 -1
- package/dist/mcp/sdk-adapter.js +346 -44
- package/dist/mcp/sdk-adapter.js.map +1 -1
- package/dist/mcp/tools.d.ts +445 -30
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +363 -33
- package/dist/mcp/tools.js.map +1 -1
- package/dist/ops/blame.d.ts +424 -21
- package/dist/ops/blame.d.ts.map +1 -1
- package/dist/ops/blame.js +303 -20
- package/dist/ops/blame.js.map +1 -1
- package/dist/ops/branch.d.ts +583 -32
- package/dist/ops/branch.d.ts.map +1 -1
- package/dist/ops/branch.js +365 -23
- package/dist/ops/branch.js.map +1 -1
- package/dist/ops/commit-traversal.d.ts +164 -24
- package/dist/ops/commit-traversal.d.ts.map +1 -1
- package/dist/ops/commit-traversal.js +68 -2
- package/dist/ops/commit-traversal.js.map +1 -1
- package/dist/ops/commit.d.ts +387 -53
- package/dist/ops/commit.d.ts.map +1 -1
- package/dist/ops/commit.js +249 -29
- package/dist/ops/commit.js.map +1 -1
- package/dist/ops/merge-base.d.ts +195 -21
- package/dist/ops/merge-base.d.ts.map +1 -1
- package/dist/ops/merge-base.js +122 -12
- package/dist/ops/merge-base.js.map +1 -1
- package/dist/ops/merge.d.ts +600 -130
- package/dist/ops/merge.d.ts.map +1 -1
- package/dist/ops/merge.js +408 -60
- package/dist/ops/merge.js.map +1 -1
- package/dist/ops/tag.d.ts +67 -2
- package/dist/ops/tag.d.ts.map +1 -1
- package/dist/ops/tag.js +42 -1
- package/dist/ops/tag.js.map +1 -1
- package/dist/ops/tree-builder.d.ts +102 -6
- package/dist/ops/tree-builder.d.ts.map +1 -1
- package/dist/ops/tree-builder.js +30 -5
- package/dist/ops/tree-builder.js.map +1 -1
- package/dist/ops/tree-diff.d.ts +50 -2
- package/dist/ops/tree-diff.d.ts.map +1 -1
- package/dist/ops/tree-diff.js +50 -2
- package/dist/ops/tree-diff.js.map +1 -1
- package/dist/pack/delta.d.ts +211 -39
- package/dist/pack/delta.d.ts.map +1 -1
- package/dist/pack/delta.js +232 -46
- package/dist/pack/delta.js.map +1 -1
- package/dist/pack/format.d.ts +390 -28
- package/dist/pack/format.d.ts.map +1 -1
- package/dist/pack/format.js +344 -33
- package/dist/pack/format.js.map +1 -1
- package/dist/pack/full-generation.d.ts +313 -28
- package/dist/pack/full-generation.d.ts.map +1 -1
- package/dist/pack/full-generation.js +238 -19
- package/dist/pack/full-generation.js.map +1 -1
- package/dist/pack/generation.d.ts +346 -23
- package/dist/pack/generation.d.ts.map +1 -1
- package/dist/pack/generation.js +269 -21
- package/dist/pack/generation.js.map +1 -1
- package/dist/pack/index.d.ts +407 -86
- package/dist/pack/index.d.ts.map +1 -1
- package/dist/pack/index.js +351 -70
- package/dist/pack/index.js.map +1 -1
- package/dist/refs/branch.d.ts +517 -71
- package/dist/refs/branch.d.ts.map +1 -1
- package/dist/refs/branch.js +410 -26
- package/dist/refs/branch.js.map +1 -1
- package/dist/refs/storage.d.ts +610 -57
- package/dist/refs/storage.d.ts.map +1 -1
- package/dist/refs/storage.js +481 -29
- package/dist/refs/storage.js.map +1 -1
- package/dist/refs/tag.d.ts +677 -67
- package/dist/refs/tag.d.ts.map +1 -1
- package/dist/refs/tag.js +497 -30
- package/dist/refs/tag.js.map +1 -1
- package/dist/storage/lru-cache.d.ts +556 -53
- package/dist/storage/lru-cache.d.ts.map +1 -1
- package/dist/storage/lru-cache.js +439 -36
- package/dist/storage/lru-cache.js.map +1 -1
- package/dist/storage/object-index.d.ts +483 -38
- package/dist/storage/object-index.d.ts.map +1 -1
- package/dist/storage/object-index.js +388 -22
- package/dist/storage/object-index.js.map +1 -1
- package/dist/storage/r2-pack.d.ts +957 -94
- package/dist/storage/r2-pack.d.ts.map +1 -1
- package/dist/storage/r2-pack.js +756 -48
- package/dist/storage/r2-pack.js.map +1 -1
- package/dist/tiered/cdc-pipeline.d.ts +1610 -38
- package/dist/tiered/cdc-pipeline.d.ts.map +1 -1
- package/dist/tiered/cdc-pipeline.js +1131 -22
- package/dist/tiered/cdc-pipeline.js.map +1 -1
- package/dist/tiered/migration.d.ts +903 -41
- package/dist/tiered/migration.d.ts.map +1 -1
- package/dist/tiered/migration.js +646 -24
- package/dist/tiered/migration.js.map +1 -1
- package/dist/tiered/parquet-writer.d.ts +944 -47
- package/dist/tiered/parquet-writer.d.ts.map +1 -1
- package/dist/tiered/parquet-writer.js +667 -39
- package/dist/tiered/parquet-writer.js.map +1 -1
- package/dist/tiered/read-path.d.ts +728 -34
- package/dist/tiered/read-path.d.ts.map +1 -1
- package/dist/tiered/read-path.js +310 -27
- package/dist/tiered/read-path.js.map +1 -1
- package/dist/types/objects.d.ts +457 -0
- package/dist/types/objects.d.ts.map +1 -1
- package/dist/types/objects.js +305 -4
- package/dist/types/objects.js.map +1 -1
- package/dist/types/storage.d.ts +407 -35
- package/dist/types/storage.d.ts.map +1 -1
- package/dist/types/storage.js +27 -3
- package/dist/types/storage.js.map +1 -1
- package/dist/utils/hash.d.ts +133 -12
- package/dist/utils/hash.d.ts.map +1 -1
- package/dist/utils/hash.js +133 -12
- package/dist/utils/hash.js.map +1 -1
- package/dist/utils/sha1.d.ts +102 -9
- package/dist/utils/sha1.d.ts.map +1 -1
- package/dist/utils/sha1.js +114 -11
- package/dist/utils/sha1.js.map +1 -1
- package/dist/wire/capabilities.d.ts +896 -88
- package/dist/wire/capabilities.d.ts.map +1 -1
- package/dist/wire/capabilities.js +566 -62
- package/dist/wire/capabilities.js.map +1 -1
- package/dist/wire/pkt-line.d.ts +293 -15
- package/dist/wire/pkt-line.d.ts.map +1 -1
- package/dist/wire/pkt-line.js +251 -15
- package/dist/wire/pkt-line.js.map +1 -1
- package/dist/wire/receive-pack.d.ts +814 -64
- package/dist/wire/receive-pack.d.ts.map +1 -1
- package/dist/wire/receive-pack.js +542 -41
- package/dist/wire/receive-pack.js.map +1 -1
- package/dist/wire/smart-http.d.ts +575 -97
- package/dist/wire/smart-http.d.ts.map +1 -1
- package/dist/wire/smart-http.js +337 -46
- package/dist/wire/smart-http.js.map +1 -1
- package/dist/wire/upload-pack.d.ts +492 -98
- package/dist/wire/upload-pack.d.ts.map +1 -1
- package/dist/wire/upload-pack.js +347 -59
- package/dist/wire/upload-pack.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,24 +1,400 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* gitx.do - Git
|
|
2
|
+
* @fileoverview gitx.do - Complete Git Implementation for Cloudflare Workers
|
|
3
3
|
*
|
|
4
|
-
* This
|
|
5
|
-
* Cloudflare Workers with Durable Objects
|
|
4
|
+
* This is the main entry point for the gitx.do library, providing a complete
|
|
5
|
+
* Git implementation designed to run on Cloudflare Workers with Durable Objects
|
|
6
|
+
* and R2 storage.
|
|
7
|
+
*
|
|
8
|
+
* **Architecture Overview**:
|
|
9
|
+
* - **Types**: Core Git object types (blob, tree, commit, tag)
|
|
10
|
+
* - **Pack Operations**: Packfile format handling and index management
|
|
11
|
+
* - **Git Operations**: Core commands (merge, blame, commit, branch)
|
|
12
|
+
* - **MCP Integration**: Model Context Protocol for AI assistant integration
|
|
13
|
+
* - **Wire Protocol**: Git Smart HTTP protocol implementation
|
|
14
|
+
* - **Storage**: R2 packfile storage and object indexing
|
|
15
|
+
* - **Tiered Storage**: Hot/Warm/Cold storage with migration
|
|
6
16
|
*
|
|
7
17
|
* @module gitx.do
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* import {
|
|
22
|
+
* // Types
|
|
23
|
+
* type CommitObject,
|
|
24
|
+
* parseCommit,
|
|
25
|
+
* serializeCommit,
|
|
26
|
+
*
|
|
27
|
+
* // Operations
|
|
28
|
+
* createCommit,
|
|
29
|
+
* merge,
|
|
30
|
+
* blame,
|
|
31
|
+
*
|
|
32
|
+
* // Storage
|
|
33
|
+
* R2PackStorage,
|
|
34
|
+
* ObjectIndex,
|
|
35
|
+
*
|
|
36
|
+
* // Wire Protocol
|
|
37
|
+
* handleInfoRefs,
|
|
38
|
+
* handleUploadPack,
|
|
39
|
+
* } from 'gitx.do'
|
|
40
|
+
*
|
|
41
|
+
* // Create a commit
|
|
42
|
+
* const commit = await createCommit(storage, {
|
|
43
|
+
* tree: treeSha,
|
|
44
|
+
* parents: [parentSha],
|
|
45
|
+
* message: 'Add new feature',
|
|
46
|
+
* author: { name: 'Alice', email: 'alice@example.com' }
|
|
47
|
+
* })
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
/**
|
|
51
|
+
* Git object types and serialization.
|
|
52
|
+
*
|
|
53
|
+
* @description
|
|
54
|
+
* Core types for Git objects (blob, tree, commit, tag) including:
|
|
55
|
+
* - Type definitions for each object type
|
|
56
|
+
* - Type guard functions for runtime type checking
|
|
57
|
+
* - Serialization functions for converting to Git format
|
|
58
|
+
* - Deserialization functions for parsing Git format
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```typescript
|
|
62
|
+
* import { isCommit, parseCommit, serializeCommit } from 'gitx.do'
|
|
63
|
+
*
|
|
64
|
+
* // Parse raw commit data
|
|
65
|
+
* const commit = parseCommit(rawData)
|
|
66
|
+
*
|
|
67
|
+
* // Check type at runtime
|
|
68
|
+
* if (isCommit(obj)) {
|
|
69
|
+
* console.log(obj.message)
|
|
70
|
+
* }
|
|
71
|
+
* ```
|
|
8
72
|
*/
|
|
9
73
|
export { type ObjectType, type GitObject, type BlobObject, type TreeObject, type TreeEntry, type CommitObject, type TagObject, type Author, isBlob, isTree, isCommit, isTag, serializeBlob, serializeTree, serializeCommit, serializeTag, parseBlob, parseTree, parseCommit, parseTag, } from './types/objects';
|
|
74
|
+
/**
|
|
75
|
+
* Packfile format handling.
|
|
76
|
+
*
|
|
77
|
+
* @description
|
|
78
|
+
* Functions for reading and writing Git packfiles including:
|
|
79
|
+
* - Pack header parsing and creation
|
|
80
|
+
* - Variable-length integer encoding/decoding
|
|
81
|
+
* - Object type and size encoding
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```typescript
|
|
85
|
+
* import { createPackfile, parsePackHeader } from 'gitx.do'
|
|
86
|
+
*
|
|
87
|
+
* // Create a packfile from objects
|
|
88
|
+
* const packData = await createPackfile(objects)
|
|
89
|
+
*
|
|
90
|
+
* // Parse pack header
|
|
91
|
+
* const header = parsePackHeader(packData)
|
|
92
|
+
* console.log(`Pack contains ${header.objectCount} objects`)
|
|
93
|
+
* ```
|
|
94
|
+
*/
|
|
10
95
|
export { PACK_SIGNATURE, PACK_VERSION, PackObjectType, packObjectTypeToString, stringToPackObjectType, encodeVarint, decodeVarint, encodeTypeAndSize, decodeTypeAndSize, parsePackHeader, parsePackObject, createPackfile, type PackHeader, type ParsedPackObject, type PackableObject, } from './pack/format';
|
|
96
|
+
/**
|
|
97
|
+
* Pack index operations.
|
|
98
|
+
*
|
|
99
|
+
* @description
|
|
100
|
+
* Functions for reading and writing pack index files (.idx) including:
|
|
101
|
+
* - Index parsing and creation
|
|
102
|
+
* - Object lookup by SHA
|
|
103
|
+
* - CRC32 calculation for verification
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* ```typescript
|
|
107
|
+
* import { createPackIndex, lookupObject } from 'gitx.do'
|
|
108
|
+
*
|
|
109
|
+
* // Create index for a packfile
|
|
110
|
+
* const index = await createPackIndex(packData)
|
|
111
|
+
*
|
|
112
|
+
* // Look up an object
|
|
113
|
+
* const result = lookupObject(index, sha)
|
|
114
|
+
* if (result) {
|
|
115
|
+
* console.log(`Object at offset ${result.offset}`)
|
|
116
|
+
* }
|
|
117
|
+
* ```
|
|
118
|
+
*/
|
|
11
119
|
export { PACK_INDEX_SIGNATURE, PACK_INDEX_MAGIC, PACK_INDEX_VERSION, LARGE_OFFSET_THRESHOLD, parsePackIndex, createPackIndex, lookupObject, verifyPackIndex, serializePackIndex, getFanoutRange, calculateCRC32, binarySearchObjectId, binarySearchSha, parseFanoutTable, readPackOffset, type PackIndexEntry, type PackIndex, type PackIndexLookupResult, type CreatePackIndexOptions, type PackedObject, } from './pack/index';
|
|
120
|
+
/**
|
|
121
|
+
* Merge operations.
|
|
122
|
+
*
|
|
123
|
+
* @description
|
|
124
|
+
* Functions for performing Git merges including:
|
|
125
|
+
* - Three-way merge algorithm
|
|
126
|
+
* - Merge base finding
|
|
127
|
+
* - Conflict detection and resolution
|
|
128
|
+
* - Content merging for text files
|
|
129
|
+
*
|
|
130
|
+
* @example
|
|
131
|
+
* ```typescript
|
|
132
|
+
* import { merge, findMergeBase, resolveConflict } from 'gitx.do'
|
|
133
|
+
*
|
|
134
|
+
* // Find merge base
|
|
135
|
+
* const base = await findMergeBase(storage, commit1, commit2)
|
|
136
|
+
*
|
|
137
|
+
* // Perform merge
|
|
138
|
+
* const result = await merge(storage, {
|
|
139
|
+
* ours: 'main',
|
|
140
|
+
* theirs: 'feature',
|
|
141
|
+
* strategy: 'recursive'
|
|
142
|
+
* })
|
|
143
|
+
*
|
|
144
|
+
* if (result.conflicts.length > 0) {
|
|
145
|
+
* // Handle conflicts
|
|
146
|
+
* }
|
|
147
|
+
* ```
|
|
148
|
+
*/
|
|
12
149
|
export { merge, findMergeBase, resolveConflict, abortMerge, continueMerge, getMergeState, isMergeInProgress, mergeContent, isBinaryFile, type ConflictType, type MergeStrategy, type MergeStatus, type ConflictMarker, type MergeConflict, type MergeOptions, type MergeStats, type MergeResult, type MergeState, type ResolveOptions, type ResolveResult, type MergeOperationResult, type MergeStorage, } from './ops/merge';
|
|
150
|
+
/**
|
|
151
|
+
* Blame operations.
|
|
152
|
+
*
|
|
153
|
+
* @description
|
|
154
|
+
* Functions for git blame functionality including:
|
|
155
|
+
* - Line-by-line attribution
|
|
156
|
+
* - Rename tracking across history
|
|
157
|
+
* - Range-based blame
|
|
158
|
+
* - Blame output formatting
|
|
159
|
+
*
|
|
160
|
+
* @example
|
|
161
|
+
* ```typescript
|
|
162
|
+
* import { blame, blameFile, formatBlame } from 'gitx.do'
|
|
163
|
+
*
|
|
164
|
+
* // Get blame for a file
|
|
165
|
+
* const result = await blameFile(storage, 'src/index.ts', { commit: 'HEAD' })
|
|
166
|
+
*
|
|
167
|
+
* // Format for display
|
|
168
|
+
* const output = formatBlame(result, { showEmail: true })
|
|
169
|
+
* ```
|
|
170
|
+
*/
|
|
13
171
|
export { blame, blameFile, blameLine, blameRange, getBlameForCommit, trackContentAcrossRenames, detectRenames, buildBlameHistory, formatBlame, parseBlameOutput, type BlameStorage, type BlameOptions, type BlameLineInfo, type BlameCommitInfo, type BlameEntry, type BlameResult, type BlameFormatOptions, type PathHistoryEntry, type BlameHistoryEntry, } from './ops/blame';
|
|
172
|
+
/**
|
|
173
|
+
* Commit operations.
|
|
174
|
+
*
|
|
175
|
+
* @description
|
|
176
|
+
* Functions for creating and working with commits including:
|
|
177
|
+
* - Commit creation and amendment
|
|
178
|
+
* - Commit message formatting and validation
|
|
179
|
+
* - Signature handling (GPG)
|
|
180
|
+
* - Author/timestamp utilities
|
|
181
|
+
*
|
|
182
|
+
* @example
|
|
183
|
+
* ```typescript
|
|
184
|
+
* import { createCommit, createAuthor, formatTimestamp } from 'gitx.do'
|
|
185
|
+
*
|
|
186
|
+
* const author = createAuthor('Alice', 'alice@example.com')
|
|
187
|
+
* const commit = await createCommit(storage, {
|
|
188
|
+
* tree: treeSha,
|
|
189
|
+
* parents: [parentSha],
|
|
190
|
+
* author,
|
|
191
|
+
* message: 'Add new feature'
|
|
192
|
+
* })
|
|
193
|
+
* ```
|
|
194
|
+
*/
|
|
14
195
|
export { createCommit, amendCommit, buildCommitObject, formatCommitMessage, parseCommitMessage, validateCommitMessage, isCommitSigned, extractCommitSignature, addSignatureToCommit, isEmptyCommit, getCurrentTimezone, formatTimestamp, parseTimestamp, createAuthor, type CommitAuthor, type SigningOptions, type CommitOptions, type AmendOptions, type FormatOptions, type CommitResult, type ObjectStore, } from './ops/commit';
|
|
196
|
+
/**
|
|
197
|
+
* Branch operations.
|
|
198
|
+
*
|
|
199
|
+
* @description
|
|
200
|
+
* Functions for branch management including:
|
|
201
|
+
* - Branch creation, deletion, and renaming
|
|
202
|
+
* - Branch listing and filtering
|
|
203
|
+
* - Upstream tracking configuration
|
|
204
|
+
* - Branch validation
|
|
205
|
+
*
|
|
206
|
+
* @example
|
|
207
|
+
* ```typescript
|
|
208
|
+
* import { createBranch, listBranches, getCurrentBranch } from 'gitx.do'
|
|
209
|
+
*
|
|
210
|
+
* // Create a new branch
|
|
211
|
+
* await createBranch(storage, 'feature/new-thing', { startPoint: 'main' })
|
|
212
|
+
*
|
|
213
|
+
* // List all branches
|
|
214
|
+
* const branches = await listBranches(storage, { includeRemotes: true })
|
|
215
|
+
*
|
|
216
|
+
* // Get current branch
|
|
217
|
+
* const current = await getCurrentBranch(storage)
|
|
218
|
+
* ```
|
|
219
|
+
*/
|
|
15
220
|
export { createBranch, deleteBranch, listBranches, renameBranch, checkoutBranch, getCurrentBranch, getBranchInfo, branchExists, setBranchTracking, getBranchTracking, removeBranchTracking, getDefaultBranch, setDefaultBranch, isValidBranchName, normalizeBranchName, type RefStore, type BranchOptions, type BranchCreateResult, type BranchDeleteOptions, type BranchDeleteResult, type BranchListOptions, type BranchInfo, type TrackingInfo, type BranchRenameOptions, type BranchRenameResult, type CheckoutOptions, type CheckoutResult, type SetTrackingResult, type RemoveTrackingResult, } from './ops/branch';
|
|
221
|
+
/**
|
|
222
|
+
* MCP tool definitions.
|
|
223
|
+
*
|
|
224
|
+
* @description
|
|
225
|
+
* Tools for integrating with AI assistants via MCP including:
|
|
226
|
+
* - Tool registration and discovery
|
|
227
|
+
* - Input validation
|
|
228
|
+
* - Tool invocation
|
|
229
|
+
*
|
|
230
|
+
* @example
|
|
231
|
+
* ```typescript
|
|
232
|
+
* import { gitTools, invokeTool, validateToolInput } from 'gitx.do'
|
|
233
|
+
*
|
|
234
|
+
* // List available tools
|
|
235
|
+
* const tools = gitTools
|
|
236
|
+
*
|
|
237
|
+
* // Validate and invoke a tool
|
|
238
|
+
* if (validateToolInput('git_status', input)) {
|
|
239
|
+
* const result = await invokeTool('git_status', input, context)
|
|
240
|
+
* }
|
|
241
|
+
* ```
|
|
242
|
+
*/
|
|
16
243
|
export { gitTools, registerTool, validateToolInput, invokeTool, listTools, getTool, type JSONSchema, type MCPToolResult, type MCPToolHandler, type MCPTool, } from './mcp/tools';
|
|
244
|
+
/**
|
|
245
|
+
* MCP adapter.
|
|
246
|
+
*
|
|
247
|
+
* @description
|
|
248
|
+
* Adapter for MCP protocol communication including:
|
|
249
|
+
* - Request/response handling
|
|
250
|
+
* - Capability negotiation
|
|
251
|
+
* - Error handling
|
|
252
|
+
*
|
|
253
|
+
* @example
|
|
254
|
+
* ```typescript
|
|
255
|
+
* import { createMCPAdapter, MCPError, MCPErrorCode } from 'gitx.do'
|
|
256
|
+
*
|
|
257
|
+
* const adapter = createMCPAdapter({
|
|
258
|
+
* name: 'gitx.do',
|
|
259
|
+
* version: '1.0.0'
|
|
260
|
+
* })
|
|
261
|
+
*
|
|
262
|
+
* const response = await adapter.handleRequest(request)
|
|
263
|
+
* ```
|
|
264
|
+
*/
|
|
17
265
|
export { MCPAdapter, createMCPAdapter, MCPError, MCPErrorCode, type MCPCapability, type MCPServerConfig, type MCPRequest, type MCPResponse, type MCPToolInfo, type MCPResourceInfo, type MCPPromptArgument, type MCPPromptInfo, } from './mcp/adapter';
|
|
266
|
+
/**
|
|
267
|
+
* Smart HTTP protocol handlers.
|
|
268
|
+
*
|
|
269
|
+
* @description
|
|
270
|
+
* Functions for handling Git Smart HTTP protocol including:
|
|
271
|
+
* - Info/refs endpoint handling
|
|
272
|
+
* - Upload-pack (fetch/clone)
|
|
273
|
+
* - Receive-pack (push)
|
|
274
|
+
* - Capability negotiation
|
|
275
|
+
*
|
|
276
|
+
* @example
|
|
277
|
+
* ```typescript
|
|
278
|
+
* import { handleInfoRefs, handleUploadPack, handleReceivePack } from 'gitx.do'
|
|
279
|
+
*
|
|
280
|
+
* // Handle info/refs request
|
|
281
|
+
* const refs = await handleInfoRefs(request, { service: 'git-upload-pack' })
|
|
282
|
+
*
|
|
283
|
+
* // Handle fetch request
|
|
284
|
+
* const pack = await handleUploadPack(request, storage)
|
|
285
|
+
* ```
|
|
286
|
+
*/
|
|
18
287
|
export { handleInfoRefs, handleUploadPack, handleReceivePack, formatRefAdvertisement, formatUploadPackResponse, formatReceivePackResponse, parseUploadPackRequest, parseReceivePackRequest, parseCapabilities, capabilitiesToStrings, validateContentType, createErrorResponse, CONTENT_TYPE_UPLOAD_PACK_ADVERTISEMENT, CONTENT_TYPE_RECEIVE_PACK_ADVERTISEMENT, CONTENT_TYPE_UPLOAD_PACK_REQUEST, CONTENT_TYPE_UPLOAD_PACK_RESULT, CONTENT_TYPE_RECEIVE_PACK_REQUEST, CONTENT_TYPE_RECEIVE_PACK_RESULT, ZERO_SHA, type GitService, type HTTPMethod, type GitRef, type ServerCapabilities, type SmartHTTPRequest, type SmartHTTPResponse, type SmartHTTPError, type RepositoryProvider, type RefUpdateCommand, type ReceivePackResult, } from './wire/smart-http';
|
|
288
|
+
/**
|
|
289
|
+
* Pkt-line encoding/decoding.
|
|
290
|
+
*
|
|
291
|
+
* @description
|
|
292
|
+
* Functions for Git pkt-line format handling including:
|
|
293
|
+
* - Line encoding/decoding
|
|
294
|
+
* - Flush and delimiter packets
|
|
295
|
+
* - Stream processing
|
|
296
|
+
*
|
|
297
|
+
* @example
|
|
298
|
+
* ```typescript
|
|
299
|
+
* import { encodePktLine, decodePktLine, FLUSH_PKT } from 'gitx.do'
|
|
300
|
+
*
|
|
301
|
+
* // Encode a line
|
|
302
|
+
* const encoded = encodePktLine('want abc123')
|
|
303
|
+
*
|
|
304
|
+
* // Decode a line
|
|
305
|
+
* const { line, remaining } = decodePktLine(data)
|
|
306
|
+
* ```
|
|
307
|
+
*/
|
|
19
308
|
export { encodePktLine, decodePktLine, encodeFlushPkt, encodeDelimPkt, pktLineStream, FLUSH_PKT, DELIM_PKT, MAX_PKT_LINE_DATA, } from './wire/pkt-line';
|
|
309
|
+
/**
|
|
310
|
+
* R2 pack storage.
|
|
311
|
+
*
|
|
312
|
+
* @description
|
|
313
|
+
* Functions for storing packfiles in Cloudflare R2 including:
|
|
314
|
+
* - Packfile upload/download
|
|
315
|
+
* - Multi-pack index management
|
|
316
|
+
* - Pack locking for concurrent access
|
|
317
|
+
*
|
|
318
|
+
* @example
|
|
319
|
+
* ```typescript
|
|
320
|
+
* import { R2PackStorage, uploadPackfile, listPackfiles } from 'gitx.do'
|
|
321
|
+
*
|
|
322
|
+
* const storage = new R2PackStorage(r2Bucket, { prefix: 'git/packs' })
|
|
323
|
+
*
|
|
324
|
+
* // Upload a packfile
|
|
325
|
+
* const result = await uploadPackfile(storage, packData, { withIndex: true })
|
|
326
|
+
*
|
|
327
|
+
* // List all packfiles
|
|
328
|
+
* const packs = await listPackfiles(storage)
|
|
329
|
+
* ```
|
|
330
|
+
*/
|
|
20
331
|
export { R2PackStorage, R2PackError, uploadPackfile, downloadPackfile, getPackfileMetadata, listPackfiles, deletePackfile, createMultiPackIndex, parseMultiPackIndex, lookupObjectInMultiPack, acquirePackLock, releasePackLock, type R2PackStorageOptions, type PackfileUploadResult, type PackfileMetadata, type DownloadPackfileOptions, type DownloadPackfileResult, type UploadPackfileOptions, type MultiPackIndexEntry, type MultiPackIndex, type PackLock, type AcquireLockOptions, type ListPackfilesResult, } from './storage/r2-pack';
|
|
332
|
+
/**
|
|
333
|
+
* Object index.
|
|
334
|
+
*
|
|
335
|
+
* @description
|
|
336
|
+
* Functions for tracking object locations across storage tiers including:
|
|
337
|
+
* - Location recording and lookup
|
|
338
|
+
* - Batch operations
|
|
339
|
+
* - Statistics
|
|
340
|
+
*
|
|
341
|
+
* @example
|
|
342
|
+
* ```typescript
|
|
343
|
+
* import { ObjectIndex, recordLocation, lookupLocation } from 'gitx.do'
|
|
344
|
+
*
|
|
345
|
+
* const index = new ObjectIndex(storage)
|
|
346
|
+
*
|
|
347
|
+
* // Record object location
|
|
348
|
+
* await recordLocation(index, sha, { tier: 'hot', location: 'local' })
|
|
349
|
+
*
|
|
350
|
+
* // Look up location
|
|
351
|
+
* const location = await lookupLocation(index, sha)
|
|
352
|
+
* ```
|
|
353
|
+
*/
|
|
21
354
|
export { ObjectIndex, recordLocation, lookupLocation, batchLookup, getStats, type StorageTier, type ObjectLocation, type ObjectIndexStats, type BatchLookupResult, type RecordLocationOptions, } from './storage/object-index';
|
|
355
|
+
/**
|
|
356
|
+
* Tier migration.
|
|
357
|
+
*
|
|
358
|
+
* @description
|
|
359
|
+
* Functions for managing object migration between storage tiers including:
|
|
360
|
+
* - Migration policies
|
|
361
|
+
* - Access tracking
|
|
362
|
+
* - Concurrent access handling
|
|
363
|
+
*
|
|
364
|
+
* @example
|
|
365
|
+
* ```typescript
|
|
366
|
+
* import { TierMigrator, AccessTracker } from 'gitx.do'
|
|
367
|
+
*
|
|
368
|
+
* const tracker = new AccessTracker(storage)
|
|
369
|
+
* await tracker.recordAccess(sha)
|
|
370
|
+
*
|
|
371
|
+
* const migrator = new TierMigrator(storage, { policy: 'lru' })
|
|
372
|
+
* await migrator.migrate(sha, 'hot', 'warm')
|
|
373
|
+
* ```
|
|
374
|
+
*/
|
|
22
375
|
export { TierMigrator, AccessTracker, MigrationError, MigrationRollback, ConcurrentAccessHandler, type MigrationPolicy, type MigrationState, type MigrationProgress, type MigrationJob, type MigrationResult, type BatchMigrationResult, type BatchMigrationOptions, type MigrateOptions, type MigrationHistoryEntry, type AccessPattern, type AccessStats, type ObjectIdentificationCriteria, type DecayOptions, type AccessMetrics, } from './tiered/migration';
|
|
376
|
+
/**
|
|
377
|
+
* Tiered read path.
|
|
378
|
+
*
|
|
379
|
+
* @description
|
|
380
|
+
* Functions for reading objects across storage tiers including:
|
|
381
|
+
* - Automatic tier traversal
|
|
382
|
+
* - Caching strategies
|
|
383
|
+
* - Read optimization
|
|
384
|
+
*
|
|
385
|
+
* @example
|
|
386
|
+
* ```typescript
|
|
387
|
+
* import { TieredReader, type TieredStorageConfig } from 'gitx.do'
|
|
388
|
+
*
|
|
389
|
+
* const config: TieredStorageConfig = {
|
|
390
|
+
* hot: { backend: hotBackend, maxSize: 1_000_000 },
|
|
391
|
+
* warm: { backend: warmBackend },
|
|
392
|
+
* cold: { backend: coldBackend }
|
|
393
|
+
* }
|
|
394
|
+
*
|
|
395
|
+
* const reader = new TieredReader(config)
|
|
396
|
+
* const result = await reader.read(sha)
|
|
397
|
+
* ```
|
|
398
|
+
*/
|
|
23
399
|
export { TieredReader, TieredObjectStoreStub, type StoredObject, type TierConfig, type TieredStorageConfig, type ReadResult, type TieredObjectStore, type HotTierBackend, type WarmTierBackend, type ColdTierBackend, } from './tiered/read-path';
|
|
24
400
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|