@tpsdev-ai/flair 0.53.0 → 0.54.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 +4 -1
- package/dist/build-info.json +3 -3
- package/dist/cli.js +1791 -15648
- package/dist/commands/agent.js +453 -0
- package/dist/commands/attention.js +121 -0
- package/dist/commands/backup.js +115 -0
- package/dist/commands/bootstrap.js +91 -0
- package/dist/commands/bridge.js +608 -0
- package/dist/commands/deploy.js +180 -0
- package/dist/commands/doctor.js +1665 -0
- package/dist/commands/export.js +110 -0
- package/dist/commands/federation.js +1575 -0
- package/dist/commands/fleet.js +73 -0
- package/dist/commands/grant.js +109 -0
- package/dist/commands/hook.js +193 -0
- package/dist/commands/idp.js +193 -0
- package/dist/commands/import.js +134 -0
- package/dist/commands/init.js +1203 -0
- package/dist/commands/inspect.js +45 -0
- package/dist/commands/keys.js +187 -0
- package/dist/commands/mcp.js +707 -0
- package/dist/commands/memory.js +501 -0
- package/dist/commands/migrate-harness-memory.js +270 -0
- package/dist/commands/orgevent.js +138 -0
- package/dist/commands/presence.js +76 -0
- package/dist/commands/principal.js +338 -0
- package/dist/commands/quality.js +1164 -0
- package/dist/commands/reembed.js +296 -0
- package/dist/commands/relationship.js +76 -0
- package/dist/commands/rem.js +1048 -0
- package/dist/commands/restore.js +130 -0
- package/dist/commands/search.js +244 -0
- package/dist/commands/service.js +315 -0
- package/dist/commands/session.js +184 -0
- package/dist/commands/soul.js +155 -0
- package/dist/commands/status.js +931 -0
- package/dist/commands/test.js +93 -0
- package/dist/commands/uninstall.js +143 -0
- package/dist/commands/upgrade.js +1628 -0
- package/dist/commands/workspace.js +114 -0
- package/dist/deploy.js +24 -0
- package/dist/engine-version.js +12 -4
- package/dist/fabric-npm-install.js +87 -0
- package/dist/fabric-upgrade.js +30 -15
- package/dist/federation-verify.js +498 -0
- package/dist/fleet-verify.js +144 -21
- package/dist/install/clients.js +167 -0
- package/dist/lib/auth-resolve.js +76 -1
- package/dist/lib/daemon-liveness.js +131 -2
- package/dist/lib/doctor-config-path.js +61 -0
- package/dist/lib/doctor-federation-driver.js +189 -0
- package/dist/lib/doctor-run.js +40 -0
- package/dist/lib/entity-vocab-cli.js +3 -3
- package/dist/lib/federation-pair-identity.js +47 -0
- package/dist/lib/launchd-repair.js +5 -4
- package/dist/lib/npm-registry.js +578 -0
- package/dist/lib/ops-api-bind.js +115 -0
- package/dist/lib/owned-pins.js +219 -0
- package/dist/lib/uninstall-purge.js +218 -0
- package/dist/rem/restore.js +8 -10
- package/dist/resources/AgentReadPosition.js +74 -0
- package/dist/resources/Federation.js +8 -2
- package/dist/resources/Memory.js +4 -3
- package/dist/resources/MemoryBootstrap.js +41 -25
- package/dist/resources/MemoryCandidate.js +5 -6
- package/dist/resources/OrgEventCatchup.js +126 -47
- package/dist/resources/agent-read-position-lib.js +83 -0
- package/dist/resources/agent-read-position.js +120 -0
- package/dist/resources/embeddings-boot.js +32 -0
- package/dist/resources/federation-peer-liveness.js +73 -0
- package/dist/resources/health.js +68 -19
- package/dist/resources/mcp-tools.js +48 -279
- package/dist/resources/memory-visibility.js +3 -3
- package/dist/resources/migration-boot.js +59 -18
- package/dist/resources/migrations/embedding-stamp.js +20 -1
- package/dist/resources/migrations/recheck.js +43 -0
- package/dist/resources/migrations/runner.js +6 -1
- package/dist/resources/migrations/stamp-outstanding.js +171 -0
- package/dist/resources/migrations/visibility-backfill.js +2 -2
- package/dist/resources/org-event-catchup-lib.js +47 -0
- package/dist/resources/record-owner-guard.js +1 -0
- package/dist/resources/tool-descriptors/index.js +669 -0
- package/dist/stamp-migration-verify.js +163 -0
- package/dist/stamp-outstanding.js +144 -0
- package/dist/version-check.js +29 -8
- package/docs/api-reference.md +4 -2
- package/docs/deploying-on-fabric.md +11 -10
- package/docs/deployment.md +3 -1
- package/docs/federation.md +19 -0
- package/docs/hosted-on-fabric.md +3 -3
- package/docs/quickstart.md +2 -1
- package/docs/releasing.md +20 -6
- package/docs/spoke-bringup.md +10 -5
- package/docs/standalone-local.md +3 -1
- package/docs/upgrade.md +25 -6
- package/package.json +4 -4
- package/schemas/agent.graphql +15 -0
package/docs/upgrade.md
CHANGED
|
@@ -39,7 +39,11 @@ flair doctor
|
|
|
39
39
|
`flair upgrade` checks and upgrades the npm-global packages (`@tpsdev-ai/flair`,
|
|
40
40
|
`@tpsdev-ai/flair-mcp`) and, if present, the `openclaw-flair` plugin (via
|
|
41
41
|
`openclaw plugins install --force --pin`, not `npm install -g` — it needs OpenClaw's
|
|
42
|
-
own plugin loader).
|
|
42
|
+
own plugin loader). It also refreshes every `@tpsdev-ai/flair-mcp@<version>` pin
|
|
43
|
+
it previously wrote — MCP server entries **and** SessionStart hook commands —
|
|
44
|
+
for each already-wired client (`~/.claude.json`, `~/.claude/settings.json`,
|
|
45
|
+
`~/.codex/config.toml`, `~/.codex/hooks.json`, and the other auto-wired clients).
|
|
46
|
+
Pass `--all` to also see `flair-client` (normally hidden as a
|
|
43
47
|
transitive dependency). **Other integrations upgrade in their own ecosystem, not via
|
|
44
48
|
`flair upgrade`:** `pi-flair` (pi's plugin manager), `langgraph-flair` / `hermes-flair`
|
|
45
49
|
(pip / your Python package manager), `n8n-nodes-flair` (n8n's Community Nodes UI).
|
|
@@ -264,6 +268,20 @@ flair upgrade --target https://<fabric-node>/<instance-name> \
|
|
|
264
268
|
--fabric-user <admin> --fabric-password <pass>
|
|
265
269
|
```
|
|
266
270
|
|
|
271
|
+
### Post-deploy embedding-stamp verify
|
|
272
|
+
|
|
273
|
+
As of flair#1073, both `flair deploy` and `flair upgrade --target` poll
|
|
274
|
+
authenticated `/HealthDetail` after the served-API check until the
|
|
275
|
+
`embedding-stamp` migration has converged — every real embedding is in the
|
|
276
|
+
current `+searchprefix` space, and the migration is not halted or still
|
|
277
|
+
running. Route verify only proves the component is serving; it does not
|
|
278
|
+
prove the boot-keyed re-embed actually finished. A Fabric instance that
|
|
279
|
+
stayed split for days after 0.30.0 was the incident this closes.
|
|
280
|
+
|
|
281
|
+
`--no-verify` skips this check together with the served-API check.
|
|
282
|
+
`--verify-timeout` covers both. Token-only auth skips the stamp check
|
|
283
|
+
(it needs Basic admin to read `/HealthDetail`) and says so.
|
|
284
|
+
|
|
267
285
|
### Post-deploy fleet verify
|
|
268
286
|
|
|
269
287
|
As of flair#636, both `flair deploy` and `flair upgrade --target` automatically run a
|
|
@@ -287,10 +305,10 @@ Exit codes:
|
|
|
287
305
|
|
|
288
306
|
| Code | Meaning |
|
|
289
307
|
|------|---------|
|
|
290
|
-
| 0 | All nodes verified
|
|
308
|
+
| 0 | All probed nodes verified. Unverifiable peers (no endpoint on file) are listed as a warning and do not fail |
|
|
291
309
|
| 1 | Origin failed (unreachable, unauthenticated, or wrong version) |
|
|
292
|
-
| 2 |
|
|
293
|
-
| 3 |
|
|
310
|
+
| 2 | A reachable node diverged (wrong version) — NOT converged |
|
|
311
|
+
| 3 | A reachable peer was unreachable or rejected auth (not unverifiable) |
|
|
294
312
|
|
|
295
313
|
**What "peer" means here — read before trusting a green sweep:** this checks
|
|
296
314
|
*Flair's own* federation peer table, not Harper Fabric's own cluster-replication
|
|
@@ -300,8 +318,9 @@ in this cluster and are they in sync") is harper-pro-only and unavailable in the
|
|
|
300
318
|
Fabric's own replication topology, on the origin or anywhere else. A Fabric replica
|
|
301
319
|
that was never separately paired as a Flair federation peer (`flair federation pair`)
|
|
302
320
|
is invisible to this sweep: `0 peers known` means "0 peers on file," never "0 peers
|
|
303
|
-
exist." A peer with no usable endpoint is reported `unverifiable` —
|
|
304
|
-
|
|
321
|
+
exist." A peer with no usable endpoint is reported `unverifiable` — listed and
|
|
322
|
+
warned, never shown green, and does not fail the run (a reachable peer on the
|
|
323
|
+
wrong version still does). The sweep also needs Basic-auth credentials
|
|
305
324
|
(`FABRIC_USER`/`FABRIC_PASSWORD` env, or the discouraged inline
|
|
306
325
|
`--fabric-user`/`--fabric-password`) to authenticate each peer probe; a token-only
|
|
307
326
|
(`--fabric-token`) deploy skips it with a note instead of a silent no-op.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tpsdev-ai/flair",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.54.2",
|
|
4
4
|
"packageManager": "bun@1.3.10",
|
|
5
5
|
"description": "Identity, memory, and soul for AI agents. Cryptographic identity (Ed25519), semantic memory with local embeddings, and persistent personality — all in a single process.",
|
|
6
6
|
"type": "module",
|
|
@@ -46,10 +46,10 @@
|
|
|
46
46
|
],
|
|
47
47
|
"scripts": {
|
|
48
48
|
"clean": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"",
|
|
49
|
-
"prebuild": "npm run clean",
|
|
49
|
+
"prebuild": "npm run clean && node scripts/vendor-tool-descriptors.mjs",
|
|
50
50
|
"build": "tsc -p tsconfig.json --noCheck && node scripts/write-build-info.mjs",
|
|
51
51
|
"build:cli": "tsc -p tsconfig.cli.json --noCheck && node scripts/write-build-info.mjs",
|
|
52
|
-
"
|
|
52
|
+
"prepack": "npm run build && npm run build:cli",
|
|
53
53
|
"test": "bun run test:unit",
|
|
54
54
|
"test:unit": "bun scripts/test-unit.ts",
|
|
55
55
|
"test:e2e": "playwright test",
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
"fast-uri": "^4.1.3",
|
|
81
81
|
"hono": "^4.13.5",
|
|
82
82
|
"js-yaml": "^4.3.2",
|
|
83
|
-
"adm-zip": "^0.6.
|
|
83
|
+
"adm-zip": "^0.6.1",
|
|
84
84
|
"@opentelemetry/core": "^2.8.0",
|
|
85
85
|
"uuid": "^11.1.1",
|
|
86
86
|
"tar": "^7.5.22",
|
package/schemas/agent.graphql
CHANGED
|
@@ -76,3 +76,18 @@ type Integration @table(database: "flair") @export {
|
|
|
76
76
|
createdAt: String!
|
|
77
77
|
updatedAt: String
|
|
78
78
|
}
|
|
79
|
+
|
|
80
|
+
# Per-agent read-position (watermark) — durable catch-up cursor (flair#931).
|
|
81
|
+
# A monotonic position per (agent, stream), not a wall-clock `since`. Reused
|
|
82
|
+
# by OrgEventCatchup today and the light-comms board later (#1583); the stream
|
|
83
|
+
# name is the only table-specific part. Not @export: agents use
|
|
84
|
+
# /AgentReadPosition and /OrgEventCatchup, never raw-table REST. Owner-scoped
|
|
85
|
+
# (each agent reads/advances only its own). Advance-on-ack, never silently
|
|
86
|
+
# truncated. See resources/agent-read-position-lib.ts.
|
|
87
|
+
type AgentReadPosition @table(database: "flair") {
|
|
88
|
+
id: ID @primaryKey # `${agentId}:${stream}`
|
|
89
|
+
agentId: String! @indexed
|
|
90
|
+
stream: String! @indexed # e.g. "org-event"
|
|
91
|
+
position: String! # opaque total-order watermark; lexicographic compare
|
|
92
|
+
updatedAt: String!
|
|
93
|
+
}
|