toga-ai 1.0.161 → 1.0.162
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/knowledge/1.0/apps/library/INDEX.md +1 -0
- package/knowledge/1.0/apps/library/features/diagnostic-dialog-view-recommended-services.md +49 -0
- package/knowledge/1.0/apps/toga/INDEX.md +4 -0
- package/knowledge/INDEX.md +2 -1
- package/knowledge/clients/office-depot/INDEX.md +1 -0
- package/knowledge/clients/office-depot/features/togarefresh2026-linkbuilder-routing.md +49 -0
- package/knowledge/registry.json +13 -2
- package/package.json +1 -1
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
| Doc | Summary | Files |
|
|
4
4
|
|-----|---------|-------|
|
|
5
5
|
| [Library (1.0 Framework) Architecture](architecture.md) | `library` is the shared library repository for **all 1.0 (legacy) applications** — the `App_` framework. | library/_.php, library/app/, library/browser/ |
|
|
6
|
+
| [Diagnostic Dialog — View Recommended Services Routing](features/diagnostic-dialog-view-recommended-services.md) | `App_Model_Toga_Diagnostic::initializeDiagnosticDialog()` renders the device modal used across all TOGa service request views. | library/app/model/toga/diagnostic.php |
|
|
6
7
|
| [Elite Freshservice Sync (library)](features/elite-freshservice-sync.md) | `App_Api_Toga2` in `library/app/api/toga2.php` orchestrates bidirectional sync between TOGA 2 and TOGaDesk. | library/app/api/toga2.php |
|
|
7
8
|
| [Branded HTML Email Templates (App_Email_Template)](features/email-templates.md) | `App_Email_Template` (`app/email/template.php`) is the base class for branded HTML emails in the 1.0 (`App_`) framework. | library/app/email/template.php, library/app/email/agilant.php |
|
|
8
9
|
| [NetSuite SuiteQL/REST API Reference](features/netsuite-suiteql-api-reference.md) | General working reference for the Agilant NetSuite integration: how to authenticate, how SuiteQL behaves, and the confirmed schema of the tables/columns/codes w | library/app/api/netsuite/rest.php, library/ssl/netsuite_ec_key.pem |
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Diagnostic Dialog — View Recommended Services Routing
|
|
3
|
+
framework: "1.0"
|
|
4
|
+
repo: library
|
|
5
|
+
project: Library
|
|
6
|
+
client: shared
|
|
7
|
+
type: feature
|
|
8
|
+
status: active
|
|
9
|
+
updated: 2026-06-23
|
|
10
|
+
owners: [snaredla]
|
|
11
|
+
files:
|
|
12
|
+
- library/app/model/toga/diagnostic.php
|
|
13
|
+
related:
|
|
14
|
+
- ../../../clients/office-depot/features/togarefresh2026-linkbuilder-routing.md
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Summary
|
|
18
|
+
`App_Model_Toga_Diagnostic::initializeDiagnosticDialog()` renders the device modal
|
|
19
|
+
used across all TOGa service request views. It includes a "View Recommended Services"
|
|
20
|
+
button whose URL depends on whether the store is a TOGaRefresh 2026 store and whether
|
|
21
|
+
the diagnostic passed or failed.
|
|
22
|
+
|
|
23
|
+
## How it works
|
|
24
|
+
1. Checks `$_SESSION['isTogaRefresh2023']` or `$_SESSION['isTogaRefresh2026']` to
|
|
25
|
+
determine if this is a refresh store.
|
|
26
|
+
2. For refresh stores, casts `$serviceRequestId` to `(int)` then queries `Diagnostics`
|
|
27
|
+
for the latest `pass` value for the service request.
|
|
28
|
+
3. Routes:
|
|
29
|
+
- **Diagnostic pass** (`pass >= 1`) → `?content=togarefresh2026_servicerequests_techsupport&serviceRequestId=...`
|
|
30
|
+
- **Diagnostic fail / no diagnostic** (`pass < 1`) → `?content=togarefresh2026_servicerequests_serviceselection&jobJacketId=1&showServices=195,101899&serviceRequestId=...`
|
|
31
|
+
4. For non-refresh stores, falls back to `App_Model_ServiceRequest::linkBuilder()`.
|
|
32
|
+
|
|
33
|
+
## Data model
|
|
34
|
+
- Table: `Diagnostics` (db_toga)
|
|
35
|
+
- Field read: `pass` (TINYINT boolean — 1 = passed, 0 = failed)
|
|
36
|
+
- Query: latest record by `id DESC LIMIT 1` for the given `serviceRequestId`
|
|
37
|
+
|
|
38
|
+
## Gotchas / known issues
|
|
39
|
+
- `$serviceRequestId` is cast to `(int)` before SQL interpolation — do not remove this cast (SQL injection prevention).
|
|
40
|
+
- If no diagnostic record exists, `$diagnosticPass` defaults to `0` (fail path) — shows service selection with `showServices=195,101899`.
|
|
41
|
+
- The same pass/fail routing logic exists in `toga/app/togarefresh2026/servicerequests/view.php` (lines 2358–2381) — keep both in sync.
|
|
42
|
+
- `isTogaRefresh2023` is kept alongside `isTogaRefresh2026` for backward compatibility — do not remove it.
|
|
43
|
+
- `$_SESSION['isTogaRefresh2026']` is set in `toga/_/app/frameworkindex.php` and `toga/app/home/action.php` at login time.
|
|
44
|
+
|
|
45
|
+
## Related docs
|
|
46
|
+
- `clients/office-depot/features/togarefresh2026-linkbuilder-routing.md`
|
|
47
|
+
|
|
48
|
+
## Change history
|
|
49
|
+
- 2026-06-23 — Initial doc. Diagnostic modal now routes pass→techsupport, fail→serviceselection with showServices=195,101899. (snaredla)
|
package/knowledge/INDEX.md
CHANGED
|
@@ -4,13 +4,14 @@ _Auto-generated by `knowledge.js index`. Do not hand-edit._
|
|
|
4
4
|
|
|
5
5
|
## 1.0 framework
|
|
6
6
|
|
|
7
|
-
- **library** (Library) _(framework core)_ —
|
|
7
|
+
- **library** (Library) _(framework core)_ — 7 doc(s) → [1.0/apps/library/INDEX.md](1.0/apps/library/INDEX.md)
|
|
8
8
|
- **worker** (Worker) — 10 doc(s) → [1.0/apps/worker/INDEX.md](1.0/apps/worker/INDEX.md)
|
|
9
9
|
- **togadesk** (TOGa Desk) — 7 doc(s) → [1.0/apps/togadesk/INDEX.md](1.0/apps/togadesk/INDEX.md)
|
|
10
10
|
- **togaview** (TOGa View) — 6 doc(s) → [1.0/apps/togaview/INDEX.md](1.0/apps/togaview/INDEX.md)
|
|
11
11
|
- **webhook** (Webhook) — 1 doc(s) → [1.0/apps/webhook/INDEX.md](1.0/apps/webhook/INDEX.md)
|
|
12
12
|
- **walmarttechservices** (Walmart Tech Services) — 1 doc(s) → [1.0/apps/walmarttechservices/INDEX.md](1.0/apps/walmarttechservices/INDEX.md)
|
|
13
13
|
- **test** (Test) — 11 doc(s) → [1.0/apps/test/INDEX.md](1.0/apps/test/INDEX.md)
|
|
14
|
+
- **toga** (TOGa) — 1 doc(s) → [1.0/apps/toga/INDEX.md](1.0/apps/toga/INDEX.md)
|
|
14
15
|
|
|
15
16
|
## 2.0 framework
|
|
16
17
|
|
|
@@ -3,4 +3,5 @@
|
|
|
3
3
|
| Doc | Framework | Summary | Files |
|
|
4
4
|
|-----|-----------|---------|-------|
|
|
5
5
|
| [ODP Tech Support Agent (Office Depot variant)](features/odp-tech-support.md) | 2.0 | ODP-specific customization of the shared TOGa Voice agent. | voice-to-voice/clients/odp/agent.py, voice-to-voice/clients/odp/agents/tech_support.py, voice-to-voice/clients/odp/prompts.py, voice-to-voice/clients/odp/config.yaml, voice-to-voice/clients/odp/.env.example |
|
|
6
|
+
| [TOGaRefresh 2026 — linkBuilderRefresh URL Routing (ODP)](features/togarefresh2026-linkbuilder-routing.md) | 1.0 | In the TOGaRefresh 2026 UI, any button that navigates to the service builder must use `App_Model_ServiceRequest::linkBuilderRefresh()` (→ `togarefresh2026_servi | toga/app/togarefresh2026/servicerequests/review.php, toga/app/togarefresh2026/customers/view.php, library/app/model/toga/diagnostic.php |
|
|
6
7
|
| [Office Depot](profile.md) | 2.0 | Office Depot is the first deployed tenant of the **TOGa Voice** (`voice-to-voice`) platform. | |
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: TOGaRefresh 2026 — linkBuilderRefresh URL Routing (ODP)
|
|
3
|
+
framework: "1.0"
|
|
4
|
+
repo: toga
|
|
5
|
+
project: TOGa
|
|
6
|
+
client: office-depot
|
|
7
|
+
type: client-feature
|
|
8
|
+
status: active
|
|
9
|
+
updated: 2026-06-23
|
|
10
|
+
owners: [snaredla]
|
|
11
|
+
files:
|
|
12
|
+
- toga/app/togarefresh2026/servicerequests/review.php
|
|
13
|
+
- toga/app/togarefresh2026/customers/view.php
|
|
14
|
+
- library/app/model/toga/diagnostic.php
|
|
15
|
+
related:
|
|
16
|
+
- ../profile.md
|
|
17
|
+
- ../../../1.0/apps/library/features/diagnostic-dialog-view-recommended-services.md
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Summary
|
|
21
|
+
In the TOGaRefresh 2026 UI, any button that navigates to the service builder must use
|
|
22
|
+
`App_Model_ServiceRequest::linkBuilderRefresh()` (→ `togarefresh2026_servicerequests_serviceselection`)
|
|
23
|
+
instead of the legacy `linkBuilder()` (→ `servicerequests_builder`).
|
|
24
|
+
|
|
25
|
+
## Key files / entry points
|
|
26
|
+
- `App_Model_ServiceRequest::BUILDER` = `'servicerequests_builder'` (legacy)
|
|
27
|
+
- `App_Model_ServiceRequest::BUILDERREFRESH` = `'togarefresh2026_servicerequests_serviceselection&jobJacketId=1'`
|
|
28
|
+
- Both constants defined in `library/app/model/servicerequest.php` lines 11–12.
|
|
29
|
+
|
|
30
|
+
## How it works
|
|
31
|
+
Files updated to use `linkBuilderRefresh`:
|
|
32
|
+
|
|
33
|
+
| File | Location | Context |
|
|
34
|
+
|------|----------|---------|
|
|
35
|
+
| `togarefresh2026/servicerequests/review.php` | line 217 | Quote submission POST URL for non-EXISTING job jackets |
|
|
36
|
+
| `togarefresh2026/customers/view.php` | line 64 | "Create Work Order For This Customer" button |
|
|
37
|
+
| `library/app/model/toga/diagnostic.php` | `initializeDiagnosticDialog()` | Device modal button — routes by diagnostic pass/fail (see library doc) |
|
|
38
|
+
|
|
39
|
+
## Gotchas / known issues
|
|
40
|
+
- The old `servicerequests/view.php` (legacy non-refresh view) intentionally keeps `linkBuilder()` — 2026 stores do not route through it.
|
|
41
|
+
- Do not change `App_Model_ServiceRequest::BUILDER` — legacy stores still depend on it.
|
|
42
|
+
- The diagnostic modal routing is pass/fail conditional — see `1.0/apps/library/features/diagnostic-dialog-view-recommended-services.md` for full details.
|
|
43
|
+
- `toga` app repo was not in registry.json before this session — it has been added (framework 1.0, role app, dependsOn library).
|
|
44
|
+
|
|
45
|
+
## Related docs
|
|
46
|
+
- `1.0/apps/library/features/diagnostic-dialog-view-recommended-services.md`
|
|
47
|
+
|
|
48
|
+
## Change history
|
|
49
|
+
- 2026-06-23 — Initial doc. All 2026 builder buttons now use linkBuilderRefresh; diagnostic modal uses pass/fail routing. toga added to registry.json. (snaredla)
|
package/knowledge/registry.json
CHANGED
|
@@ -158,6 +158,17 @@
|
|
|
158
158
|
"project": "TOGa Commerce",
|
|
159
159
|
"framework": "2.0",
|
|
160
160
|
"role": "app",
|
|
161
|
-
"dependsOn": [
|
|
161
|
+
"dependsOn": [
|
|
162
|
+
"api2"
|
|
163
|
+
]
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
"repo": "toga",
|
|
167
|
+
"project": "TOGa",
|
|
168
|
+
"framework": "1.0",
|
|
169
|
+
"role": "app",
|
|
170
|
+
"dependsOn": [
|
|
171
|
+
"library"
|
|
172
|
+
]
|
|
162
173
|
}
|
|
163
|
-
]
|
|
174
|
+
]
|
package/package.json
CHANGED