@outfitter/kit 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,131 @@
1
+ # @outfitter/kit
2
+
3
+ Version coordination meta-package for Outfitter.
4
+
5
+ ## Purpose
6
+
7
+ This package ensures compatible versions across all `@outfitter/*` packages. Install it alongside specific packages to get coordinated version constraints via `peerDependencies`.
8
+
9
+ ## Installation
10
+
11
+ ```bash
12
+ bun add @outfitter/kit
13
+ ```
14
+
15
+ ## When to Use
16
+
17
+ Use `@outfitter/kit` when:
18
+
19
+ 1. **Building applications** that use multiple Outfitter packages
20
+ 2. **Ensuring compatibility** between package versions
21
+ 3. **Checking version requirements** programmatically
22
+
23
+ ```bash
24
+ # Install stack alongside the packages you need
25
+ bun add @outfitter/kit @outfitter/cli @outfitter/logging @outfitter/config
26
+ ```
27
+
28
+ The stack's `peerDependencies` will warn if you have incompatible versions installed.
29
+
30
+ ## Version Matrix
31
+
32
+ See [VERSIONS.md](./VERSIONS.md) for the complete compatibility matrix.
33
+
34
+ ### Current Release (0.1.0-rc.1)
35
+
36
+ | Package | Minimum Version |
37
+ |---------|-----------------|
38
+ | @outfitter/contracts | 0.1.0-rc.1 |
39
+ | @outfitter/types | 0.1.0-rc.1 |
40
+ | @outfitter/cli | 0.1.0-rc.1 |
41
+ | @outfitter/config | 0.1.0-rc.1 |
42
+ | @outfitter/logging | 0.1.0-rc.1 |
43
+ | @outfitter/file-ops | 0.1.0-rc.1 |
44
+ | @outfitter/state | 0.1.0-rc.1 |
45
+ | @outfitter/mcp | 0.1.0-rc.1 |
46
+ | @outfitter/index | 0.1.0-rc.1 |
47
+ | @outfitter/daemon | 0.1.0-rc.1 |
48
+ | @outfitter/testing | 0.1.0-rc.1 |
49
+
50
+ ## Exports
51
+
52
+ ### STACK_VERSION
53
+
54
+ The current stack version (matches package.json).
55
+
56
+ ```typescript
57
+ import { STACK_VERSION } from "@outfitter/kit";
58
+
59
+ console.log(`Using Outfitter Stack ${STACK_VERSION}`);
60
+ ```
61
+
62
+ ### MINIMUM_VERSIONS
63
+
64
+ Minimum compatible versions for each package.
65
+
66
+ ```typescript
67
+ import { MINIMUM_VERSIONS } from "@outfitter/kit";
68
+
69
+ // Check if a package meets the minimum version
70
+ const cliMinimum = MINIMUM_VERSIONS["@outfitter/cli"]; // "0.1.0-rc.0"
71
+ ```
72
+
73
+ ### OutfitterPackage
74
+
75
+ Type for valid package names in the stack.
76
+
77
+ ```typescript
78
+ import { type OutfitterPackage, MINIMUM_VERSIONS } from "@outfitter/kit";
79
+
80
+ function getMinVersion(pkg: OutfitterPackage): string {
81
+ return MINIMUM_VERSIONS[pkg];
82
+ }
83
+
84
+ getMinVersion("@outfitter/cli"); // "0.1.0-rc.0"
85
+ getMinVersion("@outfitter/invalid"); // TypeScript error
86
+ ```
87
+
88
+ ## API Reference
89
+
90
+ | Export | Type | Description |
91
+ |--------|------|-------------|
92
+ | `STACK_VERSION` | `string` | Current stack version |
93
+ | `MINIMUM_VERSIONS` | `Record<OutfitterPackage, string>` | Minimum versions for all packages |
94
+ | `OutfitterPackage` | `type` | Union type of valid package names |
95
+
96
+ ## Dependency Tiers
97
+
98
+ Packages are organized into tiers based on stability:
99
+
100
+ ### Foundation (cold)
101
+ Stable APIs, rarely change:
102
+ - `@outfitter/contracts` - Result/Error patterns
103
+ - `@outfitter/types` - Branded types
104
+
105
+ ### Runtime (warm)
106
+ Expected to evolve:
107
+ - `@outfitter/cli` - CLI framework (includes terminal rendering)
108
+ - `@outfitter/config` - Configuration
109
+ - `@outfitter/logging` - Structured logging
110
+ - `@outfitter/file-ops` - File operations
111
+ - `@outfitter/state` - State management
112
+ - `@outfitter/mcp` - MCP server framework
113
+ - `@outfitter/index` - SQLite FTS5 indexing
114
+ - `@outfitter/daemon` - Daemon lifecycle
115
+
116
+ ### Tooling (lukewarm)
117
+ Workflow-focused:
118
+ - `@outfitter/testing` - Test harnesses
119
+
120
+ ## Related Packages
121
+
122
+ All `@outfitter/*` packages are designed to work together. See individual package documentation:
123
+
124
+ - [@outfitter/contracts](../contracts/README.md) - Result types and error patterns
125
+ - [@outfitter/cli](../cli/README.md) - CLI framework
126
+ - [@outfitter/daemon](../daemon/README.md) - Daemon lifecycle management
127
+ - [@outfitter/testing](../testing/README.md) - Test harnesses
128
+
129
+ ## License
130
+
131
+ MIT
package/VERSIONS.md ADDED
@@ -0,0 +1,38 @@
1
+ # Version Compatibility Matrix
2
+
3
+ This document tracks version compatibility across @outfitter packages.
4
+
5
+ ## Current Release
6
+
7
+ | Package | Version | Status |
8
+ |---------|---------|--------|
9
+ | @outfitter/contracts | 0.1.0-rc.0 | RC |
10
+ | @outfitter/types | 0.1.0-rc.0 | RC |
11
+ | @outfitter/cli | 0.1.0-rc.0 | RC |
12
+ | @outfitter/config | 0.1.0-rc.0 | RC |
13
+ | @outfitter/logging | 0.1.0-rc.0 | RC |
14
+ | @outfitter/file-ops | 0.1.0-rc.0 | RC |
15
+ | @outfitter/state | 0.1.0-rc.0 | RC |
16
+ | @outfitter/mcp | 0.1.0-rc.0 | RC |
17
+ | @outfitter/index | 0.1.0-rc.0 | RC |
18
+ | @outfitter/daemon | 0.1.0-rc.0 | RC |
19
+ | @outfitter/testing | 0.1.0-rc.0 | RC |
20
+
21
+ ## Dependency Tiers
22
+
23
+ ### Foundation (cold)
24
+ - `@outfitter/contracts` - Result/Error patterns
25
+ - `@outfitter/types` - Branded types
26
+
27
+ ### Runtime (warm)
28
+ - `@outfitter/cli` - CLI framework (includes terminal rendering)
29
+ - `@outfitter/config` - Configuration
30
+ - `@outfitter/logging` - Structured logging
31
+ - `@outfitter/file-ops` - File operations
32
+ - `@outfitter/state` - State management
33
+ - `@outfitter/mcp` - MCP server framework
34
+ - `@outfitter/index` - SQLite FTS5 indexing
35
+ - `@outfitter/daemon` - Daemon lifecycle
36
+
37
+ ### Tooling (lukewarm)
38
+ - `@outfitter/testing` - Test harnesses
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @outfitter/kit - Version coordination meta-package
3
+ *
4
+ * This package coordinates versions across all @outfitter packages.
5
+ * Install it alongside specific packages to ensure compatible versions.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ /**
10
+ * Stack version - matches package.json version
11
+ */
12
+ declare const STACK_VERSION = "0.1.0-rc.1";
13
+ /**
14
+ * Minimum compatible versions for each package
15
+ */
16
+ declare const MINIMUM_VERSIONS: {
17
+ readonly "@outfitter/cli": "0.1.0-rc.1";
18
+ readonly "@outfitter/config": "0.1.0-rc.1";
19
+ readonly "@outfitter/contracts": "0.1.0-rc.1";
20
+ readonly "@outfitter/daemon": "0.1.0-rc.1";
21
+ readonly "@outfitter/file-ops": "0.1.0-rc.1";
22
+ readonly "@outfitter/index": "0.1.0-rc.1";
23
+ readonly "@outfitter/logging": "0.1.0-rc.1";
24
+ readonly "@outfitter/mcp": "0.1.0-rc.1";
25
+ readonly "@outfitter/state": "0.1.0-rc.1";
26
+ readonly "@outfitter/testing": "0.1.0-rc.1";
27
+ readonly "@outfitter/types": "0.1.0-rc.1";
28
+ };
29
+ /**
30
+ * Type for package names in the stack
31
+ */
32
+ type OutfitterPackage = keyof typeof MINIMUM_VERSIONS;
33
+ export { STACK_VERSION, OutfitterPackage, MINIMUM_VERSIONS };
package/dist/index.js ADDED
@@ -0,0 +1,19 @@
1
+ // src/index.ts
2
+ var STACK_VERSION = "0.1.0-rc.1";
3
+ var MINIMUM_VERSIONS = {
4
+ "@outfitter/cli": "0.1.0-rc.1",
5
+ "@outfitter/config": "0.1.0-rc.1",
6
+ "@outfitter/contracts": "0.1.0-rc.1",
7
+ "@outfitter/daemon": "0.1.0-rc.1",
8
+ "@outfitter/file-ops": "0.1.0-rc.1",
9
+ "@outfitter/index": "0.1.0-rc.1",
10
+ "@outfitter/logging": "0.1.0-rc.1",
11
+ "@outfitter/mcp": "0.1.0-rc.1",
12
+ "@outfitter/state": "0.1.0-rc.1",
13
+ "@outfitter/testing": "0.1.0-rc.1",
14
+ "@outfitter/types": "0.1.0-rc.1"
15
+ };
16
+ export {
17
+ STACK_VERSION,
18
+ MINIMUM_VERSIONS
19
+ };
package/package.json ADDED
@@ -0,0 +1,90 @@
1
+ {
2
+ "name": "@outfitter/kit",
3
+ "description": "Version coordination meta-package for Outfitter",
4
+ "version": "0.2.0",
5
+ "type": "module",
6
+ "files": [
7
+ "dist",
8
+ "VERSIONS.md"
9
+ ],
10
+ "module": "./dist/index.js",
11
+ "types": "./dist/index.d.ts",
12
+ "exports": {
13
+ ".": {
14
+ "import": {
15
+ "types": "./dist/index.d.ts",
16
+ "default": "./dist/index.js"
17
+ }
18
+ },
19
+ "./package.json": "./package.json"
20
+ },
21
+ "peerDependencies": {
22
+ "@outfitter/cli": ">=0.1.0",
23
+ "@outfitter/config": ">=0.1.0",
24
+ "@outfitter/contracts": ">=0.1.0",
25
+ "@outfitter/daemon": ">=0.1.0",
26
+ "@outfitter/file-ops": ">=0.1.0",
27
+ "@outfitter/index": ">=0.1.0",
28
+ "@outfitter/logging": ">=0.1.0",
29
+ "@outfitter/mcp": ">=0.1.0",
30
+ "@outfitter/state": ">=0.1.0",
31
+ "@outfitter/testing": ">=0.1.0",
32
+ "@outfitter/types": ">=0.1.0",
33
+ "@outfitter/ui": ">=0.1.0-rc.1"
34
+ },
35
+ "peerDependenciesMeta": {
36
+ "@outfitter/cli": {
37
+ "optional": true
38
+ },
39
+ "@outfitter/config": {
40
+ "optional": true
41
+ },
42
+ "@outfitter/contracts": {
43
+ "optional": true
44
+ },
45
+ "@outfitter/daemon": {
46
+ "optional": true
47
+ },
48
+ "@outfitter/file-ops": {
49
+ "optional": true
50
+ },
51
+ "@outfitter/index": {
52
+ "optional": true
53
+ },
54
+ "@outfitter/logging": {
55
+ "optional": true
56
+ },
57
+ "@outfitter/mcp": {
58
+ "optional": true
59
+ },
60
+ "@outfitter/state": {
61
+ "optional": true
62
+ },
63
+ "@outfitter/testing": {
64
+ "optional": true
65
+ },
66
+ "@outfitter/types": {
67
+ "optional": true
68
+ },
69
+ "@outfitter/ui": {
70
+ "optional": true
71
+ }
72
+ },
73
+ "scripts": {
74
+ "build": "bunup --filter @outfitter/kit",
75
+ "typecheck": "tsc --noEmit"
76
+ },
77
+ "devDependencies": {
78
+ "@types/bun": "latest",
79
+ "typescript": "^5.8.0"
80
+ },
81
+ "publishConfig": {
82
+ "access": "public"
83
+ },
84
+ "repository": {
85
+ "type": "git",
86
+ "url": "https://github.com/outfitter-dev/outfitter.git",
87
+ "directory": "packages/kit"
88
+ },
89
+ "license": "MIT"
90
+ }