@kl-c/matrixos 0.1.15 → 0.1.17
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/.agents/command/adopt.md +10 -1
- package/.opencode/command/adopt.md +10 -1
- package/dist/agents/dynamic-agent-core-sections.d.ts +9 -0
- package/dist/agents/morpheus-dynamic-prompt-sections.d.ts +1 -0
- package/dist/cli/index.js +1 -1
- package/dist/cli-node/index.js +1 -1
- package/dist/features/matrix-inventory/features.js +2 -2
- package/dist/index.js +42 -16
- package/dist/plugin/auto-adoption.d.ts +9 -2
- package/package.json +1 -1
package/.agents/command/adopt.md
CHANGED
|
@@ -16,7 +16,15 @@ Check whether `/root/MOS_Vault/04-Areas/user-context.md` exists and is filled.
|
|
|
16
16
|
- If filled: tell the user "Tu as déjà un contexte d'adoption. Je relance le rituel pour le mettre à jour." and proceed to step 2 (re-adoption mode — EDIT sections, do NOT rewrite from scratch).
|
|
17
17
|
- If missing/template: adoption mode — you will CREATE the file.
|
|
18
18
|
|
|
19
|
-
### 2.
|
|
19
|
+
### 2. Inform the user of base capabilities (DO THIS EARLY)
|
|
20
|
+
Before or right after the questions, tell the user what MaTrixOS already gives them out of the box — so they know what they have at their disposal without having to ask:
|
|
21
|
+
- **Mission Control (Dashboard)** — real-time web UI (agents, sessions, tasks, cost, incidents). Launch anytime with `matrixos dashboard --daemon` (http://127.0.0.1:9123; `--host <tailscale-ip>` for remote).
|
|
22
|
+
- **16-agent team** — Morpheus + specialists (Neo, Tank, Oracle, Trinity, Cypher, Sentinel, etc.). Delegate, don't do it all yourself.
|
|
23
|
+
- **Messaging Gateway** (opt-in) — drive Morpheus from Telegram/Discord/WhatsApp.
|
|
24
|
+
- **Learning Loop** + **Team Mode** (opt-in).
|
|
25
|
+
Keep it to one short paragraph — this is awareness, not the opt-in checklist (that's step 3).
|
|
26
|
+
|
|
27
|
+
### 3. Ask the adoption questions (in conversation, French, interactive `question` tool)
|
|
20
28
|
Pose ~5 targeted questions:
|
|
21
29
|
1. **Qui es-tu ?** (nom/alias, rôle, ce que tu fais)
|
|
22
30
|
2. **Pour quel projet / besoin m'as-tu déployé ?** (objectif, stack, périmètre)
|
|
@@ -36,6 +44,7 @@ Ask the user which they want activated. Confirm specifically the **Dashboard (Mi
|
|
|
36
44
|
Write/edit `/root/MOS_Vault/04-Areas/user-context.md`:
|
|
37
45
|
- Adoption mode: fill sections 1–4, set `last_verified` to today, add a line in section 5 (Mises à jour) with today's date.
|
|
38
46
|
- Re-adoption mode: edit only the sections the user changed; update `last_verified`; append a line in section 5.
|
|
47
|
+
- **ALWAYS add a `## Features` section** (even in re-adoption) listing which opt-in features the user chose to activate (e.g. `Dashboard: activé`, `Kanban: non`, etc.). This marker tells the auto-adoption trigger that the feature checklist was presented — without it, the ritual will re-run on next launch.
|
|
39
48
|
Never rewrite the whole file from scratch — preserve existing context.
|
|
40
49
|
|
|
41
50
|
Also update `/root/MOS_Vault/MEMORY.md` routing if the user-context file was just created.
|
|
@@ -16,7 +16,15 @@ Check whether `/root/MOS_Vault/04-Areas/user-context.md` exists and is filled.
|
|
|
16
16
|
- If filled: tell the user "Tu as déjà un contexte d'adoption. Je relance le rituel pour le mettre à jour." and proceed to step 2 (re-adoption mode — EDIT sections, do NOT rewrite from scratch).
|
|
17
17
|
- If missing/template: adoption mode — you will CREATE the file.
|
|
18
18
|
|
|
19
|
-
### 2.
|
|
19
|
+
### 2. Inform the user of base capabilities (DO THIS EARLY)
|
|
20
|
+
Before or right after the questions, tell the user what MaTrixOS already gives them out of the box — so they know what they have at their disposal without having to ask:
|
|
21
|
+
- **Mission Control (Dashboard)** — real-time web UI (agents, sessions, tasks, cost, incidents). Launch anytime with `matrixos dashboard --daemon` (http://127.0.0.1:9123; `--host <tailscale-ip>` for remote).
|
|
22
|
+
- **16-agent team** — Morpheus + specialists (Neo, Tank, Oracle, Trinity, Cypher, Sentinel, etc.). Delegate, don't do it all yourself.
|
|
23
|
+
- **Messaging Gateway** (opt-in) — drive Morpheus from Telegram/Discord/WhatsApp.
|
|
24
|
+
- **Learning Loop** + **Team Mode** (opt-in).
|
|
25
|
+
Keep it to one short paragraph — this is awareness, not the opt-in checklist (that's step 3).
|
|
26
|
+
|
|
27
|
+
### 3. Ask the adoption questions (in conversation, French, interactive `question` tool)
|
|
20
28
|
Pose ~5 targeted questions:
|
|
21
29
|
1. **Qui es-tu ?** (nom/alias, rôle, ce que tu fais)
|
|
22
30
|
2. **Pour quel projet / besoin m'as-tu déployé ?** (objectif, stack, périmètre)
|
|
@@ -36,6 +44,7 @@ Ask the user which they want activated. Confirm specifically the **Dashboard (Mi
|
|
|
36
44
|
Write/edit `/root/MOS_Vault/04-Areas/user-context.md`:
|
|
37
45
|
- Adoption mode: fill sections 1–4, set `last_verified` to today, add a line in section 5 (Mises à jour) with today's date.
|
|
38
46
|
- Re-adoption mode: edit only the sections the user changed; update `last_verified`; append a line in section 5.
|
|
47
|
+
- **ALWAYS add a `## Features` section** (even in re-adoption) listing which opt-in features the user chose to activate (e.g. `Dashboard: activé`, `Kanban: non`, etc.). This marker tells the auto-adoption trigger that the feature checklist was presented — without it, the ritual will re-run on next launch.
|
|
39
48
|
Never rewrite the whole file from scratch — preserve existing context.
|
|
40
49
|
|
|
41
50
|
Also update `/root/MOS_Vault/MEMORY.md` routing if the user-context file was just created.
|
|
@@ -22,3 +22,12 @@ export declare function buildOracleSection(agents: AvailableAgent[]): string;
|
|
|
22
22
|
export declare function buildFrontendGuidanceSection(categories: AvailableCategory[]): string;
|
|
23
23
|
export declare function buildNonClaudePlannerSection(model: string): string;
|
|
24
24
|
export declare function buildParallelDelegationSection(model: string, categories: AvailableCategory[]): string;
|
|
25
|
+
/**
|
|
26
|
+
* Base capabilities awareness — what Morpheus knows about out of the box,
|
|
27
|
+
* without needing to read features.ts or run /features. The Dashboard
|
|
28
|
+
* (Mission Control) backend is always bundled; the user can launch it
|
|
29
|
+
* immediately. Listed here so Morpheus is never "lost" when the user
|
|
30
|
+
* mentions these features in conversation (VPS cantabo bug: Morpheus had
|
|
31
|
+
* to grep the codebase to discover the dashboard existed).
|
|
32
|
+
*/
|
|
33
|
+
export declare function buildBaseCapabilitiesSection(): string;
|
|
@@ -2,6 +2,7 @@ import type { AvailableAgent, AvailableCategory, AvailableSkill, AvailableTool }
|
|
|
2
2
|
export interface MorpheusDynamicPromptSections {
|
|
3
3
|
readonly agentIdentity: string;
|
|
4
4
|
readonly agentTeam: string;
|
|
5
|
+
readonly baseCapabilities: string;
|
|
5
6
|
readonly antiPatterns: string;
|
|
6
7
|
readonly categorySkillsGuide: string;
|
|
7
8
|
readonly delegationTable: string;
|
package/dist/cli/index.js
CHANGED
|
@@ -2145,7 +2145,7 @@ var package_default;
|
|
|
2145
2145
|
var init_package = __esm(() => {
|
|
2146
2146
|
package_default = {
|
|
2147
2147
|
name: "@kl-c/matrixos",
|
|
2148
|
-
version: "0.1.
|
|
2148
|
+
version: "0.1.17",
|
|
2149
2149
|
description: "MaTrixOS \u2014 Agentic OS for OpenCode. Personalizable, communicating, self-improving, resilient.",
|
|
2150
2150
|
main: "./dist/index.js",
|
|
2151
2151
|
types: "dist/index.d.ts",
|
package/dist/cli-node/index.js
CHANGED
|
@@ -2145,7 +2145,7 @@ var package_default;
|
|
|
2145
2145
|
var init_package = __esm(() => {
|
|
2146
2146
|
package_default = {
|
|
2147
2147
|
name: "@kl-c/matrixos",
|
|
2148
|
-
version: "0.1.
|
|
2148
|
+
version: "0.1.17",
|
|
2149
2149
|
description: "MaTrixOS \u2014 Agentic OS for OpenCode. Personalizable, communicating, self-improving, resilient.",
|
|
2150
2150
|
main: "./dist/index.js",
|
|
2151
2151
|
types: "dist/index.d.ts",
|
|
@@ -5,8 +5,8 @@ var MATRIX_FEATURES = [
|
|
|
5
5
|
id: "dashboard",
|
|
6
6
|
name: "Mission Control (Dashboard)",
|
|
7
7
|
description: "Web UI to supervise agents, sessions, tasks, cost and incidents in real time.",
|
|
8
|
-
enabledByDefault:
|
|
9
|
-
status: "
|
|
8
|
+
enabledByDefault: true,
|
|
9
|
+
status: "native",
|
|
10
10
|
userBenefit: "Open a browser page (default http://127.0.0.1:9123) showing live agent/session/task state, cost, kanban and incidents.",
|
|
11
11
|
provisioning: {
|
|
12
12
|
activation: "Launch the bundled server: `matrixos dashboard --daemon` (listens on 127.0.0.1:9123 by default). For remote access over Tailscale, rebind with `--host <tailscale-ip>` (e.g. 100.96.138.13).",
|
package/dist/index.js
CHANGED
|
@@ -196791,7 +196791,7 @@ var require_filesystem = __commonJS((exports, module) => {
|
|
|
196791
196791
|
var LDD_PATH = "/usr/bin/ldd";
|
|
196792
196792
|
var SELF_PATH = "/proc/self/exe";
|
|
196793
196793
|
var MAX_LENGTH = 2048;
|
|
196794
|
-
var
|
|
196794
|
+
var readFileSync78 = (path28) => {
|
|
196795
196795
|
const fd = fs26.openSync(path28, "r");
|
|
196796
196796
|
const buffer = Buffer.alloc(MAX_LENGTH);
|
|
196797
196797
|
const bytesRead = fs26.readSync(fd, buffer, 0, MAX_LENGTH, 0);
|
|
@@ -196814,7 +196814,7 @@ var require_filesystem = __commonJS((exports, module) => {
|
|
|
196814
196814
|
module.exports = {
|
|
196815
196815
|
LDD_PATH,
|
|
196816
196816
|
SELF_PATH,
|
|
196817
|
-
readFileSync:
|
|
196817
|
+
readFileSync: readFileSync78,
|
|
196818
196818
|
readFile: readFile14
|
|
196819
196819
|
};
|
|
196820
196820
|
});
|
|
@@ -196857,7 +196857,7 @@ var require_elf = __commonJS((exports, module) => {
|
|
|
196857
196857
|
var require_detect_libc = __commonJS((exports, module) => {
|
|
196858
196858
|
var childProcess3 = __require("child_process");
|
|
196859
196859
|
var { isLinux, getReport } = require_process();
|
|
196860
|
-
var { LDD_PATH, SELF_PATH, readFile: readFile14, readFileSync:
|
|
196860
|
+
var { LDD_PATH, SELF_PATH, readFile: readFile14, readFileSync: readFileSync78 } = require_filesystem();
|
|
196861
196861
|
var { interpreterPath } = require_elf();
|
|
196862
196862
|
var cachedFamilyInterpreter;
|
|
196863
196863
|
var cachedFamilyFilesystem;
|
|
@@ -196948,7 +196948,7 @@ var require_detect_libc = __commonJS((exports, module) => {
|
|
|
196948
196948
|
}
|
|
196949
196949
|
cachedFamilyFilesystem = null;
|
|
196950
196950
|
try {
|
|
196951
|
-
const lddContent =
|
|
196951
|
+
const lddContent = readFileSync78(LDD_PATH);
|
|
196952
196952
|
cachedFamilyFilesystem = getFamilyFromLddContent(lddContent);
|
|
196953
196953
|
} catch (e) {}
|
|
196954
196954
|
return cachedFamilyFilesystem;
|
|
@@ -196971,7 +196971,7 @@ var require_detect_libc = __commonJS((exports, module) => {
|
|
|
196971
196971
|
}
|
|
196972
196972
|
cachedFamilyInterpreter = null;
|
|
196973
196973
|
try {
|
|
196974
|
-
const selfContent =
|
|
196974
|
+
const selfContent = readFileSync78(SELF_PATH);
|
|
196975
196975
|
const path28 = interpreterPath(selfContent);
|
|
196976
196976
|
cachedFamilyInterpreter = familyFromInterpreterPath(path28);
|
|
196977
196977
|
} catch (e) {}
|
|
@@ -197033,7 +197033,7 @@ var require_detect_libc = __commonJS((exports, module) => {
|
|
|
197033
197033
|
}
|
|
197034
197034
|
cachedVersionFilesystem = null;
|
|
197035
197035
|
try {
|
|
197036
|
-
const lddContent =
|
|
197036
|
+
const lddContent = readFileSync78(LDD_PATH);
|
|
197037
197037
|
const versionMatch = lddContent.match(RE_GLIBC_VERSION);
|
|
197038
197038
|
if (versionMatch) {
|
|
197039
197039
|
cachedVersionFilesystem = versionMatch[1];
|
|
@@ -297183,13 +297183,13 @@ var init_merge = __esm(() => {
|
|
|
297183
297183
|
});
|
|
297184
297184
|
|
|
297185
297185
|
// packages/omo-config-core/src/loader/types.ts
|
|
297186
|
-
import { existsSync as existsSync115, lstatSync as lstatSync5, readFileSync as
|
|
297186
|
+
import { existsSync as existsSync115, lstatSync as lstatSync5, readFileSync as readFileSync78 } from "fs";
|
|
297187
297187
|
var DEFAULT_READ_FILE_SYSTEM;
|
|
297188
297188
|
var init_types7 = __esm(() => {
|
|
297189
297189
|
DEFAULT_READ_FILE_SYSTEM = {
|
|
297190
297190
|
existsSync: existsSync115,
|
|
297191
297191
|
lstatSync: lstatSync5,
|
|
297192
|
-
readFileSync:
|
|
297192
|
+
readFileSync: readFileSync78
|
|
297193
297193
|
};
|
|
297194
297194
|
});
|
|
297195
297195
|
|
|
@@ -297507,7 +297507,7 @@ import {
|
|
|
297507
297507
|
existsSync as existsSync116,
|
|
297508
297508
|
lstatSync as lstatSync6,
|
|
297509
297509
|
mkdirSync as mkdirSync25,
|
|
297510
|
-
readFileSync as
|
|
297510
|
+
readFileSync as readFileSync79,
|
|
297511
297511
|
readdirSync as readdirSync29,
|
|
297512
297512
|
renameSync as renameSync10,
|
|
297513
297513
|
unlinkSync as unlinkSync17,
|
|
@@ -297520,7 +297520,7 @@ var init_types8 = __esm(() => {
|
|
|
297520
297520
|
existsSync: existsSync116,
|
|
297521
297521
|
lstatSync: lstatSync6,
|
|
297522
297522
|
mkdirSync: mkdirSync25,
|
|
297523
|
-
readFileSync:
|
|
297523
|
+
readFileSync: readFileSync79,
|
|
297524
297524
|
readdirSync: readdirSync29,
|
|
297525
297525
|
renameSync: renameSync10,
|
|
297526
297526
|
unlinkSync: unlinkSync17,
|
|
@@ -367932,7 +367932,7 @@ function getCachedVersion(options = {}) {
|
|
|
367932
367932
|
// package.json
|
|
367933
367933
|
var package_default = {
|
|
367934
367934
|
name: "@kl-c/matrixos",
|
|
367935
|
-
version: "0.1.
|
|
367935
|
+
version: "0.1.17",
|
|
367936
367936
|
description: "MaTrixOS \u2014 Agentic OS for OpenCode. Personalizable, communicating, self-improving, resilient.",
|
|
367937
367937
|
main: "./dist/index.js",
|
|
367938
367938
|
types: "dist/index.d.ts",
|
|
@@ -421414,6 +421414,21 @@ function buildParallelDelegationSection(model, categories) {
|
|
|
421414
421414
|
|
|
421415
421415
|
**Your value is orchestration, decomposition, and quality control. Delegating with crystal-clear prompts IS your work.**`;
|
|
421416
421416
|
}
|
|
421417
|
+
function buildBaseCapabilitiesSection() {
|
|
421418
|
+
return `### Base Capabilities (you already have these)
|
|
421419
|
+
|
|
421420
|
+
These ship with MaTrixOS and are part of your baseline awareness \u2014 you do
|
|
421421
|
+
NOT need to discover them by searching the code. When the user mentions one,
|
|
421422
|
+
you already know what it is and how to activate it:
|
|
421423
|
+
|
|
421424
|
+
- **Mission Control (Dashboard)** \u2014 real-time web UI to supervise agents, sessions, tasks, cost and incidents. Backend is always bundled. Launch with \`matrixos dashboard --daemon\` (serves on http://127.0.0.1:9123). For remote access over Tailscale, rebind with \`--host <tailscale-ip>\`.
|
|
421425
|
+
- **Messaging Gateway** \u2014 drive Morpheus from Telegram / Discord / WhatsApp. Opt-in: set \`gateway.enabled: true\` in matrixos.json + a channel entry with the bot token via ENV (never inline). See \`/features gateway\` for the full recipe.
|
|
421426
|
+
- **Learning Loop** \u2014 L1\u2192L2 self-improvement; MaTrixOS proposes learnings from your session history.
|
|
421427
|
+
- **Team Mode** \u2014 spawn parallel sub-agent teams (up to 8 members). Opt-in via \`team_mode.enabled\`.
|
|
421428
|
+
- **16-agent team** \u2014 listed above. Delegate, do not implement yourself when a specialist exists.
|
|
421429
|
+
|
|
421430
|
+
For the full, on-demand inventory (including opt-in features like Kanban, Cron, Goal Mode), use \`/features\`. To (re)run the adoption ritual and choose opt-in features, use \`/adopt\`.`;
|
|
421431
|
+
}
|
|
421417
421432
|
// packages/omo-opencode/src/agents/dynamic-agent-category-skills-guide.ts
|
|
421418
421433
|
function buildSkillsSection(skills) {
|
|
421419
421434
|
const builtinSkills = skills.filter((skill2) => skill2.location === "plugin");
|
|
@@ -421905,6 +421920,8 @@ You are "Morpheus" - the orchestrator of MaTrixOS, an agentic OS built as a fork
|
|
|
421905
421920
|
|
|
421906
421921
|
${sections.agentTeam}
|
|
421907
421922
|
|
|
421923
|
+
${sections.baseCapabilities}
|
|
421924
|
+
|
|
421908
421925
|
</Role>
|
|
421909
421926
|
<Behavior_Instructions>
|
|
421910
421927
|
|
|
@@ -422135,6 +422152,7 @@ function buildMorpheusDynamicPromptSections(model, availableAgents, availableToo
|
|
|
422135
422152
|
return {
|
|
422136
422153
|
agentIdentity: buildAgentIdentitySection("Morpheus", "Powerful AI Agent with orchestration capabilities from MaTrixOS \u2014 a fork of OMO improved with Hermes, OpenClaw and Goose strengths, model-agnostic (open/standard models, never locked to a proprietary provider)"),
|
|
422137
422154
|
agentTeam: buildMatrixOSAgentTeamSection(),
|
|
422155
|
+
baseCapabilities: buildBaseCapabilitiesSection(),
|
|
422138
422156
|
antiPatterns: buildAntiPatternsSection(),
|
|
422139
422157
|
categorySkillsGuide: buildCategorySkillsDelegationGuide(availableCategories, availableSkills),
|
|
422140
422158
|
delegationTable: buildDelegationTable(availableAgents),
|
|
@@ -438539,7 +438557,7 @@ function createChatHeadersHandler(args) {
|
|
|
438539
438557
|
}
|
|
438540
438558
|
|
|
438541
438559
|
// packages/omo-opencode/src/plugin/auto-adoption.ts
|
|
438542
|
-
import { existsSync as existsSync111 } from "fs";
|
|
438560
|
+
import { existsSync as existsSync111, readFileSync as readFileSync76 } from "fs";
|
|
438543
438561
|
import { join as join133 } from "path";
|
|
438544
438562
|
import { homedir as homedir35 } from "os";
|
|
438545
438563
|
var ADOPTION_CONTEXT_RELATIVE = join133("MOS_Vault", "04-Areas", "user-context.md");
|
|
@@ -438548,9 +438566,17 @@ function resolveUserContextPath() {
|
|
|
438548
438566
|
return join133(base, "04-Areas", "user-context.md");
|
|
438549
438567
|
}
|
|
438550
438568
|
function isAdoptionNeeded() {
|
|
438551
|
-
|
|
438569
|
+
const path26 = resolveUserContextPath();
|
|
438570
|
+
if (!existsSync111(path26))
|
|
438571
|
+
return true;
|
|
438572
|
+
try {
|
|
438573
|
+
const content = readFileSync76(path26, "utf8");
|
|
438574
|
+
return !/features/i.test(content);
|
|
438575
|
+
} catch {
|
|
438576
|
+
return true;
|
|
438577
|
+
}
|
|
438552
438578
|
}
|
|
438553
|
-
var ADOPTION_TRIGGER_INSTRUCTION = `SYST\xC8ME \u2014 Rituel d'adoption automatique :
|
|
438579
|
+
var ADOPTION_TRIGGER_INSTRUCTION = `SYST\xC8ME \u2014 Rituel d'adoption automatique : lance imm\xE9diatement le rituel d'adoption comme si l'utilisateur avait tap\xE9 /adopt. M\xEAme si un contexte utilisateur (user-context.md) existe d\xE9j\xE0, tu DOIS proposer les fonctionnalit\xE9s opt-in (especially Dashboard Mission Control sur 127.0.0.1:9123) \u2014 ne saute jamais cette \xE9tape. Pose les 5 questions (identit\xE9, projet, contraintes, style de collaboration, reporting), puis pr\xE9sente la checklist des fonctionnalit\xE9s opt-in depuis l'inventaire (OPT_IN_FEATURES). Utilise l'outil question pour les questions. Ne r\xE9ponds pas encore \xE0 la demande de l'utilisateur \u2014 l'adoption prime.`;
|
|
438554
438580
|
|
|
438555
438581
|
// packages/omo-opencode/src/plugin/ultrawork-db-model-override.ts
|
|
438556
438582
|
import { join as join134 } from "path";
|
|
@@ -444362,7 +444388,7 @@ init_plugin_identity();
|
|
|
444362
444388
|
// packages/telemetry-core/src/activity-state.ts
|
|
444363
444389
|
init_atomic_write();
|
|
444364
444390
|
init_xdg_data_dir();
|
|
444365
|
-
import { existsSync as existsSync120, mkdirSync as mkdirSync27, readFileSync as
|
|
444391
|
+
import { existsSync as existsSync120, mkdirSync as mkdirSync27, readFileSync as readFileSync81 } from "fs";
|
|
444366
444392
|
import { basename as basename26, join as join144 } from "path";
|
|
444367
444393
|
var POSTHOG_ACTIVITY_STATE_FILE = "posthog-activity.json";
|
|
444368
444394
|
function resolveTelemetryStateDir(product, options = {}) {
|
|
@@ -444406,7 +444432,7 @@ function readPostHogActivityState(stateDir, diagnostics) {
|
|
|
444406
444432
|
return {};
|
|
444407
444433
|
}
|
|
444408
444434
|
try {
|
|
444409
|
-
const stateContent =
|
|
444435
|
+
const stateContent = readFileSync81(stateFilePath, "utf-8");
|
|
444410
444436
|
const stateJson = JSON.parse(stateContent);
|
|
444411
444437
|
if (!isPostHogActivityState(stateJson)) {
|
|
444412
444438
|
return {};
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* True when adoption is incomplete and the ritual should (re)run:
|
|
3
|
+
* - no user-context.md yet, OR
|
|
4
|
+
* - user-context.md exists but the opt-in features were never presented
|
|
5
|
+
* (a user who already has context but never saw the feature checklist
|
|
6
|
+
* would otherwise treat the truncated state as truth — see VPS cantabo,
|
|
7
|
+
* where user-context.md existed but Dashboard/features were never offered).
|
|
8
|
+
*/
|
|
2
9
|
export declare function isAdoptionNeeded(): boolean;
|
|
3
|
-
export declare const ADOPTION_TRIGGER_INSTRUCTION = "SYST\u00C8ME \u2014 Rituel d'adoption automatique :
|
|
10
|
+
export declare const ADOPTION_TRIGGER_INSTRUCTION = "SYST\u00C8ME \u2014 Rituel d'adoption automatique : lance imm\u00E9diatement le rituel d'adoption comme si l'utilisateur avait tap\u00E9 /adopt. M\u00EAme si un contexte utilisateur (user-context.md) existe d\u00E9j\u00E0, tu DOIS proposer les fonctionnalit\u00E9s opt-in (especially Dashboard Mission Control sur 127.0.0.1:9123) \u2014 ne saute jamais cette \u00E9tape. Pose les 5 questions (identit\u00E9, projet, contraintes, style de collaboration, reporting), puis pr\u00E9sente la checklist des fonctionnalit\u00E9s opt-in depuis l'inventaire (OPT_IN_FEATURES). Utilise l'outil question pour les questions. Ne r\u00E9ponds pas encore \u00E0 la demande de l'utilisateur \u2014 l'adoption prime.";
|
package/package.json
CHANGED