@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 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 daughter. File teaching asks and steer-wording issues HERE, not on the daemon.
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
- # Divergence table (#400)
2
-
3
- Doctrine (owner, 2026-07-13): industry standard unless informed, explicit exception. This table is the enforcement instrument — every deviation from prevailing agent-ecosystem practice is either a WRITTEN exception or a convergence item. Rulings marked PROPOSED await owner sign-off; rulings citing a date are already owner-ruled.
4
-
5
- | # | Practice | Industry standard (2026) | Plurnk position | Ruling |
6
- |---|---|---|---|---|
7
- | 1 | Tool interface | MCP is the de facto standard (AAIF/Linux Foundation-governed, OpenAI+Google adopted; JSON-RPC tools/resources/prompts) with JSON function-calling beneath it | HEREDOC DSL over a URI address space, GBNF-enforced | **EXCEPTION — the founding bet** (AGENTS "the bet"): grammar-constrained composition lets a floor-grade local model drive reliably where free-form JSON emission cannot; every web API is latent tooling via URIs. The exception is hedged, not isolationist: plurnk CONSUMES MCP servers (execs-mcp; hotload #389) and SERVES agents via AG-UI. Walk-away trigger per doctrine: dogfooding surfacing an architectural failure. |
8
- | 2 | Tool discovery | MCP server registries | Scope-agnostic npm-package scan (`plurnk.kind`, trust-gated) for the platform's own plugins; MCP bridge (#389) for external tools | **EXCEPTION + CONVERGENCE** — plugins are SUBSTRATE (mimetype handlers, URI schemes, providers, execs), not model-facing tools; they expand the ONE coherent DSL surface (URI + op) that MCP has no concept for. External heterogeneous tools ride MCP via the bridge — converged there. Owner-ruled 2026-07-15. |
9
- | 3 | Reasoning vocabulary | "reasoning" (OpenAI, DeepSeek, llama.cpp, OpenRouter-normalized) | REASONING family-wide | **CONVERGED 2026-07-13** (#399; adaptive default per owner ruling). |
10
- | 4 | Wire protocol | OpenAI-compat chat completions | OpenAI-compat provider base | **CONVERGED by construction.** |
11
- | 5 | Config | Layered dotenv + example files | `.env.defaults` assembled floor: reader-declares, ONE-LAW key ownership, set-if-unset under operator env | **EXCEPTION (owner design, core SPEC §operator-config-env-defaults)** — standard dotenv layering PLUS a uniqueness law and self-documenting floor; strictly more disciplined than the standard, same operator surface. |
12
- | 6 | CI | Hosted CI (GitHub Actions) | Committed local git hooks; the 82s drill is the whole gate | **EXCEPTION (owner doctrine, AGENTS §one-gate)** — supply-chain posture: no write-token attack surface, the gate that cannot be forgotten, failures caught before the remote sees them. |
13
- | 7 | Monorepo dev loop | Build-based (project references, turbo/nx caches) | No-build source resolution via the `plurnk-dev` exports condition | **EXCEPTION** — a direct consequence of committing fully to Node 26 no-compile TS (type-stripping), which the runtime is not walking back with Bun at its heels. Zero-build inner loop; the one sharp edge (types-condition ordering) found + fixed 2026-07-13. No compat hedge — Node 26 to the bone. Owner-ruled 2026-07-15. |
14
- | 8 | Internal versioning | Independent semver + ranges | Lockstep exact pins inside the monorepo | **EXCEPTION** — exact-pinned, fully-reproducible publish surface with zero pin maintenance (release script); consumers see ordinary semver. The per-release publish volume is not a cost to minimize but the honest WEIGHT of a coherent release — every ship is felt, releases stay deliberate ("pain is the best teacher"). Outside leaves: `^1` RETIRED (owner-ruled 2026-07-17, #512 — a `^1` peer on a fail-forward surface is dishonest; xai@1.0.0 detonated beside providers@1.0.7 to prove it): stepchildren pin heads EXACT until the stability declaration, swept by the release train's stepchild phase every release. |
15
- | 9 | Package naming | `@scope/name` | `@plurnk/plurnk-name` | **EXCEPTION (owner ruling 2026-07-11)** — shipped surface frozen; renames rejected as churn without user-facing gain. |
16
- | 10 | Commit convention | Conventional Commits | Conventional subjects ≤80, subject-only, no trailers, hook-enforced | **CONVERGED-plus** — standard grammar, stricter brevity; context rides references (#N / hash / SPEC tag), owner-ruled 2026-07-12. |
17
- | 11 | Test tooling | Vitest/Jest common; node:test rising | node:test + node:assert exclusively | **EXCEPTION (owner mandate, global)** — zero-dep native runner; the direction the ecosystem itself is moving. |
18
- | 12 | Publish auth | Trusted publishing (OIDC/CI) or staged publishing | Bypass-2FA granular token (window), local publishes | **CONVERGENCE SCHEDULED** — bypass tokens lose publishing Jan 2027; adopt staged publishing (agents stage, owner 2FA-approves) before then. Tracked in meta memory. |
19
- | 13 | API stability posture | Pre-external-adopter ecosystems churn routinely; stability is DECLARED when outsiders arrive, not performed before | Lockstep 1.0.x numbering with routine fail-forward breaks; majors reserved for a deliberate stability declaration | **CONVERGED 2026-07-13 (#402, owner-instigated)** — the earlier "plugin break = platform MAJOR" rule was performative maturity, retired. |
20
- | 14 | Reasoning default | Reasoning-capable models default reasoning-on | `REASONING=adaptive` shipped floor | **CONVERGED 2026-07-13** (owner ruling). |
21
- | 15 | Git in a sandboxed agent | Environment isolation (container/microVM → real git in the box) or no-shell/in-process (isomorphic-git, e.g. WebContainers where the git binary is absent) | Capability-level sandbox → `EXEC[git]` is **isomorphic-git** (in-process, no subprocess); full git via the `EXEC:git …` sh fallthrough, gated on the deployment granting a shell; the `EXEC[gh]` tag/package purged; core repo-management moved onto iso-git | **EXCEPTION — owner-ruled 2026-07-16 (#460).** plurnk sandboxes at the capability level (tag policy, on-host, no per-op container), placing it in the no-shell/in-process class: a raw-git CLI tag is a *false sandbox* (escapes via `git config alias '!sh'`, hooks, `-c core.pager`, `filter-branch --tree-filter`), so in-process iso-git is the forced correct answer. Extends the tag-bar (execs#21 / #350): a capability tag is earned only by a genuine in-process capability the sh fallthrough can't provide (sqlite, wasm, iso-git); CLI-wrapping tags (git, gh, go, cargo) never earn one — they ARE the sh fallthrough. Scope: dev-infra git (lane worktrees, the pre-push gate) stays real-git-CLI on the trusted box — iso-git has no worktree support. |
22
- | 16 | Management / control plane | AG-UI models agent runs only; servers expose management (list/create/rename/fork threads, constraints, config) via a SEPARATE REST/RPC API alongside the run stream | Management verbs ride the AG-UI run envelope — `forwardedProps.plurnk.action` in, `CUSTOM plurnk.action.result` out; one endpoint, one connection, one auth boundary | **EXCEPTION — owner-ruled 2026-07-18 (#475).** One-wire, no side-channel. Convergence has no target (AG-UI has no management-plane concept), so a separate API is MORE bespoke, not less; the row ratifies the exclusive-portal consolidation that DELETED the WS/`/plurnk/rpc` side-channel. Zero conformance cost — rides the sanctioned `forwardedProps` + `CUSTOM` extension points, invisible to generic clients (no standard event translated away), serves the dumb-client one-socket posture. **Convergence trigger:** if AG-UI adds a native management/control-plane concept, this flips to a convergence item. |
23
-
24
- | 17 | Internal resource addressing | Agent frameworks address internal state via opaque IDs, file paths, or per-server MCP resource URIs; no prevailing principal model | Actor addressing: one knowledge scheme (`worker://`) with the principal in the URI authority (empty=commons, `~`=self, name=ancestry-read, `plurnk`=kernel); `prompt:///`/`log:///` self-only; open-ended capability schemes | **EXCEPTION — owner-ruled 2026-07-19 (#527).** Ownership rode pathnames and leaked ids (#526); the authority slot is the URL-native principal carrier the model already reads fluently. Trust keys on owner (write-scoping), never on scheme. Retired the `known`/`unknown` epistemology experiment (owner-concluded) and `plurnk://`/`exec://` with it. |
25
- | 18 | Enterprise/private split | Closed-core or full-SaaS: enterprise features live in private forks/services that reimplement the open engine | Thin private overlay over the public engine — mechanism public, decision and values private; the endpoint composes `@plurnk/plurnk-aliases`/`instantiateProvider`, owns only money/pricing/flex-decision/corpus/tuning-values | **EXCEPTION — owner-ruled 2026-07-19 (#533).** A parallel private engine is a drift tax (endpoint#19: two weeks of stale grammar from a privately-pinned copy). Push everything that isn't genuinely enterprise-secret into the public family, where lockstep, sweeps, and gates reach it by construction. |
26
-
27
- Maintenance: new divergences get a row before they ship; a PROPOSED ruling converts on owner sign-off (recorded on #400).
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.
@@ -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 of installed packages as `{ dir, name }` candidates. Ordering and filtering are the caller's policy.
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;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAoBA,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;IAMD,OAAa,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA0B5E;IAED,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CASxD;CACJ"}
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 installed
7
- // packages. Returns candidates; ORDERING AND FILTERING ARE
8
- // THE CALLER'S POLICY (mimetypes loads @plurnk last for
9
- // collision precedence; others sort by name).
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
- // Every installed package dir under nodeModulesDir — unscoped (`name`) and scoped
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":"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"}
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.2.0",
4
- "description": "The plurnk metaproject layer, published: plugin-membership primitives (the ONE trust rule, scope-agnostic symlink-aware enumeration, deployment-root resolution), the family teaching corpus (personality, requirements, scheme docs), and the home for family tooling.",
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",