@outfitter/kit 0.2.1 → 0.2.2

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 CHANGED
@@ -1,130 +1,60 @@
1
1
  # @outfitter/kit
2
2
 
3
- Version coordination meta-package for Outfitter.
3
+ Foundation facade for Outfitter.
4
4
 
5
- ## Purpose
5
+ `@outfitter/kit` provides a single foundation entrypoint over:
6
6
 
7
- This package ensures compatible versions across all `@outfitter/*` packages. Install it alongside specific packages to get coordinated version constraints via `peerDependencies`.
7
+ - `@outfitter/contracts`
8
+ - `@outfitter/types`
8
9
 
9
- ## Installation
10
+ Runtime and transport packages (`@outfitter/cli`, `@outfitter/mcp`, etc.) remain explicit dependencies.
11
+
12
+ ## Install
10
13
 
11
14
  ```bash
12
15
  bun add @outfitter/kit
13
16
  ```
14
17
 
15
- ## When to Use
18
+ ## Root Facade
16
19
 
17
- Use `@outfitter/kit` when:
20
+ The root entrypoint re-exports the contracts surface and exposes types under a namespace.
18
21
 
19
- 1. **Building applications** that use multiple Outfitter packages
20
- 2. **Ensuring compatibility** between package versions
21
- 3. **Checking version requirements** programmatically
22
+ ```typescript
23
+ import { Result, ValidationError, Types } from "@outfitter/kit";
22
24
 
23
- ```bash
24
- # Install stack alongside the packages you need
25
- bun add @outfitter/kit @outfitter/cli @outfitter/logging @outfitter/config
25
+ const value = Result.ok({ id: Types.shortId() });
26
26
  ```
27
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)
28
+ ## Foundation Subpaths
35
29
 
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 |
30
+ Use subpaths when you want explicit import intent.
49
31
 
50
- ## Exports
51
-
52
- ### STACK_VERSION
53
-
54
- The current stack version (matches package.json).
32
+ ### Contracts
55
33
 
56
34
  ```typescript
57
- import { STACK_VERSION } from "@outfitter/kit";
58
-
59
- console.log(`Using Outfitter Stack ${STACK_VERSION}`);
35
+ import { Result, createLoggerFactory } from "@outfitter/kit/foundation/contracts";
60
36
  ```
61
37
 
62
- ### MINIMUM_VERSIONS
63
-
64
- Minimum compatible versions for each package.
38
+ ### Types
65
39
 
66
40
  ```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"
41
+ import { shortId, isDefined } from "@outfitter/kit/foundation/types";
71
42
  ```
72
43
 
73
- ### OutfitterPackage
74
-
75
- Type for valid package names in the stack.
44
+ ### Aggregate Foundation
76
45
 
77
46
  ```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
