@fideliosai/server 0.0.11 → 0.0.13

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.
Files changed (93) hide show
  1. package/dist/index.d.ts.map +1 -1
  2. package/dist/index.js +36 -12
  3. package/dist/index.js.map +1 -1
  4. package/dist/onboarding-assets/ceo/HEARTBEAT.md +1 -0
  5. package/dist/routes/agents.d.ts.map +1 -1
  6. package/dist/routes/agents.js +1 -0
  7. package/dist/routes/agents.js.map +1 -1
  8. package/dist/services/heartbeat.d.ts +6 -0
  9. package/dist/services/heartbeat.d.ts.map +1 -1
  10. package/dist/services/heartbeat.js +152 -19
  11. package/dist/services/heartbeat.js.map +1 -1
  12. package/dist/services/issues.d.ts +17 -0
  13. package/dist/services/issues.d.ts.map +1 -1
  14. package/dist/services/issues.js +133 -0
  15. package/dist/services/issues.js.map +1 -1
  16. package/dist/services/routines.d.ts.map +1 -1
  17. package/dist/services/routines.js +15 -1
  18. package/dist/services/routines.js.map +1 -1
  19. package/package.json +13 -13
  20. package/ui-dist/assets/{_basePickBy-aCZUIqgz.js → _basePickBy-Bz1lMRr1.js} +1 -1
  21. package/ui-dist/assets/{_baseUniq-BLy-h0im.js → _baseUniq-Cz0DIzBh.js} +1 -1
  22. package/ui-dist/assets/{arc-DORcpZ2v.js → arc-B03KhCd2.js} +1 -1
  23. package/ui-dist/assets/{architectureDiagram-VXUJARFQ-CrC43GAv.js → architectureDiagram-VXUJARFQ-Bd-fd33T.js} +1 -1
  24. package/ui-dist/assets/{blockDiagram-VD42YOAC-xTdotV4a.js → blockDiagram-VD42YOAC-CXaFl4cP.js} +1 -1
  25. package/ui-dist/assets/{c4Diagram-YG6GDRKO-Dz1ltwa_.js → c4Diagram-YG6GDRKO-DaDthSB7.js} +1 -1
  26. package/ui-dist/assets/channel-DyOjp3LQ.js +1 -0
  27. package/ui-dist/assets/{chunk-4BX2VUAB-0yJ60N67.js → chunk-4BX2VUAB-CJnPL87r.js} +1 -1
  28. package/ui-dist/assets/{chunk-55IACEB6-CaykP-lI.js → chunk-55IACEB6-CJNMJX2n.js} +1 -1
  29. package/ui-dist/assets/{chunk-B4BG7PRW-KHME69me.js → chunk-B4BG7PRW-DIkK9Mlj.js} +1 -1
  30. package/ui-dist/assets/{chunk-DI55MBZ5-B0usDtdN.js → chunk-DI55MBZ5-DSmF2iXg.js} +1 -1
  31. package/ui-dist/assets/{chunk-FMBD7UC4-DzvV4HxO.js → chunk-FMBD7UC4-gfze-lvJ.js} +1 -1
  32. package/ui-dist/assets/{chunk-QN33PNHL-lQSWl0lp.js → chunk-QN33PNHL-Ddo3zVqT.js} +1 -1
  33. package/ui-dist/assets/{chunk-QZHKN3VN-CNSl5CP7.js → chunk-QZHKN3VN-BPSHvZyX.js} +1 -1
  34. package/ui-dist/assets/{chunk-TZMSLE5B-DGMwf-PG.js → chunk-TZMSLE5B-C7wuUAs7.js} +1 -1
  35. package/ui-dist/assets/classDiagram-2ON5EDUG-BtJMQosd.js +1 -0
  36. package/ui-dist/assets/classDiagram-v2-WZHVMYZB-BtJMQosd.js +1 -0
  37. package/ui-dist/assets/clone-CXFUP-5d.js +1 -0
  38. package/ui-dist/assets/{cose-bilkent-S5V4N54A-DHdl31U9.js → cose-bilkent-S5V4N54A-io2ht7Tg.js} +1 -1
  39. package/ui-dist/assets/{dagre-6UL2VRFP-qya_P88Y.js → dagre-6UL2VRFP-CFH5DFm7.js} +1 -1
  40. package/ui-dist/assets/{diagram-PSM6KHXK-r6VT3OaH.js → diagram-PSM6KHXK-CPQXpnTx.js} +1 -1
  41. package/ui-dist/assets/{diagram-QEK2KX5R-B_q3SrYe.js → diagram-QEK2KX5R-BbyOPiaB.js} +1 -1
  42. package/ui-dist/assets/{diagram-S2PKOQOG-fUd6aDqY.js → diagram-S2PKOQOG-D6BCeM_j.js} +1 -1
  43. package/ui-dist/assets/{erDiagram-Q2GNP2WA-C4GVHjeF.js → erDiagram-Q2GNP2WA-C69wMd1X.js} +1 -1
  44. package/ui-dist/assets/{flowDiagram-NV44I4VS-NJOvXcsO.js → flowDiagram-NV44I4VS-CKJK9Bqb.js} +1 -1
  45. package/ui-dist/assets/{ganttDiagram-JELNMOA3-CR6i8bw3.js → ganttDiagram-JELNMOA3-CPfA5Aye.js} +1 -1
  46. package/ui-dist/assets/{gitGraphDiagram-V2S2FVAM-KuUBqBCF.js → gitGraphDiagram-V2S2FVAM-DZaZg_GO.js} +1 -1
  47. package/ui-dist/assets/{graph-C2ndFxK0.js → graph-DhWILner.js} +1 -1
  48. package/ui-dist/assets/{index-C0zpXTd4.js → index-0wF5nWs7.js} +1 -1
  49. package/ui-dist/assets/{index-2E9SUYYV.js → index-BA22JOVS.js} +1 -1
  50. package/ui-dist/assets/{index-BCxeL4sC.js → index-BYLf-CL8.js} +1 -1
  51. package/ui-dist/assets/{index-BXJ3uZW7.js → index-BYNiNvTL.js} +1 -1
  52. package/ui-dist/assets/{index-BX559d7s.js → index-BpI5gD12.js} +1 -1
  53. package/ui-dist/assets/{index-iwCaKqyH.js → index-Bw34OrlI.js} +1 -1
  54. package/ui-dist/assets/{index-BpmpzDnz.js → index-C0eJUuhF.js} +1 -1
  55. package/ui-dist/assets/{index-DG8bzLmY.js → index-CDX_vTiv.js} +1 -1
  56. package/ui-dist/assets/{index-B7IYeGcu.js → index-CE0NQXcf.js} +1 -1
  57. package/ui-dist/assets/{index-8u8n9Pq4.js → index-CHuh0SWm.js} +1 -1
  58. package/ui-dist/assets/{index-dlwMuMNB.js → index-CPbbQZoC.js} +1 -1
  59. package/ui-dist/assets/{index-COKsPUYc.js → index-ChbF-4_t.js} +1 -1
  60. package/ui-dist/assets/{index-B0NynVYx.js → index-CoA6TNOP.js} +1 -1
  61. package/ui-dist/assets/{index-DRYxIzsk.js → index-D2T0iIrx.js} +1 -1
  62. package/ui-dist/assets/{index-BgKIv3L-.js → index-DErU01-2.js} +1 -1
  63. package/ui-dist/assets/{index-CbtLpvDh.js → index-DM_ccx3O.js} +1 -1
  64. package/ui-dist/assets/{index-vwVAOsXL.js → index-DOD72BH5.js} +1 -1
  65. package/ui-dist/assets/{index-Chz5Zuq6.js → index-DnxtFtFx.js} +1 -1
  66. package/ui-dist/assets/{index-BY05NZdH.js → index-IWMCpuKI.js} +1 -1
  67. package/ui-dist/assets/{index-cDG_QEmf.js → index-T3Zr4GMI.js} +1 -1
  68. package/ui-dist/assets/{index-CiAa-OcP.js → index-lCZF_3wT.js} +1 -1
  69. package/ui-dist/assets/{index-C_pLB968.js → index-samEGEZm.js} +1 -1
  70. package/ui-dist/assets/{index-CZ5YNJWm.js → index-ypuEcx6t.js} +107 -107
  71. package/ui-dist/assets/{infoDiagram-HS3SLOUP-DEFCtERi.js → infoDiagram-HS3SLOUP-LnZP2Iev.js} +1 -1
  72. package/ui-dist/assets/{journeyDiagram-XKPGCS4Q-R88Ohnwu.js → journeyDiagram-XKPGCS4Q-TeWCkroV.js} +1 -1
  73. package/ui-dist/assets/{kanban-definition-3W4ZIXB7-DNRXkJwN.js → kanban-definition-3W4ZIXB7-BnVAyHyB.js} +1 -1
  74. package/ui-dist/assets/{layout-DoH9I_tz.js → layout-B6TLG_zF.js} +1 -1
  75. package/ui-dist/assets/{linear-D4V-ctT5.js → linear-Dyb-7GvO.js} +1 -1
  76. package/ui-dist/assets/{mermaid.core-D9TAWwGC.js → mermaid.core-CpCDuAY2.js} +4 -4
  77. package/ui-dist/assets/{mindmap-definition-VGOIOE7T-B3z_zJUb.js → mindmap-definition-VGOIOE7T-YN4fDnoi.js} +1 -1
  78. package/ui-dist/assets/{pieDiagram-ADFJNKIX-QMtcHwNj.js → pieDiagram-ADFJNKIX-Jt-577aV.js} +1 -1
  79. package/ui-dist/assets/{quadrantDiagram-AYHSOK5B-CLELWbCb.js → quadrantDiagram-AYHSOK5B-CGgFva_d.js} +1 -1
  80. package/ui-dist/assets/{requirementDiagram-UZGBJVZJ-CPKqi-aD.js → requirementDiagram-UZGBJVZJ-DdBYxuTR.js} +1 -1
  81. package/ui-dist/assets/{sankeyDiagram-TZEHDZUN-Dd8dy8DO.js → sankeyDiagram-TZEHDZUN-CykYs1PD.js} +1 -1
  82. package/ui-dist/assets/{sequenceDiagram-WL72ISMW-DgwQ1CPY.js → sequenceDiagram-WL72ISMW-CDK1H21a.js} +1 -1
  83. package/ui-dist/assets/{stateDiagram-FKZM4ZOC-DeI2cgrU.js → stateDiagram-FKZM4ZOC-CUqmB-ze.js} +1 -1
  84. package/ui-dist/assets/stateDiagram-v2-4FDKWEC3-ST-nIdhL.js +1 -0
  85. package/ui-dist/assets/{timeline-definition-IT6M3QCI-CMPp7ApP.js → timeline-definition-IT6M3QCI-CM3R1w9U.js} +1 -1
  86. package/ui-dist/assets/{treemap-GDKQZRPO-C1Fv7Xlx.js → treemap-GDKQZRPO-Ddo-4aIO.js} +1 -1
  87. package/ui-dist/assets/{xychartDiagram-PRI3JC2R-Dr7tKPcx.js → xychartDiagram-PRI3JC2R-BBxPoZv5.js} +1 -1
  88. package/ui-dist/index.html +1 -1
  89. package/ui-dist/assets/channel-N7GASpcu.js +0 -1
  90. package/ui-dist/assets/classDiagram-2ON5EDUG-875mZmmv.js +0 -1
  91. package/ui-dist/assets/classDiagram-v2-WZHVMYZB-875mZmmv.js +0 -1
  92. package/ui-dist/assets/clone-CKZ8Y0-n.js +0 -1
  93. package/ui-dist/assets/stateDiagram-v2-4FDKWEC3-DGSG2WeT.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"heartbeat.d.ts","sourceRoot":"","sources":["../../src/services/heartbeat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"heartbeat.d.ts","sourceRoot":"","sources":["../../src/services/heartbeat.ts"],"names":[],"mappings":"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"}
@@ -727,13 +727,20 @@ export function heartbeatService(db) {
727
727
  readNonEmptyString(latestSummary?.result) ??
728
728
  readNonEmptyString(latestSummary?.message) ??
729
729
  readNonEmptyString(latestRun.error);
730
+ const agentHome = resolveDefaultAgentWorkspaceDir(agent.id);
731
+ const today = new Date().toISOString().slice(0, 10);
730
732
  const handoffMarkdown = [
731
733
  "FideliOS session handoff:",
732
734
  `- Previous session: ${sessionId}`,
733
735
  issueId ? `- Issue: ${issueId}` : "",
734
736
  `- Rotation reason: ${reason}`,
735
737
  latestTextSummary ? `- Last run summary: ${latestTextSummary}` : "",
736
- "Continue from the current task state. Rebuild only the minimum context you need.",
738
+ "",
739
+ "Your persistent memory (if you have written any) survives session rotation:",
740
+ `- Daily notes: ${agentHome}/memory/ (check for ${today}.md or recent dates)`,
741
+ `- Knowledge graph: ${agentHome}/life/ (PARA structure)`,
742
+ `- Lessons learned: ${agentHome}/MEMORY.md (may not exist yet)`,
743
+ "Use glob or ls to check which memory files exist before reading. Do NOT assume files exist — create them if missing.",
737
744
  ]
738
745
  .filter(Boolean)
739
746
  .join("\n");
@@ -979,6 +986,7 @@ export function heartbeatService(db) {
979
986
  sessionDisplayId: input.sessionDisplayId,
980
987
  lastRunId: input.lastRunId,
981
988
  lastError: input.lastError,
989
+ ...(input.lastSeenCommentId !== undefined ? { lastSeenCommentId: input.lastSeenCommentId } : {}),
982
990
  updatedAt: new Date(),
983
991
  })
984
992
  .where(eq(agentTaskSessions.id, existing.id))
@@ -996,6 +1004,7 @@ export function heartbeatService(db) {
996
1004
  sessionDisplayId: input.sessionDisplayId,
997
1005
  lastRunId: input.lastRunId,
998
1006
  lastError: input.lastError,
1007
+ ...(input.lastSeenCommentId !== undefined ? { lastSeenCommentId: input.lastSeenCommentId } : {}),
999
1008
  })
