bddaf6cc6b
fix: sett PYTHONPATH=/app og kjør uvicorn fra riktig modul-sti
2026-06-10 10:19:04 +02:00
66e7d1eff8
fix: uvicorn --app-dir peker direkte på agents/core-logic/app.py
2026-06-10 10:13:59 +02:00
20dabd3d2b
fix: rett uvicorn-modul fra main:app til app:app
2026-06-10 10:13:45 +02:00
6981359223
CI6 post-mortem: legg til RUNBOOK.md og oppdater .env.example med MCP_SECRET
2026-06-10 07:55:30 +02:00
8013bd8b6f
CI6: fix _opax_headers() — bruk identity token (metadata server) istedet for access token for Cloud Run auth
2026-06-10 07:39:36 +02:00
3bb95c8af9
CI6: fjern RAG fra root_agent — blokkerer AFC/MCP FunctionTools (TODO: RAG som sub-agent når korpus er oppdatert)
2026-06-10 07:17:26 +02:00
54dd25a90e
fix(CI5): konverter DatetimeWithNanoseconds til str før _parse_ts
2026-06-10 06:11:11 +02:00
c8cc45318f
fix(CI6): robust datetime-parsing for Cloud Build REST tidsstempel
2026-06-10 05:31:49 +02:00
be2e3b4583
fix(CI5): bytt til google.auth REST-kall for regional Cloud Build
2026-06-10 04:57:54 +02:00
3af4cbb7cc
feat(opax-mcp): legg til CLOUD_BUILD_TRIGGER_ID i deploy env-vars
2026-06-10 04:33:31 +02:00
3fd3d30ac3
fix(CI4): bruk regional cloudbuild endpoint via client_options
2026-06-10 04:23:25 +02:00
3c69490a68
fix(CI3): bruk regional parent i ListBuildsRequest for us-central1
2026-06-10 04:14:48 +02:00
e4c79c999d
fix(CI3): filtrer get_build_status på CLOUD_BUILD_TRIGGER_ID
2026-06-10 04:07:36 +02:00
791a8e2b42
fix(CI3): bruk regional Cloud Build client i get_build_status
2026-06-10 04:00:43 +02:00
e5b4e2faa5
fix(CI3): bruk get_opax_tools() FunctionTools i stedet for MCPToolset
2026-06-10 03:49:38 +02:00
d2a93979a4
fix(CI3): bytt MCPToolset med FunctionTools for opax-mcp REST-kall
2026-06-10 03:48:38 +02:00
a095abd8bd
feat(CI3): koble opax-mcp toolset til Jason-agenten
2026-06-10 03:30:48 +02:00
be41574569
feat(CI3): legg til opax-mcp toolset i mcp_tools.py
2026-06-10 03:29:13 +02:00
e62a5c91cc
fix(CI1a): fjern ugyldig location-felt fra cloudbuild.yaml
2026-06-10 03:07:06 +02:00
b0fe48b8ad
fix(CI1a): pin Cloud Build region til us-central1
2026-06-10 03:04:07 +02:00
d530aeea6f
fix(CI1a): SHORT_SHA fallback til 'latest' ved manuell builds submit
2026-06-10 02:46:23 +02:00
290fab6ac5
feat(CI1a): OPAX-MCP server scaffold — push_static + get_build_status + deploy_service
2026-06-10 02:40:49 +02:00
749a107e9d
feat(OX1b+CG4): Embedded TUI i opax.html + token intelligence endepunkter
...
OX1b:
- opax.html: ny TUI-panel med xterm.js via /opax/tui-proxy WebSocket-bridge
- Jason-chat flyttes til primærpanel, TUI som sekundærfane
- Fullskjerm-toggle, kopier output, klar-knapp
CG4a:
- app.py: GET /billing/tokens/by-module — aggreger per module_name + caller_type
- app.py: GET /billing/tokens/estimate — prosjektestimator (snitt-tokens × faktor)
- Begge fallback til tomme lister ved BQ-feil (OQ-15 safe)
ROADMAP: OX1a ✅ , OX1b ✅ , CG4a ✅ — oppdatert NOW/NEXT
2026-06-10 01:17:53 +02:00
1c447c4d3a
feat(OX1a+ML-3b): Cloud Build live-widget i opax.html + /opax/build-status endepunkt + Gemma world.md
...
- app.py: ny GET /opax/build-status — poller Cloud Build API, returnerer siste build status/timing
- static/opax.html: ny Deploy-seksjon med live spinner → ✅ /❌ , poller hvert 10s under aktiv build
- docs/gemma/world.md: Gemma kontekstpakke opprettet — alt Gemma trenger å forstå Vauco fra dag 1
2026-06-10 01:11:09 +02:00
7686fc7623
feat(CG3e+CG4): utvidet token-logging — caller_type, module_name, session_id + CG4-fase i ROADMAP
...
- token_logger.py: nytt schema med caller_type (agent|cli|browser|cron|api), module_name (jason/opax, costguard, threadstone, cli/gemini-tui, billing_agent), session_id
- agent.py: agent_name → strukturert label (module_name + mode), caller_type satt til 'agent'
- ROADMAP.md: CG4 Token Intelligence-fase lagt til (CG4a–CG4d) under NEXT
2026-06-10 00:36:25 +02:00
fe923d9d17
feat(CG6): modular drag+collapse dashboard, anomalies/budget/history endpoints, fix missing DOM refs
2026-06-10 00:02:44 +02:00
fd6aa1f2aa
feat(CG5): add get_service_totals to BillingAgent + complete /billing/by-service in app.py
2026-06-09 23:45:08 +02:00
97f0ead1fb
feat(CG5): add /billing/by-service endpoint
2026-06-09 23:43:15 +02:00
62e742b9ba
feat(CG4): add recommendations & anomaly engine
2026-06-09 20:52:25 +00:00
33482aee2c
feat(CG3e): add llm_token_usage BigQuery logger + /billing/tokens/summary endpoint
2026-06-09 21:02:52 +02:00
60af0035b6
fix(agent): give Jason self-awareness of model, region, billing source & HITL limits
2026-06-04 21:10:08 +00:00
bcd3036bb5
docs: add Jason Vauger agent profile and update AGENTS.md
2026-06-01 06:26:40 +02:00
Chris Christiansen
5706b69ed8
fix: serve main.py with static files in Cloud Run container
2026-05-31 13:14:44 +00:00
Chris Christiansen
bceca94f8a
docs(session): log completion of phase 6
2026-05-30 21:11:15 +00:00
Chris Christiansen
8eb6edf23c
fix(docker): copy fra riktig source-path
2026-05-30 21:03:03 +00:00
Chris Christiansen
64fb0fc2b1
fix(deps): pin all dependencies
2026-05-30 20:44:46 +00:00
Chris Christiansen
7e0bf6f911
fix(deps): pin dependencies to last known good versions
2026-05-30 20:39:17 +00:00
Chris Christiansen
a98e3fcdbf
feat(iap): configure IAP for osvauco-agent
2026-05-30 19:44:04 +00:00
Chris Christiansen
772951ef01
feat: Cloud Billing API, FCM push, OAuth, AWS billing, historikk, eksport, PWA
2026-05-30 01:20:21 +00:00
Chris Christiansen
b8ac8dda9d
fix: move google-auth-oauthlib to Dockerfile.base and rebuild base image
2026-05-27 23:27:01 +00:00
Chris Christiansen
0062a46931
fix: add google-auth-oauthlib to base image
2026-05-27 23:17:44 +00:00
Chris Christiansen
a6c0c65ddb
fix: add google-auth-oauthlib to requirements
2026-05-27 23:08:05 +00:00
Chris Christiansen
28823f5fbb
fix: build from root, start main:app
2026-05-27 22:49:15 +00:00
Chris Christiansen
25ee2d495a
feat: opax-mcp modul-struktur, acceptance-test og preflight-check scripts
2026-05-26 13:36:59 +00:00
Chris Christiansen
05030edf61
fix: Set executable bit on shell and python scripts
...
Per the task in `docs/TODO.md`, this change runs `git update-index --chmod=+x` on all relevant `.sh` and `.py` files in the repository.
This prevents intermittent 'Permission denied' errors when scripts are run in CI/CD environments or after being edited via the GitHub web interface, which can strip file permissions.
2026-05-26 13:23:18 +00:00
Chris Christiansen
11845adae0
feat(ml2): feedback_loop, hypertuner, heavy_predictor
2026-05-26 12:40:27 +00:00
7585a485e0
fix(models): gemini-2.5-flash (light) + gemini-2.5-pro (heavy), LOCATION=global for modellkall
2026-05-26 01:37:28 +02:00
f711f7be74
fix: gemini-2.0-flash-001 for light mode, fang ValueError i /run authorize_mode
2026-05-26 01:30:01 +02:00
5e1bb4e7ab
refactor(mode): rename A/A+ → light/heavy gjennomgående + ML-spor i MASTERPLAN
2026-05-26 01:20:53 +02:00
2fc957f4c2
revert: sett agent.py default-modeller tilbake til gemini-2.0-flash
2026-05-25 21:18:50 +02:00
23377d2575
fix: bruk gemini-2.0-flash-001 som default modell (versjonert GA-navn)
2026-05-25 19:45:29 +02:00
e5270e8790
chore: commit modified infra, RAG and session log files
2026-05-25 12:50:52 +00:00
9cd43572b0
chore: add untracked RAG, infra and session files
2026-05-25 12:49:52 +00:00
68ac4fde35
fix(rag): correct corpus payload to vectorDbConfig.ragManagedDb; verify engine config actually switched before creating
...
- RagCorpus REST body uses vectorDbConfig.ragManagedDb (not ragManagedDbConfig)
- RagManagedDb has no tier field - empty object {} = serverless
- Add GET+verify step after PATCH to confirm spanner key is gone before proceeding
- Print actual engine config state so failures are immediately visible
2026-05-24 19:26:10 +02:00
db3807bff9
fix(rag): use ragManagedDbConfig.basic in corpus body; fix engine config PATCH with scaled→basic switch
...
The v1beta1 API uses ragManagedDbConfig (not vectorDbConfig) on the RagCorpus
resource itself. Omitting it causes the engine to default to Spanner. Also the
engine config PATCH must use {"ragManagedDbConfig":{"basic":{}}} with the
correct field name matching v1beta1 schema.
2026-05-24 19:23:30 +02:00
2838534296
fix(rag): always patch ragEngineConfig in us-central1; drop vectorDbConfig from corpus creation
...
Two root causes fixed:
1. ragEngineConfig is a project-level control-plane endpoint that only exists in
us-central1. Patching it against europe-west1 (or any other region) returns
'Invalid endpoint name'. We now always use us-central1 for the config PATCH
regardless of RAG_LOCATION.
2. Including vectorDbConfig.ragManagedDb in the corpus creation payload explicitly
requests Spanner mode, which is allowlist-restricted for new projects. Omitting
vectorDbConfig entirely lets the engine honour the project-level 'basic' config
and use serverless mode — the correct approach per Google docs."
2026-05-24 19:19:12 +02:00
a2790be421
fix: create corpus via REST API directly, bypassing SDK backend_config bug
...
SDK 1.153.1 always defaults to Spanner when backend_config is omitted,
and crashes when it's provided. Use REST POST directly with
vectorDbConfig.ragManagedDb set to force serverless.
2026-05-24 19:11:25 +02:00
2beb6a359d
fix: drop backend_config from create_corpus — rely on pre-flight PATCH alone
...
SDK 1.153.1 has a bug in set_backend_config where it calls .CopyFrom()
on RagManagedDb which is not a real protobuf message.
The project-level ragEngineConfig PATCH already sets basic tier,
so passing backend_config is unnecessary and breaks corpus creation.
2026-05-24 19:04:31 +02:00
46b3c52607
fix: RagManagedDb() takes no arguments in SDK 1.153.1
2026-05-24 19:02:43 +02:00
582967a994
fix: use vector_db=RagManagedDb(tier=1) — correct field names for SDK 1.153.1
...
RagVectorDbConfig takes vector_db= not rag_managed_db=.
The db type is RagManagedDb, not RagManagedDbConfig.
2026-05-24 18:58:00 +02:00
ad8597f434
fix: use tier=1 int instead of RagManagedDbConfig.Tier.BASIC enum
...
The Tier enum is not available in the installed SDK version.
Use integer value 1 (BASIC) directly instead.
2026-05-24 18:44:22 +02:00
814dd89ca6
fix: explicitly set serverless RAG backend + improve error handling
...
- Pass RagVectorDbConfig with RagManagedDbConfig basic tier explicitly
to avoid Spanner allowlist errors on new projects
- Add pre-flight ensure_serverless_engine_config() via REST PATCH
- Cleaner error messages with actionable hints
- Idempotent: skips creation if corpus already exists
2026-05-24 18:11:27 +02:00
d0512f5ced
chore: add base Docker image to speed up deploys
...
- Add agents/core-logic/Dockerfile.base with heavy deps pre-baked
- Update agents/core-logic/Dockerfile to build FROM base image
- Update cloudbuild.yaml with step to build/push base (manual only)
- Typical deploy time reduction: ~3 min → ~30 sec
2026-05-24 17:04:42 +02:00
1cba5166db
fix: ADK 1.x Runner pattern + gemini-3.5-flash for A+ reasoning
2026-05-24 16:44:04 +02:00
497509370e
feat: add A/A+ mode routing to agent.py (OPAX)
2026-05-24 16:34:34 +02:00
60c7aff04d
fix: remove backend_config — Serverless is default in us-central1
2026-05-24 16:15:32 +02:00
a5fd5f58e8
fix: switch RAG corpus to Serverless mode (RagManagedDb) in us-central1
2026-05-24 16:13:24 +02:00
09dcb4d1a2
feat: OPAX heavy mode + LLM-ruting oppdatert + RAG serverless fix\n\n- MASTERPLAN.md: ny LLM-RUTINGSSTRATEGI-seksjon med OPAX Heavy Mode\n- masterplan-summary.md: oppdatert med heavy mode-referanser\n- setup_corpus.py: fjernet backend_config (Serverless mode, ingen Spanner)\n- sesjon-logg: 2026-05-24_opax-heavy-mode-llm-ruting-rag.md
2026-05-24 14:07:26 +00:00
0248081b83
fix: agent.py — bruk riktig import-path for VertexAiRagRetrieval (ADK 1.x)
2026-05-24 15:12:08 +02:00
2681d85ef4
feat: enforce Norwegian (Bokmål) response language in agent system instruction
2026-05-24 06:24:21 +02:00
69eab2c113
docs: oppdater README, IAM-docs, legg til rag/memory/eval mapper og cost-guard
2026-05-23 20:54:05 +00:00
ffe4ec1c63
fix: await get_session and create_session (async ADK 1.x API)
2026-05-23 21:09:59 +02:00
4ef0683c7c
fix: use try/except to create session if get_session raises in ADK 1.x
2026-05-23 20:45:50 +02:00
7e1af38474
fix: auto-create session if not found in /run endpoint
2026-05-23 20:33:39 +02:00
1122af66d0
fix: point uvicorn entrypoint to app:app (not main:app)
2026-05-23 20:16:24 +02:00
6521a4c101
fix: replace adk deploy cloud_run with gcloud run deploy (compatible with ADK 1.x + Cloud Shell)
2026-05-23 19:55:16 +02:00
c411a8af88
fix: pin google-adk to 1.x to be compatible with google-cloud-aiplatform[adk,agent_engines]
2026-05-23 19:53:51 +02:00
c8e51135ac
fix: remove conflicting vertexai pin — bundled in google-cloud-aiplatform>=1.112.0
2026-05-23 08:52:03 +02:00
4814447da4
feat: add agents/core-logic/app.py — FastAPI Cloud Run entrypoint
2026-05-23 02:46:41 +02:00
ce28d34f3d
feat: add agents/tests/unit/test_agent.py — 8 pytest unit tests
...
Add unit tests for ADK orchestrator agent functionality, including environment variable checks and import validations.
2026-05-23 02:45:50 +02:00
34ba75a4a2
feat: push all remaining files — agents/, docs/, architecture/, cloudbuild.yaml, README
2026-05-23 02:37:39 +02:00