47
+ import { Result, Types } from "@outfitter/kit/foundation";
86
48
  ```
87
49
 
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
50
+ ## What Kit Does Not Hide
104
51
 
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
52
+ `@outfitter/kit` does not implicitly install or expose runtime transports.
53
+ Keep transport dependencies explicit in your app:
115
54
 
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
55
+ ```bash
56
+ bun add @outfitter/kit @outfitter/cli @outfitter/mcp
57
+ ```
128
58
 
129
59
  ## License
130
60
 
@@ -0,0 +1 @@
1
+ export * from "@outfitter/contracts";
@@ -0,0 +1,3 @@
1
+ // @bun
2
+ // packages/kit/src/foundation/contracts.ts
3
+ export * from "@outfitter/contracts";
@@ -0,0 +1,3 @@
1
+ export * from "@outfitter/contracts";
2
+ import * as Types from "@outfitter/types";
3
+ export { Types };
@@ -0,0 +1,7 @@
1
+ // @bun
2
+ // packages/kit/src/foundation/index.ts
3
+ export * from "@outfitter/contracts";
4
+ import * as Types from "@outfitter/types";
5
+ export {
6
+ Types
7
+ };
@@ -0,0 +1 @@
1
+ export * from "@outfitter/types";
@@ -0,0 +1,3 @@
1
+ // @bun
2
+ // packages/kit/src/foundation/types.ts
3
+ export * from "@outfitter/types";
package/dist/index.d.ts CHANGED
@@ -1,33 +1,3 @@
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 };
1
+ export * from "@outfitter/contracts";
2
+ import * as Types from "@outfitter/types";
3
+ export { Types };
package/dist/index.js CHANGED
@@ -1,20 +1,7 @@
1
1
  // @bun
2
2
  // packages/kit/src/index.ts
3
- var STACK_VERSION = "0.1.0-rc.1";
4
- var MINIMUM_VERSIONS = {
5
- "@outfitter/cli": "0.1.0-rc.1",
6
- "@outfitter/config": "0.1.0-rc.1",
7
- "@outfitter/contracts": "0.1.0-rc.1",
8
- "@outfitter/daemon": "0.1.0-rc.1",
9
- "@outfitter/file-ops": "0.1.0-rc.1",
10
- "@outfitter/index": "0.1.0-rc.1",
11
- "@outfitter/logging": "0.1.0-rc.1",
12
- "@outfitter/mcp": "0.1.0-rc.1",
13
- "@outfitter/state": "0.1.0-rc.1",
14
- "@outfitter/testing": "0.1.0-rc.1",
15
- "@outfitter/types": "0.1.0-rc.1"
16
- };
3
+ export * from "@outfitter/contracts";
4
+ import * as Types from "@outfitter/types";
17
5
  export {
18
- STACK_VERSION,
19
- MINIMUM_VERSIONS
6
+ Types
20
7
  };
package/package.json CHANGED
@@ -1,11 +1,10 @@
1
1
  {
2
2
  "name": "@outfitter/kit",
3
- "description": "Version coordination meta-package for Outfitter",
4
- "version": "0.2.1",
3
+ "description": "Foundation facade for Outfitter contracts and types",
4
+ "version": "0.2.2",
5
5
  "type": "module",
6
6
  "files": [
7
7
  "dist",
8
- "VERSIONS.md",
9
8
  "shared/migrations"
10
9
  ],
11
10
  "module": "./dist/index.js",
@@ -17,62 +16,33 @@
17
16
  "default": "./dist/index.js"
18
17
  }
19
18
  },
20
- "./package.json": "./package.json"
21
- },
22
- "peerDependencies": {
23
- "@outfitter/cli": ">=0.1.0",
24
- "@outfitter/config": ">=0.1.0",
25
- "@outfitter/contracts": ">=0.1.0",
26
- "@outfitter/daemon": ">=0.1.0",
27
- "@outfitter/file-ops": ">=0.1.0",
28
- "@outfitter/index": ">=0.1.0",
29
- "@outfitter/logging": ">=0.1.0",
30
- "@outfitter/mcp": ">=0.1.0",
31
- "@outfitter/state": ">=0.1.0",
32
- "@outfitter/testing": ">=0.1.0",
33
- "@outfitter/types": ">=0.1.0",
34
- "@outfitter/ui": ">=0.1.0-rc.1"
35
- },
36
- "peerDependenciesMeta": {
37
- "@outfitter/cli": {
38
- "optional": true
39
- },
40
- "@outfitter/config": {
41
- "optional": true
42
- },
43
- "@outfitter/contracts": {
44
- "optional": true
45
- },
46
- "@outfitter/daemon": {
47
- "optional": true
48
- },
49
- "@outfitter/file-ops": {
50
- "optional": true
51
- },
52
- "@outfitter/index": {
53
- "optional": true
54
- },
55
- "@outfitter/logging": {
56
- "optional": true
57
- },
58
- "@outfitter/mcp": {
59
- "optional": true
60
- },
61
- "@outfitter/state": {
62
- "optional": true
19
+ "./foundation/contracts": {
20
+ "import": {
21
+ "types": "./dist/foundation/contracts.d.ts",
22
+ "default": "./dist/foundation/contracts.js"
23
+ }
63
24
  },
64
- "@outfitter/testing": {
65
- "optional": true
25
+ "./foundation/types": {
26
+ "import": {
27
+ "types": "./dist/foundation/types.d.ts",
28
+ "default": "./dist/foundation/types.js"
29
+ }
66
30
  },
67
- "@outfitter/types": {
68
- "optional": true
31
+ "./foundation": {
32
+ "import": {
33
+ "types": "./dist/foundation/index.d.ts",
34
+ "default": "./dist/foundation/index.js"
35
+ }
69
36
  },
70
- "@outfitter/ui": {
71
- "optional": true
72
- }
37
+ "./package.json": "./package.json"
38
+ },
39
+ "dependencies": {
40
+ "@outfitter/contracts": "0.2.0",
41
+ "@outfitter/types": "0.2.0"
73
42
  },
74
43
  "scripts": {
75
- "build": "bun run sync:migrations && bunup --filter @outfitter/kit",
44
+ "build": "bun run sync:migrations && cd ../.. && bunup --filter @outfitter/kit",
45
+ "test": "bun test",
76
46
  "typecheck": "tsc --noEmit",
77
47
  "sync:migrations": "bun run ../../scripts/sync-migrations.ts",
78
48
  "prepack": "bun run sync:migrations"
package/VERSIONS.md DELETED
@@ -1,38 +0,0 @@
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