Commit Graph

62 Commits

Author SHA1 Message Date
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