all-hands-cli 0.1.0 → 0.1.1

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.
@@ -3,22 +3,22 @@
3
3
  "domains": [
4
4
  {
5
5
  "name": "harness",
6
- "path": ".allhands/harness",
6
+ "paths": [".allhands/harness"],
7
7
  "description": "Core CLI tool with commands, hooks, TUI, MCP integration, and schema validation"
8
8
  },
9
9
  {
10
10
  "name": "flows",
11
- "path": ".allhands/flows",
11
+ "paths": [".allhands/flows"],
12
12
  "description": "Workflow definitions guiding agents through tasks"
13
13
  },
14
14
  {
15
15
  "name": "agents",
16
- "path": ".allhands/agents",
16
+ "paths": [".allhands/agents"],
17
17
  "description": "Agent configuration YAML files defining agent types and behaviors"
18
18
  },
19
19
  {
20
20
  "name": "sync-cli",
21
- "path": "src",
21
+ "paths": ["src"],
22
22
  "description": "CLI for syncing the all-hands framework to other repositories"
23
23
  }
24
24
  ],
@@ -73,13 +73,14 @@ Full documentation effort for new repos or out-of-sync docs.
73
73
  2. **Domain Detection**
74
74
  - Resolve docs config per **Config Resolution** above (optional — projects don't need either file)
75
75
  - Load `domains` and `exclude` glob patterns from the resolved config
76
+ - Each domain has a `paths` property — either a single string or an array of strings indicating the source directories/files for that domain
76
77
  - If domains not declared, infer:
77
78
  - Run `tldr structure .` or `ah complexity .` on project root
78
79
  - Check for monorepo markers: `pnpm-workspace.yaml`, `lerna.json`, `turbo.json`, `nx.json`
79
80
  - If monorepo: each workspace package is a domain, plus root-level coordination docs
80
81
  - Otherwise: identify main product areas from directory structure
81
82
  - Present detected domains to user for confirmation
82
- - Persist confirmed domains (and any existing `exclude` patterns) back to the resolved config file. Always write this file, whether user adjusted or accepted defaults — it codifies the domain map for future incremental runs.
83
+ - Persist confirmed domains (and any existing `exclude` patterns) back to the resolved config file. Always write this file, whether user adjusted or accepted defaults — it codifies the domain map for future incremental runs. Use array format for `paths` when persisting.
83
84
 
84
85
  3. **Proceed to Core Flow** with:
85
86
  ```yaml
@@ -140,10 +141,11 @@ Per **Context is Precious**, spawn discovery sub-agents:
140
141
 
141
142
  - One sub-agent per domain
142
143
  - Instruct each to read `.allhands/flows/shared/DOCUMENTATION_DISCOVERY.md`
144
+ - Normalize `paths` to an array (if a single string, wrap it: `[path]`)
143
145
  - Provide each:
144
146
  ```yaml
145
147
  domain: "<domain-name>"
146
- source_paths: ["<path/to/domain>"] # or changed files in incremental
148
+ source_paths: ["<path1>", "<path2>", ...] # all paths from domain.paths; or changed files in incremental
147
149
  exclude: ["<glob>", ...] # from docs.json, may be empty
148
150
  mode: "<fill-gaps|incremental>"
149
151
  session_context: "<summary from alignment doc>" # incremental only
@@ -96,13 +96,6 @@ export async function reindexAfterMove(
96
96
  { path: newRelPath, added: true },
97
97
  ]);
98
98
  }
99
-
100
- // Update docs index: docs includes all of specs/
101
- // Remove from old location, add to new location
102
- await service.reindexFromChanges('docs', [
103
- { path: oldRelPath, deleted: true },
104
- { path: newRelPath, added: true },
105
- ]);
106
99
  }
107
100
 
108
101
  export function register(program: Command): void {
@@ -18,16 +18,27 @@
18
18
  "type": "string",
19
19
  "description": "Domain identifier used for docs folder naming"
20
20
  },
21
- "path": {
22
- "type": "string",
23
- "description": "Path to the source code for this domain"
21
+ "paths": {
22
+ "oneOf": [
23
+ {
24
+ "type": "string",
25
+ "description": "Single path to the source code for this domain"
26
+ },
27
+ {
28
+ "type": "array",
29
+ "items": { "type": "string" },
30
+ "minItems": 1,
31
+ "description": "Array of paths to the source code for this domain"
32
+ }
33
+ ],
34
+ "description": "Path(s) to the source code for this domain. Accepts a single string or an array of strings."
24
35
  },
25
36
  "description": {
26
37
  "type": "string",
27
38
  "description": "Brief description of what this domain contains"
28
39
  }
29
40
  },
30
- "required": ["name", "path"],
41
+ "required": ["name", "paths"],
31
42
  "additionalProperties": false
32
43
  }
33
44
  },
@@ -30,7 +30,7 @@ jobs:
30
30
  - name: Ensure version is higher than published
31
31
  run: |
32
32
  CURRENT=$(node -p "require('./package.json').version")
33
- LATEST=$(npm view all-hands version 2>/dev/null || echo "0.0.0")
33
+ LATEST=$(npm view all-hands-cli version 2>/dev/null || echo "0.0.0")
34
34
 
35
35
  # Compare versions using node
36
36
  NEEDS_BUMP=$(node -e "
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "all-hands-cli",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Agentic harness for model-first software development",
5
5
  "type": "module",
6
6
  "bin": {