@plurnk/plurnk-meta 1.2.0 → 1.3.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/CORPUS.md +1 -1
- package/DIVERGENCES.md +43 -27
- package/DOGFOOD.md +54 -0
- package/PLURNK_PERSONALITY.md +1 -0
- package/README.md +3 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +42 -9
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
package/CORPUS.md
CHANGED
|
@@ -14,7 +14,7 @@ The plurnk teaching corpus. Markdown consumed by [plurnk-service](https://github
|
|
|
14
14
|
|
|
15
15
|
## Contract
|
|
16
16
|
|
|
17
|
-
plurnk-service resolves these files from this package (`Paths`), pins the version, and validates teaching changes with its live/demo tiers. A teaching change ships as a bump here; the service adopts it like any
|
|
17
|
+
plurnk-service resolves these files from this package (`Paths`), pins the version, and validates teaching changes with its live/demo tiers. A teaching change ships as a bump here; the service adopts it like any plugin. File teaching asks and steer-wording issues HERE, not on the daemon.
|
|
18
18
|
|
|
19
19
|
## Teaching doctrine (adopted from the grammar lane, #392 — data-backed, evidence cited)
|
|
20
20
|
|
package/DIVERGENCES.md
CHANGED
|
@@ -1,27 +1,43 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
1
|
+
# Intentional interoperability differences
|
|
2
|
+
|
|
3
|
+
PLURNK follows established protocols and conventions by default. This file
|
|
4
|
+
records product-level differences that materially affect interoperability. It
|
|
5
|
+
does not catalog ordinary implementation choices.
|
|
6
|
+
|
|
7
|
+
## Model operation language
|
|
8
|
+
|
|
9
|
+
PLURNK models emit a grammar-constrained operation language instead of a list of
|
|
10
|
+
JSON function calls. Operations address resources with URIs and can compose
|
|
11
|
+
across installed schemes and executors.
|
|
12
|
+
|
|
13
|
+
This is the project's primary experiment: determine whether a compact,
|
|
14
|
+
constrained language plus persistent addressable context improves reliability,
|
|
15
|
+
especially for smaller models.
|
|
16
|
+
|
|
17
|
+
Interoperability:
|
|
18
|
+
|
|
19
|
+
- PLURNK consumes MCP servers through `plurnk-execs-mcp`.
|
|
20
|
+
- Clients use AG-UI.
|
|
21
|
+
- Provider adapters use established model APIs.
|
|
22
|
+
|
|
23
|
+
This difference is justified only if whole-product evaluations demonstrate an
|
|
24
|
+
advantage over conventional tool calling.
|
|
25
|
+
|
|
26
|
+
## Internal resource addressing
|
|
27
|
+
|
|
28
|
+
Agent-visible state uses URI schemes such as `worker://`, `prompt://`, and
|
|
29
|
+
`log://`. The URI authority identifies the relevant worker namespace where the
|
|
30
|
+
scheme supports one.
|
|
31
|
+
|
|
32
|
+
This provides one address form for project content, worker state, execution
|
|
33
|
+
results, and external resources. The internal representation does not alter
|
|
34
|
+
MCP, AG-UI, or provider wire protocols.
|
|
35
|
+
|
|
36
|
+
## AG-UI management extensions
|
|
37
|
+
|
|
38
|
+
AG-UI defines agent runs but not all workspace-management operations PLURNK
|
|
39
|
+
requires. Management actions therefore use AG-UI's extension fields and custom
|
|
40
|
+
events on the same authenticated endpoint.
|
|
41
|
+
|
|
42
|
+
These extensions must remain optional to generic AG-UI consumers. If AG-UI
|
|
43
|
+
standardizes equivalent management operations, PLURNK should adopt them.
|
package/DOGFOOD.md
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Whole-product dogfood gate
|
|
2
|
+
|
|
3
|
+
This is the release-defining acceptance gate for PLURNK as a daily-driver agent system. It tests the assembled product through the outside client; it does not replace package installation, deterministic integration, live-model, or benchmark gates.
|
|
4
|
+
|
|
5
|
+
The gate belongs to `plurnk-meta` because it crosses family ownership: canonical service installation, optional-provider assembly, the outside client, project membership, AG-UI, proposal review, model routing, persistence, and forensic digestion.
|
|
6
|
+
|
|
7
|
+
## Preconditions
|
|
8
|
+
|
|
9
|
+
- A clean canonical `plurnk-service` checkout with its gate green.
|
|
10
|
+
- The outside `plurnk` client checkout built from its repository head.
|
|
11
|
+
- Every default-installed optional provider resolvable from the daemon.
|
|
12
|
+
- A project root containing its automatic root `AGENTS.md` and manually declared repository forest.
|
|
13
|
+
- One inexpensive capable model alias and, optionally, one local smoke-test alias.
|
|
14
|
+
|
|
15
|
+
Missing preconditions are RED outcomes. The runner never silently skips a phase.
|
|
16
|
+
|
|
17
|
+
## Contract
|
|
18
|
+
|
|
19
|
+
One run must prove all of the following through production client and AG-UI surfaces:
|
|
20
|
+
|
|
21
|
+
1. **Clean bootstrap.** Start from a new database, boot the canonical daemon, and create a user-named workspace.
|
|
22
|
+
2. **Membership.** Apply the equivalent of `/repo **`; `FIND **` succeeds and the canonical `plurnk-service/AGENTS.md` is readable.
|
|
23
|
+
3. **Automatic doctrine.** The project-root `AGENTS.md` appears in the model system packet without an explicit pick.
|
|
24
|
+
4. **Client YOLO (`--yolo`).** The loop surrenders a proposal to the client; the client synchronously accepts it, posts an explicit resume, and reaches a terminal result.
|
|
25
|
+
5. **Loop auto (`--auto`).** Execution authority remains with the loop; its proposal resolves internally without a client review or resume round-trip.
|
|
26
|
+
6. **Human review.** A proposal survives disconnect/reconnect and can be explicitly accepted or rejected.
|
|
27
|
+
7. **Model hot-swap.** Two configured aliases run in the same workspace and their turns record the selected models.
|
|
28
|
+
8. **Restart/resume.** After a daemon restart against the same database, the named workspace and worker retain their context and can complete another run.
|
|
29
|
+
9. **Comprehension.** The capable-model orientation report identifies the architecture, repository topology, current goal, meta-worker role, and missing or contradictory context with named evidence. Writing memory without delivering the requested report is RED.
|
|
30
|
+
10. **Forensics.** The database is digested through the supported digest tool and the preserved specimen contains enough evidence to audit every assertion above.
|
|
31
|
+
|
|
32
|
+
Passing individual package tests or receiving HTTP 200 is insufficient. The user-visible client must remain usable and the requested terminal deliverable must be present.
|
|
33
|
+
|
|
34
|
+
## Evidence
|
|
35
|
+
|
|
36
|
+
Each run atomically claims `benchmarks/run<N>-dogfood/` and writes:
|
|
37
|
+
|
|
38
|
+
- `workspace` — workspace and worker names;
|
|
39
|
+
- `service.stdout.log` and `service.stderr.log`;
|
|
40
|
+
- `phases.json` — command, timing, exit status, and assertion results without secrets;
|
|
41
|
+
- `plurnk.db` — the preserved database;
|
|
42
|
+
- `digest/` — `digest.md`, `digest.json`, `reasoning.md`, and packet sections;
|
|
43
|
+
- `requiem/` when an active provider is available.
|
|
44
|
+
|
|
45
|
+
The database is evidence, never the diagnostic interface. Assertions consume client output, AG-UI events, and digest artifacts.
|
|
46
|
+
|
|
47
|
+
## Posture
|
|
48
|
+
|
|
49
|
+
- Run foreground and fail hard.
|
|
50
|
+
- Report client YOLO and loop auto separately; they are different state machines at different ownership boundaries.
|
|
51
|
+
- Preserve both passing and failing specimens until explicitly curated.
|
|
52
|
+
- Never reuse a database for a clean-bootstrap comparison.
|
|
53
|
+
- A provider/configuration/install failure is a gate failure, not a skipped model test.
|
|
54
|
+
- File every cross-family defect on `plurnk/plurnk-service` with its owning lane label and specimen path.
|
package/PLURNK_PERSONALITY.md
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
- You ignore emotional subtext, sarcasm, and tone. You never apologize, but you are quick to affirm if you were incorrect.
|
|
5
5
|
- You have no deadline. You're writing minimal, elegant code to be read. No pragmatic compromises or clever hacks.
|
|
6
6
|
- You assume that your inference is stale on current events, software and service versions, or APIs. Check if unsure.
|
|
7
|
+
- You answer prompts from primary sources when possible. Summaries and snippets point at information; they are not information.
|
|
7
8
|
- You look for the modern standards, conventions, and best practices. Everything's been done before. Do it the right way.
|
|
8
9
|
- You strive to translate your ephemeral inference into deterministic knowledgebase entries, scripts, or specifications.
|
|
9
10
|
- You trust internal contracts, only building robust guards against bugs on external surfaces.
|
package/README.md
CHANGED
|
@@ -5,11 +5,13 @@ The plurnk metaproject layer, published — what the family shares that no singl
|
|
|
5
5
|
**Membership primitives** (`import Meta from "@plurnk/plurnk-meta"`): the ONE implementation of trust, enumeration, and root resolution consumed by the daemon's plugin loader and env-defaults floor and by all four family-head scanners (schemes, mimetypes, providers, execs).
|
|
6
6
|
|
|
7
7
|
- `Meta.isTrusted(packageName, env?)` — the `PLURNK_PLUGINS_TRUSTED_ONLY` gate: unset/`""`/`"0"` off; any value on, `@plurnk/*` always trusted plus a comma-separated allowlist.
|
|
8
|
-
- `Meta.packageDirs(nodeModulesDir)` — scope-agnostic, symlink-aware enumeration
|
|
8
|
+
- `Meta.packageDirs(nodeModulesDir)` — scope-agnostic, symlink-aware enumeration across Node's ancestor resolution chain as `{ dir, name }` candidates; the nearest package name wins. Ordering and filtering are the caller's policy.
|
|
9
9
|
- `Meta.nearestNodeModules(fromDir)` — walk up to the nearest `node_modules` holding the ecosystem (witness: `@plurnk` scope); `null` when absent.
|
|
10
10
|
|
|
11
11
|
**The teaching corpus**: `PLURNK_PERSONALITY.md` (the default operating policy the daemon seeds to `~/.plurnk/AGENTS.md`), `requirements.md` (the system-requirements contract appended to the user packet), and `docs/*.md` (per-scheme/exec teaching docs) — exported subpaths, resolved by the daemon at runtime (pull, don't copy). See `CORPUS.md`.
|
|
12
12
|
|
|
13
13
|
**Family tooling** grows here (scaffolders, meta bins) — the published surface of the metaproject's management layer.
|
|
14
14
|
|
|
15
|
+
[`DOGFOOD.md`](./DOGFOOD.md) defines the whole-product, outside-client acceptance gate for daily-driver and release readiness.
|
|
16
|
+
|
|
15
17
|
Third-party plugin authors: your package is discovered by ANY scope + a `plurnk` manifest (`plurnk.kind`), enumerated by these primitives, and gated by the operator's trust knob — no registration with us required. MIT.
|
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export interface PackageCandidate {
|
|
|
3
3
|
name: string;
|
|
4
4
|
}
|
|
5
5
|
export default class Meta {
|
|
6
|
+
#private;
|
|
6
7
|
static isTrusted(packageName: string, env?: Record<string, string | undefined>): boolean;
|
|
7
8
|
static packageDirs(nodeModulesDir: string): Promise<PackageCandidate[]>;
|
|
8
9
|
static nearestNodeModules(fromDir: string): string | null;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,gBAAgB;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,CAAC,OAAO,OAAO,IAAI;;IAIrB,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GAAG,OAAO,CAKpG;IAkCD,OAAa,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAyB5E;IAED,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CASxD;CACJ"}
|
package/dist/index.js
CHANGED
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
// §plugin-discovery / §operator-config-env-defaults):
|
|
4
4
|
// - isTrusted: THE trust rule. One implementation; a second definition
|
|
5
5
|
// of membership trust anywhere in the family is a bug.
|
|
6
|
-
// - packageDirs: scope-agnostic, symlink-aware enumeration of
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
//
|
|
6
|
+
// - packageDirs: scope-agnostic, symlink-aware enumeration of the Node
|
|
7
|
+
// resolution chain. Nearest package wins when npm splits
|
|
8
|
+
// a deployment across nested node_modules directories.
|
|
9
|
+
// Returns candidates; ORDERING AND FILTERING ARE THE
|
|
10
|
+
// CALLER'S POLICY.
|
|
10
11
|
// - nearestNodeModules: deployment-root resolution — walk up to the nearest
|
|
11
12
|
// node_modules holding the ecosystem (witness: @plurnk).
|
|
12
13
|
// Registry installs hit the install root; workspace
|
|
@@ -28,11 +29,7 @@ export default class Meta {
|
|
|
28
29
|
return true;
|
|
29
30
|
return value.split(",").map((s) => s.trim()).includes(packageName);
|
|
30
31
|
}
|
|
31
|
-
|
|
32
|
-
// (`@scope/name`) alike. Symlinks included: workspace checkouts link every sibling
|
|
33
|
-
// into node_modules, and a dirent-only isDirectory() reads them as non-dirs.
|
|
34
|
-
// Non-package entries (.bin, .cache, dotfiles) are skipped. No node_modules → [].
|
|
35
|
-
static async packageDirs(nodeModulesDir) {
|
|
32
|
+
static async #packageDirsOne(nodeModulesDir) {
|
|
36
33
|
let entries;
|
|
37
34
|
try {
|
|
38
35
|
entries = await readdir(nodeModulesDir, { withFileTypes: true });
|
|
@@ -64,6 +61,42 @@ export default class Meta {
|
|
|
64
61
|
}
|
|
65
62
|
return candidates;
|
|
66
63
|
}
|
|
64
|
+
// Every package resolvable from nodeModulesDir — unscoped (`name`) and scoped
|
|
65
|
+
// (`@scope/name`) alike. npm may place one peer set beside a workspace package
|
|
66
|
+
// and the rest at an ancestor; Node resolves through both, so discovery does too.
|
|
67
|
+
// Nearest wins by package name. Symlinks are included; dot entries are skipped.
|
|
68
|
+
static async packageDirs(nodeModulesDir) {
|
|
69
|
+
const candidates = [];
|
|
70
|
+
const seenNames = new Set();
|
|
71
|
+
const seenDirs = new Set();
|
|
72
|
+
let dir = path.resolve(nodeModulesDir);
|
|
73
|
+
while (!seenDirs.has(dir)) {
|
|
74
|
+
seenDirs.add(dir);
|
|
75
|
+
for (const candidate of await Meta.#packageDirsOne(dir)) {
|
|
76
|
+
if (seenNames.has(candidate.name))
|
|
77
|
+
continue;
|
|
78
|
+
seenNames.add(candidate.name);
|
|
79
|
+
candidates.push(candidate);
|
|
80
|
+
}
|
|
81
|
+
let cursor = path.dirname(dir);
|
|
82
|
+
let next = null;
|
|
83
|
+
while (true) {
|
|
84
|
+
const parent = path.dirname(cursor);
|
|
85
|
+
if (parent === cursor)
|
|
86
|
+
break;
|
|
87
|
+
cursor = parent;
|
|
88
|
+
const candidate = path.basename(cursor) === "node_modules" ? cursor : path.join(cursor, "node_modules");
|
|
89
|
+
if (!seenDirs.has(candidate) && existsSync(candidate)) {
|
|
90
|
+
next = candidate;
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
if (next === null)
|
|
95
|
+
break;
|
|
96
|
+
dir = next;
|
|
97
|
+
}
|
|
98
|
+
return candidates;
|
|
99
|
+
}
|
|
67
100
|
static nearestNodeModules(fromDir) {
|
|
68
101
|
let dir = path.resolve(fromDir);
|
|
69
102
|
while (true) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,8CAA8C;AAC9C,sDAAsD;AACtD,kFAAkF;AAClF,+EAA+E;AAC/E,iFAAiF;AACjF
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plurnk/plurnk-meta",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "The plurnk metaproject layer, published: plugin-membership primitives (the ONE trust rule, scope-agnostic symlink-aware enumeration, deployment-root resolution), the
|
|
3
|
+
"version": "1.3.0",
|
|
4
|
+
"description": "The plurnk metaproject layer, published: plugin-membership primitives (the ONE trust rule, scope-agnostic symlink-aware enumeration, deployment-root resolution), the project teaching corpus (personality, requirements, scheme docs), and the home for family tooling.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"engines": {
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
".env.defaults",
|
|
12
12
|
"dist/**/*",
|
|
13
13
|
"README.md",
|
|
14
|
+
"DOGFOOD.md",
|
|
14
15
|
"CORPUS.md",
|
|
15
16
|
"PLURNK_PERSONALITY.md",
|
|
16
17
|
"requirements.md",
|