aiwg 2026.7.17 → 2026.7.18
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/LICENSE +1 -1
- package/README.md +4 -5
- package/dist/src/artifacts/cli.js +25 -1
- package/dist/src/resources/web-release.js +5 -1
- package/docs/cli-reference.md +10 -6
- package/docs/install/web-backed-resources.md +24 -12
- package/docs/releases/v2026.7.18-announcement.md +64 -0
- package/package.json +1 -1
- package/prebuilt/fortemi-core/framework/aiwg-fortemi-index-v2.json +1 -1
- package/prebuilt/fortemi-core/framework/manifest.json +2 -2
package/LICENSE
CHANGED
|
@@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
|
18
18
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
19
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
20
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -18,14 +18,13 @@ release host:
|
|
|
18
18
|
|
|
19
19
|
```bash
|
|
20
20
|
npm i -g @aiwg/cli
|
|
21
|
-
aiwg discover "architecture evolution"
|
|
22
|
-
|
|
23
|
-
--aiwg-version stable
|
|
21
|
+
aiwg discover "architecture evolution"
|
|
22
|
+
aiwg show skill architecture-evolution
|
|
24
23
|
```
|
|
25
24
|
|
|
26
25
|
See [Web-Backed AIWG Resources](docs/install/web-backed-resources.md) for source
|
|
27
|
-
selection, cache verification, offline use, and the
|
|
28
|
-
constraints.
|
|
26
|
+
selection, exact-version overrides, cache verification, offline use, and the
|
|
27
|
+
current framework-graph constraints.
|
|
29
28
|
|
|
30
29
|
Then ask your AI assistant to set up the project for AIWG. The agent-led setup
|
|
31
30
|
conversation should establish remotes, issue storage, delivery behavior,
|
|
@@ -17,9 +17,12 @@
|
|
|
17
17
|
* @tests @test/unit/artifacts/cli.test.ts
|
|
18
18
|
*/
|
|
19
19
|
import path from 'node:path';
|
|
20
|
+
import { readFileSync } from 'node:fs';
|
|
21
|
+
import { fileURLToPath } from 'node:url';
|
|
20
22
|
import { GRAPH_CONFIGS, OPERATIONAL_DISCOVERY_TYPES, OPERATIONAL_SHOW_TYPES, isOperationalShowType, loadUserGraphConfigs, loadGlobalGraphConfigs, orderedGraphEntries, } from './types.js';
|
|
21
23
|
import { SUPPORTED_VIEWS } from './corpus-views/renderers.js';
|
|
22
24
|
import { parseResourceSelector, readVerifiedRegularFile, } from '../resources/web-release.js';
|
|
25
|
+
import { findPackageRoot } from '../cli/find-package-root.js';
|
|
23
26
|
const MAX_RESOURCE_TRUST_ROOT_BYTES = 64 * 1024;
|
|
24
27
|
function webReleaseOptionsFromEnvironment() {
|
|
25
28
|
const baseUrl = process.env.AIWG_RESOURCE_BASE_URL;
|
|
@@ -82,6 +85,27 @@ function parseBackendFlag(args) {
|
|
|
82
85
|
function parseSearchBackendFlag(args) {
|
|
83
86
|
return parseBackendFlag(args) ?? 'fortemi-core';
|
|
84
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* The full `aiwg` package owns a local corpus, while `@aiwg/cli` intentionally
|
|
90
|
+
* ships only executable code and embedded runtime metadata. Select web
|
|
91
|
+
* resources automatically for the lightweight distribution so a normal
|
|
92
|
+
* `aiwg discover` / `aiwg show` invocation works immediately after install.
|
|
93
|
+
*
|
|
94
|
+
* Resolve from this module rather than process.argv so the exported API gets
|
|
95
|
+
* the same package-aware default as the npm binary.
|
|
96
|
+
*/
|
|
97
|
+
function defaultResourceSource() {
|
|
98
|
+
const packageRoot = findPackageRoot(path.dirname(fileURLToPath(import.meta.url)));
|
|
99
|
+
if (!packageRoot)
|
|
100
|
+
return 'local';
|
|
101
|
+
try {
|
|
102
|
+
const manifest = JSON.parse(readFileSync(path.join(packageRoot, 'package.json'), 'utf8'));
|
|
103
|
+
return manifest.name === '@aiwg/cli' ? 'web' : 'local';
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
return 'local';
|
|
107
|
+
}
|
|
108
|
+
}
|
|
85
109
|
function parseResourceSourceFlag(args) {
|
|
86
110
|
const indices = args
|
|
87
111
|
.map((arg, index) => arg === '--resource-source' ? index : -1)
|
|
@@ -91,7 +115,7 @@ function parseResourceSourceFlag(args) {
|
|
|
91
115
|
process.exit(1);
|
|
92
116
|
}
|
|
93
117
|
if (indices.length === 0)
|
|
94
|
-
return
|
|
118
|
+
return defaultResourceSource();
|
|
95
119
|
const value = args[indices[0] + 1];
|
|
96
120
|
if (value === 'local' || value === 'web' || value === 'auto')
|
|
97
121
|
return value;
|
|
@@ -23,7 +23,11 @@ const MAX_SIGNATURE_BYTES = 64 * 1024;
|
|
|
23
23
|
const MAX_COMPLETION_MARKER_BYTES = 4 * 1024;
|
|
24
24
|
const MAX_CHANNEL_CACHE_CANDIDATES = 128;
|
|
25
25
|
const MAX_RELEASE_CACHE_CANDIDATES = 32;
|
|
26
|
-
|
|
26
|
+
// A cold lightweight-CLI install downloads the signed release manifest
|
|
27
|
+
// (~2 MiB) and Fortemi export (~11 MiB today). Fifteen seconds proved too
|
|
28
|
+
// aggressive on otherwise healthy container and remote-network paths. Keep a
|
|
29
|
+
// finite total-request bound, but allow normal first-run transfer variance.
|
|
30
|
+
const RESOURCE_FETCH_TIMEOUT_MS = 60_000;
|
|
27
31
|
function isRecord(value) {
|
|
28
32
|
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
29
33
|
}
|
package/docs/cli-reference.md
CHANGED
|
@@ -3571,9 +3571,10 @@ aiwg discover "<phrase>" [options]
|
|
|
3571
3571
|
fall back to the packaged prebuilt index described in
|
|
3572
3572
|
[`docs/fortemi-core-prebuilt-indices.md`](fortemi-core-prebuilt-indices.md).
|
|
3573
3573
|
- `--resource-source <local|web|auto>` — Select installed resources, signed
|
|
3574
|
-
web resources, or local-first fallback for this call. `
|
|
3575
|
-
|
|
3576
|
-
|
|
3574
|
+
web resources, or local-first fallback for this call. The full `aiwg`
|
|
3575
|
+
distribution defaults to `local`; the lightweight `@aiwg/cli` distribution
|
|
3576
|
+
defaults to `web`. The current `web` slice requires the `framework` graph and
|
|
3577
|
+
the `fortemi-core` backend.
|
|
3577
3578
|
- `--aiwg-version <version-or-channel>` — Select the exact signed resource
|
|
3578
3579
|
release or channel (`stable`, `candidate`, `nightly`) for web resolution.
|
|
3579
3580
|
- `--offline` — For web resolution, use only previously verified cached release
|
|
@@ -3588,6 +3589,7 @@ aiwg discover "audit security" --type skill # narrow to skills only
|
|
|
3588
3589
|
aiwg discover "rotate service certificates" --type runbook # procedural runbooks only
|
|
3589
3590
|
aiwg discover "review code" --type agent --format json --compact # JSON for sub-agent consumption
|
|
3590
3591
|
aiwg discover "static retrieval" --json # legacy JSON alias
|
|
3592
|
+
aiwg discover "architecture evolution" # @aiwg/cli selects signed stable web resources
|
|
3591
3593
|
aiwg discover "architecture evolution" --resource-source web --aiwg-version stable
|
|
3592
3594
|
aiwg discover "architecture evolution" --resource-source web --offline
|
|
3593
3595
|
```
|
|
@@ -3654,9 +3656,10 @@ aiwg index show <type> <name> [options] # equivalent
|
|
|
3654
3656
|
`fortemi-core`; `local` selects the legacy local fallback. The Fortemi Core
|
|
3655
3657
|
backend reads the static cache created by `aiwg index sync`.
|
|
3656
3658
|
- `--resource-source <local|web|auto>` — Select installed resources, signed
|
|
3657
|
-
web resources, or local-first fallback for this call. `
|
|
3658
|
-
|
|
3659
|
-
|
|
3659
|
+
web resources, or local-first fallback for this call. The full `aiwg`
|
|
3660
|
+
distribution defaults to `local`; the lightweight `@aiwg/cli` distribution
|
|
3661
|
+
defaults to `web`. The current `web` slice requires the `framework` graph and
|
|
3662
|
+
the `fortemi-core` backend.
|
|
3660
3663
|
- `--aiwg-version <version-or-channel>` — Select the exact signed resource
|
|
3661
3664
|
release or channel (`stable`, `candidate`, `nightly`) for web resolution.
|
|
3662
3665
|
- `--offline` — For web resolution, use only previously verified cached release
|
|
@@ -3674,6 +3677,7 @@ aiwg index show <type> <name> [options] # equivalent
|
|
|
3674
3677
|
```bash
|
|
3675
3678
|
aiwg show skill aiwg:skill:6f1477d99813ca8d # streams SKILL.md to stdout
|
|
3676
3679
|
aiwg show skill flow-deploy-to-production --json # id + path + content envelope
|
|
3680
|
+
aiwg show skill architecture-evolution # @aiwg/cli selects signed stable web resources
|
|
3677
3681
|
aiwg show skill architecture-evolution --resource-source web --aiwg-version stable
|
|
3678
3682
|
aiwg show metadata aiwg:skill:6f1477d99813ca8d --json # full Fortemi metadata + paths
|
|
3679
3683
|
aiwg show agent aiwg-steward # agent definition
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
# Web-Backed AIWG Resources
|
|
2
2
|
|
|
3
|
-
**Status**:
|
|
3
|
+
**Status**: Beta / framework discovery and lookup
|
|
4
4
|
|
|
5
|
-
AIWG has
|
|
6
|
-
`
|
|
5
|
+
AIWG has a beta implementation for web-backed resource loading. The
|
|
6
|
+
full `aiwg` distribution continues to default to its bundled local corpus. The
|
|
7
|
+
lightweight `@aiwg/cli` distribution defaults to the signed `stable` web
|
|
8
|
+
channel because it intentionally does not bundle that corpus.
|
|
7
9
|
|
|
8
|
-
Operator workflows
|
|
10
|
+
Operator workflows remain command-driven and unchanged. Source selection is
|
|
11
|
+
automatic for the normal package choice and can be overridden per call.
|
|
9
12
|
|
|
10
13
|
Release artifacts are hosted at `releases.aiwg.io` (not `aiwg.io/resources`),
|
|
11
14
|
and the public AIWG website remains separate.
|
|
@@ -16,14 +19,17 @@ Web-backed use does not require the full npm corpus package. Install the
|
|
|
16
19
|
CalVer-locked CLI package instead:
|
|
17
20
|
|
|
18
21
|
```bash
|
|
19
|
-
npm install --global @aiwg/cli@
|
|
20
|
-
aiwg discover "architecture evolution"
|
|
22
|
+
npm install --global @aiwg/cli@latest
|
|
23
|
+
aiwg discover "architecture evolution"
|
|
24
|
+
aiwg show skill architecture-evolution
|
|
21
25
|
```
|
|
22
26
|
|
|
23
27
|
`@aiwg/cli` and `aiwg` always publish with the exact same AIWG CalVer. The npm
|
|
24
28
|
package version selects CLI behavior; `--aiwg-version` independently selects
|
|
25
29
|
the signed resource release for a call. The CLI package contains executable
|
|
26
|
-
and API code only. It does not contain the default framework/addon corpus.
|
|
30
|
+
and API code only. It does not contain the default framework/addon corpus. Both
|
|
31
|
+
the installed executable and the package's exported CLI API apply the same
|
|
32
|
+
default, without project configuration.
|
|
27
33
|
|
|
28
34
|
## Relocating Project AIWG Artifacts
|
|
29
35
|
|
|
@@ -43,10 +49,14 @@ setup.
|
|
|
43
49
|
|
|
44
50
|
| Mode | Behavior |
|
|
45
51
|
| ------- | ---------------------------------------------------------------------------------------------- |
|
|
46
|
-
| `local` | Use installed/project-local resources only. This is the default for
|
|
52
|
+
| `local` | Use installed/project-local resources only. This is the default for the full `aiwg` package. |
|
|
47
53
|
| `web` | Resolve resources from versioned, signed release-host bundles with cache and integrity checks. |
|
|
48
54
|
| `auto` | Prefer local resources when present; otherwise fall back to web-backed resources. |
|
|
49
55
|
|
|
56
|
+
For `discover` and `show`, `@aiwg/cli` selects `web` and the signed `stable`
|
|
57
|
+
channel when no source/version flags are supplied. Explicit
|
|
58
|
+
`--resource-source local|web|auto` and `--aiwg-version` values always win.
|
|
59
|
+
|
|
50
60
|
## Current Implemented Commands and Flags
|
|
51
61
|
|
|
52
62
|
`aiwg discover` and `aiwg show` currently support:
|
|
@@ -58,12 +68,14 @@ setup.
|
|
|
58
68
|
Examples:
|
|
59
69
|
|
|
60
70
|
```bash
|
|
61
|
-
aiwg discover "architecture evolution"
|
|
71
|
+
aiwg discover "architecture evolution"
|
|
72
|
+
aiwg discover "architecture evolution" --resource-source local
|
|
62
73
|
aiwg discover "architecture evolution" --resource-source web --aiwg-version stable
|
|
63
|
-
aiwg discover "architecture evolution" --resource-source auto --aiwg-version 2026.7.
|
|
74
|
+
aiwg discover "architecture evolution" --resource-source auto --aiwg-version 2026.7.18
|
|
64
75
|
aiwg discover "architecture evolution" --resource-source web --offline
|
|
65
76
|
|
|
66
|
-
aiwg show skill architecture-evolution
|
|
77
|
+
aiwg show skill architecture-evolution
|
|
78
|
+
aiwg show skill architecture-evolution --resource-source web --aiwg-version 2026.7.18
|
|
67
79
|
aiwg show framework sdlc --resource-source web --aiwg-version candidate
|
|
68
80
|
aiwg show framework sdlc --resource-source web --offline
|
|
69
81
|
```
|
|
@@ -123,4 +135,4 @@ AIWG corpus.
|
|
|
123
135
|
- `aiwg versions` command family.
|
|
124
136
|
- Web behavior for `aiwg use`/`aiwg regenerate`.
|
|
125
137
|
- Lockfile persistence for resolved web versions.
|
|
126
|
-
-
|
|
138
|
+
- Web parity for project/codebase graph operations.
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# AIWG 2026.7.18 - "Web-first CLI and packaged Cockpit"
|
|
2
|
+
|
|
3
|
+
**Released:** 2026-07-23
|
|
4
|
+
**Channel:** stable
|
|
5
|
+
|
|
6
|
+
AIWG 2026.7.18 is a corrective package release for the lightweight web-backed
|
|
7
|
+
CLI and Cockpit distributions introduced in 2026.7.17. It makes the documented
|
|
8
|
+
no-configuration install path match the behavior of the packages users receive
|
|
9
|
+
from npm.
|
|
10
|
+
|
|
11
|
+
## Highlights
|
|
12
|
+
|
|
13
|
+
- **Web resources by default in `@aiwg/cli`** — install the lightweight package
|
|
14
|
+
and run `aiwg discover` or `aiwg show` without project configuration or
|
|
15
|
+
resource flags. Both the binary and exported CLI API select the signed
|
|
16
|
+
`stable` channel.
|
|
17
|
+
- **Legacy local behavior preserved** — the full `aiwg` package still defaults
|
|
18
|
+
to its bundled local corpus, so existing installations can opt into web mode
|
|
19
|
+
per call without changing project deployments.
|
|
20
|
+
- **Deployable Cockpit tarball** — `@aiwg/cockpit` now includes its compiled
|
|
21
|
+
production web UI and license, launches through npm's global binary symlink,
|
|
22
|
+
and remains available when the optional executor is not installed.
|
|
23
|
+
- **Package-level regression coverage** — clean-install tests verify the real
|
|
24
|
+
package entry points, default configuration, resource resolution, served
|
|
25
|
+
Cockpit UI, licenses, and allowlists.
|
|
26
|
+
|
|
27
|
+
## Package matrix
|
|
28
|
+
|
|
29
|
+
All three packages publish in CalVer lockstep:
|
|
30
|
+
|
|
31
|
+
```text
|
|
32
|
+
aiwg@2026.7.18
|
|
33
|
+
@aiwg/cockpit@2026.7.18
|
|
34
|
+
@aiwg/cli@2026.7.18
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Use the full local-corpus distribution:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
npm install --global aiwg@latest
|
|
41
|
+
aiwg discover "architecture evolution"
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Use the lightweight signed-web distribution:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
npm install --global @aiwg/cli@latest
|
|
48
|
+
aiwg discover "architecture evolution"
|
|
49
|
+
aiwg show skill architecture-evolution
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Operators can pin resources for one call with `--aiwg-version <version>` or
|
|
53
|
+
override source selection with `--resource-source local|web|auto`.
|
|
54
|
+
|
|
55
|
+
## Upgrade
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
npm install --global aiwg@latest
|
|
59
|
+
# or
|
|
60
|
+
npm install --global @aiwg/cli@latest
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
No project migration is required. Existing local configurations and explicit
|
|
64
|
+
web-mode invocations continue to work.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "aiwg",
|
|
3
|
-
"version": "2026.7.
|
|
3
|
+
"version": "2026.7.18",
|
|
4
4
|
"description": "Deployment tool and support utility for AI context. Copies agents, skills, commands, rules, and behaviors into the paths each AI platform reads (Claude Code, Codex, Copilot, Cursor, Warp, OpenClaw, and 6 more) so one source of truth works across 10 platforms. Optional utilities for persistent artifact memory, background orchestration, autonomous loops, and artifact indexing.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|