1000
1009
  .returning()
1001
1010
  .then((rows) => rows[0] ?? null);
@@ -1364,25 +1373,21 @@ export function heartbeatService(db) {
1364
1373
  }
1365
1374
  const tracksLocalChild = isTrackedLocalChildProcessAdapter(adapterType);
1366
1375
  if (tracksLocalChild && run.processPid && isProcessAlive(run.processPid)) {
1367
- if (run.errorCode !== DETACHED_PROCESS_ERROR_CODE) {
1368
- const detachedMessage = `Lost in-memory process handle, but child pid ${run.processPid} is still alive`;
1369
- const detachedRun = await setRunStatus(run.id, "running", {
1370
- error: detachedMessage,
1371
- errorCode: DETACHED_PROCESS_ERROR_CODE,
1372
- });
1373
- if (detachedRun) {
1374
- await appendRunEvent(detachedRun, await nextRunEventSeq(detachedRun.id), {
1375
- eventType: "lifecycle",
1376
- stream: "system",
1377
- level: "warn",
1378
- message: detachedMessage,
1379
- payload: {
1380
- processPid: run.processPid,
1381
- },
1382
- });
1383
- }
1376
+ // Kill the orphaned process instead of letting it hang forever
1377
+ const detachedMessage = `Lost in-memory process handle, but child pid ${run.processPid} is still alive — killing and marking failed`;
1378
+ logger.info({ runId: run.id, pid: run.processPid }, detachedMessage);
1379
+ try {
1380
+ process.kill(run.processPid, "SIGTERM");
1384
1381
  }
1385
- continue;
1382
+ catch { }
1383
+ setTimeout(() => {
1384
+ try {
1385
+ if (isProcessAlive(run.processPid))
1386
+ process.kill(run.processPid, "SIGKILL");
1387
+ }
1388
+ catch { }
1389
+ }, 5000);
1390
+ // Fall through to the same fail+retry logic below (don't continue)
1386
1391
  }
1387
1392
  const shouldRetry = tracksLocalChild && !!run.processPid && (run.processLossRetryCount ?? 0) < 1;
1388
1393
  const baseMessage = run.processPid
@@ -2046,6 +2051,23 @@ export function heartbeatService(db) {
2046
2051
  payload: meta,
2047
2052
  });
