@rubytech/create-sitedesk-code 0.1.530 → 0.1.531
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/package.json +1 -1
- package/payload/platform/lib/graph-write/dist/index.d.ts.map +1 -1
- package/payload/platform/lib/graph-write/dist/index.js +4 -0
- package/payload/platform/lib/graph-write/dist/index.js.map +1 -1
- package/payload/platform/lib/graph-write/src/index.ts +4 -0
- package/payload/platform/lib/learning-constants/dist/index.d.ts +35 -0
- package/payload/platform/lib/learning-constants/dist/index.d.ts.map +1 -0
- package/payload/platform/lib/learning-constants/dist/index.js +50 -0
- package/payload/platform/lib/learning-constants/dist/index.js.map +1 -0
- package/payload/platform/lib/learning-constants/package.json +7 -0
- package/payload/platform/lib/learning-constants/src/index.test.ts +47 -0
- package/payload/platform/lib/learning-constants/src/index.ts +57 -0
- package/payload/platform/lib/learning-constants/tsconfig.json +9 -0
- package/payload/platform/neo4j/schema.cypher +24 -0
- package/payload/platform/package.json +1 -1
- package/payload/platform/plugins/admin/.claude-plugin/plugin.json +1 -1
- package/payload/platform/plugins/admin/PLUGIN.md +1 -1
- package/payload/platform/plugins/admin/mcp/dist/index.js +2 -2
- package/payload/platform/plugins/admin/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/admin/skills/insight/SKILL.md +1 -1
- package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +58 -10
- package/payload/platform/plugins/admin/skills/whats-new/SKILL.md +7 -0
- package/payload/platform/plugins/docs/references/linkedin-extension.md +18 -9
- package/payload/platform/plugins/docs/references/session-retrospective.md +39 -0
- package/payload/platform/plugins/linkedin-extension/.claude-plugin/plugin.json +1 -1
- package/payload/platform/plugins/linkedin-extension/PLUGIN.md +7 -10
- package/payload/platform/plugins/linkedin-extension/extension/README.md +20 -17
- package/payload/platform/plugins/linkedin-extension/extension/background/sw.js +96 -13
- package/payload/platform/plugins/linkedin-extension/extension/manifest.json +3 -18
- package/payload/platform/plugins/linkedin-extension/extension/options/options.html +2 -2
- package/payload/platform/plugins/linkedin-extension/extension/options/options.js +1 -1
- package/payload/platform/plugins/memory/.claude-plugin/plugin.json +1 -1
- package/payload/platform/plugins/memory/PLUGIN.md +15 -1
- package/payload/platform/plugins/memory/mcp/dist/index.js +169 -0
- package/payload/platform/plugins/memory/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/session-jsonl.test.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/session-jsonl.test.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/session-jsonl.test.js +95 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/session-jsonl.test.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/session-jsonl.d.ts +60 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/session-jsonl.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/session-jsonl.js +153 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/session-jsonl.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/cross-account.test.js +6 -4
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/cross-account.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/learnings-derive.test.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/learnings-derive.test.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/learnings-derive.test.js +160 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/learnings-derive.test.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/learnings-recall.test.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/learnings-recall.test.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/learnings-recall.test.js +64 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/learnings-recall.test.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/learnings-scan.test.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/learnings-scan.test.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/learnings-scan.test.js +78 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/learnings-scan.test.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/learnings-derive.d.ts +41 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/learnings-derive.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/learnings-derive.js +225 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/learnings-derive.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/learnings-recall.d.ts +31 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/learnings-recall.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/learnings-recall.js +67 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/learnings-recall.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/learnings-scan.d.ts +40 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/learnings-scan.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/learnings-scan.js +55 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/learnings-scan.js.map +1 -0
- package/payload/platform/plugins/memory/references/schema-base.md +3 -0
- package/payload/platform/plugins/memory/skills/learnings-recall/SKILL.md +27 -0
- package/payload/platform/plugins/whatsapp/mcp/dist/index.js +4 -4
- package/payload/platform/plugins/whatsapp/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/whatsapp/references/channels-whatsapp.md +3 -3
- package/payload/platform/plugins/whatsapp/skills/connect-whatsapp/SKILL.md +6 -2
- package/payload/platform/plugins/whatsapp/skills/manage-whatsapp-config/SKILL.md +5 -1
- package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js +3 -0
- package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/learning-index.d.ts +28 -0
- package/payload/platform/services/claude-session-manager/dist/learning-index.d.ts.map +1 -0
- package/payload/platform/services/claude-session-manager/dist/learning-index.js +70 -0
- package/payload/platform/services/claude-session-manager/dist/learning-index.js.map +1 -0
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +18 -0
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/system-prompt.d.ts +6 -0
- package/payload/platform/services/claude-session-manager/dist/system-prompt.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/system-prompt.js +17 -0
- package/payload/platform/services/claude-session-manager/dist/system-prompt.js.map +1 -1
- package/payload/platform/templates/specialists/agents/librarian.md +1 -1
- package/payload/server/{chunk-2YMGNYA3.js → chunk-SVB5NZ64.js} +41 -30
- package/payload/server/{manager-XPRN5UF5.js → manager-4Q3DTLXO.js} +5 -1
- package/payload/server/server.js +65 -17
- package/payload/platform/plugins/linkedin-extension/extension/assets/pill.css +0 -52
- package/payload/platform/plugins/linkedin-extension/extension/content/profile.js +0 -100
- package/payload/platform/plugins/linkedin-extension/extension/content/thread.js +0 -102
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,YAAY,CAAC;AAK3B,cAAc,8BAA8B,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAEH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,MAAM,CAQvD,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,MAAM,CAIvD,CAAC;AASH;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,YAAY,CAAC;AAK3B,cAAc,8BAA8B,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAEH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,MAAM,CAQvD,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,MAAM,CAIvD,CAAC;AASH;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,MAAM,CAgBpD,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,WAAW,CAAC,MAAM,CAEtD,CAAC;AAuCH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,UAAU,GAAG,UAAU,CAAC;IACnC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6FAA6F;IAC7F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uFAAuF;IACvF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,4EAA4E;IAC5E,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,SAAS,EAAE,SAAS,CAAC;IACrB;;;;;;;;;;OAUG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB;;;;;OAKG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB;AAgBD,uDAAuD;AACvD,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,SAAS,EAAE,SAAS,GACnB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQzB;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC,eAAe,CAAC,CAiU1B"}
|
|
@@ -138,6 +138,10 @@ exports.VECTOR_INDEXED_LABELS = new Set([
|
|
|
138
138
|
// Knowledge-work vertical — the seven gap labels, each carrying a
|
|
139
139
|
// CREATE VECTOR INDEX in schema.cypher so the chokepoint auto-embeds them.
|
|
140
140
|
"Objective", "KeyResult", "Decision", "Risk", "Source", "Finding", "Hypothesis",
|
|
141
|
+
// Task 2220 — :Learning carries learning_embedding, which learnings-derive
|
|
142
|
+
// queries by name to reconcile a claim against an existing learning. Without
|
|
143
|
+
// it here the chokepoint cannot detect a null-embedding Learning write.
|
|
144
|
+
"Learning",
|
|
141
145
|
]);
|
|
142
146
|
/**
|
|
143
147
|
* Document/archive labels whose primary content is a long body. The safety-net
|
|
@@ -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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"}
|
|
@@ -124,6 +124,10 @@ export const VECTOR_INDEXED_LABELS: ReadonlySet<string> = new Set([
|
|
|
124
124
|
// Knowledge-work vertical — the seven gap labels, each carrying a
|
|
125
125
|
// CREATE VECTOR INDEX in schema.cypher so the chokepoint auto-embeds them.
|
|
126
126
|
"Objective", "KeyResult", "Decision", "Risk", "Source", "Finding", "Hypothesis",
|
|
127
|
+
// Task 2220 — :Learning carries learning_embedding, which learnings-derive
|
|
128
|
+
// queries by name to reconcile a claim against an existing learning. Without
|
|
129
|
+
// it here the chokepoint cannot detect a null-embedding Learning write.
|
|
130
|
+
"Learning",
|
|
127
131
|
]);
|
|
128
132
|
|
|
129
133
|
/**
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task 2220 — the learning confidence curve, in one module.
|
|
3
|
+
*
|
|
4
|
+
* Values mirror the preference curve (neo4j-store.ts:2154-2159 and
|
|
5
|
+
* profile-update.ts:15-17), which is duplicated across two processes with
|
|
6
|
+
* nothing enforcing agreement. Learnings do not repeat that mistake: every
|
|
7
|
+
* consumer imports from here.
|
|
8
|
+
*
|
|
9
|
+
* The preference constants are deliberately NOT migrated onto this module —
|
|
10
|
+
* that is a separate change with its own blast radius.
|
|
11
|
+
*/
|
|
12
|
+
/** Confidence a newly created :Learning starts at. */
|
|
13
|
+
export declare const LEARNING_INITIAL_CONFIDENCE = 0.5;
|
|
14
|
+
/** Applied as `c + LEARNING_REINFORCEMENT_INCREMENT * (1 - c)` on re-observation. */
|
|
15
|
+
export declare const LEARNING_REINFORCEMENT_INCREMENT = 0.15;
|
|
16
|
+
/** Subtracted outright when a claim contradicts an existing learning. */
|
|
17
|
+
export declare const LEARNING_CONTRADICTION_DECREMENT = 0.3;
|
|
18
|
+
/** No decay at all inside this many days of `observedAt`. */
|
|
19
|
+
export declare const LEARNING_DECAY_THRESHOLD_DAYS = 14;
|
|
20
|
+
/** Linear decay per day once past the threshold. */
|
|
21
|
+
export declare const LEARNING_DECAY_RATE_PER_DAY = 0.05;
|
|
22
|
+
/** A learning's title reaches the system prompt only at or above this confidence. */
|
|
23
|
+
export declare const LEARNING_INDEX_THRESHOLD = 0.4;
|
|
24
|
+
/** Hard cap on injected titles, regardless of how many clear the threshold. */
|
|
25
|
+
export declare const MAX_INDEXED_LEARNINGS = 30;
|
|
26
|
+
/**
|
|
27
|
+
* The decay curve, as a pure function so the tool, the injection read and the
|
|
28
|
+
* tests all agree by construction.
|
|
29
|
+
*
|
|
30
|
+
* `observedAt` is an ISO string because that is what graph writes persist. An
|
|
31
|
+
* unparseable value returns `confidence` unchanged rather than collapsing to
|
|
32
|
+
* NaN — a bad timestamp must not silently zero a real learning.
|
|
33
|
+
*/
|
|
34
|
+
export declare function decayedConfidence(confidence: number, observedAt: string, now: Date): number;
|
|
35
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,sDAAsD;AACtD,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C,qFAAqF;AACrF,eAAO,MAAM,gCAAgC,OAAO,CAAC;AAErD,yEAAyE;AACzE,eAAO,MAAM,gCAAgC,MAAM,CAAC;AAEpD,6DAA6D;AAC7D,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAEhD,oDAAoD;AACpD,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAEhD,qFAAqF;AACrF,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,+EAA+E;AAC/E,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAIxC;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,IAAI,GACR,MAAM,CASR"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Task 2220 — the learning confidence curve, in one module.
|
|
4
|
+
*
|
|
5
|
+
* Values mirror the preference curve (neo4j-store.ts:2154-2159 and
|
|
6
|
+
* profile-update.ts:15-17), which is duplicated across two processes with
|
|
7
|
+
* nothing enforcing agreement. Learnings do not repeat that mistake: every
|
|
8
|
+
* consumer imports from here.
|
|
9
|
+
*
|
|
10
|
+
* The preference constants are deliberately NOT migrated onto this module —
|
|
11
|
+
* that is a separate change with its own blast radius.
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.MAX_INDEXED_LEARNINGS = exports.LEARNING_INDEX_THRESHOLD = exports.LEARNING_DECAY_RATE_PER_DAY = exports.LEARNING_DECAY_THRESHOLD_DAYS = exports.LEARNING_CONTRADICTION_DECREMENT = exports.LEARNING_REINFORCEMENT_INCREMENT = exports.LEARNING_INITIAL_CONFIDENCE = void 0;
|
|
15
|
+
exports.decayedConfidence = decayedConfidence;
|
|
16
|
+
/** Confidence a newly created :Learning starts at. */
|
|
17
|
+
exports.LEARNING_INITIAL_CONFIDENCE = 0.5;
|
|
18
|
+
/** Applied as `c + LEARNING_REINFORCEMENT_INCREMENT * (1 - c)` on re-observation. */
|
|
19
|
+
exports.LEARNING_REINFORCEMENT_INCREMENT = 0.15;
|
|
20
|
+
/** Subtracted outright when a claim contradicts an existing learning. */
|
|
21
|
+
exports.LEARNING_CONTRADICTION_DECREMENT = 0.3;
|
|
22
|
+
/** No decay at all inside this many days of `observedAt`. */
|
|
23
|
+
exports.LEARNING_DECAY_THRESHOLD_DAYS = 14;
|
|
24
|
+
/** Linear decay per day once past the threshold. */
|
|
25
|
+
exports.LEARNING_DECAY_RATE_PER_DAY = 0.05;
|
|
26
|
+
/** A learning's title reaches the system prompt only at or above this confidence. */
|
|
27
|
+
exports.LEARNING_INDEX_THRESHOLD = 0.4;
|
|
28
|
+
/** Hard cap on injected titles, regardless of how many clear the threshold. */
|
|
29
|
+
exports.MAX_INDEXED_LEARNINGS = 30;
|
|
30
|
+
const MS_PER_DAY = 86_400_000;
|
|
31
|
+
/**
|
|
32
|
+
* The decay curve, as a pure function so the tool, the injection read and the
|
|
33
|
+
* tests all agree by construction.
|
|
34
|
+
*
|
|
35
|
+
* `observedAt` is an ISO string because that is what graph writes persist. An
|
|
36
|
+
* unparseable value returns `confidence` unchanged rather than collapsing to
|
|
37
|
+
* NaN — a bad timestamp must not silently zero a real learning.
|
|
38
|
+
*/
|
|
39
|
+
function decayedConfidence(confidence, observedAt, now) {
|
|
40
|
+
const observed = Date.parse(observedAt);
|
|
41
|
+
if (Number.isNaN(observed))
|
|
42
|
+
return confidence;
|
|
43
|
+
const ageDays = (now.getTime() - observed) / MS_PER_DAY;
|
|
44
|
+
if (ageDays <= exports.LEARNING_DECAY_THRESHOLD_DAYS)
|
|
45
|
+
return confidence;
|
|
46
|
+
const decayed = confidence -
|
|
47
|
+
(ageDays - exports.LEARNING_DECAY_THRESHOLD_DAYS) * exports.LEARNING_DECAY_RATE_PER_DAY;
|
|
48
|
+
return decayed > 0 ? decayed : 0;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAiCH,8CAaC;AA5CD,sDAAsD;AACzC,QAAA,2BAA2B,GAAG,GAAG,CAAC;AAE/C,qFAAqF;AACxE,QAAA,gCAAgC,GAAG,IAAI,CAAC;AAErD,yEAAyE;AAC5D,QAAA,gCAAgC,GAAG,GAAG,CAAC;AAEpD,6DAA6D;AAChD,QAAA,6BAA6B,GAAG,EAAE,CAAC;AAEhD,oDAAoD;AACvC,QAAA,2BAA2B,GAAG,IAAI,CAAC;AAEhD,qFAAqF;AACxE,QAAA,wBAAwB,GAAG,GAAG,CAAC;AAE5C,+EAA+E;AAClE,QAAA,qBAAqB,GAAG,EAAE,CAAC;AAExC,MAAM,UAAU,GAAG,UAAU,CAAC;AAE9B;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAC/B,UAAkB,EAClB,UAAkB,EAClB,GAAS;IAET,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACxC,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;QAAE,OAAO,UAAU,CAAC;IAC9C,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,GAAG,UAAU,CAAC;IACxD,IAAI,OAAO,IAAI,qCAA6B;QAAE,OAAO,UAAU,CAAC;IAChE,MAAM,OAAO,GACX,UAAU;QACV,CAAC,OAAO,GAAG,qCAA6B,CAAC,GAAG,mCAA2B,CAAC;IAC1E,OAAO,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import {
|
|
3
|
+
LEARNING_INITIAL_CONFIDENCE,
|
|
4
|
+
LEARNING_REINFORCEMENT_INCREMENT,
|
|
5
|
+
LEARNING_CONTRADICTION_DECREMENT,
|
|
6
|
+
LEARNING_DECAY_THRESHOLD_DAYS,
|
|
7
|
+
LEARNING_DECAY_RATE_PER_DAY,
|
|
8
|
+
LEARNING_INDEX_THRESHOLD,
|
|
9
|
+
MAX_INDEXED_LEARNINGS,
|
|
10
|
+
decayedConfidence,
|
|
11
|
+
} from "./index";
|
|
12
|
+
|
|
13
|
+
describe("learning constants", () => {
|
|
14
|
+
it("pins the seven values to the preference curve they mirror", () => {
|
|
15
|
+
expect(LEARNING_INITIAL_CONFIDENCE).toBe(0.5);
|
|
16
|
+
expect(LEARNING_REINFORCEMENT_INCREMENT).toBe(0.15);
|
|
17
|
+
expect(LEARNING_CONTRADICTION_DECREMENT).toBe(0.3);
|
|
18
|
+
expect(LEARNING_DECAY_THRESHOLD_DAYS).toBe(14);
|
|
19
|
+
expect(LEARNING_DECAY_RATE_PER_DAY).toBe(0.05);
|
|
20
|
+
expect(LEARNING_INDEX_THRESHOLD).toBe(0.4);
|
|
21
|
+
expect(MAX_INDEXED_LEARNINGS).toBe(30);
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
describe("decayedConfidence", () => {
|
|
26
|
+
const now = new Date("2026-07-30T00:00:00.000Z");
|
|
27
|
+
const daysAgo = (n: number) =>
|
|
28
|
+
new Date(now.getTime() - n * 86_400_000).toISOString();
|
|
29
|
+
|
|
30
|
+
it("does not decay inside the threshold", () => {
|
|
31
|
+
expect(decayedConfidence(0.8, daysAgo(13), now)).toBe(0.8);
|
|
32
|
+
expect(decayedConfidence(0.8, daysAgo(14), now)).toBe(0.8);
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
it("decays linearly past the threshold", () => {
|
|
36
|
+
expect(decayedConfidence(0.8, daysAgo(15), now)).toBeCloseTo(0.75, 10);
|
|
37
|
+
expect(decayedConfidence(0.8, daysAgo(20), now)).toBeCloseTo(0.5, 10);
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
it("floors at zero", () => {
|
|
41
|
+
expect(decayedConfidence(0.1, daysAgo(100), now)).toBe(0);
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
it("returns the input unchanged when observedAt is unparseable", () => {
|
|
45
|
+
expect(decayedConfidence(0.8, "not-a-date", now)).toBe(0.8);
|
|
46
|
+
});
|
|
47
|
+
});
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task 2220 — the learning confidence curve, in one module.
|
|
3
|
+
*
|
|
4
|
+
* Values mirror the preference curve (neo4j-store.ts:2154-2159 and
|
|
5
|
+
* profile-update.ts:15-17), which is duplicated across two processes with
|
|
6
|
+
* nothing enforcing agreement. Learnings do not repeat that mistake: every
|
|
7
|
+
* consumer imports from here.
|
|
8
|
+
*
|
|
9
|
+
* The preference constants are deliberately NOT migrated onto this module —
|
|
10
|
+
* that is a separate change with its own blast radius.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/** Confidence a newly created :Learning starts at. */
|
|
14
|
+
export const LEARNING_INITIAL_CONFIDENCE = 0.5;
|
|
15
|
+
|
|
16
|
+
/** Applied as `c + LEARNING_REINFORCEMENT_INCREMENT * (1 - c)` on re-observation. */
|
|
17
|
+
export const LEARNING_REINFORCEMENT_INCREMENT = 0.15;
|
|
18
|
+
|
|
19
|
+
/** Subtracted outright when a claim contradicts an existing learning. */
|
|
20
|
+
export const LEARNING_CONTRADICTION_DECREMENT = 0.3;
|
|
21
|
+
|
|
22
|
+
/** No decay at all inside this many days of `observedAt`. */
|
|
23
|
+
export const LEARNING_DECAY_THRESHOLD_DAYS = 14;
|
|
24
|
+
|
|
25
|
+
/** Linear decay per day once past the threshold. */
|
|
26
|
+
export const LEARNING_DECAY_RATE_PER_DAY = 0.05;
|
|
27
|
+
|
|
28
|
+
/** A learning's title reaches the system prompt only at or above this confidence. */
|
|
29
|
+
export const LEARNING_INDEX_THRESHOLD = 0.4;
|
|
30
|
+
|
|
31
|
+
/** Hard cap on injected titles, regardless of how many clear the threshold. */
|
|
32
|
+
export const MAX_INDEXED_LEARNINGS = 30;
|
|
33
|
+
|
|
34
|
+
const MS_PER_DAY = 86_400_000;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* The decay curve, as a pure function so the tool, the injection read and the
|
|
38
|
+
* tests all agree by construction.
|
|
39
|
+
*
|
|
40
|
+
* `observedAt` is an ISO string because that is what graph writes persist. An
|
|
41
|
+
* unparseable value returns `confidence` unchanged rather than collapsing to
|
|
42
|
+
* NaN — a bad timestamp must not silently zero a real learning.
|
|
43
|
+
*/
|
|
44
|
+
export function decayedConfidence(
|
|
45
|
+
confidence: number,
|
|
46
|
+
observedAt: string,
|
|
47
|
+
now: Date,
|
|
48
|
+
): number {
|
|
49
|
+
const observed = Date.parse(observedAt);
|
|
50
|
+
if (Number.isNaN(observed)) return confidence;
|
|
51
|
+
const ageDays = (now.getTime() - observed) / MS_PER_DAY;
|
|
52
|
+
if (ageDays <= LEARNING_DECAY_THRESHOLD_DAYS) return confidence;
|
|
53
|
+
const decayed =
|
|
54
|
+
confidence -
|
|
55
|
+
(ageDays - LEARNING_DECAY_THRESHOLD_DAYS) * LEARNING_DECAY_RATE_PER_DAY;
|
|
56
|
+
return decayed > 0 ? decayed : 0;
|
|
57
|
+
}
|
|
@@ -868,6 +868,30 @@ OPTIONS {
|
|
|
868
868
|
}
|
|
869
869
|
};
|
|
870
870
|
|
|
871
|
+
// ----------------------------------------------------------
|
|
872
|
+
// Learning — Task 2220. A claim a session established, carrying a confidence
|
|
873
|
+
// lifecycle: created at 0.5, amplified on re-observation, decremented and
|
|
874
|
+
// stamped contradictedAt when disputed, decayed after 14 untouched days.
|
|
875
|
+
// Parented (:UserProfile)-[:HAS_LEARNING]->(:Learning), as Preference is.
|
|
876
|
+
// The vector index is what learnings-derive queries by name to reconcile a
|
|
877
|
+
// claim against an existing learning instead of minting a duplicate.
|
|
878
|
+
// ----------------------------------------------------------
|
|
879
|
+
|
|
880
|
+
CREATE INDEX learning_account IF NOT EXISTS
|
|
881
|
+
FOR (l:Learning) ON (l.accountId);
|
|
882
|
+
|
|
883
|
+
CREATE INDEX learning_id IF NOT EXISTS
|
|
884
|
+
FOR (l:Learning) ON (l.accountId, l.learningId);
|
|
885
|
+
|
|
886
|
+
CREATE VECTOR INDEX learning_embedding IF NOT EXISTS
|
|
887
|
+
FOR (l:Learning) ON (l.embedding)
|
|
888
|
+
OPTIONS {
|
|
889
|
+
indexConfig: {
|
|
890
|
+
`vector.dimensions`: 768,
|
|
891
|
+
`vector.similarity_function`: 'cosine'
|
|
892
|
+
}
|
|
893
|
+
};
|
|
894
|
+
|
|
871
895
|
// ----------------------------------------------------------
|
|
872
896
|
// EmailAccount — managed by the email plugin (credentials.ts)
|
|
873
897
|
// Created via MERGE by email-setup. Properties:
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"pdf-lib": "^1.17.1"
|
|
11
11
|
},
|
|
12
12
|
"scripts": {
|
|
13
|
-
"build": "tsc -p lib/account-schema-regions/tsconfig.json && tsc -p lib/account-ingest-token/tsconfig.json && tsc -p lib/models/tsconfig.json && tsc -p lib/mcp-spawn-tee/tsconfig.json && tsc -p lib/mcp-lifeline/tsconfig.json && tsc -p lib/mcp-eager/tsconfig.json && tsc -p lib/account-enumeration/tsconfig.json && tsc -p lib/account-scope/tsconfig.json && tsc -p lib/graph-write/tsconfig.json && tsc -p lib/ledger-core/tsconfig.json && tsc -p lib/embed-client/tsconfig.json && tsc -p lib/graph-mcp/tsconfig.json && tsc -p lib/graph-trash/tsconfig.json && tsc -p lib/active-rules/tsconfig.json && tsc -p lib/admin-conversation-purge/tsconfig.json && tsc -p lib/graph-search/tsconfig.json && tsc -p lib/graph-style/tsconfig.json && tsc -p lib/device-url/tsconfig.json && tsc -p lib/brand-templating/tsconfig.json && tsc -p lib/entitlement/tsconfig.json && tsc -p lib/task-secrets/tsconfig.json && tsc -p lib/admins-write/tsconfig.json && tsc -p lib/admin-access-password/tsconfig.json && tsc -p lib/persistent-components/tsconfig.json && tsc -p lib/require-port-env/tsconfig.json && tsc -p lib/aeo-llms-txt-writer/tsconfig.json && tsc -p lib/obsidian-parser/tsconfig.json && tsc -p lib/storage-broker/tsconfig.json && tsc -p lib/routine-templates/tsconfig.json && tsc -p lib/agent-dispatch-rule/tsconfig.json && tsc -p services/claude-session-manager/tsconfig.json && tsc -p services/whatsapp-channel/tsconfig.json && tsc -p services/webchat-channel/tsconfig.json && tsc -p services/telegram-channel/tsconfig.json && NODE_OPTIONS='--max-old-space-size=8192' tsc -b plugins/*/mcp/tsconfig.json",
|
|
13
|
+
"build": "tsc -p lib/account-schema-regions/tsconfig.json && tsc -p lib/account-ingest-token/tsconfig.json && tsc -p lib/models/tsconfig.json && tsc -p lib/mcp-spawn-tee/tsconfig.json && tsc -p lib/mcp-lifeline/tsconfig.json && tsc -p lib/mcp-eager/tsconfig.json && tsc -p lib/account-enumeration/tsconfig.json && tsc -p lib/account-scope/tsconfig.json && tsc -p lib/graph-write/tsconfig.json && tsc -p lib/ledger-core/tsconfig.json && tsc -p lib/embed-client/tsconfig.json && tsc -p lib/graph-mcp/tsconfig.json && tsc -p lib/graph-trash/tsconfig.json && tsc -p lib/active-rules/tsconfig.json && tsc -p lib/admin-conversation-purge/tsconfig.json && tsc -p lib/graph-search/tsconfig.json && tsc -p lib/graph-style/tsconfig.json && tsc -p lib/device-url/tsconfig.json && tsc -p lib/brand-templating/tsconfig.json && tsc -p lib/entitlement/tsconfig.json && tsc -p lib/task-secrets/tsconfig.json && tsc -p lib/admins-write/tsconfig.json && tsc -p lib/admin-access-password/tsconfig.json && tsc -p lib/persistent-components/tsconfig.json && tsc -p lib/require-port-env/tsconfig.json && tsc -p lib/aeo-llms-txt-writer/tsconfig.json && tsc -p lib/obsidian-parser/tsconfig.json && tsc -p lib/storage-broker/tsconfig.json && tsc -p lib/routine-templates/tsconfig.json && tsc -p lib/agent-dispatch-rule/tsconfig.json && tsc -p lib/learning-constants/tsconfig.json && tsc -p services/claude-session-manager/tsconfig.json && tsc -p services/whatsapp-channel/tsconfig.json && tsc -p services/webchat-channel/tsconfig.json && tsc -p services/telegram-channel/tsconfig.json && NODE_OPTIONS='--max-old-space-size=8192' tsc -b plugins/*/mcp/tsconfig.json",
|
|
14
14
|
"build:lib": "tsc -p lib/account-schema-regions/tsconfig.json && tsc -p lib/account-ingest-token/tsconfig.json && tsc -p lib/models/tsconfig.json && tsc -p lib/mcp-spawn-tee/tsconfig.json && tsc -p lib/mcp-lifeline/tsconfig.json && tsc -p lib/mcp-eager/tsconfig.json && tsc -p lib/account-enumeration/tsconfig.json && tsc -p lib/account-scope/tsconfig.json && tsc -p lib/graph-write/tsconfig.json && tsc -p lib/ledger-core/tsconfig.json && tsc -p lib/embed-client/tsconfig.json && tsc -p lib/graph-mcp/tsconfig.json && tsc -p lib/graph-trash/tsconfig.json && tsc -p lib/active-rules/tsconfig.json && tsc -p lib/admin-conversation-purge/tsconfig.json && tsc -p lib/graph-search/tsconfig.json && tsc -p lib/graph-style/tsconfig.json && tsc -p lib/device-url/tsconfig.json && tsc -p lib/brand-templating/tsconfig.json && tsc -p lib/entitlement/tsconfig.json && tsc -p lib/task-secrets/tsconfig.json && tsc -p lib/admins-write/tsconfig.json && tsc -p lib/admin-access-password/tsconfig.json && tsc -p lib/persistent-components/tsconfig.json && tsc -p lib/require-port-env/tsconfig.json && tsc -p lib/aeo-llms-txt-writer/tsconfig.json && tsc -p lib/obsidian-parser/tsconfig.json && tsc -p lib/storage-broker/tsconfig.json && tsc -p lib/routine-templates/tsconfig.json && tsc -p lib/agent-dispatch-rule/tsconfig.json",
|
|
15
15
|
"gen:canonical-tools": "node scripts/generate-canonical-tool-names.mjs",
|
|
16
16
|
"build:memory": "tsc -p plugins/memory/mcp/tsconfig.json",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "admin",
|
|
3
|
-
"description": "Platform administration plugin. Provides system-status, public-hostname (deterministic Cloudflare public-URL resolver, single call returning the operator's canonical hostname so agents never guess property names on :CloudflareHostname nodes), admin-hostname (the admin-host twin of public-hostname — resolves the host that serves /calendar and the rest of the admin shell behind sign-in from the same ingress + alias + operator files, so agents point the operator at the admin /calendar URL instead of the public host that 404s it), publish-site (move an extracted static-site tree under <accountDir>/sites/<slug>/, emit one canonical path slug, and refresh llms.txt at the site root — typed refusal taxonomy replaces the prior skill-prose contract), brand-settings, account-manage, capabilities-here (deterministic install-introspection — returns enabledPlugins, tier, models, installed platform + premium specialists, registered Claude Code agent types, and the brand block as a single JSON object; the canonical tool for grounding any claim about what is enabled on the current account), linkedin-ingest-token (returns the account's durable LinkedIn ingest token — the one credential the SiteDesk LinkedIn Ingest Chrome extension needs in its options page; minted on first call then stable across restarts and new chat sessions, and never a conversation session key nor the admin browser's session_key, which the ingest route rejects; action='rotate' replaces it and invalidates every existing extension install), account-update, the multi-account managed-service lifecycle tools (account_list, account_create, account_delete, account_purge, account_channel_routing, account_channel_routing_set — one Rubytech operator hosting N client accounts on one house install; create/delete/purge are operator-only and purge is two-step with a typed confirmation; account_create requires the client business owner's real name (ownerName), refusing a blank or the placeholder \"Owner\" and seeding it onto the sub-account's owner AdminUser and owner Person, and requires the owner's IANA timezone (timezone) — refusing a blank or a non-IANA value — seeding it onto the owner UserProfile marked owner-set so scheduling reads the owner's real zone from the start rather than the box's server default, while a managing house admin (its userId) is optional — when supplied it is validated as a live house admin and recorded as the sub-account's managingAdminUserId, and when omitted the sub-account is unmanaged and its passive-intake tasks route to the install's primary admin; account_reassign_admin repoints a client sub-account's managing admin to another live house admin (the repair path for a dangling managingAdminUserId, or to record one on an unmanaged account); account_roster is the canonical per-account identity view — one row per sub-account giving business name, role, the managing house admin resolved to a name with status (assigned/absent/dangling), the business owner from the graph with status (named/nameless), and the WhatsApp account-manager binding if any, each field carrying what it means and does not (managing admin is the responsible house team member not the owner; account manager is WhatsApp routing only with no admin rights), so the agent never stitches admin-list + account.json + whatsapp-config; account_set_owner_name names (or corrects) a client sub-account's business owner by writing the owned Person — the canonical name source — refusing a blank or the placeholder \"Owner\", the guarded repair for a nameless owner (the standing identity-audit op=nameless-owned-person detector); account_channel_routing_set repoints the
|
|
3
|
+
"description": "Platform administration plugin. Provides system-status, public-hostname (deterministic Cloudflare public-URL resolver, single call returning the operator's canonical hostname so agents never guess property names on :CloudflareHostname nodes), admin-hostname (the admin-host twin of public-hostname — resolves the host that serves /calendar and the rest of the admin shell behind sign-in from the same ingress + alias + operator files, so agents point the operator at the admin /calendar URL instead of the public host that 404s it), publish-site (move an extracted static-site tree under <accountDir>/sites/<slug>/, emit one canonical path slug, and refresh llms.txt at the site root — typed refusal taxonomy replaces the prior skill-prose contract), brand-settings, account-manage, capabilities-here (deterministic install-introspection — returns enabledPlugins, tier, models, installed platform + premium specialists, registered Claude Code agent types, and the brand block as a single JSON object; the canonical tool for grounding any claim about what is enabled on the current account), linkedin-ingest-token (returns the account's durable LinkedIn ingest token — the one credential the SiteDesk LinkedIn Ingest Chrome extension needs in its options page; minted on first call then stable across restarts and new chat sessions, and never a conversation session key nor the admin browser's session_key, which the ingest route rejects; action='rotate' replaces it and invalidates every existing extension install), account-update, the multi-account managed-service lifecycle tools (account_list, account_create, account_delete, account_purge, account_channel_routing, account_channel_routing_set — one Rubytech operator hosting N client accounts on one house install; create/delete/purge are operator-only and purge is two-step with a typed confirmation; account_create requires the client business owner's real name (ownerName), refusing a blank or the placeholder \"Owner\" and seeding it onto the sub-account's owner AdminUser and owner Person, and requires the owner's IANA timezone (timezone) — refusing a blank or a non-IANA value — seeding it onto the owner UserProfile marked owner-set so scheduling reads the owner's real zone from the start rather than the box's server default, while a managing house admin (its userId) is optional — when supplied it is validated as a live house admin and recorded as the sub-account's managingAdminUserId, and when omitted the sub-account is unmanaged and its passive-intake tasks route to the install's primary admin; account_reassign_admin repoints a client sub-account's managing admin to another live house admin (the repair path for a dangling managingAdminUserId, or to record one on an unmanaged account); account_roster is the canonical per-account identity view — one row per sub-account giving business name, role, the managing house admin resolved to a name with status (assigned/absent/dangling), the business owner from the graph with status (named/nameless), and the WhatsApp account-manager binding if any, each field carrying what it means and does not (managing admin is the responsible house team member not the owner; account manager is WhatsApp routing only with no admin rights), so the agent never stitches admin-list + account.json + whatsapp-config; account_set_owner_name names (or corrects) a client sub-account's business owner by writing the owned Person — the canonical name source — refusing a blank or the placeholder \"Owner\", the guarded repair for a nameless owner (the standing identity-audit op=nameless-owned-person detector); account_channel_routing_set repoints the house-paired WhatsApp/Telegram inbound stream to a different sub-account, and does not affect a sub-account's own separately paired WhatsApp number), admin-add (refuses on a client sub-account, where admin access is already install-wide so a per-operator seat grants nothing — the sub-account's one identity, its business owner, is set at account creation; the house account, where operators hold PIN logins and admins[] rows, is unchanged), admin-remove (refuses to remove a house admin who still manages one or more client sub-accounts, naming them so the operator reassigns each with account_reassign_admin first — never silently orphans them), admin-list, admin-update-pin, agent-list, agent-config-read, logs-read, cpu-triage-start and cpu-triage-read (the two-call device CPU diagnostic — start spawns a detached sampling run across at least one full 120s reconcile cycle and returns a run handle immediately, read returns running/complete/failed with the per-core distribution; no admin tool blocks through a sampling window, and no spot reading is obtainable), plugin-read, skill-load (one-call resolve+read for SKILL.md by skill name, the canonical primitive for loading a named skill; plugin-read remains the reader for references/* and PLUGIN.md), skill-search (free-text intent → skill resolver: ranks every plugin skill's SKILL.md name+description against a query and returns the top owners with their canonical skills/<slug>/ path, so intent→skill mapping survives the available-skills menu leaving context after a compaction), store-skill (deterministic write counterpart to plugin-read; persists operator-authored skills as plugin files under the active account), session-reset, session-resume, wifi, and action-approval tools (action-pending, action-approve, action-reject, action-edit) for managing the SiteDesk platform.",
|
|
4
4
|
"version": "0.1.0",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Rubytech LLC"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: admin
|
|
3
3
|
surface: platform
|
|
4
|
-
description: "Platform administration plugin. Provides system-status, public-hostname (deterministic Cloudflare public-URL resolver, single call returning the operator's canonical hostname so agents never guess property names on :CloudflareHostname nodes), admin-hostname (the admin-host twin of public-hostname — resolves the host that serves /calendar and the rest of the admin shell behind sign-in from the same ingress + alias + operator files, so agents point the operator at the admin /calendar URL instead of the public host that 404s it), publish-site (move an extracted static-site tree under <accountDir>/sites/<slug>/, emit one canonical path slug, and refresh llms.txt at the site root — typed refusal taxonomy replaces the prior skill-prose contract), brand-settings, account-manage, capabilities-here (deterministic install-introspection — returns enabledPlugins, tier, models, installed platform + premium specialists, registered Claude Code agent types, and the brand block as a single JSON object; the canonical tool for grounding any claim about what is enabled on the current account), linkedin-ingest-token (returns the account's durable LinkedIn ingest token — the one credential the SiteDesk LinkedIn Ingest Chrome extension needs in its options page; minted on first call then stable across restarts and new chat sessions, and never a conversation session key nor the admin browser's session_key, which the ingest route rejects; action='rotate' replaces it and invalidates every existing extension install), account-update, the multi-account managed-service lifecycle tools (account_list, account_create, account_delete, account_purge, account_channel_routing, account_channel_routing_set — one Rubytech operator hosting N client accounts on one house install; create/delete/purge are operator-only and purge is two-step with a typed confirmation; account_create requires the client business owner's real name (ownerName), refusing a blank or the placeholder "Owner" and seeding it onto the sub-account's owner AdminUser and owner Person, and requires the owner's IANA timezone (timezone) — refusing a blank or a non-IANA value — seeding it onto the owner UserProfile marked owner-set so scheduling reads the owner's real zone from the start rather than the box's server default, while a managing house admin (its userId) is optional — when supplied it is validated as a live house admin and recorded as the sub-account's managingAdminUserId, and when omitted the sub-account is unmanaged and its passive-intake tasks route to the install's primary admin; account_reassign_admin repoints a client sub-account's managing admin to another live house admin (the repair path for a dangling managingAdminUserId, or to record one on an unmanaged account); account_roster is the canonical per-account identity view — one row per sub-account giving business name, role, the managing house admin resolved to a name with status (assigned/absent/dangling), the business owner from the graph with status (named/nameless), and the WhatsApp account-manager binding if any, each field carrying what it means and does not (managing admin is the responsible house team member not the owner; account manager is WhatsApp routing only with no admin rights), so the agent never stitches admin-list + account.json + whatsapp-config; account_set_owner_name names (or corrects) a client sub-account's business owner by writing the owned Person — the canonical name source — refusing a blank or the placeholder "Owner", the guarded repair for a nameless owner (the standing identity-audit op=nameless-owned-person detector); account_channel_routing_set repoints the
|
|
4
|
+
description: "Platform administration plugin. Provides system-status, public-hostname (deterministic Cloudflare public-URL resolver, single call returning the operator's canonical hostname so agents never guess property names on :CloudflareHostname nodes), admin-hostname (the admin-host twin of public-hostname — resolves the host that serves /calendar and the rest of the admin shell behind sign-in from the same ingress + alias + operator files, so agents point the operator at the admin /calendar URL instead of the public host that 404s it), publish-site (move an extracted static-site tree under <accountDir>/sites/<slug>/, emit one canonical path slug, and refresh llms.txt at the site root — typed refusal taxonomy replaces the prior skill-prose contract), brand-settings, account-manage, capabilities-here (deterministic install-introspection — returns enabledPlugins, tier, models, installed platform + premium specialists, registered Claude Code agent types, and the brand block as a single JSON object; the canonical tool for grounding any claim about what is enabled on the current account), linkedin-ingest-token (returns the account's durable LinkedIn ingest token — the one credential the SiteDesk LinkedIn Ingest Chrome extension needs in its options page; minted on first call then stable across restarts and new chat sessions, and never a conversation session key nor the admin browser's session_key, which the ingest route rejects; action='rotate' replaces it and invalidates every existing extension install), account-update, the multi-account managed-service lifecycle tools (account_list, account_create, account_delete, account_purge, account_channel_routing, account_channel_routing_set — one Rubytech operator hosting N client accounts on one house install; create/delete/purge are operator-only and purge is two-step with a typed confirmation; account_create requires the client business owner's real name (ownerName), refusing a blank or the placeholder "Owner" and seeding it onto the sub-account's owner AdminUser and owner Person, and requires the owner's IANA timezone (timezone) — refusing a blank or a non-IANA value — seeding it onto the owner UserProfile marked owner-set so scheduling reads the owner's real zone from the start rather than the box's server default, while a managing house admin (its userId) is optional — when supplied it is validated as a live house admin and recorded as the sub-account's managingAdminUserId, and when omitted the sub-account is unmanaged and its passive-intake tasks route to the install's primary admin; account_reassign_admin repoints a client sub-account's managing admin to another live house admin (the repair path for a dangling managingAdminUserId, or to record one on an unmanaged account); account_roster is the canonical per-account identity view — one row per sub-account giving business name, role, the managing house admin resolved to a name with status (assigned/absent/dangling), the business owner from the graph with status (named/nameless), and the WhatsApp account-manager binding if any, each field carrying what it means and does not (managing admin is the responsible house team member not the owner; account manager is WhatsApp routing only with no admin rights), so the agent never stitches admin-list + account.json + whatsapp-config; account_set_owner_name names (or corrects) a client sub-account's business owner by writing the owned Person — the canonical name source — refusing a blank or the placeholder "Owner", the guarded repair for a nameless owner (the standing identity-audit op=nameless-owned-person detector); account_channel_routing_set repoints the house-paired WhatsApp/Telegram inbound stream to a different sub-account, and does not affect a sub-account's own separately paired WhatsApp number), admin-add (refuses on a client sub-account, where admin access is already install-wide so a per-operator seat grants nothing — the sub-account's one identity, its business owner, is set at account creation; the house account, where operators hold PIN logins and admins[] rows, is unchanged), admin-remove (refuses to remove a house admin who still manages one or more client sub-accounts, naming them so the operator reassigns each with account_reassign_admin first — never silently orphans them), admin-list, admin-update-pin, agent-list, agent-config-read, logs-read, cpu-triage-start and cpu-triage-read (the two-call device CPU diagnostic — start spawns a detached sampling run across at least one full 120s reconcile cycle and returns a run handle immediately, read returns running/complete/failed with the per-core distribution; no admin tool blocks through a sampling window, and no spot reading is obtainable), plugin-read, skill-load (one-call resolve+read for SKILL.md by skill name, the canonical primitive for loading a named skill; plugin-read remains the reader for references/* and PLUGIN.md), skill-search (free-text intent → skill resolver: ranks every plugin skill's SKILL.md name+description against a query and returns the top owners with their canonical skills/<slug>/ path, so intent→skill mapping survives the available-skills menu leaving context after a compaction), store-skill (deterministic write counterpart to plugin-read; persists operator-authored skills as plugin files under the active account), session-reset, session-resume, wifi, and action-approval tools (action-pending, action-approve, action-reject, action-edit) for managing the SiteDesk platform."
|
|
5
5
|
account-owned-files: [{"file": "webchat-channel-bindings.json", "description": "Routes this account's inbound admin webchat messages. Written by the session manager's webchat-channel-store."}, {"file": "wa-channel-bindings.json", "description": "Routes this account's inbound WhatsApp messages. Written by the session manager's wa-channel-store, which runs on every brand whether or not the whatsapp plugin ships."}, {"file": "telegram-channel-bindings.json", "description": "Routes this account's inbound Telegram messages. Written by the session manager's telegram-channel-store, which runs on every brand whether or not the telegram plugin ships."}, {"file": "canonical-webchat-session.json", "description": "Pins the account's canonical webchat session. Written by the admin UI server."}, {"file": "session-titles.json", "description": "Operator renames of sessions. Written by the session manager's title stores."}, {"file": "agents-disabled.json", "description": "Names the agents the operator switched off. Written by the admin agents route; provision reads it to re-apply the disables and never creates it."}]
|
|
6
6
|
tools:
|
|
7
7
|
- name: system-status
|
|
@@ -3747,7 +3747,7 @@ eagerTool(server, "account_purge", "IRREVERSIBLY delete every graph node carryin
|
|
|
3747
3747
|
await session.close();
|
|
3748
3748
|
}
|
|
3749
3749
|
});
|
|
3750
|
-
eagerTool(server, "account_channel_routing", "Reports which sub-account WhatsApp/Telegram inbound
|
|
3750
|
+
eagerTool(server, "account_channel_routing", "Reports which sub-account the HOUSE-PAIRED WhatsApp/Telegram socket's inbound attaches to on this install, defaulting to the house sub-account. Each sub-account may pair its own WhatsApp number separately (whatsapp-login-start with no accountId pairs the calling session's own account), and a sub-account's line coexists with the house's rather than replacing it. This setting governs only where the house-paired socket's inbound lands; it does not affect those separate lines and does not limit how many numbers the install pairs.", {}, async () => {
|
|
3751
3751
|
const house = findHouseAccount(ACCOUNTS_ROOT);
|
|
3752
3752
|
if (!house) {
|
|
3753
3753
|
return { content: [{ type: "text", text: "account_channel_routing: no house account found on this install." }], isError: true };
|
|
@@ -3758,7 +3758,7 @@ eagerTool(server, "account_channel_routing", "Reports which sub-account WhatsApp
|
|
|
3758
3758
|
content: [{ type: "text", text: `WhatsApp/Telegram inbound currently routes to: ${target}${isDefault ? " (house, default)" : ""}` }],
|
|
3759
3759
|
};
|
|
3760
3760
|
});
|
|
3761
|
-
eagerTool(server, "account_channel_routing_set", "Repoints the
|
|
3761
|
+
eagerTool(server, "account_channel_routing_set", "Repoints the house-paired WhatsApp/Telegram inbound stream to the given sub-account. Refuses an accountId that is not a registered sub-account on this install. Takes effect on the next inbound message — no restart needed. Does not affect a sub-account's own separately paired WhatsApp number.", {
|
|
3762
3762
|
accountId: z.string().describe("The sub-account UUID to route WhatsApp/Telegram inbound to."),
|
|
3763
3763
|
}, async ({ accountId }) => {
|
|
3764
3764
|
if (!ACCOUNT_ID)
|