@rubytech/create-maxy-code 0.1.348 → 0.1.350
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/docs/superpowers/plans/2026-06-23-account-filesystem-schema.md +544 -0
- package/payload/platform/docs/superpowers/specs/2026-06-23-account-filesystem-schema-design.md +170 -0
- package/payload/platform/lib/graph-style/dist/index.d.ts +1 -1
- package/payload/platform/lib/graph-style/dist/index.d.ts.map +1 -1
- package/payload/platform/lib/graph-style/dist/index.js +20 -12
- package/payload/platform/lib/graph-style/dist/index.js.map +1 -1
- package/payload/platform/lib/graph-style/src/__tests__/parity.test.ts +9 -9
- package/payload/platform/lib/graph-style/src/index.ts +20 -12
- package/payload/platform/lib/graph-write/dist/index.d.ts.map +1 -1
- package/payload/platform/lib/graph-write/dist/index.js +3 -2
- package/payload/platform/lib/graph-write/dist/index.js.map +1 -1
- package/payload/platform/lib/graph-write/src/index.ts +3 -2
- package/payload/platform/neo4j/schema.cypher +110 -31
- package/payload/platform/plugins/.claude-plugin/marketplace.json +5 -0
- package/payload/platform/plugins/admin/hooks/__tests__/fs-schema-guard.test.sh +68 -0
- package/payload/platform/plugins/admin/hooks/fs-schema-guard.sh +108 -0
- package/payload/platform/plugins/admin/hooks/lib/maxy-mcp-plugins.txt +1 -0
- package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +36 -3
- package/payload/platform/plugins/docs/references/calendar-booking.md +1 -1
- package/payload/platform/plugins/docs/references/joblogic.md +28 -0
- package/payload/platform/plugins/docs/references/memory-guide.md +1 -1
- package/payload/platform/plugins/joblogic/.claude-plugin/plugin.json +21 -0
- package/payload/platform/plugins/joblogic/PLUGIN.md +182 -0
- package/payload/platform/plugins/joblogic/lib/mcp-spawn-tee/index.js +193 -0
- package/payload/platform/plugins/joblogic/lib/mcp-spawn-tee/package.json +3 -0
- package/payload/platform/plugins/joblogic/mcp/dist/index.d.ts +2 -0
- package/payload/platform/plugins/joblogic/mcp/dist/index.d.ts.map +1 -0
- package/payload/platform/plugins/joblogic/mcp/dist/index.js +229 -0
- package/payload/platform/plugins/joblogic/mcp/dist/index.js.map +1 -0
- package/payload/platform/plugins/joblogic/mcp/dist/lib/auth.d.ts +31 -0
- package/payload/platform/plugins/joblogic/mcp/dist/lib/auth.d.ts.map +1 -0
- package/payload/platform/plugins/joblogic/mcp/dist/lib/auth.js +78 -0
- package/payload/platform/plugins/joblogic/mcp/dist/lib/auth.js.map +1 -0
- package/payload/platform/plugins/joblogic/mcp/dist/lib/client.d.ts +35 -0
- package/payload/platform/plugins/joblogic/mcp/dist/lib/client.d.ts.map +1 -0
- package/payload/platform/plugins/joblogic/mcp/dist/lib/client.js +106 -0
- package/payload/platform/plugins/joblogic/mcp/dist/lib/client.js.map +1 -0
- package/payload/platform/plugins/joblogic/mcp/dist/lib/idempotency.d.ts +8 -0
- package/payload/platform/plugins/joblogic/mcp/dist/lib/idempotency.d.ts.map +1 -0
- package/payload/platform/plugins/joblogic/mcp/dist/lib/idempotency.js +41 -0
- package/payload/platform/plugins/joblogic/mcp/dist/lib/idempotency.js.map +1 -0
- package/payload/platform/plugins/joblogic/mcp/dist/lib/secrets.d.ts +21 -0
- package/payload/platform/plugins/joblogic/mcp/dist/lib/secrets.d.ts.map +1 -0
- package/payload/platform/plugins/joblogic/mcp/dist/lib/secrets.js +47 -0
- package/payload/platform/plugins/joblogic/mcp/dist/lib/secrets.js.map +1 -0
- package/payload/platform/plugins/joblogic/mcp/package.json +10 -0
- package/payload/platform/plugins/joblogic/skills/joblogic/SKILL.md +32 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/relationship-patterns.test.js +28 -22
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/relationship-patterns.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-cypher-drift.test.js +8 -4
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-cypher-drift.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-write-path-task802.test.js +39 -10
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-write-path-task802.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/relationship-patterns.d.ts +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/relationship-patterns.js +1 -1
- package/payload/platform/plugins/memory/references/schema-construction.md +152 -57
- package/payload/platform/plugins/memory/references/schema-trades.md +22 -24
- package/payload/platform/scripts/lib/provision-account-dir.sh +22 -3
- 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 +46 -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/http-server.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/http-server.js +45 -1
- package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +11 -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 +1 -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 +16 -0
- package/payload/platform/services/claude-session-manager/dist/system-prompt.js.map +1 -1
- package/payload/platform/templates/account-schema/SCHEMA.md +54 -0
- package/payload/server/public/assets/{AdminLoginScreens-B_5wYcR-.js → AdminLoginScreens-BEzoTk56.js} +1 -1
- package/payload/server/public/assets/{AdminShell-CMV3XY-s.js → AdminShell-BG7YD4UO.js} +1 -1
- package/payload/server/public/assets/{Checkbox-LplFUKpb.js → Checkbox-CvTFOczj.js} +1 -1
- package/payload/server/public/assets/{OperatorConversations-C4Cx814-.css → OperatorConversations-CnP9Y6g2.css} +1 -1
- package/payload/server/public/assets/{admin-3QQtd7j2.js → admin-Bhxa1HOy.js} +1 -1
- package/payload/server/public/assets/{browser-D5q26eZL.js → browser-BAQFuyma.js} +1 -1
- package/payload/server/public/assets/calendar-sSr6zUjW.js +1 -0
- package/payload/server/public/assets/chat-ZH4Fsyu0.js +1 -0
- package/payload/server/public/assets/data-CBrgiyPM.js +1 -0
- package/payload/server/public/assets/{graph-DFQbqmi9.js → graph-DbGjFYPS.js} +1 -1
- package/payload/server/public/assets/graph-labels-IGIEr-uc.js +1 -0
- package/payload/server/public/assets/{operator-BlCyq4q1.js → operator-Ba5afDyM.js} +1 -1
- package/payload/server/public/assets/{page-drg1V-yA.js → page-D7uwMUOy.js} +1 -1
- package/payload/server/public/assets/{public-BVjeYfsD.js → public-DikYWzOd.js} +1 -1
- package/payload/server/public/browser.html +4 -4
- package/payload/server/public/calendar.html +4 -4
- package/payload/server/public/chat.html +5 -5
- package/payload/server/public/data.html +4 -4
- package/payload/server/public/graph.html +6 -6
- package/payload/server/public/index.html +6 -6
- package/payload/server/public/operator.html +7 -7
- package/payload/server/public/public.html +5 -5
- package/payload/server/server.js +92 -31
- package/payload/server/public/assets/calendar-Csbdj7rp.js +0 -1
- package/payload/server/public/assets/chat-Ct86qtMI.js +0 -1
- package/payload/server/public/assets/data-HwT5wPmj.js +0 -1
- package/payload/server/public/assets/graph-labels-kCti2CaC.js +0 -1
- /package/payload/server/public/assets/{OperatorConversations-Bp-g80PM.js → OperatorConversations-DU8CqO-z.js} +0 -0
package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-cypher-drift.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-cypher-drift.test.js","sourceRoot":"","sources":["../../../src/lib/__tests__/schema-cypher-drift.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,2BAA2B,EAAE,MAAM,8DAA8D,CAAC;AAE3G,qDAAqD;AACrD,EAAE;AACF,yDAAyD;AACzD,uEAAuE;AACvE,0CAA0C;AAC1C,sEAAsE;AACtE,0EAA0E;AAC1E,uEAAuE;AACvE,oEAAoE;AACpE,qEAAqE;AACrE,iCAAiC;AAEjC,MAAM,cAAc,GAAG,OAAO,CAC5B,MAAM,CAAC,IAAI,CAAC,OAAO,EACnB,wBAAwB,CACzB,CAAC;AACF,MAAM,kBAAkB,GAAG,OAAO,CAChC,MAAM,CAAC,IAAI,CAAC,OAAO,EACnB,uCAAuC,CACxC,CAAC;AAEF,oEAAoE;AACpE,uEAAuE;AACvE,oEAAoE;AACpE,yEAAyE;AACzE,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAS;IACxC,sEAAsE;IACtE,wDAAwD;IACxD,WAAW;IACX,0EAA0E;IAC1E,
|
|
1
|
+
{"version":3,"file":"schema-cypher-drift.test.js","sourceRoot":"","sources":["../../../src/lib/__tests__/schema-cypher-drift.test.ts"],"names":[],"mappings":"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"}
|
package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-write-path-task802.test.js
CHANGED
|
@@ -31,10 +31,10 @@ const CONSTRUCTION = {
|
|
|
31
31
|
source: "brand-default",
|
|
32
32
|
},
|
|
33
33
|
};
|
|
34
|
-
test("
|
|
35
|
-
const env = makeEnv(["
|
|
34
|
+
test("Quote with totalPaymentDue is accepted", () => {
|
|
35
|
+
const env = makeEnv(["Quote"]);
|
|
36
36
|
expect(() => validateWrite({
|
|
37
|
-
labels: ["
|
|
37
|
+
labels: ["Quote"],
|
|
38
38
|
properties: {
|
|
39
39
|
jobId: "1840",
|
|
40
40
|
ref: "Q-1840",
|
|
@@ -45,10 +45,10 @@ test("QuoteDocument with totalPaymentDue is accepted", () => {
|
|
|
45
45
|
accountId: ACCT,
|
|
46
46
|
}, env, CONSTRUCTION)).not.toThrow();
|
|
47
47
|
});
|
|
48
|
-
test("
|
|
49
|
-
const env = makeEnv(["
|
|
48
|
+
test("Quote with amount is rejected with the synonym message", () => {
|
|
49
|
+
const env = makeEnv(["Quote"]);
|
|
50
50
|
expect(() => validateWrite({
|
|
51
|
-
labels: ["
|
|
51
|
+
labels: ["Quote"],
|
|
52
52
|
properties: {
|
|
53
53
|
jobId: "1840",
|
|
54
54
|
ref: "Q-1840",
|
|
@@ -102,10 +102,39 @@ test("Job with empty-string required property is still rejected (isPresent bound
|
|
|
102
102
|
labels: ["Job"],
|
|
103
103
|
properties: {
|
|
104
104
|
jobId: "1809",
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
105
|
+
status: "",
|
|
106
|
+
jobType: "Maintenance",
|
|
107
|
+
},
|
|
108
|
+
accountId: ACCT,
|
|
109
|
+
}, env, CONSTRUCTION)).toThrow(/missing required property/);
|
|
110
|
+
});
|
|
111
|
+
// Task 1084 — a logged labour day is a :JobCost {costType:'labour'}. Its
|
|
112
|
+
// required set is the stable identity (accountId, costType) so the timesheet
|
|
113
|
+
// worker-day shape validates; the JobLogic cost attributes are optional.
|
|
114
|
+
test("JobCost labour day with costType is accepted (timesheet roll-up write)", () => {
|
|
115
|
+
const env = makeEnv(["JobCost"]);
|
|
116
|
+
expect(() => validateWrite({
|
|
117
|
+
labels: ["JobCost"],
|
|
118
|
+
properties: {
|
|
119
|
+
costId: "p123-2026-06-22",
|
|
120
|
+
costType: "labour",
|
|
121
|
+
personId: "p123",
|
|
122
|
+
date: "2026-06-22",
|
|
123
|
+
site: "12 The Avenue",
|
|
124
|
+
description: "Full day groundworks",
|
|
125
|
+
dayHundredths: 100,
|
|
126
|
+
},
|
|
127
|
+
accountId: ACCT,
|
|
128
|
+
}, env, CONSTRUCTION)).not.toThrow();
|
|
129
|
+
});
|
|
130
|
+
test("JobCost without costType is rejected (isPresent boundary)", () => {
|
|
131
|
+
const env = makeEnv(["JobCost"]);
|
|
132
|
+
expect(() => validateWrite({
|
|
133
|
+
labels: ["JobCost"],
|
|
134
|
+
properties: {
|
|
135
|
+
costId: "p123-2026-06-22",
|
|
136
|
+
personId: "p123",
|
|
137
|
+
date: "2026-06-22",
|
|
109
138
|
},
|
|
110
139
|
accountId: ACCT,
|
|
111
140
|
}, env, CONSTRUCTION)).toThrow(/missing required property/);
|
package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-write-path-task802.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-write-path-task802.test.js","sourceRoot":"","sources":["../../../src/lib/__tests__/schema-write-path-task802.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAIjD,8EAA8E;AAC9E,uEAAuE;AACvE,0EAA0E;AAC1E,mEAAmE;AACnE,8EAA8E;AAE9E,MAAM,IAAI,GAAG,sCAAsC,CAAC;AAEpD,SAAS,cAAc,CAAC,MAAgB;IACtC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,OAAO;QACL,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC;QACpC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC;QAC9B,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC;QAClC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI;KACtB,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,MAAgB;IAC/B,OAAO;QACL,MAAM,EAAE,UAAU,EAAE;QACpB,UAAU,EAAE,cAAc,CAAC,MAAM,CAAC;QAClC,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;KACf,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,qDAAqD;AACrD,MAAM,YAAY,GAAG;IACnB,eAAe,EAAE;QACf,gBAAgB,EAAE,qBAAqB;QACvC,MAAM,EAAE,eAAwB;KACjC;CACF,CAAC;AAEF,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"schema-write-path-task802.test.js","sourceRoot":"","sources":["../../../src/lib/__tests__/schema-write-path-task802.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,39 +1,86 @@
|
|
|
1
|
-
# Schema Reference — Construction
|
|
1
|
+
# Schema Reference — Construction / Field Service
|
|
2
2
|
|
|
3
|
-
Vertical schema for `businessType: "construction"` —
|
|
3
|
+
Vertical schema for `businessType: "construction"` — building firms, contractors, and
|
|
4
|
+
field-service operators (the SiteDesk brand). This is the **canonical, opinionated** SiteDesk
|
|
5
|
+
service-delivery ontology, authored from JobLogic's proven field-service domain so that an
|
|
6
|
+
operator's job maps onto shipped labels without inventing the model. JobLogic's term is the
|
|
7
|
+
canonical label name for each concept.
|
|
4
8
|
|
|
5
|
-
This reference extends the base schema. All base node types (Person, Organization, Invoice,
|
|
9
|
+
This reference extends the base schema. All base node types (Person, Organization, Invoice,
|
|
10
|
+
PostalAddress, Event, etc.) remain valid. Load `schema-base.md` first.
|
|
6
11
|
|
|
7
12
|
When loading this reference, confirm: "Using schema-base + schema-construction".
|
|
8
13
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
| Entity | Neo4j Label | Schema.org Type | Required Properties |
|
|
14
|
-
|--------|-------------|-----------------|---------------------|
|
|
15
|
-
| Job | `Job` | `schema:Project` | `accountId`, `jobId`, `client`, `address`, `status` (quoting/active/complete), `contractValue` |
|
|
16
|
-
| LineItem | `LineItem` | `cdm:LineItem` | `accountId`, `jobId`, `trade`, `description`, `contractValue` |
|
|
17
|
-
| Valuation | `Valuation` | `schema:MonetaryAmount` | `accountId`, `jobId`, `valuationNumber`, `date`, `totalValue` |
|
|
18
|
-
| Milestone | `Milestone` | `schema:Event` (subtype) | `accountId`, `jobId`, `name`, `completedDate` |
|
|
19
|
-
| QuoteDocument | `QuoteDocument` | `schema:DigitalDocument` | `accountId`, `jobId`, `ref`, `totalPaymentDue`, `date`, `status` (draft/sent/accepted) |
|
|
20
|
-
| VariationNote | `VariationNote` | `schema:DigitalDocument` | `accountId`, `jobId`, `variationNumber`, `description`, `totalPaymentDue`, `status` |
|
|
21
|
-
| InboundInvoice | `InboundInvoice` | `schema:Invoice` | `accountId`, `supplier`, `confirmationNumber`, `totalPaymentDue`, `status` (pending/approved/processed) |
|
|
22
|
-
| Worker | `Worker` (label on `Person`) | `schema:Person` (config) | `accountId`, `personId`, `name`, `engagement` (employee/cis), `dayRatePence`, `showCisDeduction`, `invoiceEmail` |
|
|
23
|
-
| CheckIn | `CheckIn` | `schema:Action` | `accountId`, `personId`, `source`, `date`, `site`, `description`, `dayHundredths` |
|
|
24
|
-
| WhatsAppGroup | `WhatsAppGroup` | `cdm:Channel` | `accountId`, `groupId`, `jobId`, `clientName` |
|
|
25
|
-
|
|
26
|
-
`awardedDate` on `Job` is expected once `status` is `active` or `complete` — a job still `quoting` has no award date. Never write a sentinel value (`"pending"`, `""`) to stand in for an unknown date; omit the property until the real date is known.
|
|
27
|
-
|
|
28
|
-
These entities model a general builder job folder: a `Job` has a generated client `QuoteDocument` that carries many `LineItem` rows organised by trade stage, supplier and sub-contractor invoices, and per-trade structure. A residential building job's line items typically span stages such as groundworks, sub-structure, superstructure, roof, structural alterations & envelope, first fix, drylining & plastering, floor screed, second fixing, knock-throughs, windows & doors, completion items and preliminaries, plus sub-contractor trades (scaffolding, roofing, electrical, plumbing, plastering, tiling, decorations). The schema carries no client, job, or pricing data of its own — those are per-account runtime values.
|
|
29
|
-
|
|
30
|
-
### Distinctions from schema-trades
|
|
31
|
-
|
|
32
|
-
`QuoteDocument` is the generated client quote artefact (the `Q-XXXX` document), distinct from schema-trades' `Quote` (a pre-acceptance Order estimate). `InboundInvoice` is a received/payable invoice with job + trade assignment, distinct from the base `Invoice`. A subcontractor company's received invoices use the same `InboundInvoice` model as any other supplier.
|
|
14
|
+
Property fidelity: properties marked **(JobLogic-exact)** are taken from JobLogic's API field
|
|
15
|
+
model; properties marked **(authored)** are modelled from JobLogic's vocabulary plus the
|
|
16
|
+
field-service domain where the captured reference does not document the entity at field level.
|
|
33
17
|
|
|
34
|
-
|
|
18
|
+
---
|
|
35
19
|
|
|
36
|
-
|
|
20
|
+
## Top-level node types (operator-entry, natural key)
|
|
21
|
+
|
|
22
|
+
| Entity | Neo4j Label | Schema.org Type | Required Properties | Fidelity |
|
|
23
|
+
|--------|-------------|-----------------|---------------------|----------|
|
|
24
|
+
| Job | `Job` | `schema:Project` | `accountId`, `jobId`, `status` | JobLogic-exact |
|
|
25
|
+
| Customer | `Customer` | `schema:Organization` | `accountId`, `customerId`, `name`, `customerType` | JobLogic-exact |
|
|
26
|
+
| Site | `Site` | `schema:Place` | `accountId`, `siteId`, `name`, `region` | JobLogic-exact |
|
|
27
|
+
| Asset | `Asset` | `schema:Product` | `accountId`, `assetId`, `name`, `assetType`, `assetClass`, `condition` | authored |
|
|
28
|
+
| Visit | `Visit` | `schema:Event` (subtype) | `accountId`, `visitId`, `status`, `startDate`, `purpose` | authored |
|
|
29
|
+
| Quote | `Quote` | `schema:Order` (estimate) | `accountId`, `ref`, `status`, `totalPaymentDue`, `date` | authored |
|
|
30
|
+
| Supplier invoice | `InboundInvoice` | `schema:Invoice` | `accountId`, `supplier`, `confirmationNumber`, `totalPaymentDue` | JobLogic-exact |
|
|
31
|
+
| Part | `Part` | `schema:Product` | `accountId`, `partId`, `name`, `sku`, `partCategory` | authored |
|
|
32
|
+
| Purchase Order | `PurchaseOrder` | `schema:Order` | `accountId`, `poNumber`, `status`, `completionStatus`, `dateRaised` | JobLogic-exact |
|
|
33
|
+
| PPM Contract | `PpmContract` | `schema:Service` (contract) | `accountId`, `contractId`, `name`, `startDate`, `endDate` | authored |
|
|
34
|
+
| WhatsApp Group | `WhatsAppGroup` | `cdm:Channel` | `accountId`, `groupId`, `jobId`, `clientName` | n/a (transport) |
|
|
35
|
+
|
|
36
|
+
`Job.status` is one of JobLogic's job statuses: `New Job`, `Allocated`, `Attended`,
|
|
37
|
+
`Parts To Fit`, `Awaiting Parts`, `Completed`, `Costed`, `Reqs. Invoice`, `Invoiced`, `Paid`,
|
|
38
|
+
`Cancelled`, `Recall`. `Job.jobType` is the highest categorisation (Call out, Installation,
|
|
39
|
+
Maintenance, Out of Hours, Reactive, Non-Productive); `Job.jobCategory` is the finer trade
|
|
40
|
+
detail. `Site.region` is one of `East`, `North`, `South`, `West`. `PurchaseOrder.status` is one
|
|
41
|
+
of `InProgress`, `Sent`, `Cancelled`, `NeedsApproval`; `PurchaseOrder.completionStatus` one of
|
|
42
|
+
`NotApplicable`, `NotCompleted`, `PartiallyCompleted`, `FullyCompleted`. Never write a sentinel
|
|
43
|
+
value for an unknown date — omit the property until the real value is known.
|
|
44
|
+
|
|
45
|
+
Two distinct invoice documents. The received supplier invoice is `InboundInvoice` (keyed
|
|
46
|
+
`(accountId, supplier, confirmationNumber)`), now linked to the `PurchaseOrder` it pays — a
|
|
47
|
+
subcontractor company's received invoice uses the same model as any other supplier. The
|
|
48
|
+
customer-facing outbound bill is the base `Invoice` (`schema-base.md`), whose billing chain is
|
|
49
|
+
the child `InvoiceLine`, `InvoicePayment`, and `Credit`. The two labels carry different required
|
|
50
|
+
fields (supplier vs customer), so they stay distinct rather than one label with a direction flag.
|
|
51
|
+
|
|
52
|
+
## Child node types (write-time MERGE; reached via parent neighbourhood)
|
|
53
|
+
|
|
54
|
+
| Entity | Neo4j Label | Required Properties | Fidelity |
|
|
55
|
+
|--------|-------------|---------------------|----------|
|
|
56
|
+
| Quote line | `QuoteLine` | `accountId`, `jobId`, `trade`, `description`, `contractValue` | authored |
|
|
57
|
+
| Valuation | `Valuation` | `accountId`, `jobId`, `valuationNumber`, `date`, `totalValue` | authored |
|
|
58
|
+
| Milestone | `Milestone` | `accountId`, `jobId`, `name`, `completedDate` | authored |
|
|
59
|
+
| Variation | `VariationNote` | `accountId`, `jobId`, `variationNumber`, `description`, `totalPaymentDue`, `status` | authored |
|
|
60
|
+
| Job cost | `JobCost` | `accountId`, `costType` | JobLogic-exact |
|
|
61
|
+
| Contact | `Contact` | `accountId`, `contactId`, `name` | JobLogic-exact |
|
|
62
|
+
| PO line | `PurchaseOrderLine` | `accountId`, `poNumber`, `lineId`, `description`, `quantity`, `pricePerUnit` | JobLogic-exact |
|
|
63
|
+
| Invoice line | `InvoiceLine` | `accountId`, `invoiceId`, `lineId`, `description`, `quantity`, `amount` | authored |
|
|
64
|
+
| Invoice payment | `InvoicePayment` | `accountId`, `invoiceId`, `paymentId`, `amount`, `date`, `paymentType` | JobLogic-exact |
|
|
65
|
+
| Credit | `Credit` | `accountId`, `creditId`, `amount`, `date` | authored |
|
|
66
|
+
|
|
67
|
+
`JobCost.costType` is one of `labour`, `material`, `travel`, `mileage`, `expense`,
|
|
68
|
+
`subcontractor`, `scheduleOfRates` — the JobLogic cost-line taxonomy. A logged labour day (the
|
|
69
|
+
old check-in) is a `JobCost` with `costType:'labour'`. `JobCost.priceCalculationType` is `0`
|
|
70
|
+
(Non-Chargeable), `1` (Calculated Price), or `2` (Fixed Price), JobLogic's enum.
|
|
71
|
+
|
|
72
|
+
`QuoteLine` is one priced row of the `Quote` contract schedule — the line a `Valuation` measures
|
|
73
|
+
percent-complete against. It is **not** a `JobCost`: the quote line is the priced contract value,
|
|
74
|
+
the job cost is the incurred cost. Per-line percent-complete a valuation records is carried
|
|
75
|
+
valuation state, not a property of the line or the edge.
|
|
76
|
+
|
|
77
|
+
## Additional labels on a base node
|
|
78
|
+
|
|
79
|
+
`Engineer` is an additional label on the field engineer's `:Person` (`accountId`, `engineerId`,
|
|
80
|
+
`name`, `engagement` (employee/cis), `dayRatePence`, `showCisDeduction`, `invoiceEmail`); there
|
|
81
|
+
is no standalone `:Engineer`. `Supplier` is an additional label on a supplier's `:Organization`
|
|
82
|
+
(`accountId`, `supplierId`, `accountNumber`); there is no standalone `:Supplier`. Both are set
|
|
83
|
+
via `memory-update`, mirroring how the field worker was modelled before the JobLogic adoption.
|
|
37
84
|
|
|
38
85
|
---
|
|
39
86
|
|
|
@@ -42,55 +89,103 @@ A field worker's time and pay is the `:Worker`/`:CheckIn` model. `:Worker` is an
|
|
|
42
89
|
MERGE keys per label:
|
|
43
90
|
|
|
44
91
|
- `:Job` — `(accountId, jobId)`
|
|
92
|
+
- `:Customer` — `(accountId, customerId)`
|
|
93
|
+
- `:Site` — `(accountId, siteId)`
|
|
94
|
+
- `:Asset` — `(accountId, assetId)`
|
|
95
|
+
- `:Visit` — `(accountId, visitId)`
|
|
96
|
+
- `:Quote` — `(accountId, ref)`
|
|
97
|
+
- `:InboundInvoice` — `(accountId, supplier, confirmationNumber)` — the received supplier invoice
|
|
98
|
+
- `:Invoice` — `(accountId, confirmationNumber)` — the base outbound customer invoice (schema-base.md)
|
|
99
|
+
- `:Part` — `(accountId, partId)`
|
|
100
|
+
- `:PurchaseOrder` — `(accountId, poNumber)`
|
|
101
|
+
- `:PpmContract` — `(accountId, contractId)`
|
|
102
|
+
- `:WhatsAppGroup` — `(accountId, groupId)`
|
|
103
|
+
- `:QuoteLine` — `(accountId, jobId, trade, description)` — child of `:Quote`, write-time MERGE
|
|
45
104
|
- `:Valuation` — `(accountId, jobId, valuationNumber)`
|
|
46
|
-
- `:
|
|
105
|
+
- `:Milestone` — `(accountId, jobId, name)` — child of `:Job`, write-time MERGE
|
|
47
106
|
- `:VariationNote` — `(accountId, jobId, variationNumber)`
|
|
48
|
-
- `:
|
|
49
|
-
- `:
|
|
50
|
-
- `:
|
|
51
|
-
- `:
|
|
52
|
-
- `:
|
|
53
|
-
- `:
|
|
107
|
+
- `:JobCost` — `(accountId, costId)` — write-time MERGE; `jobId` is set when the cost is job-scoped, omitted for a worker-day labour roll-up
|
|
108
|
+
- `:Contact` — `(accountId, contactId)` — write-time MERGE
|
|
109
|
+
- `:PurchaseOrderLine` — `(accountId, poNumber, lineId)` — child of `:PurchaseOrder`
|
|
110
|
+
- `:InvoiceLine` — `(accountId, invoiceId, lineId)` — child of `:Invoice`
|
|
111
|
+
- `:InvoicePayment` — `(accountId, invoiceId, paymentId)` — child of `:Invoice`
|
|
112
|
+
- `:Credit` — `(accountId, creditId)` — child of `:Invoice`
|
|
113
|
+
- `:Engineer` — `(accountId, personId)` — additional label on `:Person`, set via `memory-update`
|
|
114
|
+
- `:Supplier` — `(accountId, organizationId)` — additional label on `:Organization`
|
|
54
115
|
|
|
55
116
|
---
|
|
56
117
|
|
|
57
118
|
## Relationship Patterns
|
|
58
119
|
|
|
59
120
|
```
|
|
121
|
+
(:Job)-[:FOR_CUSTOMER]->(:Customer)
|
|
122
|
+
(:Customer)-[:HAS_SITE]->(:Site)
|
|
123
|
+
(:Job)-[:AT_SITE]->(:Site)
|
|
124
|
+
(:Site)-[:HAS_ASSET]->(:Asset)
|
|
125
|
+
(:Job)-[:HAS_VISIT]->(:Visit)
|
|
126
|
+
(:Visit)-[:ATTENDED_BY]->(:Engineer)
|
|
127
|
+
(:Job)-[:HAS_QUOTE]->(:Quote)
|
|
128
|
+
(:Quote)-[:HAS_LINE]->(:QuoteLine)
|
|
60
129
|
(:Job)-[:HAS_VALUATION]->(:Valuation)
|
|
61
|
-
(:
|
|
62
|
-
(:Job)-[:HAS_QUOTE]->(:QuoteDocument)
|
|
63
|
-
(:QuoteDocument)-[:HAS_LINE_ITEM]->(:LineItem)
|
|
64
|
-
(:Valuation)-[:VALUES]->(:LineItem)
|
|
130
|
+
(:Valuation)-[:VALUES]->(:QuoteLine)
|
|
65
131
|
(:Job)-[:HAS_VARIATION]->(:VariationNote)
|
|
66
|
-
(:Job)-[:
|
|
67
|
-
(:Job)-[:
|
|
68
|
-
(:
|
|
69
|
-
(:
|
|
70
|
-
(:
|
|
132
|
+
(:Job)-[:HAS_MILESTONE]->(:Milestone)
|
|
133
|
+
(:Job)-[:HAS_COST]->(:JobCost)
|
|
134
|
+
(:JobCost)-[:INCURRED_BY]->(:Engineer)
|
|
135
|
+
(:PurchaseOrder)-[:HAS_PO_LINE]->(:PurchaseOrderLine)
|
|
136
|
+
(:PurchaseOrderLine)-[:FOR_PART]->(:Part)
|
|
137
|
+
(:PurchaseOrder)-[:FROM_SUPPLIER]->(:Supplier)
|
|
138
|
+
(:InboundInvoice)-[:ON_PURCHASE_ORDER]->(:PurchaseOrder)
|
|
139
|
+
(:Invoice)-[:HAS_INVOICE_LINE]->(:InvoiceLine)
|
|
140
|
+
(:Invoice)-[:HAS_PAYMENT]->(:InvoicePayment)
|
|
141
|
+
(:Invoice)-[:HAS_CREDIT]->(:Credit)
|
|
142
|
+
(:PpmContract)-[:FOR_CUSTOMER]->(:Customer)
|
|
143
|
+
(:PpmContract)-[:COVERS_SITE]->(:Site)
|
|
144
|
+
(:Contact)-[:CONTACT_FOR]->(:Customer)
|
|
71
145
|
(:WhatsAppGroup)-[:MAPPED_TO]->(:Job)
|
|
72
146
|
```
|
|
73
147
|
|
|
74
|
-
Every `:Job` is the
|
|
148
|
+
Every `:Job` is the hub for its visits, quotes, valuations, variations, milestones, and costs,
|
|
149
|
+
satisfying the ≥1-adjacency write-gate doctrine. Quote lines are reached from the job through
|
|
150
|
+
the quote — `(:Job)-[:HAS_QUOTE]->(:Quote)-[:HAS_LINE]->(:QuoteLine)` — and each valuation links
|
|
151
|
+
the lines it measures with `(:Valuation)-[:VALUES]->(:QuoteLine)`. A job links to its customer
|
|
152
|
+
and site; an asset hangs off the site it lives at. Costs link to the engineer who incurred them.
|
|
153
|
+
Procurement is a `:PurchaseOrder` of `:PurchaseOrderLine`s for `:Part`s from a `:Supplier`; the
|
|
154
|
+
received supplier invoice is an `:InboundInvoice` on that PO. A `:PpmContract` is a
|
|
155
|
+
planned-maintenance agreement for a customer/site, distinct from a reactive `:Job`.
|
|
75
156
|
|
|
76
157
|
---
|
|
77
158
|
|
|
78
159
|
## Filesystem ↔ graph (base template)
|
|
79
160
|
|
|
80
|
-
The graph is
|
|
161
|
+
The graph is the canonical ontology; the operator's job folder is a conforming projection of it.
|
|
162
|
+
Every node corresponds to a filesystem artefact, and the edges follow the folder containment.
|
|
163
|
+
This mapping is the **base template** — the default a standard field-service job folder projects
|
|
164
|
+
into. It is shipped-generic; the folder names below are the common default, not any operator's
|
|
165
|
+
data. On any divergence, the graph is canonical.
|
|
81
166
|
|
|
82
167
|
A standard job folder, `{jobId} - {name}, {address} ({client})/`, projects as:
|
|
83
168
|
|
|
84
169
|
| Folder / artefact | Node | Edge from the job |
|
|
85
170
|
|---|---|---|
|
|
86
|
-
| the job folder itself | `:Job` | — (the hub); `(:Job)-[:
|
|
87
|
-
| `Quotations/` — the client quote
|
|
88
|
-
| `Finances/Valuations/` — one interim valuation per cycle | `:Valuation`; each measures the priced lines | `(:Job)-[:HAS_VALUATION]->(:Valuation)-[:VALUES]->(:
|
|
171
|
+
| the job folder itself | `:Job` | — (the hub); `(:Job)-[:FOR_CUSTOMER]->(:Customer)`, `(:Job)-[:AT_SITE]->(:Site)` |
|
|
172
|
+
| `Quotations/` — the client quote and its priced schedule | `:Quote`; its priced rows → `:QuoteLine` | `(:Job)-[:HAS_QUOTE]->(:Quote)-[:HAS_LINE]->(:QuoteLine)` |
|
|
173
|
+
| `Finances/Valuations/` — one interim valuation per cycle | `:Valuation`; each measures the priced lines | `(:Job)-[:HAS_VALUATION]->(:Valuation)-[:VALUES]->(:QuoteLine)` |
|
|
89
174
|
| the variations register | `:VariationNote` | `(:Job)-[:HAS_VARIATION]->(:VariationNote)` |
|
|
90
|
-
| `
|
|
91
|
-
| `
|
|
92
|
-
| `
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
175
|
+
| `Costs/` — labour days, materials, travel, mileage, expenses, subcontractor | `:JobCost` (by `costType`) | `(:Job)-[:HAS_COST]->(:JobCost)-[:INCURRED_BY]->(:Engineer)` |
|
|
176
|
+
| `Visits/` — attendance records | `:Visit` | `(:Job)-[:HAS_VISIT]->(:Visit)-[:ATTENDED_BY]->(:Engineer)` |
|
|
177
|
+
| `Suppliers/<Supplier>/{Quotes,POs,Invoices}` | `:Organization:Supplier`; POs → `:PurchaseOrder`+`:PurchaseOrderLine`; received invoices → `:InboundInvoice` | `(:PurchaseOrder)-[:FROM_SUPPLIER]->(:Supplier)`, `(:InboundInvoice)-[:ON_PURCHASE_ORDER]->(:PurchaseOrder)` |
|
|
178
|
+
| `Assets/` — serviced plant on the site | `:Asset` | `(:Site)-[:HAS_ASSET]->(:Asset)` |
|
|
179
|
+
| `Drawings/`, `Health & Safety/`, `Emails/`, `Snagging/`, `Admin/` | ingested documents (`:KnowledgeDocument` + `:Section`) | linked to the `:Job` |
|
|
180
|
+
|
|
181
|
+
A contractor who keeps the whole job in one master workbook holds the same model in sheets
|
|
182
|
+
rather than folders: a cover/calculation sheet is the priced schedule (`:Quote` + `:QuoteLine`s),
|
|
183
|
+
one sheet per valuation cycle is a `:Valuation`, a variations sheet is the `:VariationNote`
|
|
184
|
+
register, a costs sheet is the `:JobCost` lines, and per-supplier sheets are the procurement
|
|
185
|
+
packages. Folder and workbook are two views of one job; both project into this same graph.
|
|
186
|
+
|
|
187
|
+
Operators vary this template — they rename folders, add trades, restructure their workbook. This
|
|
188
|
+
template is the shipped-generic default the agent projects against; the graph follows this one
|
|
189
|
+
canonical ontology, not a per-operator schema. Where a real folder does not fit the default, the
|
|
190
|
+
agent maps it to the nearest canonical node rather than inventing a node or edge type absent from
|
|
191
|
+
this reference.
|
|
@@ -1,36 +1,34 @@
|
|
|
1
1
|
# Schema Reference — Trades
|
|
2
2
|
|
|
3
|
-
Vertical schema for `businessType: "trades"` — home services
|
|
3
|
+
Vertical schema for `businessType: "trades"` — home services and tradespeople (plumber,
|
|
4
|
+
electrician, builder, decorator). Trades and construction share the **one canonical SiteDesk
|
|
5
|
+
service-delivery ontology** authored from JobLogic (see `schema-construction.md` for the full
|
|
6
|
+
label set, properties, idempotency keys, relationships, and the filesystem↔graph template).
|
|
7
|
+
There are no trades-specific labels that diverge from the canonical model.
|
|
4
8
|
|
|
5
|
-
This reference extends the base schema. All base node types (Person, Organization, Order, Event,
|
|
9
|
+
This reference extends the base schema. All base node types (Person, Organization, Order, Event,
|
|
10
|
+
Invoice, Service, etc.) remain valid. Load `schema-base.md` first.
|
|
6
11
|
|
|
7
12
|
When loading this reference, confirm: "Using schema-base + schema-trades".
|
|
8
13
|
|
|
9
14
|
---
|
|
10
15
|
|
|
11
|
-
##
|
|
16
|
+
## Canonical labels for the trades case
|
|
12
17
|
|
|
13
|
-
|
|
14
|
-
|--------|-------------|-----------------|---------------------|
|
|
15
|
-
| Quote | `Quote` | `schema:Order` + `cdm:Opportunity` | `accountId`, `quoteNumber`, `customer` (id), `lineItems`, `validUntil`, `totalPrice` |
|
|
16
|
-
| SiteVisit | `SiteVisit` | `schema:Event` (subtype) | `accountId`, `address` (id), `engineer` (id), `startDate`, `purpose` |
|
|
17
|
-
| Inspection | `Inspection` | `cdm:Case` (subtype) | `accountId`, `address` (id), `findings`, `recommendations`, `photos` |
|
|
18
|
-
| Certification | `Certification` | `schema:DigitalDocument` | `accountId`, `type` (gas safe, NICEIC, etc.), `issuedDate`, `expiryDate` |
|
|
19
|
-
| Material | `Material` | `schema:Product` | `accountId`, `name`, `sku`, `unitCost`, `supplier` (id) |
|
|
18
|
+
A tradesperson's work maps onto the same canonical labels as a contractor's:
|
|
20
19
|
|
|
21
|
-
|
|
20
|
+
| Trades concept | Canonical label | Notes |
|
|
21
|
+
|----------------|-----------------|-------|
|
|
22
|
+
| The job / call-out | Job | `jobType` distinguishes Call out / Installation / Maintenance / Reactive |
|
|
23
|
+
| Customer and the work address | Customer, Site | site is the work location, distinct from the customer |
|
|
24
|
+
| An attendance / site visit | Visit | the lifecycle attendance record on a job (was the homegrown SiteVisit) |
|
|
25
|
+
| The estimate / quote | Quote, QuoteLine | priced estimate and its lines |
|
|
26
|
+
| Parts and materials used | Part, JobCost (costType material) | catalogue part vs the incurred material cost on a job |
|
|
27
|
+
| Serviced equipment on site | Asset | boiler, AC unit, alarm panel, etc. |
|
|
28
|
+
| A planned-maintenance agreement | PpmContract | recurring service contract, distinct from a reactive Job |
|
|
22
29
|
|
|
23
|
-
|
|
30
|
+
Trade certifications (Gas Safe, NICEIC, Part P) a person holds are recorded as a credential on
|
|
31
|
+
that person's `:Person` node via the base credential model, not as a separate construction label.
|
|
32
|
+
Inspection findings are recorded as notes/documents on the `:Visit` or `:Asset` they concern.
|
|
24
33
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
## Relationship Patterns
|
|
28
|
-
|
|
29
|
-
```
|
|
30
|
-
(:Order)-[:REQUIRES_VISIT]->(:SiteVisit)
|
|
31
|
-
(:Order)-[:USES_MATERIAL]->(:Material)
|
|
32
|
-
(:SiteVisit)-[:AT_ADDRESS]->(:PostalAddress)
|
|
33
|
-
(:Certification)-[:HELD_BY]->(:Person)
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
The `(:Certification)-[:HELD_BY]->(:Person)` relationship tracks which staff member holds a trade certification (e.g., Gas Safe, NICEIC, Part P).
|
|
34
|
+
See `schema-construction.md` for the authoritative definition of every label above.
|
|
@@ -22,6 +22,22 @@ provision_account_dir() {
|
|
|
22
22
|
|
|
23
23
|
mkdir -p "$ACCOUNT_DIR/agents/admin" "$ACCOUNT_DIR/.claude" "$ACCOUNT_DIR/specialists/.claude-plugin" "$ACCOUNT_DIR/specialists/agents"
|
|
24
24
|
|
|
25
|
+
# --- Account filesystem schema seed (idempotent) ---------------------------
|
|
26
|
+
# Operator-data buckets (entity-anchored, flat) + tool-owned dirs. agents/ and
|
|
27
|
+
# specialists/ are created above. The seeded SCHEMA.md is the single source of
|
|
28
|
+
# the allowed top-level set, parsed at runtime by the fs-schema write guard.
|
|
29
|
+
local _seed_dirs=(projects contacts documents url-get output generated extracted uploads)
|
|
30
|
+
local _d _seeded=0
|
|
31
|
+
for _d in "${_seed_dirs[@]}"; do
|
|
32
|
+
[ -d "$ACCOUNT_DIR/$_d" ] || { mkdir -p "$ACCOUNT_DIR/$_d" && _seeded=$((_seeded+1)); }
|
|
33
|
+
done
|
|
34
|
+
if [ -f "$TEMPLATES_DIR/account-schema/SCHEMA.md" ]; then
|
|
35
|
+
cp "$TEMPLATES_DIR/account-schema/SCHEMA.md" "$ACCOUNT_DIR/SCHEMA.md"
|
|
36
|
+
else
|
|
37
|
+
echo " [acct-schema] WARNING: template missing at $TEMPLATES_DIR/account-schema/SCHEMA.md — SCHEMA.md not seeded" >&2
|
|
38
|
+
fi
|
|
39
|
+
echo " [acct-schema] seeded dirs=$_seeded"
|
|
40
|
+
|
|
25
41
|
# Claude Code discovers project-level .claude/ relative to the nearest .git
|
|
26
42
|
# root. Without a .git in the account dir it traverses up to ~/maxy/.git and
|
|
27
43
|
# misses accountDir/.claude/. Initialise a repo so the account dir IS the root.
|
|
@@ -42,19 +58,22 @@ provision_account_dir() {
|
|
|
42
58
|
{
|
|
43
59
|
"matcher": "Write",
|
|
44
60
|
"hooks": [
|
|
45
|
-
{ "type": "command", "command": "bash $HOOKS_PATH/archive-ingest-surface-gate.sh" }
|
|
61
|
+
{ "type": "command", "command": "bash $HOOKS_PATH/archive-ingest-surface-gate.sh" },
|
|
62
|
+
{ "type": "command", "command": "bash $HOOKS_PATH/fs-schema-guard.sh" }
|
|
46
63
|
]
|
|
47
64
|
},
|
|
48
65
|
{
|
|
49
66
|
"matcher": "Edit",
|
|
50
67
|
"hooks": [
|
|
51
|
-
{ "type": "command", "command": "bash $HOOKS_PATH/archive-ingest-surface-gate.sh" }
|
|
68
|
+
{ "type": "command", "command": "bash $HOOKS_PATH/archive-ingest-surface-gate.sh" },
|
|
69
|
+
{ "type": "command", "command": "bash $HOOKS_PATH/fs-schema-guard.sh" }
|
|
52
70
|
]
|
|
53
71
|
},
|
|
54
72
|
{
|
|
55
73
|
"matcher": "NotebookEdit",
|
|
56
74
|
"hooks": [
|
|
57
|
-
{ "type": "command", "command": "bash $HOOKS_PATH/archive-ingest-surface-gate.sh" }
|
|
75
|
+
{ "type": "command", "command": "bash $HOOKS_PATH/archive-ingest-surface-gate.sh" },
|
|
76
|
+
{ "type": "command", "command": "bash $HOOKS_PATH/fs-schema-guard.sh" }
|
|
58
77
|
]
|
|
59
78
|
},
|
|
60
79
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonical-tool-names.generated.d.ts","sourceRoot":"","sources":["../src/canonical-tool-names.generated.ts"],"names":[],"mappings":"AAQA,+EAA+E;AAC/E,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,
|
|
1
|
+
{"version":3,"file":"canonical-tool-names.generated.d.ts","sourceRoot":"","sources":["../src/canonical-tool-names.generated.ts"],"names":[],"mappings":"AAQA,+EAA+E;AAC/E,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAmB7C,CAAA;AAED,gEAAgE;AAChE,eAAO,MAAM,yBAAyB,EAAE,SAAS,MAAM,EAkPtD,CAAA"}
|
package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js
CHANGED
|
@@ -14,6 +14,7 @@ export const MAXY_MCP_PLUGINS = [
|
|
|
14
14
|
"email",
|
|
15
15
|
"graph",
|
|
16
16
|
"graph-viewer",
|
|
17
|
+
"joblogic",
|
|
17
18
|
"memory",
|
|
18
19
|
"outlook",
|
|
19
20
|
"quickbooks",
|
|
@@ -109,6 +110,51 @@ export const CANONICAL_MAXY_TOOL_NAMES = [
|
|
|
109
110
|
"mcp__plugin_graph_graph__maxy-graph-get_neo4j_schema",
|
|
110
111
|
"mcp__plugin_graph_graph__maxy-graph-read_neo4j_cypher",
|
|
111
112
|
"mcp__plugin_graph_graph__maxy-graph-write_neo4j_cypher",
|
|
113
|
+
"mcp__plugin_joblogic_joblogic__joblogic-asset-create",
|
|
114
|
+
"mcp__plugin_joblogic_joblogic__joblogic-asset-get",
|
|
115
|
+
"mcp__plugin_joblogic_joblogic__joblogic-asset-list",
|
|
116
|
+
"mcp__plugin_joblogic_joblogic__joblogic-asset-update",
|
|
117
|
+
"mcp__plugin_joblogic_joblogic__joblogic-attachment-url-generate",
|
|
118
|
+
"mcp__plugin_joblogic_joblogic__joblogic-connection-status",
|
|
119
|
+
"mcp__plugin_joblogic_joblogic__joblogic-credentials-set",
|
|
120
|
+
"mcp__plugin_joblogic_joblogic__joblogic-customer-create",
|
|
121
|
+
"mcp__plugin_joblogic_joblogic__joblogic-customer-get",
|
|
122
|
+
"mcp__plugin_joblogic_joblogic__joblogic-customer-list",
|
|
123
|
+
"mcp__plugin_joblogic_joblogic__joblogic-customer-update",
|
|
124
|
+
"mcp__plugin_joblogic_joblogic__joblogic-engineer-get",
|
|
125
|
+
"mcp__plugin_joblogic_joblogic__joblogic-engineer-list",
|
|
126
|
+
"mcp__plugin_joblogic_joblogic__joblogic-engineer-map-list",
|
|
127
|
+
"mcp__plugin_joblogic_joblogic__joblogic-engineer-map-set",
|
|
128
|
+
"mcp__plugin_joblogic_joblogic__joblogic-invoice-create",
|
|
129
|
+
"mcp__plugin_joblogic_joblogic__joblogic-invoice-get",
|
|
130
|
+
"mcp__plugin_joblogic_joblogic__joblogic-invoice-list",
|
|
131
|
+
"mcp__plugin_joblogic_joblogic__joblogic-invoice-payment-create",
|
|
132
|
+
"mcp__plugin_joblogic_joblogic__joblogic-job-approve",
|
|
133
|
+
"mcp__plugin_joblogic_joblogic__joblogic-job-create",
|
|
134
|
+
"mcp__plugin_joblogic_joblogic__joblogic-job-get",
|
|
135
|
+
"mcp__plugin_joblogic_joblogic__joblogic-job-list",
|
|
136
|
+
"mcp__plugin_joblogic_joblogic__joblogic-job-set-status",
|
|
137
|
+
"mcp__plugin_joblogic_joblogic__joblogic-job-update",
|
|
138
|
+
"mcp__plugin_joblogic_joblogic__joblogic-jobcost-create",
|
|
139
|
+
"mcp__plugin_joblogic_joblogic__joblogic-jobcost-update",
|
|
140
|
+
"mcp__plugin_joblogic_joblogic__joblogic-note-create",
|
|
141
|
+
"mcp__plugin_joblogic_joblogic__joblogic-quote-approve",
|
|
142
|
+
"mcp__plugin_joblogic_joblogic__joblogic-quote-create",
|
|
143
|
+
"mcp__plugin_joblogic_joblogic__joblogic-quote-get",
|
|
144
|
+
"mcp__plugin_joblogic_joblogic__joblogic-quote-list",
|
|
145
|
+
"mcp__plugin_joblogic_joblogic__joblogic-site-create",
|
|
146
|
+
"mcp__plugin_joblogic_joblogic__joblogic-site-get",
|
|
147
|
+
"mcp__plugin_joblogic_joblogic__joblogic-site-list",
|
|
148
|
+
"mcp__plugin_joblogic_joblogic__joblogic-site-update",
|
|
149
|
+
"mcp__plugin_joblogic_joblogic__joblogic-timesheet-create",
|
|
150
|
+
"mcp__plugin_joblogic_joblogic__joblogic-timesheet-list",
|
|
151
|
+
"mcp__plugin_joblogic_joblogic__joblogic-timesheet-update",
|
|
152
|
+
"mcp__plugin_joblogic_joblogic__joblogic-visit-cancel",
|
|
153
|
+
"mcp__plugin_joblogic_joblogic__joblogic-visit-create",
|
|
154
|
+
"mcp__plugin_joblogic_joblogic__joblogic-visit-deploy",
|
|
155
|
+
"mcp__plugin_joblogic_joblogic__joblogic-visit-get",
|
|
156
|
+
"mcp__plugin_joblogic_joblogic__joblogic-visit-search-planner",
|
|
157
|
+
"mcp__plugin_joblogic_joblogic__joblogic-visit-update",
|
|
112
158
|
"mcp__plugin_memory_memory__conversation-archive-derive-insights",
|
|
113
159
|
"mcp__plugin_memory_memory__conversation-archive-enrich-rejection",
|
|
114
160
|
"mcp__plugin_memory_memory__conversation-archive-list-chunks",
|
package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonical-tool-names.generated.js","sourceRoot":"","sources":["../src/canonical-tool-names.generated.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"canonical-tool-names.generated.js","sourceRoot":"","sources":["../src/canonical-tool-names.generated.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAa3B,OAAO,
|
|
1
|
+
{"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAa3B,OAAO,EAmBL,KAAK,SAAS,EAEf,MAAM,kBAAkB,CAAA;AAuBzB,OAAO,KAAK,EAAE,SAAS,EAAyB,MAAM,iBAAiB,CAAA;AAEvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAgFhE,eAAO,MAAM,kBAAkB,QAA2B,CAAA;AAS1D,eAAO,MAAM,4BAA4B,QAAS,CAAA;AAIlD,MAAM,WAAW,QAAS,SAAQ,IAAI,CAAC,SAAS,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC7E;;qEAEiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,SAAS,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,MAAM,CAAA;IACzB,kBAAkB,EAAE,WAAW,CAAA;IAC/B,eAAe,EAAE,aAAa,CAAA;IAC9B;kFAC8E;IAC9E,cAAc,EAAE,cAAc,CAAA;IAC9B;;gFAE4E;IAC5E,cAAc,EAAE,cAAc,CAAA;IAC9B;;;6BAGyB;IACzB,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;IACzC;;gFAE4E;IAC5E,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAgHD,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAEpG;AAgBD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1D;AAUD,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAMvE;AAMD,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,GACtB,MAAM,CAER;AAkCD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAe5F;AAwJD;;;kEAGkE;AAClE,MAAM,MAAM,OAAO,GAAG,IAAI,GAAG;IAC3B,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACpD;;;+CAG2C;IAC3C,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAChD,CAAA;AAmBD,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAk+EpD"}
|