2048
2053
  };
2054
+ // --- Pre-compiled heartbeat context bundle (Level 2 CAG) ---
2055
+ if (issueId) {
2056
+ try {
2057
+ const lastSeenCommentId = taskSessionForRun?.lastSeenCommentId ?? null;
2058
+ const bundle = await issuesSvc.buildHeartbeatContextBundle(issueId, {
2059
+ lastSeenCommentId,
2060
+ maxComments: 30,
2061
+ });
2062
+ if (bundle) {
2063
+ context.fideliosHeartbeatContext = bundle.markdown;
2064
+ context.fideliosHeartbeatContextCommentCursor = bundle.commentCursor;
2065
+ }
2066
+ }
2067
+ catch (err) {
2068
+ logger.warn({ err, runId: run.id, issueId }, "failed to build heartbeat context bundle; agent will fall back to API calls");
2069
+ }
2070
+ }
2049
2071
  const adapter = getServerAdapter(agent.adapterType);
2050
2072
  const authToken = adapter.supportsLocalAgentJwt
2051
2073
  ? createLocalAgentJwt(agent.id, agent.companyId, agent.adapterType, run.id)
@@ -2230,6 +2252,9 @@ export function heartbeatService(db) {
2230
2252
  });
2231
2253
  }
2232
2254
  else {
2255
+ // Persist comment cursor from pre-compiled context bundle
2256
+ const bundleCursor = parseObject(context.fideliosHeartbeatContextCommentCursor);
2257
+ const lastSeenCommentId = readNonEmptyString(bundleCursor.latestCommentId) ?? undefined;
2233
2258
  await upsertTaskSession({
2234
2259
  companyId: agent.companyId,
2235
2260
  agentId: agent.id,
@@ -2239,11 +2264,50 @@ export function heartbeatService(db) {
2239
2264
  sessionDisplayId: nextSessionState.displayId,
2240
2265
  lastRunId: finalizedRun.id,
2241
2266
  lastError: outcome === "succeeded" ? null : (adapterResult.errorMessage ?? "run_failed"),
2267
+ lastSeenCommentId,
2242
2268
  });
2243
2269
  }
2244
2270
  }
2245
2271
  }
2246
2272
  await finalizeAgentStatus(agent.id, outcome);
2273
+ // Auto-retry for transient errors (MCP timeout, rate limit, network errors)
2274
+ if (outcome === "failed" && finalizedRun && issueId) {
2275
+ const errorMsg = adapterResult.errorMessage ?? "";
2276
+ const errorCode = adapterResult.errorCode ?? "";
2277
+ const exitCode = adapterResult.exitCode ?? -1;
2278
+ const isTransient = errorMsg.includes("timed out") ||
2279
+ errorMsg.includes("Request timed out") ||
2280
+ errorMsg.includes("MCP error") ||
2281
+ errorMsg.includes("rate limit") ||
2282
+ errorMsg.includes("429") ||
2283
+ errorMsg.includes("503") ||
2284
+ errorMsg.includes("ECONNRESET") ||
2285
+ errorMsg.includes("ETIMEDOUT") ||
2286
+ errorCode === "claude_auth_required" ||
2287
+ exitCode === 143;
2288
+ if (isTransient) {
2289
+ const retryDelaySec = 30;
2290
+ logger.info({ runId: run.id, agentId: agent.id, error: errorMsg.slice(0, 100), retryDelaySec }, "transient error detected; scheduling auto-retry");
2291
+ setTimeout(() => {
2292
+ void enqueueWakeup(agent.id, {
2293
+ source: "automation",
2294
+ triggerDetail: "system",
2295
+ reason: "retry_transient_error",
2296
+ requestedByActorType: "system",
2297
+ requestedByActorId: "transient-retry",
2298
+ contextSnapshot: {
2299
+ issueId,
2300
+ taskId: issueId,
2301
+ taskKey: readNonEmptyString(context.taskKey) ?? issueId,
2302
+ wakeReason: "retry_transient_error",
2303
+ retriedFromRunId: run.id,
2304
+ },
2305
+ }).catch((retryErr) => {
2306
+ logger.warn({ err: retryErr, runId: run.id }, "failed to enqueue transient retry");
2307
+ });
2308
+ }, retryDelaySec * 1000);
2309
+ }
2310
+ }
2247
2311
  }
2248
2312
  catch (err) {
2249
2313
  const message = redactCurrentUserText(err instanceof Error ? err.message : "Unknown adapter failure", await getCurrentUserRedactionOptions());
@@ -2937,6 +3001,21 @@ export function heartbeatService(db) {
2937
3001
  }
2938
3002
  }, graceMs);
2939
3003
  }
3004
+ else if (run.processPid && isProcessAlive(run.processPid)) {
3005
+ // Fallback: kill by PID when in-memory handle is lost (e.g. after server restart)
3006
+ logger.info({ runId, pid: run.processPid }, "Killing detached process by PID (no in-memory handle)");
3007
+ try {
3008
+ process.kill(run.processPid, "SIGTERM");
3009
+ }
3010
+ catch { }
3011
+ setTimeout(() => {
3012
+ try {
3013
+ if (isProcessAlive(run.processPid))
3014
+ process.kill(run.processPid, "SIGKILL");
3015
+ }
3016
+ catch { }
3017
+ }, 5000);
3018
+ }
2940
3019
  const cancelled = await setRunStatus(run.id, "cancelled", {
2941
3020
  finishedAt: new Date(),
2942
3021
  error: reason,
@@ -3159,6 +3238,60 @@ export function heartbeatService(db) {
3159
3238
  .limit(1);
3160
3239
  return run ?? null;
3161
3240
  },
3241
+ /**
3242
+ * On server startup, kill any orphaned processes from a previous server lifetime
3243
+ * and mark their runs as failed. This prevents "process_detached" hangs.
3244
+ */
3245
+ reconcileOrphanedRunsOnStartup: async () => {
3246
+ const staleRuns = await db
3247
+ .select({
3248
+ id: heartbeatRuns.id,
3249
+ agentId: heartbeatRuns.agentId,
3250
+ processPid: heartbeatRuns.processPid,
3251
+ wakeupRequestId: heartbeatRuns.wakeupRequestId,
3252
+ processLossRetryCount: heartbeatRuns.processLossRetryCount,
3253
+ })
3254
+ .from(heartbeatRuns)
3255
+ .innerJoin(agents, eq(heartbeatRuns.agentId, agents.id))
3256
+ .where(eq(heartbeatRuns.status, "running"));
3257
+ if (staleRuns.length === 0)
3258
+ return;
3259
+ const now = new Date();
3260
+ logger.info({ count: staleRuns.length }, "Reconciling stale running heartbeat runs from previous server lifetime");
3261
+ for (const run of staleRuns) {
3262
+ // Kill orphaned process if still alive
3263
+ if (run.processPid && isProcessAlive(run.processPid)) {
3264
+ logger.info({ runId: run.id, pid: run.processPid }, "Killing orphaned process from previous server lifetime");
3265
+ try {
3266
+ process.kill(run.processPid, "SIGTERM");
3267
+ }
3268
+ catch { }
3269
+ // SIGKILL will follow from reapOrphanedRuns if needed
3270
+ }
3271
+ const message = run.processPid
3272
+ ? `Orphaned run from previous server lifetime — pid ${run.processPid} killed`
3273
+ : "Stale running run from previous server lifetime";
3274
+ await setRunStatus(run.id, "failed", {
3275
+ error: message,
3276
+ errorCode: "process_lost",
3277
+ finishedAt: now,
3278
+ });
3279
+ await setWakeupStatus(run.wakeupRequestId, "failed", {
3280
+ finishedAt: now,
3281
+ error: message,
3282
+ });
3283
+ // Queue retry if under limit
3284
+ if ((run.processLossRetryCount ?? 0) < 1) {
3285
+ const agent = await getAgent(run.agentId);
3286
+ const fullRun = await getRun(run.id);
3287
+ if (agent && fullRun) {
3288
+ await enqueueProcessLossRetry(fullRun, agent, now);
3289
+ }
3290
+ }
3291
+ await finalizeAgentStatus(run.agentId, "failed");
3292
+ }
3293
+ logger.info({ reconciled: staleRuns.length }, "Startup reconciliation complete");
3294
+ },
3162
3295
  };
3163
3296
  }
3164
3297
  //# sourceMappingURL=heartbeat.js.map